This commit is contained in:
Yûki VACHOT 2021-10-18 08:21:36 +02:00
parent 2c398d0a21
commit 65e9c80647
3 changed files with 158 additions and 4 deletions

39
app.py
View file

@ -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)

121
config.py Normal file
View file

@ -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",
}

View file

@ -1 +1 @@
Flask==2.0.2
Flask==2.0.2