From 33f3710d76d84077b82e516ac7bb9a8b1386b40c Mon Sep 17 00:00:00 2001 From: Hugo Levy-Falk Date: Mon, 9 Mar 2020 19:34:48 +0000 Subject: [PATCH] chuck --- bots.yaml | 247 ----------------------------- etc/klafytg/bots.d/chuck.toml | 18 +++ klafirc.service => klafytg.service | 0 klafytg/bot.py | 13 +- 4 files changed, 27 insertions(+), 251 deletions(-) delete mode 100644 bots.yaml create mode 100644 etc/klafytg/bots.d/chuck.toml rename klafirc.service => klafytg.service (100%) diff --git a/bots.yaml b/bots.yaml deleted file mode 100644 index 03771d4..0000000 --- a/bots.yaml +++ /dev/null @@ -1,247 +0,0 @@ -bots: - sel: - on_ping: - - "Arcas:`à viarezo ils font des caleçons.` Chibrac:`bah non au rezo, à viarezo ils ont pas de boules à couvrir`" - - "Les lentilles c'est extrêmement pratique de base pour toute personne active [wink-wink Chibrac, NDLR]" - - "proxima (ViaRézo):Pour ce qui est du reste, nous avons, je crois, bien compris votre demande ; mais nos impératifs actuels, surtout pour Rennes et Metz, impliquent de passer par notre école, qui est a priori assez frileuse vis-à-vis du Crans et de ses relations avec le CROUS; nous espérons donc pouvoir à terme nous rapprocher de la présentation que tu décris, mais cela impliquerait un travail en amont pour ne pas contrevenir à nos propres efforts, et nous souhaiterions donc que vous présentiez pas, pour l’instant, vos démarches comme une action commune avec ViaRézo." - - "J'ai vraiment hâte de rencontrer les N1As de l'année prochaine." - - "À Metz vous êtes vraiment des experts." - - "Centrale Metz" - - " Il faut vraiment être con pour acheter une imprimante Brother." - - " bon, babel avec un pare-feu nftables, vous avez prévu d'y réfléchir pour 2042 ou ça a des chances d'arriver sous peu ?" - - " je glande presque autant qu'un pelec" - - " choisi l'excuse du moment chez ton supelec : l'inté, la campagne, les partiels, les vacances" - - " ouais mais j'ai jamais vu de gens aussi efficaces que les pelec pour justifier pq ils peuvent pas faire un truc" - - " Chirac on connaît tous tes performances scolaires t'inquiète pas" - - "Un jour j'irais me frotter à #federez, pour voir du gros sel." - - " un prof de maths est généralement compétent en maths, alors que j’attends toujours de rencontrer un prof d’info qui est capable de mettre quelque chose en prod" - - " D'après le fameux théorème centralien je pense que j'ai droit donc j'ai le droit" - - " dtf vous arriverez pas au niveau de via qui découvre tous les ans des thunes placées sur des comptes random" - - " il faudrait faire un achivement : a réussi a désinstaller le virtualiseur du virtualiseur" - - " De toute facon il y a ceux qui ont réussi à conserver leur Coopé™ et ceux qui doivent s'exiler pour en retrouver une" - - " je rajoute du gros sel façon ViaRézo \n fais gaffe bientôt le steak va coder en node" - - " Je préfère parler de limitation de débit afin de prioriser les services critiques." - - " Le jour où @lebanni est engagé dans une entreprise,j'y enlève toutes mes actions." - - " Toute façon, les prezs rezo c'est souvent des pots de fleurs avec une clé root." - - "<@lebanni> Je suis un gros quetard" - - "La soeur du banni : Matthieu, tu peux m'aider sur mon exo de maths ? @lebanni : Flemme, mon temps vaut de l'argent" - - " Un JT c'est pas comme des nocturnes FedeRez, ça s'organise pas tout seul." - on_match: - 'détruire le monde' : "Manu on fait des collages ?" - 'imprimante' : "Je pense qu'on devrait reprendre la même imprimante Brother." - '{name}, pourquoi es-tu là ?' : "{user} : En l'an 2018, en plus d'être feignants, les Rézomen devinrent salés à cause de la fermeture du campus. C'est pourquoi un jeune Rézoman nommé Klafyvel m'a créé, afin d'avoir un salage automatique de {channel}. Depuis je hante le chan." - 'on peut te joindre sur irc et telegram ?' : "{user} : oui, sur telegram pour que mes amis iraniens profitent de ma science et sur irc en attendant que les barbus en manque de reconnaissance se mettent à la page. Je pense qu'on devrait ajouter un bridge matrix \U0001f914" - 'telegram' : "{user} : tu devrais passer à irc." - 'irc.*matrix' : "{user} : tu devrais passer à matrix." - 'matrix.*irc' : "> {message}\nLes vrais font tourner matrix dans un tmux." - 'proxmox' : "proxmox c'est surfait, faut l'autoremove" - on_join: 'Unleash the salt' - Macron: - on_ping: - - "PARCE QUE C'EST NOTRE PROJEEEET !" - - "C'est de la poudre de perlimpinpin." - on_match: - 'tocard' : "Est-ce que je peux dire autocar ?" - 'Manu.*\?' : "Tu m’appelles monsieur le président de la République, ou monsieur." - 'aides sociales' : "Ça coûte un pognon dingue !" - min_time: 30 # in seconds - Patou: - on_ping: - - "En parlant de ça, Centrale ne sait vraiment pas travailler en multicampus" - - "On avait ouvert une voie d'escalade sur une des façades de la résidence" - - "Je vous ai parlé de la fois où j'ai discuté avec Bill Gates ?" - - "Bosse plutôt que de me faire la conversation !" - - "On parle, on parle, mais le code il avance pas beaucoup" - - "Garantie 5 ans puis poubelle" - - "Ben non, c'est une idée de merde" - - "Oui, vas-y, fait comme tu veux" - - "Je suis généreux, mais toi ça va pas être facile de te trouver des points" - - "Attend un peu, il y a Konrad qui m'appelle. Qu'est-ce qu'il me veut encore celui-là ?" - - "Hein !?" - - "Faites du vpn sur l'ecole ou sur la rez depuis l'exterieur" - - "Je viens donc de supprimer les comptes et de détruire les boites mail" - - "Au fait, j'ai l'impression que vous avez limité ma vitesse de téléchargement, c'est un peu lent je trouve ... évitez de brider ma machine svp" - - "Renaud c'est un visionnaire, mais un visionnaire aveugle" - - "J'ai pas besoin de cirer des pompes ou sucer des bites. Ah je suis avec des élèves je te laisse" - - "Annie elle aurait bien aimé être à fond DANS John Cagnol" - - "Quand tu veux rouler vite et efficace, allongé c'est confortable" - - "J'aime bien Sexion d'assaut" - - "Si vous voulez pisser depuis le toit attendez que le directeur passe en-dessous" - - "Pour être handicapé mental, faut déjà avoir un cerveau" - - "Le prêtre a dit qu'il ne pouvait décemment pas prendre Gutzwiller : il est trop près de son Macintosh" - - "Il est très bon, mais il est très con" - - "On bute tout le monde et on recommence" - - "Je suis toujours un peu en avance de phase" - - "Stop. Tue toi." - - "La mort par convention mutuelle si je puis dire" - - "Lâche moi la souris" - - "On a une commande qui est 'casse-toi tu pue' et un autre qui dit 'casse-toi tu pompes les ressources'" - on_match: - "password" : "Ah facile pour avoir accès aux switches, id: root, mdp: switch" - "nvidia" : "Les cartes nvidia c'est de la merde" - Claudy: - on_ping: - - "Ou tu sors, ou j'te sors, hein, mais faudra prendre une décision." - - "Tu sais {user}, si j'suis toujours si bien accompagné, c'est pour mon argent hein, c'est pas pour mon odeur... Et ça ça fait mal" - - "Ou tu sors, ou j'te sors, hein, mais faudra prendre une décision." - - "Et à propos de vieille truie toi comment ça va ?" - - "Dis, on t'a jamais appris à manger la bouche fermée toi ? J'ai l'impression d'être à côté d'un camion poubelle qui travaille moi ici !" - - "Faut pas commencer à jouer avec mes couilles" - - "Minutes papillon, je termine" - - "Bouge pas, j'vais aller chercher l'poney." - - "C'est toi qui va décharger l'cochon ? T'es épais comme un câble de frein à main" - - "Je n'en peux plus, je suis au bout du rouleau. J'ai envie de rentrer, me foutre dans mes savates et terminé bonsoir" - - "Voilà ben j'me présente en deux mots. Je suis Claudy Focan, Monsieur Focan plus exactement, je suis directeur NCS Marketing Manager des abattoirs d'Anderlecht." - - "Ah, maman ? Claudy à l'appareil dis, je viens de m'faire carjacker ! Je dis, je viens de me faire carjacker ! On a volé l'auto ! Non j'ai rien su faire ! J'ai taché de courir derrière qu'est-ce que tu veux faire ?" - - "Écoute ma fille, si ça t’intéresse, t’as mon numéro qu’est là, si ça t’intéresse pas au revoir Monsieur bon weekend... qu’est ce que tu veux que j‘te dise moi ?" - - "En tout cas y t’ont pas loupée, j’sais pas si c’est un ch’val ou une truie là, t’as vu ta tronche ou quoi ? Peut aussi faire un bouquin sur Halloween s’tu veux hein !" - Chuck: - on_ping: - - "No, thanks." - on_ping_python: - - 'klafirc.bots.chuck_norris.on_ping' - Laouen: - on_match: - '[Cc]oop[eé]\s(?!(TM))' : 'On dit CoopéTM !' - on_join: 'La CoopéTM est ouverte' - min_time: 3 # in seconds - Grubigrub: - on_match: - '[Mm]icrosoft' : 'Corruption institutionnalisée !' - min_time: 3 # in seconds - Karadoc: - on_ping: - - "Le gras, c'est la vie" - - "Bien manger c'est important !" - - "L'agneau était daubé du cul !" - - "Eh oui mémé, t'es bien mouchée !" - - "Sans blague, y'a pas de la gourdasse ?" - - "Par exemple, vous prenez aujourd’hui. Vous comptez sept jours. Ça vous emmène dans une semaine. Et bien on sera exactement le même jour qu’aujourd’hui… À une vache près, hein… C’est pas une science exacte." - - "Les chicots, c'est sacré ! Parce que si j'les lave pas maintenant, dans dix ans, c'est tout à la soupe. Et l'mec qui me fera manger de la soupe il est pas né !" - - "Si ça peut m'éviter de chlinguer du cul, je peux bien me tremper une ou deux fois par an." - - "Ça y est… je vois trouble. C’est le manque de gras, je me dessèche." - - "On la politique de l'autruche, avant je comprenais pas. Mais maintenant que j'en ai vu une d'autruche, c'est bon ! Une politique qui court vite ! Une politique qui fait des gros oeufs, c'est tout !" - on_match: - '[Jj]uniper' : "C'est d'la merde" - '[Cc]routons?' : "Des p'tits croutons tout vieux genre pour les lapins ? Ouais j'savais pas c'que c'était, dans le doute j'les ai bouffés." - '[Ss]i[èe]ge' : "MAIS Y'EN A PAS DE SIÈGE PAUVRE CONNE !" - '[Ff]romages?' : "Oh le con ! Mais il est pas fini d'affiner !" - min_time: 3 # in seconds - Perceval: - on_ping: - - "C'est pas faux" - on_match: - "Le gras, c'est la vie" : "C'est pas faux" - "PROJEEEET" : "Toi, un jour, je te crâme ta famille, toi." - min_time: 3 # in seconds - OpenSuze: - on_ping: - - "Tu reprends de la soupe ?" - on_join: 'Bonjour les enfants !' - on_match: - "(Y|y|([Ii]l (n')?y)) en a plus" : "Y en a plus ? J'ai tout bu ?" - "[Ss]oupe" : "J'ai préparé une soupe avec une petite courge de 5kg." - min_time: 3 # in seconds - Souby: - on_match: - "[Cc]oop[eé]" : "{user} : mot interdit sur notre campus sans alcool !" - min_time: 3 # in seconds - Gutzwiller: - on_ping: - - "Les ordinateurs, c'est comme les galères romaines : moins il y a de RAM, et plus ça rame !" - - "Il pédale dans la choucroute !" - - "On a quand même de la chance, on vit beaucoup plus longtemps que nos ordinateurs." - - "Intel c’est pas le contraire de \"tel autre\" hein, c’est la marque." - - "Et depuis, je n'ai plus jamais utilisé de Macs." - - "\"Plug and Play\" pour moi c’est plutôt \"je plug et j’me plains.\"" - - "Soit ils on changé la route, soit il y a un bogue." - - "Vous avez besoin de ce cours… \"ce cours\" en en deux mots hein ! Pas \"secours\"!" - - "Machine de Mealy. [Prononcé \"Machine de Millet.\"]" - - "La myopie forte." - - "Au bout de trois vies, c’est *Game Over* ! [L’examen, le rattrapage et la commission.]" - - "J’ai tout validé à 18. Sauf l’électromagnétisme, j’ai validé à 4." - - "C’est parce que moi je vois les champs magnétiques, mais du coup je ne savais pas faire les démonstrations." - - "Je me suis pointé en retard parce que je réveillais mon copiaule." - - "Il y a plein de *Klein* autour de chez mes parents." - - "Ils sont sérieux les Alsaciens !" - - "C’est un bon conducteur, mais il consomme plus que son véhicule." - - "Et si jamais on pouvait mettre autre chose que des roues ?" - - "C’était une flaque de flotte, la Suisse : aquaplaning sur 300 bornes !" - - "Aujourd’hui, on fera des crêpes !" - - "Tiens, ça pourrait être mon repas de midi ça !" - - "Je mets de la farine, du lait puis des œufs… Ben je prépare des crêpes !" - - "On souhaite fabriquer un modem… pas le parti politique, hein !" - - "Schlumberger, ils font de la discrimination à l’envers : ils aiment beaucoup les étrangers et les femmes." - - "Pensez autrement." - - "Mon accent anglais, c’est comme le français, c’est approximatif." - - "Comme le disait un de mes profs : \"Et surtout… Essayez de me suivre !\"" - - "Des fois… c’est dur la vie d’artiste." - - "J’aime pas les pommes, je préfère les poires." - - "Ce jour-là, j’étais en pétard. Contre le foot. [Enterrement pendant la victoire de la France à la coupe du monde de 1998.]" - - "Et donc, j’ai toujours un stylo sur moi." - - "Vous connaissez la règle des trois \"pourquoi\" ? Pour avoir la vérité sur quelque chose, on pose la question, puis on demande trois fois \"pourquoi ?\"" - - "Vous risquez le décollement de la rétine." - - "N’essayez pas de faire voir la télé couleur à une vache !" - - "Les bras m’en tombent." - - "Vous savez comment on dit \"Il fait froid\" en japonais ? SAKAI !" - - "L’opérateur rouge c’est celui qui sait faire [SFR]. Mais aujourd’hui, il sait pas faire." - - "Les appareils photos numériques changent beaucoup plus vite que les humains. La preuve, j'suis là mon premier appareil photo numérique il est plus là." - - "Moi je suis vraiment sans mémoire." - - "Les vendeurs d'oscillos ont peur de moi." - - "Un filtre de Jean-Louis Gutzwiller, histoire de laisser mon nom à la postérité." - - "Ma maman, elle n'est pas de ce monde-là." - - "Et paf ! 3dB dans les dents !" - - "Je vous ai déjà raconté l'histoire de monsieur trop cher ?" - - "Mon premier multimètre c'est ma maman qui me l'a offert pour Noël. La première chose que j'ai faite c'est de mesurer le secteur. On a bien du 220 à la maison." - min_time: 3 # in seconds - Sciamanna: - on_ping: - - "Ça me désole quand munme." - - "Le monde va mal, vous savez. Faites HEC." - - "C'est pipoland m'voyez." - - "À Supélec, je ne sais pas comment ils fonctionnent." - - "C'est pas un Belge qui va révolutionner les grandes écoles, chacun sa merde." - - "Eh je suis pas un tueur. Enfin dans la vraie vie, si. D'ailleurs il y a eu un meurtre non élucidé près de chez moi, mais c'est pas moi." - - "C'est comme votre latence matinale, moi j'arrive avec mon sin(t) et je vous secoue harmoniquement." - - "Je vais essayer de vous aider, il va y avoir une sélection naturelle." - - "Si quelqu'un fait une thèse, il a 3 points de plus à l'exam'." - - "Si on me demande plus que le passé, je dis que le passé du passé c'est le passé." - - "C'est mal foutu parce que ce n'est pas moi qui l'ai fait mais des gens de Paris." - - "Marcher c'est compliqué." - - "Vous savez, j'ai mis un temps fou à comprendre qu'on avait cours ici." - on_match: - "[Pp]hotonique" : "C'est la science du XXIIe siècle." - min_time: 3 # in seconds - Houzelle: - on_ping: - - "C'est très simple." - - "C'est facile." - - "Effectivement." - - "Alors." - - "Donc." - - "Voilà." - - "Ok ?" - - "Hein." - - "D'accord ?" - - "Euh..." - - "Bon." - - "Bref." - - "D'accord ? Ok ? Voilà. Alors..." - min_time: 1 # in seconds - - rip_lorrabelle: - on_ping: - - "Not under my watch." - on_match: - "[Ll]orrabelle" : "@klafyvel: tocard" - -channels: - - server: irc.rezometz.org - port: 6667 - channel: "#bots" - bots: [sel, Macron, Patou, Claudy, Chuck, Laouen, Grubigrub, Karadoc, Perceval, OpenSuze, Gutzwiller, Sciamanna, Houzelle] - - server: irc.rezosup.org - port: 6667 - channel: "#centrale-supelec" - bots: [Souby, Chuck] - diff --git a/etc/klafytg/bots.d/chuck.toml b/etc/klafytg/bots.d/chuck.toml new file mode 100644 index 0000000..aac3f18 --- /dev/null +++ b/etc/klafytg/bots.d/chuck.toml @@ -0,0 +1,18 @@ +[bot] +name = "Chuck" +# Name of the environment variable to fetch +token = "CHUCKTOKEN" +# time between interventions in seconds +min_time = 3 +# If channel is specified, only specified channels are authorized. +# channels = [] +admins = [ + 452970435 # klafyvel +] +[ping] +quotes = [] +python = [ + 'klafytg.bots.chuck_norris.on_ping' +] +[match] +[join] diff --git a/klafirc.service b/klafytg.service similarity index 100% rename from klafirc.service rename to klafytg.service diff --git a/klafytg/bot.py b/klafytg/bot.py index a8f0756..9d04685 100644 --- a/klafytg/bot.py +++ b/klafytg/bot.py @@ -31,14 +31,17 @@ class Bot: for k in self.config["match"].keys(): self.add_reaction(k, self.config["match"][k]) - self.pings = [] - for quote in self.config["ping"]["quotes"]: + for quote in self.config["ping"].get("quotes", []): self.add_ping(quote) + for python in self.config["ping"].get("python", []): + self.add_python_ping(python) - for channel in self.config["bot"]["channels"]: + for channel in self.config["bot"].get("channels", []): self.channels[int(channel)] = datetime.datetime(1,1,1) + self.all_channel_allowed = not self.config["bot"].get("channels", []) + self.updater = Updater(token=os.environ[self.config["bot"]["token"]], use_context=True) self.dispatcher = self.updater.dispatcher @@ -51,6 +54,8 @@ class Bot: self.dispatcher.add_handler(self.match_handler) def is_allowed(self, update, context): + if self.all_channel_allowed: + return True if update.inline_query: return True return update.effective_chat.id in self.channels @@ -111,7 +116,7 @@ class Bot: } quote = random.choice(self.pings) if callable(quote): - quote = quote(self, username, channel, message) + quote = quote(self, update.effective_user, update.effective_chat, update.effective_message) else: quote = quote.format(**c) context.bot.send_message(chat_id=update.effective_chat.id, text=quote, reply_to_message_id=update.effective_message.message_id)