aboutsummaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
Diffstat (limited to 'actions')
-rw-r--r--actions/_default.py15
-rw-r--r--actions/date.py9
-rw-r--r--actions/joke.py112
-rw-r--r--actions/location.py22
-rw-r--r--actions/time.py9
-rw-r--r--actions/weather.py70
-rw-r--r--actions/wolfram.py10
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