From 80988c72cce4ab8efd2d259e4feb76727a504588 Mon Sep 17 00:00:00 2001 From: ifiguero Date: Mon, 29 Jul 2024 15:31:25 -0400 Subject: [PATCH] Add fetch.py --- fetch.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fetch.py diff --git a/fetch.py b/fetch.py new file mode 100644 index 0000000..e6acceb --- /dev/null +++ b/fetch.py @@ -0,0 +1,50 @@ +# coding: utf-8 +from apscheduler.schedulers.background import BlockingScheduler +from datetime import datetime +from main import read_file_proto_x_stop, r, tz +import requests +import logging +import json + +import os + + +def rutina_principal(): + print(datetime.now(tz)) + + fileproto = download_file_backend() + if fileproto == None: + return False + + namefile = r.get('fileproto') + if namefile == fileproto['name']: + print(namefile, flush=True) + return + + # eliminar toda la informacion actual + r.flushdb() + + r.set('fileproto', fileproto['name']) + print(fileproto['name'], flush=True) + data = read_file_proto_x_stop(fileproto['content']) + + # save data to redis db + for key in data: + r.set(key, json.dumps(data[key])) + + # print(json.dumps(data['route:549-1'], indent=4)) + + +def download_file_backend(): + response = requests.get(os.environ.get('BACKEND')) + if response.status_code == 200: + content_disposition = response.headers['Content-Disposition'] + nombre_archivo = content_disposition.split('filename=')[1] + return { 'name': nombre_archivo, 'content': response.content } + return None + +sched = BlockingScheduler() +sched.add_job(rutina_principal, 'interval', seconds=int(os.environ.get('INTERVAL'))) #will do the print_t work for every 30 seconds + +if __name__ == '__main__': + sched.start()