Skip to content
Extraits de code Groupes Projets
Valider 93fd2d48 rédigé par Loïc Wikle DUBARD's avatar Loïc Wikle DUBARD
Parcourir les fichiers

meteo forecast function

parent 20b34f7e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -17,7 +17,7 @@
- jouer du pipo
- envoie balader les gens qui lui font des compliments d'amour
**Bug fixes:
**Bug fixes:**
- quand la voix est activée, ne répondre je n'ai pas compris que si la ou la requete précédente comprends le nom de l'ia
---
......
......@@ -100,60 +100,6 @@ def parle(texte, save=True, lang='fr-CA'):
pygame.mixer.music.set_endevent()
def meteo_de(villes="petite-ile", pay="RE"):
global compris, ville, pays, lattitude, longitude, température,\
température_minimum, température_max, humidité, pression,\
vitesse_du_vent, direction_du_vent, pourcentage_de_nuages, \
description, volume_pluie_des_3_dernière_heures, \
volume_neige_des_3_dernière_heures
api = "c23d0a0ffe081307fb6fbba06125aef3"
adresseid = "http://api.openweathermap.org/data/2.5/weather?q="
requette = requests.get("{}{},{}&appid={}".format(adresseid, "%20".join(villes.split(" ")), pay, api)).json()
try:
vitesse_du_vent = str(requette["wind"]["speed"]) + " mètres par secondes"
température = str(int(requette["main"]["temp"]) - 273) + "°"
température_max = "%d °Celsius" % (int(requette["main"]["temp_max"]) - 273)
humidité = str(requette["main"]["humidity"]) + "%"
température_minimum = "%d °Celsius" % (int(requette["main"]["temp_min"] - 273))
direction_du_vent = str(requette["wind"]["deg"]) + "°"
longitude = str(requette["coord"]["lon"])
lattitude = str(requette["coord"]["lat"])
pression = str(requette["main"]["pressure"]) + "hPa"
pays = str(requette["sys"]["country"])
ville = str(requette["name"])
pourcentage_de_nuages = str(requette["clouds"]["all"]) + "%"
description = str(requette["weather"][0]["description"])
except:
parle(random.choice(truc_cassé))
return None
try:
volume_pluie_des_3_dernière_heures = str(requette["rain"]["3h"])
a1 = True
except:
a1 = False
try:
volume_neige_des_3_dernière_heures = str(requette["snow"]["3h"])
a2 = True
except:
a2 = False
liste = [pays,
ville,
# lattitude, longitude,
température,
# température_minimum, température_max,
humidité, pression, vitesse_du_vent,
# direction_du_vent,
pourcentage_de_nuages, description]
parle(", ".join([printv(i) for i in liste]), False)
if a1:
parle(printv(volume_pluie_des_3_dernière_heures), False)
if a2:
parle(printv(volume_neige_des_3_dernière_heures), False)
def deverouillage(entre):
global jarvis, compris
if jarvis or (mdp in entre and ("pass" in entre or "deverouillage" in entre)):
......@@ -279,9 +225,9 @@ def meteo(entre):
villes = entre1[0]
villes = villes + entre1[1] if len(entre1) == 3 else villes
pay = entre1[1] if len(entre1) == 2 else entre1[2]
meteo_de(villes, pay.upper()[:2])
parle(usefull.meteo_de(villes, pay.upper()[:2], all_data=False))
elif "meteo" in entre:
meteo_de()
parle(usefull.meteo_de(all_data=False))
def dire_un_truc_en_mode_random(verbosity):
......
......@@ -17,6 +17,7 @@ Mon Jarvis pour windows et linux (peut-être un truc sur android aussi :°°)
## ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred
Dans /etc/pulse/daemon.conf décommenter et modifier ces lignes :
> * `default-fragments = 5`
> * `default-fragment-size-msec = 2`
......
Aucun aperçu pour ce type de fichier
Fichier ajouté
Fichier ajouté
......@@ -26,4 +26,8 @@ Bonjour !
|Je vais très bien et vous ?
|J'avoue que je me suis déjà senti en meilleur forme. et vous ?
|je vais chercher : paris paris
|pays : RE, ville : Petite-Ile, lattitude : -21.35, longitude : 55.57, température : 22°, température minimum : 17 °Celsius, température max : 25 °Celsius, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 mètres par secondes, direction du vent : 130°, pourcentage de nuages : 0%, description : clear sky
|pays : RE, ville : Petite-Ile, lattitude : -21.35, longitude : 55.57, température : 22°, température minimum : 17 °Celsius, température max : 25 °Celsius, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 mètres par secondes, direction du vent : 130°, pourcentage de nuages : 0%, description : clear sky.
|pays : RE, ville : Petite-Ile, lattitude : -21.35, longitude : 55.57, température : 22°, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 m/s, pourcentage de nuages : 0%, description : clear sky.
|pays : RE, ville : Petite-Ile, température : 22°, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 m/s, pourcentage de nuages : 0%, description : clear sky.
|
\ No newline at end of file
......@@ -57,7 +57,7 @@ url = "https://translate.google.com/translate_tts"
topics = []
r = sr.Recognizer()
r.dynamic_energy_threshold = True
r.pause_threshold = 0.3
r.pause_threshold = 0.5
mic = sr.Microphone()
jarvis = True # défini si jarvis commence vérouillé ou pas
mdp = "oracle02" # défini le mdp de déverouillage de jarvis
......
Fichier ajouté
# __init__.py
from .wiki import *
from .meteo import *
\ No newline at end of file
Aucun aperçu pour ce type de fichier
Fichier ajouté
#!/usr/bin/python3
# donne la meteo
import requests
def var_name(var):
"""return the name of the variable var"""
for name, value in globals().items():
if value is var and name != "i":
return name
return '?????'
def printv(var):
'''
return the name of the variable var associated with the value of the var itself
exemple:
toto_is_toto = 'tata';printv(toto) returns the string : 'toto is toto : tata'
'''
return str(var_name(var).replace("_", " ") + ' : ' + var)
def meteo_de(villes="petite-ile", pay="RE", all_data=True):
global compris, ville, pays, lattitude, longitude, température,\
température_minimum, température_max, humidité, pression,\
vitesse_du_vent, direction_du_vent, nuages, \
description, volume_pluie_des_3_dernière_heures, \
volume_neige_des_3_dernière_heures
pay = pay.upper()[:2]
api = "c23d0a0ffe081307fb6fbba06125aef3"
adresseid = "http://api.openweathermap.org/data/2.5/weather?q="
requette = requests.get("{}{},{}&appid={}".format(adresseid, "%20".join(villes.split(" ")), pay, api)).json()
try:
vitesse_du_vent = str(requette["wind"]["speed"]) + " m/s"
température = str(int(requette["main"]["temp"]) - 273) + "°"
température_max = "%d °C" % (int(requette["main"]["temp_max"]) - 273)
humidité = str(requette["main"]["humidity"]) + "%"
température_minimum = "%d °C" % (int(requette["main"]["temp_min"] - 273))
direction_du_vent = str(requette["wind"]["deg"]) + "°"
longitude = str(requette["coord"]["lon"])
lattitude = str(requette["coord"]["lat"])
pression = str(requette["main"]["pressure"]) + "hPa"
pays = str(requette["sys"]["country"])
ville = str(requette["name"])
nuages = str(requette["clouds"]["all"]) + "%"
description = str(requette["weather"][0]["description"])
except Exception as e:
return e
try:
volume_pluie_des_3_dernière_heures = str(requette["rain"]["3h"])
a1 = True
except:
a1 = False
try:
volume_neige_des_3_dernière_heures = str(requette["snow"]["3h"])
a2 = True
except:
a2 = False
if all_data:
liste = [pays,
ville,
lattitude, longitude,
température,
température_minimum, température_max,
humidité, pression, vitesse_du_vent,
direction_du_vent,
nuages, description]
else:
liste = [pays,
ville,
# lattitude, longitude,
température,
# température_minimum, température_max,
humidité, pression, vitesse_du_vent,
# direction_du_vent,
nuages, description]
result = ", ".join([printv(i) for i in liste])
if a1:
result += printv(volume_pluie_des_3_dernière_heures)
if a2:
result += printv(volume_neige_des_3_dernière_heures)
return result + '.'
def forecast(villes="petite-ile", pay="RE", all_data=True, dans_n_heures=None):
global compris, ville, pays, lattitude, longitude, température,\
temp_min, temp_max, humidité, pression,\
vent, direction, nuages, \
description, volume_pluie_des_3_dernière_heures, \
volume_neige_des_3_dernière_heures, date
pay = pay.upper()[:2]
api = "c23d0a0ffe081307fb6fbba06125aef3"
adresseid = "http://api.openweathermap.org/data/2.5/forecast?q="
requette = requests.get("{}{},{}&appid={}".format(adresseid, "%20".join(villes.split(" ")), pay, api)).json()
result = ''
result_dans_n_heure = ''
try:
pays = str(requette["city"]["country"])
ville = str(requette['city']["name"])
longitude = str(requette['city']["coord"]["lon"])
lattitude = str(requette['city']["coord"]["lat"])
except Exception as e:
return e
for i in range(len(requette['list'])):
try:
vent = str(requette['list'][i]["wind"]["speed"]) + " m/s"
température = str(int(requette['list'][i]['main']["temp"]) - 273) + "°"
temp_max = "%d °C" % (int(requette['list'][i]["main"]["temp_max"]) - 273)
humidité = str(requette['list'][i]["main"]["humidity"]) + "%"
temp_min = "%d °C" % (int(requette['list'][i]["main"]["temp_min"] - 273))
direction = str(requette['list'][i]["wind"]["deg"]) + "°"
pression = str(requette['list'][i]["main"]["pressure"]) + "hPa"
nuages = str(requette['list'][i]["clouds"]["all"]) + "%"
description = str(requette['list'][i]["weather"][0]["description"])
date = str(requette['list'][i]["dt_txt"])
except Exception as e:
return e
try:
volume_pluie_des_3_dernière_heures = str(requette['list'][i]["rain"]["3h"])
a1 = True
except:
a1 = False
try:
volume_neige_des_3_dernière_heures = str(requette['list'][i]["snow"]["3h"])
a2 = True
except:
a2 = False
if all_data:
liste = [date, température,
temp_min, temp_max,
humidité, pression, vent,
direction,
nuages, description]
else:
liste = [date, température,
# temp_min, temp_max,
humidité, pression, vent,
# direction,
nuages, description]
result += ", ".join([printv(i) for i in liste])
if dans_n_heures // 3 == i:
result_dans_n_heure = ", ".join([printv(i) for i in liste])
if a1:
result += printv(volume_pluie_des_3_dernière_heures)
if dans_n_heures // 3 == i:
result_dans_n_heure += printv(volume_pluie_des_3_dernière_heures)
if a2:
result += printv(volume_neige_des_3_dernière_heures)
if dans_n_heures // 3 == i:
result_dans_n_heure += printv(volume_neige_des_3_dernière_heures)
result += '\n\n'
if dans_n_heures != None:
return result_dans_n_heure
return result
if __name__ == '__main__':
import sys
if len(sys.argv) == 3:
print(meteo_de(sys.argv[1], sys.argv[2]))
else:
print(meteo_de())
print(forecast(dans_n_heures=24))
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter