summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpepperpepperpepper <pepper@scannerjammer.com>2015-10-06 20:06:15 -0700
committerpepperpepperpepper <pepper@scannerjammer.com>2015-10-06 20:06:15 -0700
commit14b6ac27f1b4e910886389f5d5980ac6c586825d (patch)
treedd3bccc88e33f0481b4cab0c39a821a6c2f468bd
parent55636242fb42009fac80656ad5106ad2717bcd75 (diff)
parent24cbbdbf904403f79c07bb4d358fa4293e3e6709 (diff)
merging
Merge branch 'master' of ghghgh.us:photoblaster/photoblaster
-rw-r--r--config.py1
-rw-r--r--lib/db.py6
-rwxr-xr-xlib/pb/generate.py6
-rw-r--r--lib/server.py23
4 files changed, 31 insertions, 5 deletions
diff --git a/config.py b/config.py
index a31d091..63b1272 100644
--- a/config.py
+++ b/config.py
@@ -32,7 +32,6 @@ SPECIAL_DOWNLOADERS_MAX_SIZE = 100000
#database
-#DB_HOST = "localhost"
DB_HOST = "lalalizard.com"
DB_USER = "asdfus"
DB_PASSWORD = "gTYgT&M6q"
diff --git a/lib/db.py b/lib/db.py
index a236344..6a7e424 100644
--- a/lib/db.py
+++ b/lib/db.py
@@ -2,6 +2,7 @@
"""all database connections and logic goes here"""
from config import DB_HOST, DB_USER, DB_PASSWORD, DB_NAME
import time, sys
+import simplejson as json
from sqlalchemy import Column, Integer, LargeBinary, String, create_engine, sql
from sqlalchemy.ext.declarative import declarative_base
@@ -37,6 +38,11 @@ class Db(object):
))
self.Session = sessionmaker(bind=engine)
+ def search(self, **kwargs):
+ session = self.Session()
+ results = session.query(ImCmd).filter_by(**kwargs).all()
+ return map(lambda n: { "tag": n.tag, "data": json.loads(n.dataobj) }, results)
+
def insert_cmd(self, **kwargs):
try:
session = self.Session()
diff --git a/lib/pb/generate.py b/lib/pb/generate.py
index 31530d2..e915da9 100755
--- a/lib/pb/generate.py
+++ b/lib/pb/generate.py
@@ -107,10 +107,10 @@ class PbGenerate(Pb):
"""Used for the database tag column. Allows for tracking of the type
of overlay method used."""
self.tag = _DEFAULT_TAG
- if self.params.transparent:
- self.tag = str(self.params.transparent)
if self.params.background:
- self.tag = str(self.params.compose)
+ self.tag = "%s:%s" % (self.tag, str(self.params.compose))
+ elif self.params.transparent:
+ self.tag = "%s:%s" % (self.tag, "transparent")
self.filename, self.filepath = self._filename_filepath_create(
url=self.params.url['url'], extension=self.params.format
diff --git a/lib/server.py b/lib/server.py
index df6af4f..5c0df9b 100644
--- a/lib/server.py
+++ b/lib/server.py
@@ -1,13 +1,15 @@
"""All webserver logic lives here, including routes"""
-from flask import Flask
+from flask import Flask, Response
from flask import request, jsonify
import sys, os, re
import cherrypy
from paste.translogger import TransLogger
+import simplejson as json
sys.path.append("./lib")
from pb import *
+from db import Db
from param import BadParamError
from config import SERVER_HOST, SERVER_PORT
@@ -66,6 +68,25 @@ class Server(object):
'imgradient' : 'PbGradient',
'landscape' : 'PbLandscape',
}
+ @self.app.route('/im/data', methods=['GET'])
+ def get_data():
+ args_dict = request.args.to_dict()
+ query_dict = {}
+ for elem in ["newfile", "time"]:
+ if args_dict.get(elem):
+ query_dict[elem] = args_dict.get(elem)
+ if args_dict:
+ try:
+ db = Db()
+ return Response(
+ #flask prevents from returning arrays, so we need the json module
+ json.dumps(db.search(**query_dict)),
+ mimetype='application/json'
+ )
+ except Exception as e:
+ return str(e)
+ else:
+ raise InvalidUsage('Improper Usage', status_code=410)
def _find_class_by_name(self, pb_classname):
pb_classname = self._classname_aliases.get(pb_classname, None) or pb_classname