diff options
Diffstat (limited to 'actions')
-rw-r--r-- | actions/_default.py | 15 | ||||
-rw-r--r-- | actions/date.py | 9 | ||||
-rw-r--r-- | actions/joke.py | 112 | ||||
-rw-r--r-- | actions/location.py | 22 | ||||
-rw-r--r-- | actions/time.py | 9 | ||||
-rw-r--r-- | actions/weather.py | 70 | ||||
-rw-r--r-- | actions/wolfram.py | 10 |
7 files changed, 247 insertions, 0 deletions
diff --git a/actions/_default.py b/actions/_default.py new file mode 100644 index 0000000..bf66d19 --- /dev/null +++ b/actions/_default.py @@ -0,0 +1,15 @@ +import random + + +# noinspection PyUnresolvedReferences +def _action__default(_input): + fallbacks = [ + "Désolé, je ne comprends pas", + "Je ne peux pas vous aider en ce moment", + "Je ne comprends pas", + "Excusez moi, mais je ne comprends pas", + "Je ne pense pas être en mesure de vous aider", + "Je ne parviens pas à vous aider en ce moment", + ] + + say(random.choice(fallbacks)) diff --git a/actions/date.py b/actions/date.py new file mode 100644 index 0000000..aa91f1c --- /dev/null +++ b/actions/date.py @@ -0,0 +1,9 @@ +from datetime import datetime + + +# noinspection PyUnresolvedReferences +def _action_date(_input): + now = datetime.now() + time = now.strftime("%A %e %B %Y") + say(f"Nous sommes le {time}") + return diff --git a/actions/joke.py b/actions/joke.py new file mode 100644 index 0000000..1d2a75e --- /dev/null +++ b/actions/joke.py @@ -0,0 +1,112 @@ +import random + + +# noinspection PyUnresolvedReferences +def _action_joke(_input): + jokes = [ + "Quelle mamie fait peur aux voleurs ? Mamie Traillette.", + "J'ai une blague sur les magasins. Mais elle a pas supermarché...", + "Pourquoi est-ce c'est difficile de conduire dans le Nord ? Parce que les voitures arrêtent pas de caler.", + "Deux lions discutent. T’as une belle crinière. Arrête, tu vas me faire rugir.", + "Pourquoi est-ce qu'on dit que les bretons sont tous frères et sœurs ? Parce qu’ils n’ont Quimper.", + "Pourquoi est-ce qu'on met tous les crocos en prison ? Parce que les crocos dealent.", + "Comment fait-on pour allumer un barbecue breton ? On utilise des breizh.", + "Pourquoi dit-on que les poissons travaillent illégalement ? Parce qu’ils n’ont pas de fish de paie.", + "Quel est le bar préféré des espagnols ? Le Bar-celone", + "Pourquoi est-ce que les mexicains mangent-ils aux toilettes ? Parce qu’ils aiment manger épicé.", + "Que faisaient les dinosaures quand ils n'arrivaient pas à se décider ? Des tirageosaures", + "Qu'est-ce qu'un tennisman adore faire ? Rendre des services", + "Pourquoi est-ce que les vêtements sont toujours fatigués quand ils sortent de la machine ? Parce qu’ils sont léssivés.", + "Pourquoi est-ce que les livres ont-ils toujours chaud ? Parce qu’ils ont une couverture", + "Où est-ce que les super héros vont-ils faire leurs courses ? Au supermarché", + "Que se passe-t-il quand 2 poissons s'énervent ? Le thon monte", + "Quel fruit est assez fort pour couper des arbres ? Le ci-tron", + "Quel est le jambon que tout le monde déteste ? Le sale ami", + "Que fait un cendrier devant un ascenseur ? Il veut des cendres", + "Que dit une imprimante dans l'eau ? J’ai papier", + "Un chameau dit à un dromadaire : Comment ça va ? Bien, je bosse, et toi ? Je bosse, je bosse.", + "Quel est l'aliment le plus hilarant ? Le riz", + "C’est une jolie petite antenne de TV qui est tombée amoureuse d’un paratonnerre... Elle lui dit : Dis, tu y crois toi, au coup de foudre ?", + "Quel est le sport préféré des insectes ? Le criquet", + "Deux souris voient passer une chauve-souris. Regarde, un ange !", + "Les girafes n'existent pas... C’est un cou monté", + "Pourquoi est ce que Hulk a un beau jardin ? Parce qu’il a la main verte", + "C'est deux fous qui marchent dans la rue. Le premier demande au second : je peux me mettre au milieu ?", + "Qu'est-ce qu'un mort qui coupe du fromage ? Un fend-tome", + "Comment est-ce que les abeilles communiquent entre elles ? Par e-miel", + "Quel est l'arbre préféré des chômeurs ? Le bouleau", + "Que dit-on d'une fleur qui a eu zéro à son contrôle ? Qu’elle s’est plantée", + "Comment appelle-t-on un jeudi vraiment nul ? Une trajeudi", + "Que fait un employé de chez Sephora à sa pause clope ? Il parfumer", + "Qu'est-ce qu'une frite enceinte ? Une patate sautée", + "Qu'est ce qu'une lampe moche ? Un LEDron", + "Deux canards discutent : Coin coin. C’est dingue, j’allais dire la même chose !", + "Est-ce qu'une poule peut parler anglais ? Yes chicken", + "Qui vit dans les tavernes ? Les hommes de bières", + "Quelle est la danse préférée des chats ? Le cha cha cha", + "Qu'est ce qu'une carotte dans une flaque d'eau ? Un bonhomme de neige en été", + "Pourquoi est-ce que les bières sont toujours stressées ? Parce qu’elles ont la pression", + "Quelle princesse a les lèvres gercées ? Labello bois dormant", + "Pourquoi est ce que les poissons n'ont plus de maison ? Parce qu’on les a des truites", + "Pourquoi est ce que le lapin est bleu ? Parce qu’on lapin", + "Pourquoi est ce que Potter est triste ? Parce que personne Harry à sa blague", + "Comment appelle-t-on un combat entre un petit pois et une carotte ? Un bon duel", + "Pourquoi est-ce que les éoliennes n'ont pas de copain ? Parce qu’elles se prennent toujours des vents", + "Où irait Voldemort s'il décidait de jouer de la trompette ? À Jazzkaban", + "D'où viennent les gens les plus dangereux ? D’Angers", + "Qu'est ce qu'un cadeau qui s'en va ? Une surprise party", + "Quelle est la fée que les enfants détestent ? La fée C", + "Qu'est-ce qui est blanc puni dans un coin ? Un vilain frigo", + "Quel poisson n'a pas de certificat de naissance ? Le poisson pané", + "Quel est le médecin qui nous fait tous craquer ? L’ostéo", + "Deux puces sortent du cinéma : L’une dit à l’autre : on rentre à pieds ou on prend un chien ?", + "Deux chiens se promènent. T’as vu ? Un réverbère tout neuf ! Ça s’arrose !", + "Quel est le super héros qui a tout le temps peur ? Le super-sticieux", + "Pourquoi est-ce que les chercheurs ont-ils des trous de mémoire ? Parce qu’ils se creusent la tête", + "Comment les musiciens choisissent-ils leur parquet ? Ils choisissent un parquet Fa Si La Si Ré", + "Quel est le musicien préféré des maladies ? Bach-terie", + "Quel est le réseau préféré des pêcheurs ? Truiteur", + "C'est l'histoire d'un poil. Avant il était bien, et maintenant il est pubien.", + "Que fait un geek quand il a peur ? Il url.", + "Quel est le carburant le plus détendu ? Le kérozen", + "Quel est le fast food préféré de Flash ? Quick", + "C’est 2 grains de sable qui arrivent à la plage : Putain c’est blindé aujourd’hui…", + "Qu'est-ce qui est vert et qui se déplace sous l'eau ? Un chou marin", + "Quel est le pays le plus cool du monde ? Le Yééémen", + "Que fait une vache quand elle ferme les yeux ? Du lait concentré", + "Quel est le super héros qui donne le plus vite l'heure ? Speed heure man", + "Pourquoi est-ce que les anges sont sourds ? Parce que Jésus Christ", + "Quel est le fruit préféré des profs d'histoire ? Les dates", + "Quelle est la déesse du wifi ? La déesse L", + "Qu'est-ce qui est pire que le vent ? Un vampire", + "Quelle est l'arme préféré des vegans ? Le lance roquette", + "Un homme entre dans un restaurant : Bonjour, est-ce que vous servez des nouilles ? Bien sûr, ici on sert tout le monde monsieur.", + "Quelle est la femme du hamster ? L’amsterdam", + "Dans quel pays ne bronze-t-on pas du nez ? Au Népal", + "Deux femmes discutent : Tu fumes après l’amour ? Je sais pas, j’ai jamais regardé.", + "Que fait une théière devant un ascenseur ? Elle veut mon thé", + "Pourquoi est-ce que Winnie l'Ourson veut absolument se marier ? Pour partir en lune de miel", + "Que dit une mère à son fils geek quand le dîner est servi ? Alt Tab !", + "Quelle est la meilleure heure pour écouter de la musique ? Deezer !", + "Que fait un geek quand il descend du métro ? Il libère la RAM", + "Quel est l'animal le plus connecté ? Le porc USB", + "Où vont les biscottes pour danser ? En biscothèque", + "Quel est le style musical préféré des médecins ? Le blouse", + "Comment appelle-t-on un chat qui va dans l'espace ? Un chatellite", + "Que fait un jardinier quand il ment ? Il raconte des salades", + "Où est-ce que l'homme invisible part en vacances ? Chez ses transparents", + "Pourquoi est-ce que Napoléon n'a pas voulu acheter de maison ? Parce qu’il avait déjà un Bonaparte", + "Que dit Frodon devant sa maison ? C’est là que j’hobbit", + "Quels sont les fruits qu'on trouve dans toutes les maisons ? Des coings et des mûres", + "Pourquoi un chasseur emmène-t-il son fusil aux toilettes ? Pour tirer la chasse", + "Quel est le crustacé le plus léger de la mer ? La palourde", + "Pourquoi est-ce que la Saint Valentin est davantage fêtée dans le Nord ? Parce que ça se fête en famille", + "Que dit un informaticien quand il s'ennuie ? Je me fichier", + "Avec quelle monnaie les marins payent-ils ? Avec des sous marins", + "Que dit un italien pour dire au revoir ? Pasta la vista", + "Où va Messi quand il se blesse ? À la pharmessi", + "Que demande un footballeur à son coiffeur ? La coupe du monde s’il vous plaît", + "Que dit un chihuahua japonais pour dire bonjour ? Konichihuahua", + ] + + say(random.choice(jokes)) diff --git a/actions/location.py b/actions/location.py new file mode 100644 index 0000000..4eee869 --- /dev/null +++ b/actions/location.py @@ -0,0 +1,22 @@ +import urllib +from urllib.request import urlopen, Request +import ssl +import json + + +# noinspection PyUnresolvedReferences +def _action_location(_input): + try: + ctx = ssl.create_default_context() + ctx.check_hostname = False + ctx.verify_mode = ssl.CERT_NONE + + ip = urlopen(Request("https://ip.me", headers={"User-Agent": "curl/0.0.0"}), context=ctx).read().decode("utf-8")\ + .strip() + location = json.loads(urlopen(Request("https://ipinfo.io/" + ip + "/json", headers={"User-Agent": "curl/0.0.0"}), + context=ctx).read().decode("utf-8").strip()) + say(f"Vous êtes à {location['city']}, {location['region']}") + except urllib.error.URLError: + say("Désolé, je ne parviens pas à accéder à Internet en ce moment. Vérifiez que votre appareil dispose d'une" + "connexion Internet stable et réessayez.") + return diff --git a/actions/time.py b/actions/time.py new file mode 100644 index 0000000..a894270 --- /dev/null +++ b/actions/time.py @@ -0,0 +1,9 @@ +from datetime import datetime + + +# noinspection PyUnresolvedReferences +def _action_time(_input): + now = datetime.now() + time = now.strftime("%Hh%M") + say(f"Il est {time}") + return diff --git a/actions/weather.py b/actions/weather.py new file mode 100644 index 0000000..c652d77 --- /dev/null +++ b/actions/weather.py @@ -0,0 +1,70 @@ +import urllib +from urllib.request import urlopen, Request +from urllib.parse import quote +import ssl +from datetime import datetime +import json + + +key = open("./weatherkey", "r").read().strip() +codes = json.loads(open("./weatherconditions.json", "r").read().strip()) + + +def temp(t): + return str(t).replace(".", ",").replace(",0", "") + + +def direction(t): + if t == "N": + return "du nord" + elif t == "S": + return "du sud" + elif t == "W": + return "de l'ouest" + elif t == "E": + return "de l'est" + elif t == "SE": + return "du sud-est" + elif t == "NE": + return "du nord-est" + elif t == "SW": + return "du sud-ouest" + elif t == "NW": + return "du nord-ouest" + + +def localizedcode(sel, day): + now = datetime.now() + time = int(now.strftime("%H")) + + for code in codes: + if code['code'] == sel: + if day == "1": + return code['languages'][8]['day_text'] + else: + return code['languages'][8]['night_text'] + + +# noinspection PyUnresolvedReferences +def _action_weather(_input): + try: + ctx = ssl.create_default_context() + ctx.check_hostname = False + ctx.verify_mode = ssl.CERT_NONE + + ip = urlopen(Request("https://ip.me", headers={"User-Agent": "curl/0.0.0"}), context=ctx).read().decode("utf-8")\ + .strip() + location = json.loads(urlopen(Request("https://ipinfo.io/" + ip + "/json", headers={"User-Agent": "curl/0.0.0"}), + context=ctx).read().decode("utf-8").strip()) + weather = json.loads(urlopen(Request(f"https://api.weatherapi.com/v1/current.json?key={key}&q=" + f"{quote(location['city'])}", headers={"User-Agent": "curl/0.0.0"}), + context=ctx).read().decode("utf-8").strip()) + say(f"Actuellement, à {weather['location']['name']}, il fait {temp(weather['current']['temp_c'])} degrés," + f"ressenti {temp(weather['current']['feelslike_c'])} degrés, avec un temps" + f"{localizedcode(weather['current']['condition']['code'], weather['current']['is_day'])}. Le vent souffle à" + f"{temp(weather['current']['wind_kph'])} kilomètre heure, en direction" + f"{direction(weather['current']['wind_dir'])}") + except urllib.error.URLError: + say("Désolé, je ne parviens pas à accéder à Internet en ce moment. Vérifiez que votre appareil dispose d'une" + "connexion Internet stable et réessayez.") + return diff --git a/actions/wolfram.py b/actions/wolfram.py new file mode 100644 index 0000000..97e9c70 --- /dev/null +++ b/actions/wolfram.py @@ -0,0 +1,10 @@ +import os +import base64 + + +# noinspection PyUnresolvedReferences +def _action_wolfram(_input): + result = subprocess.run('node wolfram.js \"' + base64.b64encode(_input.encode("utf-8")).decode('utf-8') + '\"', + shell=True, check=True, capture_output=True).stdout.decode('utf-8').strip() + say(result) + return |