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