diff --git a/CHANGELOG.md b/CHANGELOG.md index 88e1417258e38598b9a4c8a2bffa1d5920d3b460..960ef442a2454c7bf1c194dcd9dc9c5c18a7d729 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 19 aout 2019 **Ajout:** - script bot.py quasi complet +- quizz marche --- diff --git a/bot.py b/bot.py index 5db21b0af3c424e785fc5f1504c89117780ce86b..765dc45e0ccb5d2e844c4d88089751f520bd3429 100755 --- a/bot.py +++ b/bot.py @@ -8,10 +8,14 @@ import useless import usefull import random from auth_file import USERNAME, PASSWORD +from googletrans import Translator +translator = Translator() +quizz = useless.Quizz() class Bot(Client): ahah_liste = ['ahah', 'mdr', 'lol', 'Mort de rire !', 'Trop marrant', 'tu m\'as tué', 'xD', 'PTDR'] + what_liste = ['wat', 'What', 'Nani', 'keske', 'dafuk', 'da fuk'] def onMessage(self, author_id, message_object, thread_id, thread_type, **kwargs): self.markAsDelivered(thread_id, message_object.uid) @@ -22,12 +26,12 @@ class Bot(Client): if 'Ah' in message_object.text: self.sendLocalImage('images/ah.png', thread_id=thread_id, thread_type=thread_type) - to_send = Bot.tests(message_object.text, self.fetchThreadInfo(thread_id)[thread_id].name) + to_send = Bot.tests(message_object.text, thread_id=thread_id, thread_type=thread_type, author_id=author_id, channel=self.fetchThreadInfo(thread_id)[thread_id].name) if (author_id != self.uid or 'BOT :' not in message_object.text) and to_send is not None: self.send(Message('BOT :' + to_send), thread_id=thread_id, thread_type=thread_type) @classmethod - def tests(self, texte, channel=''): + def tests(self, texte, thread_id, thread_type, author_id, channel=''): if texte == '!help': help_text = 'Ce que je sais faire :\n \ !meteo <ville> ; <pays> ; <dans_n_heure(facultatif)>\n \ @@ -35,16 +39,26 @@ class Bot(Client): !useless \n \ !chuck \n\ !nordpress \n \ - !quizz [start|new|reset|scoreboard] , not yet implemented\n \ + !quizz [start|new|reset|scoreboard|indice|round|question] ... not yet implemented\n \ + !q <reponse> pour répondre au quizz\n\ !haddock \n \ !philo \n \ !pipo\n \ + !rename <personne> ; <pseudo> \n\ !kohlanta <nom>\n \ !rateau \n \ - !maps <nom_du_lieu> <destination(facultatif)>, not yet fully fonctionnal\n \ + !maps <nom_du_lieu> <destination(facultatif)> ... not yet fully fonctionnal\n \ + !memes <image_name_or_url> ; <texte1> ; <texte2(facultatif)> ... not yet implemented\n\ !ping \n\ + !translate <phrase> ; <lang_source> ; <lang_dest>\n\ !about -> vas-y test-moi !\n' return help_text + if '!translate' in texte: + texte = texte.replace('!translate ', '').split(' ; ') + try: + translator.translate(text=texte[0], dest=texte[2], src=texte[1]) + except: + return 'Tiens j\'y arrive pas, Apparement, ça ne marche pas comme ça.' if texte == '!useless': return useless.useless() if texte == '!nordpress': @@ -55,6 +69,24 @@ class Bot(Client): return useless.genererSujet() if texte == '!haddock': return useless.haddock() + if '!rename' in texte: + texte = texte.replace('!rename ', '').split(';') + for user in self.fetchAllUsersFromThreads([thread_id]): + if user.name == texte[0]: + self.changeNickname(nickname=texte[1], user_id=user.uid, thread_id=thread_id, thread_type=thread_type) + else: + return random.choice(['T\'es sur de ton coup là ?', 'chais pas qui c\'est...']) + if any(word.lower() in texte.lower() for word in Bot.what_liste): + return random.choice(Bot.what_liste) + if '!memes ' in texte: + texte = texte.replace('!memes ', '').split(' ; ') + useless.memes(texte) + self.sendLocalImage('meme.png', thread_id=thread_id, thread_type=thread_type) + if any(word.lower() in texte.lower() for word in ["let\'s go", "c'est parti", "go ", "allons "]): + return 'é zé bardi !' + if any(word.lower() in texte.lower() for word in ['noice ', 'nice ', 'ok']): + # self.send(Message(text="👍", emoji_size=EmojiSize.LARGE), thread_id=thread_id, thread_type=thread_type) + self.send(Message(emoji_size=EmojiSize.LARGE), thread_id=thread_id, thread_type=thread_type) if '!kohlanta' in texte: texte = texte.replace('!kohlanta ', '') return useless.kohlanta(texte, channel) @@ -66,15 +98,41 @@ class Bot(Client): return random.choice(Bot.ahah_liste) if texte == '!rateau': return useless.getRateau() + + # petit jeu de quizz + if '!quizz' in texte: + if 'start' in texte: + return quizz.start() + if 'new' in texte: + return quizz.new() + if 'scoreboard' in texte: + if texte.replace('!quizz scoreboard ', '') != '': + return quizz.scoreboard(texte.replace('!quizz scoreboard ', '')) + else: + return quizz.scoreboard() + if 'reset' in texte: + return quizz.reset() + if 'indice' in quizz: + return quizz.indice() + if 'round' in texte: + return quizz.get_round() + if 'question' in texte: + return quizz.get_question() + if '!q ' in texte: + return quizz.answer(text.replace('!q ', ''), self.fetchUserInfo(author_id)[author_id].name) + + # meteo if '!meteo' in texte: try: texte = texte.replace('!meteo ', '').split(' ; ') if len(texte) == 2: return usefull.meteo_de(texte[0], texte[1]) else: - return usefull.meteo_de(texte[0], texte[1], dans_n_heures=texte[2]) + return usefull.meteo_de(texte[0], texte[1], dans_n_heures=int(texte[2])) except: return 'Ousp, c\'est cassé...' + + # wikipédia if '!wikipedia' in texte: try: texte = texte.replace('!wikipedia ', '') diff --git a/images/memes_images/10guy.jpg b/images/memes_images/10guy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf6f75bb11b9aa35d35be0e731938d55c236d12b Binary files /dev/null and b/images/memes_images/10guy.jpg differ diff --git a/images/memes_images/avengers.jpg b/images/memes_images/avengers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c667c8faf2464a0a7efd302c43bb802889df58ea Binary files /dev/null and b/images/memes_images/avengers.jpg differ diff --git a/images/memes_images/badsurprise.jpg b/images/memes_images/badsurprise.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e5cc0a888490de7628c4bd607e463c7873a1df2 Binary files /dev/null and b/images/memes_images/badsurprise.jpg differ diff --git a/images/memes_images/boyfriend.jpg b/images/memes_images/boyfriend.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c125b2e41655219a79fdcfc2afe73b436ed8472 Binary files /dev/null and b/images/memes_images/boyfriend.jpg differ diff --git a/images/memes_images/depressing.jpg b/images/memes_images/depressing.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6d0932bfdfaf33e4bda99f9449a011d0d46ec62 Binary files /dev/null and b/images/memes_images/depressing.jpg differ diff --git a/images/memes_images/euh.jpg b/images/memes_images/euh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f873426c9f8142d106a8c7f05e8c3fdeb8f3375 Binary files /dev/null and b/images/memes_images/euh.jpg differ diff --git a/images/memes_images/gangbang.jpg b/images/memes_images/gangbang.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ca91aeb463770d40019c76d2e0a24f45bfd331b Binary files /dev/null and b/images/memes_images/gangbang.jpg differ diff --git a/images/memes_images/godblessings.jpg b/images/memes_images/godblessings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc24ee58183324a3d873498456f8ae046020adfa Binary files /dev/null and b/images/memes_images/godblessings.jpg differ diff --git a/images/memes_images/goodchoice.jpg b/images/memes_images/goodchoice.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e8e00f75e3d53fa0b47d5811ffc3f572d715d9c Binary files /dev/null and b/images/memes_images/goodchoice.jpg differ diff --git a/images/memes_images/homer.jpg b/images/memes_images/homer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ebf0269168009b10051b8de10c0b2b9456d2c19 Binary files /dev/null and b/images/memes_images/homer.jpg differ diff --git a/images/memes_images/killyou.jpg b/images/memes_images/killyou.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84dedcdc99490f398edd4d8a4e098bae05604d82 Binary files /dev/null and b/images/memes_images/killyou.jpg differ diff --git a/images/memes_images/maths.jpg b/images/memes_images/maths.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cde6330a4dfce18659cd5ab2f8177680e033ac84 Binary files /dev/null and b/images/memes_images/maths.jpg differ diff --git a/images/memes_images/mdr.jpg b/images/memes_images/mdr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49a074cdc3ee8a5ae077117ed8ab593cb295c148 Binary files /dev/null and b/images/memes_images/mdr.jpg differ diff --git a/images/memes_images/nanithfuck.jpg b/images/memes_images/nanithfuck.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94f565153f9ecf30f0ecdfa7f134031c52987d76 Binary files /dev/null and b/images/memes_images/nanithfuck.jpg differ diff --git a/images/memes_images/ohlala.jpg b/images/memes_images/ohlala.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc24eb71e29e3a3d80f1762132f8b629c69c0014 Binary files /dev/null and b/images/memes_images/ohlala.jpg differ diff --git a/images/memes_images/ohlala2.jpg b/images/memes_images/ohlala2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b4c250841ae22ee25a143841bfd5219a7af52a5 Binary files /dev/null and b/images/memes_images/ohlala2.jpg differ diff --git a/images/memes_images/on_the_side/badsurprise.jpg b/images/memes_images/on_the_side/badsurprise.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21d5e9a910b6c797765762c826b75637e8ddef2b Binary files /dev/null and b/images/memes_images/on_the_side/badsurprise.jpg differ diff --git a/images/memes_images/on_the_side/goodchoice.jpg b/images/memes_images/on_the_side/goodchoice.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7217d8b72bd84ea9a779276337d465f0861103e Binary files /dev/null and b/images/memes_images/on_the_side/goodchoice.jpg differ diff --git a/images/memes_images/on_the_side/nanithfuck.jpg b/images/memes_images/on_the_side/nanithfuck.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39cf29c77cc1ce9da99cc5ac78bcd287a0777f4b Binary files /dev/null and b/images/memes_images/on_the_side/nanithfuck.jpg differ diff --git a/images/memes_images/salt.jpg b/images/memes_images/salt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..170e6435f0dcbc0cd32b88d30a5139083d2cce48 Binary files /dev/null and b/images/memes_images/salt.jpg differ diff --git a/images/memes_images/smart.jpg b/images/memes_images/smart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02b43770cd8ca09ec99ab850644025d86f296c87 Binary files /dev/null and b/images/memes_images/smart.jpg differ diff --git a/images/memes_images/specials/avengers.jpg b/images/memes_images/specials/avengers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c667c8faf2464a0a7efd302c43bb802889df58ea Binary files /dev/null and b/images/memes_images/specials/avengers.jpg differ diff --git a/images/memes_images/specials/boyfriend.jpg b/images/memes_images/specials/boyfriend.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c125b2e41655219a79fdcfc2afe73b436ed8472 Binary files /dev/null and b/images/memes_images/specials/boyfriend.jpg differ diff --git a/images/memes_images/specials/godblessings.jpg b/images/memes_images/specials/godblessings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc24ee58183324a3d873498456f8ae046020adfa Binary files /dev/null and b/images/memes_images/specials/godblessings.jpg differ diff --git a/images/memes_images/specials/homer.jpg b/images/memes_images/specials/homer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ebf0269168009b10051b8de10c0b2b9456d2c19 Binary files /dev/null and b/images/memes_images/specials/homer.jpg differ diff --git a/images/memes_images/specials/thanos.jpg b/images/memes_images/specials/thanos.jpg new file mode 100644 index 0000000000000000000000000000000000000000..260d5c96fa615f132f3534dee276e1075495d2eb Binary files /dev/null and b/images/memes_images/specials/thanos.jpg differ diff --git a/images/memes_images/specials/trash.jpg b/images/memes_images/specials/trash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e548c9bc27db40a7c1e9b6e0a8c67d2edd8ac17e Binary files /dev/null and b/images/memes_images/specials/trash.jpg differ diff --git a/images/memes_images/specials/whatisthis.png b/images/memes_images/specials/whatisthis.png new file mode 100644 index 0000000000000000000000000000000000000000..b22a10a8ab6cd0d69e95fe94335feec99e27be96 Binary files /dev/null and b/images/memes_images/specials/whatisthis.png differ diff --git a/images/memes_images/speechless.jpg b/images/memes_images/speechless.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a34c77f018ed98efa475adef89283ff102e4d34 Binary files /dev/null and b/images/memes_images/speechless.jpg differ diff --git a/images/memes_images/suicide.jpg b/images/memes_images/suicide.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53b0b39950d54f3088c097d8a3b6880ea28d1c19 Binary files /dev/null and b/images/memes_images/suicide.jpg differ diff --git a/images/memes_images/suprised.jpg b/images/memes_images/suprised.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58ea33aec1d7f82833ceba080cabccecea8c545f Binary files /dev/null and b/images/memes_images/suprised.jpg differ diff --git a/images/memes_images/thanos.jpg b/images/memes_images/thanos.jpg new file mode 100644 index 0000000000000000000000000000000000000000..260d5c96fa615f132f3534dee276e1075495d2eb Binary files /dev/null and b/images/memes_images/thanos.jpg differ diff --git a/images/memes_images/thisisfine.jpg b/images/memes_images/thisisfine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a86806a3f0203620bd197ea524da1653064f6c5 Binary files /dev/null and b/images/memes_images/thisisfine.jpg differ diff --git a/images/memes_images/thisisnotfine.jpg b/images/memes_images/thisisnotfine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..586580763aa2cb864f5e390ead1a2e4f489d7799 Binary files /dev/null and b/images/memes_images/thisisnotfine.jpg differ diff --git a/images/memes_images/trash.jpg b/images/memes_images/trash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e548c9bc27db40a7c1e9b6e0a8c67d2edd8ac17e Binary files /dev/null and b/images/memes_images/trash.jpg differ diff --git a/images/memes_images/whatisthis.png b/images/memes_images/whatisthis.png new file mode 100644 index 0000000000000000000000000000000000000000..b22a10a8ab6cd0d69e95fe94335feec99e27be96 Binary files /dev/null and b/images/memes_images/whatisthis.png differ diff --git a/useless/memes.py b/useless/memes.py new file mode 100644 index 0000000000000000000000000000000000000000..eda359858faddea1159d46c4bf1c590618f58a6a --- /dev/null +++ b/useless/memes.py @@ -0,0 +1,74 @@ +#!/usr/bin/python3 +# module qui fait des memes +# -*- coding: utf-8 -*- +import PIL +from PIL import ImageFont +from PIL import Image +from PIL import ImageDraw + + +class Memes(object): + images = { + "10guy": ["10guy.jpg"], + "euh": ["images/euh.jpg"], + "gangbang": ["gangbang.jpg"], + "killyou": ["killyou.jpg"], + "maths": ["maths.jpg"], + "mdr": ["mdr.jpg"], + "ohlala": ["ohlala.jpg"], + "ohlala2": ["ohlala2.jpg"], + "salt": ["salt.jpg"], + "smart": ["smart.jpg"], + "speechless": ["speechless.jpg"], + "suicide": ["suicide.jpg"], + "surprised": ["suprised.jpg"], + "goodchoice": ["goodchoice.jpg"], + "nanithefuck": ["nanithefuck.jpg"], + "badsurprise": ["badsurprise.jpg"], + "boyfriend": ["boyfriend.jpg"], + "thisisfine": ["thisisfine.jpg"], + "thisisnotfine": ["thisisnotfine.jpg"], + "depressing": ["depressing.jpg"], + "avengers": ["avengers.jpg"], + "godblessing": ["godblessings.jpg"], + "homer": ["homer.jpg"], + "thanos": ["thanos.jpg"], + "trash": ["trash.jpg"], + "whatisthis": ["whatisthis.png"] + } + + def __init__(self, name, text1, text2='', rep='images/memes_images/'): + self.name = name + self.text1 = text1 + self.text2 = text2 + + @staticmethod + def ecrire(draw, text, font, pos): + x, y = pos + for adj in range(3): + # move right + draw.text((x - adj, y), text, font=font, fill="black") + # move left + draw.text((x + adj, y), text, font=font, fill="black") + # move up + draw.text((x, y + adj), text, font=font, fill="black") + # move down + draw.text((x, y - adj), text, font=font, fill="black") + # diagnal left up + draw.text((x - adj, y + adj), text, font=font, fill="black") + # diagnal right up + draw.text((x + adj, y + adj), text, font=font, fill="black") + # diagnal left down + draw.text((x - adj, y - adj), text, font=font, fill="black") + # diagnal right down + draw.text((x + adj, y - adj), text, font=font, fill="black") + + # create normal text on image + draw.text(pos, text, fill="white", font=font) + + def get_image(self): + pass + +if __name__ == '__main__': + meme1 = Memes(smart, 'test1', 'test2') + img = meme1.get_image() diff --git a/useless/quizz.py b/useless/quizz.py index 5d9fdf81cf9713007a1093485fba292c671791af..5a88fe40af7233672beffcdf22bab54b96375fc4 100755 --- a/useless/quizz.py +++ b/useless/quizz.py @@ -7,6 +7,7 @@ import requests from random import shuffle from googletrans import Translator +import random translator = Translator() @@ -50,10 +51,12 @@ class Quizz(object): return self._quizz['question'] def start(self): - assert self._status == 0 if self._status == 0: self._status = 1 self._round = 1 + return random.choice(['Que la partie commence !', 'é zé bardi !']) + '\n' + self.get_question() + else: + return "Mais t'es trizo ou quoi ya déjà une partie qui tourne là !" def get_round(self): return self._round @@ -77,7 +80,7 @@ class Quizz(object): return self.reset() if proposition == '!question': return self.get_question() - if proposition == self._quizz['reponse']: + if proposition.lower() == self._quizz['reponse'].lower() or (self._quizz['reponse'] == 'True' and 'vrai' in proposition.lower()) or (self._quizz['reponse'] == 'False' and 'faux' in proposition.lower()): if personne in self._essais.keys(): self._essais[personne] += 1 else: @@ -110,6 +113,8 @@ class Quizz(object): self._essais = {} self._points = {} self._round = 0 + return 'Et on recommence tout !' + if __name__ == "__main__":