#!/usr/bin/python2.7 import os import cgi import re import random import db db = db.db() BASE_HREF = "http://i.asdf.us/im/" PARAMLIST = "addr start limit name interface random tag" SQL_LIMIT = 20 QUERY_LIMIT = 20; _TAG_TRANSLATE = { "grid" : "PbGrid", "gradient" : "PbGradient", "break" : "PbBreak", "landscape" : "PbLandscape", "pattern" : "PbPattern", "transparent" : "PbGenerate:transparent", "Over" : "PbGenerate:Over", "ATop" : "PbGenerate:ATop", "Dst_Over" : "PbGenerate:Dst_Over", "Dst_In" : "PbGenerate:Dst_In", "Dst_Out" : "PbGenerate:Dst_Out", "Multiply" : "PbGenerate:Multiply", "Screen" : "PbGenerate:Screen", "Divide" : "PbGenerate:Divide", "Plus" : "PbGenerate:Plus", "Difference" : "PbGenerate:Difference", "Exclusion" : "PbGenerate:Exclusion", "Lighten" : "PbGenerate:Lighten", "Darken" : "PbGenerate:Darken", "Overlay" : "PbGenerate:Overlay", "Hard_Light" : "PbGenerate:Hard_Light", "Soft_Light" : "PbGenerate:Soft_Light", "Pegtop_Light" : "PbGenerate:Pegtop_Light", "Linear_Light" : "PbGenerate:Linear_Light", "Vivid_Light" : "PbGenerate:Vivid_Light", "Pin_Light" : "PbGenerate:Pin_Light", "Linear_Dodge" : "PbGenerate:Linear_Dodge", "Linear_Burn" : "PbGenerate:Linear_Burn", "Color_Dodge" : "PbGenerate:Color_Dodge", "Color_Burn" : "PbGenerate:Color_Burn" } class Gallery(object): def __init__(self): pass def select_random(self, tag=None, username=None): def _tag_translate(self, tag): return _TAG_TRANSLATE.get(tag, tag) def get_files (params): sql = "SELECT * FROM im_cmd " args = [] where = [] if params['start'] is not None: where.append("id < %s") args.append(params['start']) if params['name'] is not None: where.append("name=%s") args.append(params['name']) if params['tag'] is not None: where.append("tag=%s") args.append(tagTranslate(params['tag'])) if len(where): sql += "WHERE " sql += " AND ".join(where) sql += " " if params['random'] is not None: if params['random'] == '1': sql += "ORDER BY RAND(" + str(random.randint(1,2**63)) + ") " else: sql += "ORDER BY RAND(" + params['random'] + ") " else: sql += "ORDER BY id DESC " sql += "LIMIT %s" if params['limit'] is not None: args.append( int(params['limit']) ) else: args.append( SQL_LIMIT ) db.execute(sql, args) rows = db.cursor.fetchall () return rows params = get_params(PARAMLIST) @-webkit-keyframes pulsate_and_grow { 0% {-webkit-transform: scale(0.1, 0.1); opacity: 0.1;} 50% {opacity: 1.0;} 100% {-webkit-transform: scale(1.0, 1.0); opacity: 0.1;} } .tag-options:active, .tag-clear:active { -webkit-animation: pulsate_opacity 0.5s ease-out; -webkit-animation-iteration-count: 3; opacity: 1.0; } .sorting-options:active { -webkit-animation: pulsate_opacity 0.5s ease-out; -webkit-animation-iteration-count: 3; opacity: 1.0; } @-webkit-keyframes pulsate_opacity{ 0% { opacity: 0.1;} 50% {opacity: 1.0;} 100% {opacity: 0.1;} }