diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9072039 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +env diff --git a/docker-compose.py b/docker-compose.py new file mode 100644 index 0000000..225ccb5 --- /dev/null +++ b/docker-compose.py @@ -0,0 +1,11 @@ +version: '3' + +services: + web: + build: . + ports: + - '80:80' + db: + image: redis:latest + volumes: + - ./:/data diff --git a/requirements.txt b/requirements.txt index 16a0330..ab33616 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ idna==2.10 itsdangerous==1.1.0 Jinja2==2.11.3 MarkupSafe==1.1.1 +redis==3.5.3 requests==2.25.1 urllib3==1.26.4 Werkzeug==1.0.1 diff --git a/src/app.py b/src/app.py index 2e52d9f..af4a65c 100644 --- a/src/app.py +++ b/src/app.py @@ -1,16 +1,28 @@ from flask import Flask import requests import re +import redis +import time app = Flask(__name__) CHEMGUIDE_BASE="https://chemguide.co.uk/" +PAGE_CACHE_DURATION = 3600 # cache pages for an hour before retrieving again +db = redis.Redis(host='db', port=6379, db=0) -@app.route('/') -@app.route('/') -def path(path='/'): +class PathKeyType(): + Data = 1 + Date = 2 + +def pathkey(path, type): + if type == PathKeyType.Data: + return f"{path}:data" + elif type == PathKeyType.Date: + return f"{path}:date" + +def set_cache(path): r = requests.get(CHEMGUIDE_BASE + '/' + path) try: - return re.sub( + data = re.sub( r'') +def path(path='/'): + return get_page(path) if __name__ == '__main__': app.run(host='0.0.0.0', debug=True)