diff options
| author | pepperpepperpepper <pepper@scannerjammer.com> | 2015-10-22 22:49:32 -0700 |
|---|---|---|
| committer | pepperpepperpepper <pepper@scannerjammer.com> | 2015-10-22 22:49:32 -0700 |
| commit | ceb2da8f23f1f447d55c0abf20d3816a486e439b (patch) | |
| tree | 77d67afe092f9631747515cdb52f8fc1c51f35e7 /gallery/gallery.py | |
| parent | e1c21b17de44401d08a0779be6cffb96013e3390 (diff) | |
added gallery and new actions to the db code
Diffstat (limited to 'gallery/gallery.py')
| -rw-r--r-- | gallery/gallery.py | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/gallery/gallery.py b/gallery/gallery.py new file mode 100644 index 0000000..37af36c --- /dev/null +++ b/gallery/gallery.py @@ -0,0 +1,256 @@ +#!/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;} +} +</style> +<link href="/im/gallery_style.css" type="text/css" rel="stylesheet" /> +<script type="text/javascript"> +$(function(){ + $("b").addClass("pulsate_and_grow"); + $(".sorting-options").click(function(){ + + $(".sorting-options").click(function(){ + console.log("wazzup"); + if ($(this).hasClass("pulsate_opacity")){ + $(this).removeClass("pulsate_opacity"); + } + $(this).addClass("pulsate_opacity"); + + }); + }); +}); + +</script> +</head> +<body> +<div id="help"> + <b>key controls</b> + <div id="keys"> + <br/> + <div class="small"><i>when composer is launched...</i></div> + <div>ESC toggle</div> + <div>C clear</div> + <div>R reverse</div> + <br/> + <div class="small"><i>in the gallery...</i></div> + <div>BACKSPACE delete</div> + <div>LEFT ARROW newer</div> + <div>RIGHT ARROW older</div> + </div> +</div> +<div id="actions"> + <b>sort</b> + <div id="sorting-optionsContainer"> + <div class="sorting-options" id="date">date</div> + <div class="sorting-options" id="username">username</div> + <div class="sorting-options" id="height">height</div> + <div class="sorting-options" id="width">width</div> + <div class="sorting-options" id="gif">gif</div> + <div class="sorting-options" id="shuffle">shuffle</div> + <div class="sorting-options" id="lombada">lombada</div> + </div> +</div> +<div id="tags"> + <b>tags</b> + <div id="tag-optionsContainer"> + + + <div class="tag-clear"><i>remove tag</i></div> + <div class="tag-options" id="transparent">transparent</div> + <div class="tag-options" id="break">break</div> + <div class="tag-options" id="gradient">gradient</div> + <div class="tag-options" id="grid">grid</div> + <div class="tag-options" id="pattern">pattern</div> + <div class="tag-options" id="landscape">landscape</div> + <div class="tag-options" id="shader">shader</div> + <div class="tag-options" id="ascii">ascii</div> + <div class="tag-options" id="Over">Over</div> + <div class="tag-options" id="ATop">ATop</div> + <div class="tag-options" id="Dst_Over">Dst_Over</div> + <div class="tag-options" id="Dst_In">Dst_In</div> + <div class="tag-options" id="Dst_Out">Dst_Out</div> + <div class="tag-options" id="Multiply">Multiply</div> + <div class="tag-options" id="Screen">Screen</div> + <div class="tag-options" id="Divide">Divide</div> + <div class="tag-options" id="Plus">Plus</div> + <div class="tag-options" id="Difference">Difference</div> + <div class="tag-options" id="Exclusion">Exclusion</div> + <div class="tag-options" id="Lighten">Lighten</div> + <div class="tag-options" id="Darken">Darken</div> + <div class="tag-options" id="Overlay">Overlay</div> + <div class="tag-options" id="Hard_Light">Hard_Light</div> + <div class="tag-options" id="Soft_Light">Soft_Light</div> + <div class="tag-options" id="Pegtop_Light">Pegtop_Light</div> + <div class="tag-options" id="Linear_Light">Linear_Light</div> + <div class="tag-options" id="Vivid_Light">Vivid_Light</div> + <div class="tag-options" id="Pin_Light">Pin_Light</div> + <div class="tag-options" id="Linear_Dodge">Linear_Dodge</div> + <div class="tag-options" id="Linear_Burn">Linear_Burn</div> + <div class="tag-options" id="Color_Dodge">Color_Dodge</div> + <div class="tag-options" id="Color_Burn">Color_Burn</div> + + </div> +</div> +<div id="dump"> + <div id="rebus"></div> + <input id="urlz" type="text" /> + <div id="d_clip_container" style="position:relative"> + <div id="d_clip_button">copy</div> + </div> + <button id="clear">clear</button> +</div> +<div id="images"> +""" + + +previous_id = lowest_id + (SQL_LIMIT * 2) +back = ["start=%d" % lowest_id, "limit=%d" % SQL_LIMIT] +newer = ["start=%d" % previous_id, "limit=%d" % SQL_LIMIT] +random_time = "" +if params['name'] is not None: + back.append("name=%s" % params['name']) + newer.append("name=%s" % params['name']) + random_time = "name=%s" % params['name'] +if params['tag'] is not None: + back.append("tag=%s" % params['tag']) + newer.append("tag=%s" % params['tag']) + random_time = "tag=%s" % params['tag'] + +newer_QS = "&".join(newer) +back_QS = "&".join(back) +random_time_QS = ""; +if random_time: + random_time_QS = "&%s" % random_time; +print "<div id='nextpage'>" +print "<a href='/im/'>editor</a>" +print "|" +print "<a href='?%s'>← newer</a>" % newer_QS; +print "|" +if params['random'] is not None and params['random'] == '1': + print "<a href='?random=%d%s'>random</a>" % (random.randint(1,2**63), random_time_QS); +else: + print "<a href='?random=%d%s'>random</a>" % (1, random_time_QS); +print "|" +print "<a href='?%s'>older →</a>" % back_QS; +print "</div>" +print """ +else: + print "Main.init()" +print """ +</script> +</html> +""" + |
