104 lines
4.1 KiB
Python
104 lines
4.1 KiB
Python
from config import *
|
|
from contextlib import closing
|
|
from urllib.request import urlopen
|
|
import json
|
|
|
|
|
|
def getSearch(query):
|
|
if METEOCONCEPT_TOKEN is None and WEATHERSTACK_TOKEN is None:
|
|
log('Env variable METEOCONCEPT_TOKEN and WEATHERSTACK_TOKEN not passed')
|
|
return 'Env variable METEOCONCEPT_TOKEN and WEATHERSTACK_TOKEN not passed'
|
|
elif query is None:
|
|
log('GET/POST search variable not passed')
|
|
return 'GET/POST search variable not passed'
|
|
else:
|
|
log('Env variable METEOCONCEPT_TOKEN or/and WEATHERSTACK_TOKEN passed')
|
|
with closing(urlopen(
|
|
API_LOCATION_CITIES_METEOCONCEPT +
|
|
API_TOKEN_METEOCONCEPT +
|
|
METEOCONCEPT_TOKEN +
|
|
API_SEARCH_METEOCONCEPT + query)) as f:
|
|
cities_METEOCONCEPT = json.loads(f.read())['cities']
|
|
|
|
with closing(urlopen(
|
|
API_LOCATION_CITIES_WEATHERSTACK +
|
|
API_TOKEN_WEATHERSTACK +
|
|
WEATHERSTACK_TOKEN +
|
|
API_SEARCH_WEATHERSTACK + query)) as f:
|
|
cities_WEATHERSTACK = json.loads(f.read())
|
|
return {"query": query,
|
|
"cities": {
|
|
"METEOCONCEPT": cities_METEOCONCEPT,
|
|
"WEATHERSTACK": cities_WEATHERSTACK
|
|
}
|
|
}
|
|
|
|
|
|
def getCurrent(query):
|
|
if METEOCONCEPT_TOKEN is None and WEATHERSTACK_TOKEN is None:
|
|
log('Env variable METEOCONCEPT_TOKEN and WEATHERSTACK_TOKEN not passed')
|
|
return 'Env variable METEOCONCEPT_TOKEN and WEATHERSTACK_TOKEN not passed'
|
|
elif query is None:
|
|
log('GET/POST query variable not passed')
|
|
return 'GET/POST query variable not passed'
|
|
else:
|
|
log('Env variable METEOCONCEPT_TOKEN or/and WEATHERSTACK_TOKEN passed')
|
|
try:
|
|
query = int(query)
|
|
with closing(urlopen(
|
|
API_OBSERVATIONS_AROUND_METEOCONCEPT +
|
|
API_TOKEN_METEOCONCEPT +
|
|
METEOCONCEPT_TOKEN +
|
|
API_INSEE_METEOCONCEPT +
|
|
str(query) +
|
|
API_RADIUS_METEOCONCEPT +
|
|
'0')) as f:
|
|
around_METEOCONCEPT = json.loads(f.read())
|
|
return {"query": query, "around": {
|
|
"METEOCONCEPT": around_METEOCONCEPT,
|
|
"WEATHERSTACK": None
|
|
}
|
|
}
|
|
except:
|
|
with closing(urlopen(
|
|
API_OBSERVATIONS_AROUND_WEATHERSTACK +
|
|
API_TOKEN_WEATHERSTACK +
|
|
WEATHERSTACK_TOKEN +
|
|
API_SEARCH_WEATHERSTACK +
|
|
query + ",France")) as f:
|
|
around_WEATHERSTACK = json.loads(f.read())
|
|
return {"query": query, "around": {
|
|
"METEOCONCEPT": None,
|
|
"WEATHERSTACK": around_WEATHERSTACK
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# def getEphemeride(insee):
|
|
# if METEOCONCEPT_TOKEN is None:
|
|
# log('Env variable METEOCONCEPT_TOKEN not passed')
|
|
# return 'Env variable METEOCONCEPT_TOKEN not passed'
|
|
# elif insee is None:
|
|
# log('GET/POST insee variable not passed')
|
|
# return 'GET/POST insee variable not passed'
|
|
# else:
|
|
# log('Env variable METEOCONCEPT_TOKEN passed')
|
|
# with closing(urlopen(API_EPHEMERIDE + API_TOKEN + METEOCONCEPT_TOKEN + API_INSEE + insee)) as f:
|
|
# cityEph = json.loads(f.read())
|
|
# return [insee, cityEph]
|
|
#
|
|
#
|
|
# def getCity(insee):
|
|
# if METEOCONCEPT_TOKEN is None and WEATHERSTACK_TOKEN is None:
|
|
# log('Env variable METEOCONCEPT_TOKEN and WEATHERSTACK_TOKEN not passed')
|
|
# return 'Env variable METEOCONCEPT_TOKEN and WEATHERSTACK_TOKEN not passed'
|
|
# elif search is None:
|
|
# log('GET/POST search variable not passed')
|
|
# return 'GET/POST search variable not passed'
|
|
# else:
|
|
# log('Env variable METEOCONCEPT_TOKEN or/and WEATHERSTACK_TOKEN passed')
|
|
#
|
|
# with closing(urlopen(API_LOCATION_CITY + API_TOKEN + METEOCONCEPT_TOKEN + API_INSEE + insee)) as f:
|
|
# city = json.loads(f.read())['city']
|
|
# return [insee, city]
|