From 31d6ffe7a1e7b9929122ceb449a4708bbbd70c05 Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Mon, 3 Feb 2020 00:55:09 +0100 Subject: [PATCH] add patched version of redis_store.py add https_loader.py --- Dockerfile | 5 ++++- remotecv/https_loader.py | 8 ++++++++ remotecv/redis_store.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 remotecv/https_loader.py create mode 100644 remotecv/redis_store.py diff --git a/Dockerfile b/Dockerfile index 2ebe902..b15b3f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,11 +4,14 @@ RUN apt-get update -qq \ && apt-get install -qqy --no-install-recommends libjpeg-turbo-progs \ && rm -r /var/lib/apt/lists/* -RUN pip install thumbor opencv-python remotecv redis tc_prometheus +RUN pip install thumbor opencv-python remotecv redis celery tc_prometheus RUN mkdir /etc/thumbor \ && thumbor-config > /etc/thumbor.conf +ADD remotecv/https_loader.py /usr/local/lib/python2.7/site-packages/remotecv/https_loader.py +ADD remotecv/redis_store.py /usr/local/lib/python2.7/site-packages/remotecv/result_store/redis_store.py + EXPOSE 8888 EXPOSE 8000 CMD ["/usr/local/bin/thumbor"] diff --git a/remotecv/https_loader.py b/remotecv/https_loader.py new file mode 100644 index 0000000..9cd22cd --- /dev/null +++ b/remotecv/https_loader.py @@ -0,0 +1,8 @@ +import urllib2 +import re + +def load_sync(path): + if not re.match(r'^http?', path): + path = 'https://%s' % path + path = urllib2.unquote(path) + return urllib2.urlopen(path).read() diff --git a/remotecv/redis_store.py b/remotecv/redis_store.py new file mode 100644 index 0000000..a3cdd7f --- /dev/null +++ b/remotecv/redis_store.py @@ -0,0 +1,29 @@ +from redis import Redis + +from remotecv.utils import logger +from remotecv.result_store import BaseStore + + +class ResultStore(BaseStore): + WEEK = 604800 + redis_instance = None + + def __init__(self, config): + if not ResultStore.redis_instance: + ResultStore.redis_instance = Redis( + host=config.redis_host, + port=config.redis_port, + db=config.redis_database, + password=config.redis_password, + ) + self.storage = ResultStore.redis_instance + + def store(self, key, points): + result = self.serialize(points) + logger.debug("Points found: %s" % result) + redis_key = "thumbor-detector-%s" % key + self.storage.setex( + name=redis_key, + value=result, + time=2 * self.WEEK, + ) -- GitLab