diff --git a/CHANGELOG.md b/CHANGELOG.md index 172188b36efa7c479ff314043832a43e1f36e6f3..c717ce1ade288069b51ddb9909d79e4258c9f118 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG: +## 17 aout 2019 +**Ajouts:** +- meteo : on peut demander des prévisions dans n heures + +--- + ## 16 aout 2019 **Ajout:** - nouveau système de TTS plus rapide par une simple requete http vers google translate diff --git a/Jarvis.py b/Jarvis.py index d7474e6b77cb0be644a3de0da251175edc7361a9..cac044d85d9226002187b4e30a6a1565fe1851c9 100755 --- a/Jarvis.py +++ b/Jarvis.py @@ -22,23 +22,6 @@ def tts_custom(text, file, lang='fr-CA'): # plus rapide que gtts mais meme resu f.write(r.content) -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 get_speech(message="entrée"): if voix: print('[-] %s (voix) : ' % message) @@ -49,12 +32,14 @@ def get_speech(message="entrée"): r.adjust_for_ambient_noise(source, duration=2) audio = r.listen(source, timeout=1) print('[speech_detected]') + os.system('mpg321 sounds/compris.mp3 2>/dev/null') entre = r.recognize_google(audio, language="fr") understand = True print(entre) os.system('mpg321 sounds/compris.mp3 2>/dev/null') except: print("[!] impossible de comprendre votre charabia [!]") + os.system('mpg321 sounds/pascompris.mp3 2>/dev/null') entre = '' else: entre = input('[-] %s (clavier) :' % message) @@ -215,19 +200,31 @@ def location(entre): def meteo(entre): '''donne la meteo de l'endroit demandé''' + dans_n_heures = None + try: + if all(word in entre for word in [' dans ', ' heure']): + dans_n_heures = int(entre.split(' dans ')[-1].split(' heure')[0]) + elif all(word in entre for word in [' dans ', 'h']): + dans_n_heures = int(entre.split(' dans ')[-1].split('h')[0]) + except: + pass if "meteo de" in entre: - entre1 = entre.replace("meteo de ", "") - if "donne moi la" in entre: - entre1 = entre.replace("donne moi la ", "") - if "donne la" in entre: - entre1 = entre.replace("donne la ", "") + entre1 = entre.split('meteo de ')[-1].split(' dans')[0] entre1 = entre1.split(" ") villes = entre1[0] villes = villes + entre1[1] if len(entre1) == 3 else villes - pay = entre1[1] if len(entre1) == 2 else entre1[2] - parle(usefull.meteo_de(villes, pay.upper()[:2], all_data=False)) + pays = entre1[-1] if len(entre1) > 1 else '' + parle('je vais donner la météo {} de {} {}.'.format('dans %dh' % dans_n_heures if dans_n_heures is not None else 'actuelle', villes, pays), False) + try: + parle(usefull.meteo_de(villes, pays.upper()[:2], all_data=False, dans_n_heures=dans_n_heures), False) + except Exception as e: + parle(random.choice(truc_cassé) + str(e) + 'Vous avez donné le bon pays ?') elif "meteo" in entre: - parle(usefull.meteo_de(all_data=False)) + parle('je vais donner la météo {} de {} {}.'.format('dans %dh' % dans_n_heures if dans_n_heures is not None else 'actuelle', ville_actuelle, pays_actuel), False) + try: + parle(usefull.meteo_de(ville_actuelle, pays_actuel.upper()[:2], all_data=False, dans_n_heures=dans_n_heures), False) + except Exception as e: + parle(random.choice(truc_cassé) + str(e)) def dire_un_truc_en_mode_random(verbosity): @@ -261,7 +258,6 @@ def tests(entre): # meteo if "meteo" in entre: - parle('Une petite minute.') meteo(entre) # verrouillage jarvis @@ -283,7 +279,7 @@ def tests(entre): # répond à merci si on lui a demandé quelquechose avant if ("merci" in entre or "Merci" in entre) and comprispreced == 1 and ("et vous" not in entre and "et toi" not in entre): merci = 1 - parle(random.choice(("A votre service.", "De rien", "Il n'y a pas de quoi !", 't\'inquiètes, je suis payé pour ça'))) + parle(random.choice(("A votre service.", "De rien", "Il n'y a pas de quoi !", 't\'inquiètes, je suis paysé pour ça'))) # fait une recherche sur wikipédia if "cherche" in entre and "sur wiki" in entre: diff --git a/__pycache__/myimports.cpython-37.pyc b/__pycache__/myimports.cpython-37.pyc index 543d09bb9213e4a6cb518d49c1be418705aa97c1..b50a74624a63b76c5cbae7017616d1340c78054d 100644 Binary files a/__pycache__/myimports.cpython-37.pyc and b/__pycache__/myimports.cpython-37.pyc differ diff --git a/database.txt b/database.txt index e084b91d805f041f176a7a8fbd59d49291e2b148..08206109b24072c158644505a4f58b5c8e95abab 100644 --- a/database.txt +++ b/database.txt @@ -30,4 +30,15 @@ Bonjour ! |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. +|je vais donner la météo de meteode saint-leu +|Houston, on a un problème ! +|je vais donner la météo de saint-leu . +|Houston, on a un problème !Vous avez donné le bon pays ? +|je vais donner la météo de saint-leu reunion. +|je vais donner la météo de saint-leu heures. +|Ousp j'ai glissé chef !Vous avez donné le bon pays ? +|je vais donner la météo 24 de saint-leu reunion. +|je vais donner la météo actuelle de saint-leu reunion. +|Ousp j'ai glissé chef !name 'pays' is not defined +|Houston, on a un problème !'int' object is not callable | \ No newline at end of file diff --git a/myimports.py b/myimports.py index 78781802eaa1a82f5fec77ac25b069db4c734849..3f700f622ab4279ac9cb5de7f0b9623d4b7a5e53 100644 --- a/myimports.py +++ b/myimports.py @@ -55,6 +55,8 @@ pygame.mixer.init(frequency=24000) # engine.setProperty('voice', voice.id) url = "https://translate.google.com/translate_tts" topics = [] +ville_actuelle = 'petite-ile' +pays_actuel = 'reunion' r = sr.Recognizer() r.dynamic_energy_threshold = True r.pause_threshold = 0.5 diff --git a/saved_voice/32.mp3 b/saved_voice/32.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f554bc96c4e9d687df9c50ae50ff0b2c1b6557c3 Binary files /dev/null and b/saved_voice/32.mp3 differ diff --git a/saved_voice/33.mp3 b/saved_voice/33.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0d276732957d39c79e368400d13a44e24a6d6dec Binary files /dev/null and b/saved_voice/33.mp3 differ diff --git a/saved_voice/34.mp3 b/saved_voice/34.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2ba59679b689a386505fa5ca4a43a13ec33de6b2 Binary files /dev/null and b/saved_voice/34.mp3 differ diff --git a/saved_voice/35.mp3 b/saved_voice/35.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..df65a346ae04f6f80562abfe1b1f8f07acb74133 Binary files /dev/null and b/saved_voice/35.mp3 differ diff --git a/saved_voice/36.mp3 b/saved_voice/36.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c4a163674cf83e1363293b605010e16ba87a4635 Binary files /dev/null and b/saved_voice/36.mp3 differ diff --git a/saved_voice/37.mp3 b/saved_voice/37.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..923dbf61f1ce1519aed279cd3f72aeaa56a6d752 Binary files /dev/null and b/saved_voice/37.mp3 differ diff --git a/saved_voice/38.mp3 b/saved_voice/38.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3a277018d2bad027af4411770e93b46776b813cc Binary files /dev/null and b/saved_voice/38.mp3 differ diff --git a/saved_voice/39.mp3 b/saved_voice/39.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1ac0394658b50fcd1d0f98ec05f3f910e774dd62 Binary files /dev/null and b/saved_voice/39.mp3 differ diff --git a/saved_voice/40.mp3 b/saved_voice/40.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c7b549963734525ec28acacc64377ef85bc1fd75 Binary files /dev/null and b/saved_voice/40.mp3 differ diff --git a/saved_voice/41.mp3 b/saved_voice/41.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..51e6cefa3b7314fa3af735ef5eca8670ea1acbc3 Binary files /dev/null and b/saved_voice/41.mp3 differ diff --git a/saved_voice/42.mp3 b/saved_voice/42.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d39408549373ab9cd81bcd2fdc0bdb8b4460587d Binary files /dev/null and b/saved_voice/42.mp3 differ diff --git a/saved_voice/43.mp3 b/saved_voice/43.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c5a3f59bd7eca06aed39c85f064b172b7b31f0a0 Binary files /dev/null and b/saved_voice/43.mp3 differ diff --git a/usefull/__pycache__/meteo.cpython-37.pyc b/usefull/__pycache__/meteo.cpython-37.pyc index 8f2ca460dd58c22c31b22d47a98cdab530b15c25..7a995488e503f212f0b51928b09cdd1f4328d0f2 100644 Binary files a/usefull/__pycache__/meteo.cpython-37.pyc and b/usefull/__pycache__/meteo.cpython-37.pyc differ diff --git a/usefull/meteo.py b/usefull/meteo.py index fb95561980b85bcfb9438e5512f5d8cd9cba9b6b..fbe9808de108c492b6fcf520c8fa56f5782075b8 100755 --- a/usefull/meteo.py +++ b/usefull/meteo.py @@ -20,12 +20,14 @@ def printv(var): return str(var_name(var).replace("_", " ") + ' : ' + var) -def meteo_de(villes="petite-ile", pay="RE", all_data=True): +def meteo_de(villes="petite-ile", pay="RE", all_data=True, dans_n_heures=None): 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 + if dans_n_heures is not None: + return forecast(villes, pay, all_data, dans_n_heures=dans_n_heures) pay = pay.upper()[:2] api = "c23d0a0ffe081307fb6fbba06125aef3" @@ -80,9 +82,9 @@ def meteo_de(villes="petite-ile", pay="RE", all_data=True): result = ", ".join([printv(i) for i in liste]) if a1: - result += printv(volume_pluie_des_3_dernière_heures) + result += ' ' + printv(volume_pluie_des_3_dernière_heures) if a2: - result += printv(volume_neige_des_3_dernière_heures) + result += ' ' + printv(volume_neige_des_3_dernière_heures) return result + '.' @@ -150,15 +152,15 @@ def forecast(villes="petite-ile", pay="RE", all_data=True, dans_n_heures=None): 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) + 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) + result_dans_n_heure += ' ' + printv(volume_pluie_des_3_dernière_heures) if a2: - result += printv(volume_neige_des_3_dernière_heures) + 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_dans_n_heure += ' ' + printv(volume_neige_des_3_dernière_heures) result += '\n\n' - if dans_n_heures != None: + if dans_n_heures is not None: return result_dans_n_heure return result