# Path: screenchop/util/ranking.py
# def epoch_seconds(date):
# def score(ups, downs):
# def hot(ups, downs, date):
# 
# Path: screenchop/config.py
# HOST = config.get('app', 'HOST')
# PORT = int(config.get('app', 'PORT'))
# DEBUG = config.getboolean('app', 'DEBUG')
# TEMP_FILE_DIR = config.get('app', 'TEMP_FILE_DIR')
# SESSION_KEY = config.get('app', 'SESSION_KEY')
# DOMAIN_URL = config.get('app', 'DOMAIN_URL')
# SHORT_DOMAIN_URL = config.get('app', 'SHORT_DOMAIN_URL')
# ADMIN_EMAIL = config.get('app', 'ADMIN_EMAIL')
# EXCEPTION_EMAIL = config.get('app', 'EXCEPTION_EMAIL').split(',')
# CACHE_TYPE = config.get('caching', 'CACHE_TYPE')
# CACHE_SERVER_ADDRESS = config.get('caching', 'CACHE_SERVER_ADDRESS').split()
# CACHE_DEFAULT_TIMEOUT = config.getint('caching', 'CACHE_DEFAULT_TIMEOUT')
# MONGO_DATABASE = config.get('mongodb', 'DATABASE')
# MONGO_HOST = config.get('mongodb', 'HOST')
# MONGO_PORT = int(config.get('mongodb', 'PORT'))
# MONGO_USER = config.get('mongodb', 'USER')
# MONGO_PASS = config.get('mongodb', 'PASS')
# BUCKET_NAME = config.get('s3', 'BUCKET_NAME')
# AWS_ACCESS_KEY_ID = config.get('s3', 'AWS_ACCESS_KEY_ID')
# AWS_SECRET_ACCESS_KEY = config.get('s3', 'AWS_SECRET_ACCESS_KEY')
# S3_THUMBS_URL = config.get('s3', 'S3_THUMBS_URL')
# S3_MEDIUM_URL = config.get('s3', 'S3_MEDIUM_URL')
# S3_FULL_URL = config.get('s3', 'S3_FULL_URL')
# S3_AVATAR_URL = config.get('s3', 'S3_AVATAR_URL')
# REGISTRATION_LEVEL = config.get('registration', 'REGISTRATION_LEVEL')
# MAX_IMAGES_PER_ROW = int(config.get('gallery', 'MAX_IMAGES_PER_ROW'))
# HOME_MAX_IMAGES = int(config.get('gallery', 'HOME_MAX_IMAGES'))
# TAGGING_ENABLED = config.getboolean('gallery', 'TAGGING_ENABLED')
# ALLOWED_FILE_TYPES = config.get('upload', 'ALLOWED_FILE_TYPES').split(',')
# THUMB_MAX_WIDTH = int(config.get('upload', 'THUMB_MAX_WIDTH'))
# THUMB_MAX_HEIGHT = int(config.get('upload', 'THUMB_MAX_HEIGHT'))
# MEDIUM_MAX_WIDTH = int(config.get('upload', 'MEDIUM_MAX_WIDTH'))
# MEDIUM_MAX_HEIGHT = int(config.get('upload', 'MEDIUM_MAX_HEIGHT'))
# GOOGLE_ANALYTICS_ACCOUNT = config.get('marketing', 'GOOGLE_ANALYTICS_ACCOUNT')
# 
# Path: screenchop/cache.py



