summaryrefslogtreecommitdiff
path: root/gallery/gallery.py
diff options
context:
space:
mode:
authorpepperpepperpepper <pepper@scannerjammer.com>2015-10-22 22:49:32 -0700
committerpepperpepperpepper <pepper@scannerjammer.com>2015-10-22 22:49:32 -0700
commitceb2da8f23f1f447d55c0abf20d3816a486e439b (patch)
tree77d67afe092f9631747515cdb52f8fc1c51f35e7 /gallery/gallery.py
parente1c21b17de44401d08a0779be6cffb96013e3390 (diff)
added gallery and new actions to the db code
Diffstat (limited to 'gallery/gallery.py')
-rw-r--r--gallery/gallery.py256
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'>&larr; 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 &rarr;</a>" % back_QS;
+print "</div>"
+print """
+else:
+ print "Main.init()"
+print """
+</script>
+</html>
+"""
+