From 65e9c80647672d92ee85269689dd564badc88dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Y=C3=BBki=20Vachot?= Date: Mon, 18 Oct 2021 08:21:36 +0200 Subject: [PATCH] Update --- app.py | 39 +++++++++++++-- config.py | 121 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 2 +- 3 files changed, 158 insertions(+), 4 deletions(-) create mode 100644 config.py diff --git a/app.py b/app.py index b811521..6a5994e 100644 --- a/app.py +++ b/app.py @@ -1,13 +1,46 @@ import os -from flask import Flask +import sys + +from flask import Flask, request +from contextlib import closing +from urllib.request import urlopen +import json +from config import * + app = Flask(__name__) +@app.route('/config') +def config(): # put application's code here + return str(cf.INDENT)+str(cf.WEATHER)+str(cf.WINDDIRS) @app.route('/') def hello_world(): # put application's code here return 'Hello World!' +#TODO Recherche d'une ville +@app.route('/searchCity', methods = ['POST', 'GET']) +def searchCity(): # put application's code here + if request.method == 'POST': + city = request.form['search'] + else: + city = request.args.get('search') + with closing(urlopen(API_LOCATION_CITIES + API_TOKEN + METEOCONCEPT_TOKEN + API_SEARCH + city)) as f: + cities = json.loads(f.read())['cities'] + return json.dumps(cities, indent=INDENT, sort_keys=True) + + +#TODO Informations sur la Ville + +#TODO Information sur la ville et Ephéméride if __name__ == '__main__': - port = int(os.environ.get('PORT', 33507)) - app.run(host='0.0.0.0', port=port, debug=True) + PORT = int(os.environ.get('PORT', 33507)) + # On Linux or MAC 'export METEOCONCEPT_TOKEN=...' (check shell echo $METEOCONCEPT_TOKEN) + # On Windows 'set METEOCONCEPT_TOKEN=...' (check on Powershell echo $Env:METEOCONCEPT_TOKEN) + METEOCONCEPT_TOKEN = int(os.environ.get('METEOCONCEPT_TOKEN', -1)) + if METEOCONCEPT_TOKEN == -1: + print('Env variable METEOCONCEPT_TOKEN not passed') + sys.exit(0) + else: + print('Env variable METEOCONCEPT_TOKEN passed') + app.run(host='0.0.0.0', port=PORT, debug=True) \ No newline at end of file diff --git a/config.py b/config.py new file mode 100644 index 0000000..d953ff3 --- /dev/null +++ b/config.py @@ -0,0 +1,121 @@ +# JSON DUMPS +INDENT = 4 + +# API URL +API_TOKEN = '?token=' +API_SEARCH = '&search=' + +API_LOCATION_CITIES = 'https://api.meteo-concept.com/api/location/cities' +API_LOCATION_CITY = 'https://api.meteo-concept.com/api/location/city' +API_EPHEMERIDE = 'https://api.meteo-concept.com/api/ephemeride/1' + +# STATIC VARIABLES +WINDDIRS = [ + 'Nord', + 'Nord-Nord-Est', + 'Nord-Est', + 'Est-Nord-Est', + 'Est', + 'Est-Sud-Est', + 'Sud-Est', + 'Sud-Sud-Est', + 'Sud', + 'Sud-Sud-Ouest', + 'Sud-Ouest', + 'Ouest-Sud-Ouest', + 'Ouest', + 'Ouest-Nord-Ouest', + 'Nord-Ouest', + 'Nord-Nord-Ouest', + 'Nord' +] +WEATHER = { + 0: "Soleil", + 1: "Peu nuageux", + 2: "Ciel voilé", + 3: "Nuageux", + 4: "Très nuageux", + 5: "Couvert", + 6: "Brouillard", + 7: "Brouillard givrant", + 10: "Pluie faible", + 11: "Pluie modérée", + 12: "Pluie forte", + 13: "Pluie faible verglaçante", + 14: "Pluie modérée verglaçante", + 15: "Pluie forte verglaçante", + 16: "Bruine", + 20: "Neige faible", + 21: "Neige modérée", + 22: "Neige forte", + 30: "Pluie et neige mêlées faibles", + 31: "Pluie et neige mêlées modérées", + 32: "Pluie et neige mêlées fortes", + 40: "Averses de pluie locales et faibles", + 41: "Averses de pluie locales", + 42: "Averses locales et fortes", + 43: "Averses de pluie faibles", + 44: "Averses de pluie", + 45: "Averses de pluie fortes", + 46: "Averses de pluie faibles et fréquentes", + 47: "Averses de pluie fréquentes", + 48: "Averses de pluie fortes et fréquentes", + 60: "Averses de neige localisées et faibles", + 61: "Averses de neige localisées", + 62: "Averses de neige localisées et fortes", + 63: "Averses de neige faibles", + 64: "Averses de neige", + 65: "Averses de neige fortes", + 66: "Averses de neige faibles et fréquentes", + 67: "Averses de neige fréquentes", + 68: "Averses de neige fortes et fréquentes", + 70: "Averses de pluie et neige mêlées localisées et faibles", + 71: "Averses de pluie et neige mêlées localisées", + 72: "Averses de pluie et neige mêlées localisées et fortes", + 73: "Averses de pluie et neige mêlées faibles", + 74: "Averses de pluie et neige mêlées", + 75: "Averses de pluie et neige mêlées fortes", + 76: "Averses de pluie et neige mêlées faibles et nombreuses", + 77: "Averses de pluie et neige mêlées fréquentes", + 78: "Averses de pluie et neige mêlées fortes et fréquentes", + 100: "Orages faibles et locaux", + 101: "Orages locaux", + 102: "Orages fort et locaux", + 103: "Orages faibles", + 104: "Orages", + 105: "Orages forts", + 106: "Orages faibles et fréquents", + 107: "Orages fréquents", + 108: "Orages forts et fréquents", + 120: "Orages faibles et locaux de neige ou grésil", + 121: "Orages locaux de neige ou grésil", + 122: "Orages locaux de neige ou grésil", + 123: "Orages faibles de neige ou grésil", + 124: "Orages de neige ou grésil", + 125: "Orages de neige ou grésil", + 126: "Orages faibles et fréquents de neige ou grésil", + 127: "Orages fréquents de neige ou grésil", + 128: "Orages fréquents de neige ou grésil", + 130: "Orages faibles et locaux de pluie et neige mêlées ou grésil", + 131: "Orages locaux de pluie et neige mêlées ou grésil", + 132: "Orages fort et locaux de pluie et neige mêlées ou grésil", + 133: "Orages faibles de pluie et neige mêlées ou grésil", + 134: "Orages de pluie et neige mêlées ou grésil", + 135: "Orages forts de pluie et neige mêlées ou grésil", + 136: "Orages faibles et fréquents de pluie et neige mêlées ou grésil", + 137: "Orages fréquents de pluie et neige mêlées ou grésil", + 138: "Orages forts et fréquents de pluie et neige mêlées ou grésil", + 140: "Pluies orageuses", + 141: "Pluie et neige mêlées à caractère orageux", + 142: "Neige à caractère orageux", + 210: "Pluie faible intermittente", + 211: "Pluie modérée intermittente", + 212: "Pluie forte intermittente", + 220: "Neige faible intermittente", + 221: "Neige modérée intermittente", + 222: "Neige forte intermittente", + 230: "Pluie et neige mêlées", + 231: "Pluie et neige mêlées", + 232: "Pluie et neige mêlées", + 235: "Averses de grêle", +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index e433f90..2db5aea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -Flask==2.0.2 +Flask==2.0.2 \ No newline at end of file