from flask import Flask
from flask import request
from flask import abort, redirect, url_for, jsonify
from flask import render_template
from screenchop.models import *
from screenchop.util import ranking
from screenchop import config
from screenchop.cache import cache
import json
import datetime
        elif time == '24h':
            timerange = datetime.datetime.today() - datetime.timedelta(hours=24)
        elif time == '7d':
            timerange = datetime.datetime.today() - datetime.timedelta(days=7)
        elif time == '30d':
            timerange = datetime.datetime.today() - datetime.timedelta(days=30)
        elif time == 'all':
            timerange = datetime.datetime.today() - datetime.timedelta(days=99999)
        else:
            timerange = datetime.datetime.today() - datetime.timedelta(days=99999)
            
        # Front page
        if user == 'all' and tag == 'all':
        
            if sortType == 'new':
                post = Post.objects[int(page):int(page) +
                        config.HOME_MAX_IMAGES].order_by('-date').limit(config.HOME_MAX_IMAGES)

            elif sortType == 'top':
                post = Post.objects[int(page):int(page)
                        + config.HOME_MAX_IMAGES](date__gt=timerange) \
                                .order_by('-upvotes').limit(config.HOME_MAX_IMAGES)

            elif sortType == 'hot':
                post = Post.objects[int(page):int(page)
                        + config.HOME_MAX_IMAGES](date__gt=timerange) \
                                .order_by('-rank').limit(config.HOME_MAX_IMAGES)

            else:
                post = Post.objects[int(page):int(page)

# Path: screenchop/util/ranking.py
# def epoch_seconds(date):
# def score(ups, downs):
# def hot(ups, downs, date):
# 
# Path: screenchop/config.py
# HOST = config.get('app', 'HOST')
# PORT = int(config.get('app', 'PORT'))
# DEBUG = config.getboolean('app', 'DEBUG')
# TEMP_FILE_DIR = config.get('app', 'TEMP_FILE_DIR')
# SESSION_KEY = config.get('app', 'SESSION_KEY')
# DOMAIN_URL = config.get('app', 'DOMAIN_URL')
# SHORT_DOMAIN_URL = config.get('app', 'SHORT_DOMAIN_URL')
# ADMIN_EMAIL = config.get('app', 'ADMIN_EMAIL')
# EXCEPTION_EMAIL = config.get('app', 'EXCEPTION_EMAIL').split(',')
# CACHE_TYPE = config.get('caching', 'CACHE_TYPE')
# CACHE_SERVER_ADDRESS = config.get('caching', 'CACHE_SERVER_ADDRESS').split()
# CACHE_DEFAULT_TIMEOUT = config.getint('caching', 'CACHE_DEFAULT_TIMEOUT')
# MONGO_DATABASE = config.get('mongodb', 'DATABASE')
# MONGO_HOST = config.get('mongodb', 'HOST')
# MONGO_PORT = int(config.get('mongodb', 'PORT'))
# MONGO_USER = config.get('mongodb', 'USER')
# MONGO_PASS = config.get('mongodb', 'PASS')
# BUCKET_NAME = config.get('s3', 'BUCKET_NAME')
# AWS_ACCESS_KEY_ID = config.get('s3', 'AWS_ACCESS_KEY_ID')
# AWS_SECRET_ACCESS_KEY = config.get('s3', 'AWS_SECRET_ACCESS_KEY')
# S3_THUMBS_URL = config.get('s3', 'S3_THUMBS_URL')
# S3_MEDIUM_URL = config.get('s3', 'S3_MEDIUM_URL')
# S3_FULL_URL = config.get('s3', 'S3_FULL_URL')
# S3_AVATAR_URL = config.get('s3', 'S3_AVATAR_URL')
# REGISTRATION_LEVEL = config.get('registration', 'REGISTRATION_LEVEL')
# MAX_IMAGES_PER_ROW = int(config.get('gallery', 'MAX_IMAGES_PER_ROW'))
# HOME_MAX_IMAGES = int(config.get('gallery', 'HOME_MAX_IMAGES'))
# TAGGING_ENABLED = config.getboolean('gallery', 'TAGGING_ENABLED')
# ALLOWED_FILE_TYPES = config.get('upload', 'ALLOWED_FILE_TYPES').split(',')
# THUMB_MAX_WIDTH = int(config.get('upload', 'THUMB_MAX_WIDTH'))
# THUMB_MAX_HEIGHT = int(config.get('upload', 'THUMB_MAX_HEIGHT'))
# MEDIUM_MAX_WIDTH = int(config.get('upload', 'MEDIUM_MAX_WIDTH'))
# MEDIUM_MAX_HEIGHT = int(config.get('upload', 'MEDIUM_MAX_HEIGHT'))
# GOOGLE_ANALYTICS_ACCOUNT = config.get('marketing', 'GOOGLE_ANALYTICS_ACCOUNT')
# 
# Path: screenchop/cache.py



# Path: screenchop/api/public/images.py
from flask import Flask
from flask import request
from flask import abort, redirect, url_for, jsonify
from flask import render_template
from screenchop.models import *
from screenchop.util import ranking
from screenchop import config
from screenchop.cache import cache
import json
import datetime

        elif time == '24h':
            timerange = datetime.datetime.today() - datetime.timedelta(hours=24)
        elif time == '7d':
            timerange = datetime.datetime.today() - datetime.timedelta(days=7)
        elif time == '30d':
            timerange = datetime.datetime.today() - datetime.timedelta(days=30)
        elif time == 'all':
            timerange = datetime.datetime.today() - datetime.timedelta(days=99999)
        else:
            timerange = datetime.datetime.today() - datetime.timedelta(days=99999)
            
        # Front page
        if user == 'all' and tag == 'all':
        
            if sortType == 'new':
                post = Post.objects[int(page):int(page) +
                        config.HOME_MAX_IMAGES].order_by('-date').limit(config.HOME_MAX_IMAGES)

            elif sortType == 'top':
                post = Post.objects[int(page):int(page)
                        + config.HOME_MAX_IMAGES](date__gt=timerange) \
                                .order_by('-upvotes').limit(config.HOME_MAX_IMAGES)

            elif sortType == 'hot':
                post = Post.objects[int(page):int(page)
                        + config.HOME_MAX_IMAGES](date__gt=timerange) \
                                .order_by('-rank').limit(config.HOME_MAX_IMAGES)

            else:
                post = Post.objects[int(page):int(page)

                        + config.HOME_MAX_IMAGES].order_by('-date')