summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPepper <pepper@scannerjammer.com>2021-02-01 16:52:23 +0000
committerPepper <pepper@scannerjammer.com>2021-02-01 16:52:23 +0000
commit2c44ff7fa5bdf50b85fcce7357320d9531ef7c90 (patch)
treef23360cbf7644c124a61fc5c2b99b12a4ddf6954
parentb1351870c85d7d4a9f777a7d8494292cd1b8aa54 (diff)
adding text search
-rw-r--r--photoblaster/db/models/__init__.py7
-rw-r--r--photoblaster/server.py56
2 files changed, 60 insertions, 3 deletions
diff --git a/photoblaster/db/models/__init__.py b/photoblaster/db/models/__init__.py
index 85784e0..56c5741 100644
--- a/photoblaster/db/models/__init__.py
+++ b/photoblaster/db/models/__init__.py
@@ -27,9 +27,12 @@ class Actions(object):
raise
@classmethod
- def _search(cls, **kwargs):
+ def _search(cls, text=None, **kwargs):
global session
- query = session.query(cls).filter_by(**kwargs)
+ query = session.query(cls)
+ if text is not None:
+ query = query.filter(cls.url.like('%' + text + '%'))
+ query = query.filter_by(**kwargs)
session.close()
return query
try:
diff --git a/photoblaster/server.py b/photoblaster/server.py
index 72769fc..90e1c83 100644
--- a/photoblaster/server.py
+++ b/photoblaster/server.py
@@ -210,6 +210,9 @@ class Server(object):
if request.args.get('addr'):
search_params['remote_addr'] = request.args['remote_addr']
qs.append("addr=" + request.args['addr'])
+ if request.args.get('text'):
+ search_params['text'] = request.args['text']
+ qs.append("text=" + request.args['text'])
limit = int(request.args.get('limit', 20))
if limit > GALLERY_LIMIT:
limit = GALLERY_LIMIT
@@ -229,7 +232,7 @@ class Server(object):
) for image in images]
else:
images = [
- "http://i.asdf.us/im/%s/%s" %
+ "https://s3.amazonaws.com/i.asdf.us/im/%s/%s" %
(image.dir, image.newfile) for
image in images
]
@@ -246,6 +249,57 @@ class Server(object):
newer=newer,
qs=qs
)
+ @self.app.route('/im/gallery_reload/', methods=['GET'])
+ @self.app.route('/im/gallery_reload', methods=['GET'])
+ def gallery_reload():
+ search_params = {"deleted": None}
+ qs = []
+ if request.args.get('tag'):
+ search_params['tag'] = GALLERY_TAG_TRANS.get(
+ request.args['tag'], request.args['tag'])
+ qs.append("tag=" + request.args['tag'])
+ if request.args.get('name'):
+ search_params['name'] = request.args['name']
+ qs.append("name=" + request.args['name'])
+ if request.args.get('addr'):
+ search_params['remote_addr'] = request.args['remote_addr']
+ qs.append("addr=" + request.args['addr'])
+ limit = int(request.args.get('limit', 20))
+ if limit > GALLERY_LIMIT:
+ limit = GALLERY_LIMIT
+ offset = int(request.args.get('start', 0))
+ if request.args.get('random'):
+ results = ImCmd.search_random(**search_params)
+ if 'start' not in request.args:
+ qs.append("random=" + request.args['random'])
+ else:
+ results = ImCmd.search(**search_params)
+ images = results.limit(limit).offset(offset).all()
+ if LOCAL:
+ images = ["http://%s:%s/im/cache/%s" % (
+ SERVER_HOST,
+ SERVER_PORT,
+ image.newfile
+ ) for image in images]
+ else:
+ images = [
+ "https://s3.amazonaws.com/i.asdf.us/im/%s/%s" %
+ (image.dir, image.newfile) for
+ image in images
+ ]
+ older = offset + limit
+ newer = offset - limit
+ if limit != 20:
+ qs.append("limit=%s" % limit)
+ qs = "&".join(qs)
+
+ return render_template(
+ 'gallery_reload.html',
+ images=images,
+ older=older,
+ newer=newer,
+ qs=qs
+ )
@self.app.route('/im/cache/<path:path>', methods=['GET'])
def local_cache(path):