Inline bot

This commit is contained in:
Hugo Levy-Falk 2020-03-04 15:49:42 +00:00
parent 355e0d32c6
commit 7d5ccfc815
2 changed files with 38 additions and 19 deletions

View file

@ -8,7 +8,8 @@ channels = [
-311159479, -311159479,
-320933904, -320933904,
-45394299, -45394299,
-1001413424448 # Bot et des culs -1001413424448, # Bot et des culs
452970435 # @Klafyvel
] ]
admins = [ admins = [
452970435 # klafyvel 452970435 # klafyvel
@ -21,25 +22,25 @@ quotes = [
"J'ai vraiment hâte de rencontrer les N1As de l'année prochaine.", "J'ai vraiment hâte de rencontrer les N1As de l'année prochaine.",
"À Metz vous êtes vraiment des experts.", "À Metz vous êtes vraiment des experts.",
"Centrale Metz", "Centrale Metz",
"<Tipunchetrhum> Il faut vraiment être con pour acheter une imprimante Brother.", "<@Tipunchetrhum> Il faut vraiment être con pour acheter une imprimante Brother.",
"<David_5-1> 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 ?", "<David_5-1> 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 ?",
"<Chibrac> je glande presque autant qu'un pelec", "<@Chibrac> je glande presque autant qu'un pelec",
"<Chibrac> choisi l'excuse du moment chez ton supelec : l'inté, la campagne, les partiels, les vacances", "<@Chibrac> choisi l'excuse du moment chez ton supelec : l'inté, la campagne, les partiels, les vacances",
"<Chibrac> ouais mais j'ai jamais vu de gens aussi efficaces que les pelec pour justifier pq ils peuvent pas faire un truc", "<@Chibrac> ouais mais j'ai jamais vu de gens aussi efficaces que les pelec pour justifier pq ils peuvent pas faire un truc",
"<Grubigrub> Chirac on connaît tous tes performances scolaires t'inquiète pas", "<@Grubigrub> 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 jour j'irais me frotter à #federez, pour voir du gros sel.",
"<S&M> un prof de maths est généralement compétent en maths, alors que jattends toujours de rencontrer un prof dinfo qui est capable de mettre quelque chose en prod", "<S&M> un prof de maths est généralement compétent en maths, alors que jattends toujours de rencontrer un prof dinfo qui est capable de mettre quelque chose en prod",
"<shaka> D'après le fameux théorème centralien je pense que j'ai droit donc j'ai le droit", "<shaka> D'après le fameux théorème centralien je pense que j'ai droit donc j'ai le droit",
"<shaka> dtf vous arriverez pas au niveau de via qui découvre tous les ans des thunes placées sur des comptes random", "<shaka> dtf vous arriverez pas au niveau de via qui découvre tous les ans des thunes placées sur des comptes random",
"<shaka> il faudrait faire un achivement : a réussi a désinstaller le virtualiseur du virtualiseur", "<shaka> il faudrait faire un achivement : a réussi a désinstaller le virtualiseur du virtualiseur",
"<Guimoz> De toute facon il y a ceux qui ont réussi à conserver leur Coopé™ et ceux qui doivent s'exiler pour en retrouver une", "<@Guimoz> De toute facon il y a ceux qui ont réussi à conserver leur Coopé™ et ceux qui doivent s'exiler pour en retrouver une",
"<shaka> je rajoute du gros sel façon ViaRézo \n<klafyvel> fais gaffe bientôt le steak va coder en node", "<shaka> je rajoute du gros sel façon ViaRézo \n<klafyvel> fais gaffe bientôt le steak va coder en node",
"<Klafyvel> Je préfère parler de limitation de débit afin de prioriser les services critiques.", "<@Klafyvel> Je préfère parler de limitation de débit afin de prioriser les services critiques.",
"<Grubigrub> Le jour où @lebanni est engagé dans une entreprise,j'y enlève toutes mes actions.", "<@Grubigrub> Le jour où @lebanni est engagé dans une entreprise,j'y enlève toutes mes actions.",
"<Nanoy> Toute façon, les prezs rezo c'est souvent des pots de fleurs avec une clé root.", "<@Nanoy> Toute façon, les prezs rezo c'est souvent des pots de fleurs avec une clé root.",
"<@lebanni> Je suis un gros quetard", "<@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", "La soeur du banni : Matthieu, tu peux m'aider sur mon exo de maths ? @lebanni : Flemme, mon temps vaut de l'argent",
"<Nanoy> Un JT c'est pas comme des nocturnes FedeRez, ça s'organise pas tout seul." "<@Nanoy> Un JT c'est pas comme des nocturnes FedeRez, ça s'organise pas tout seul."
] ]
ping_extra = [ ping_extra = [
"^[sS]el", "^[sS]el",

View file

@ -45,10 +45,14 @@ class Bot:
self.quote_handler = CommandHandler('ping', self.on_ping) self.quote_handler = CommandHandler('ping', self.on_ping)
self.match_handler = MessageHandler(Filters.text, self.on_message) self.match_handler = MessageHandler(Filters.text, self.on_message)
self.inline_quote_handler = InlineQueryHandler(self.on_inline)
self.dispatcher.add_handler(self.inline_quote_handler)
self.dispatcher.add_handler(self.quote_handler) self.dispatcher.add_handler(self.quote_handler)
self.dispatcher.add_handler(self.match_handler) self.dispatcher.add_handler(self.match_handler)
def is_allowed(self, update, context): def is_allowed(self, update, context):
if update.inline_query:
return update.effective_user.id in self.channels
return update.effective_chat.id in self.channels return update.effective_chat.id in self.channels
def start(self): def start(self):
@ -67,13 +71,27 @@ class Bot:
if not query: if not query:
return return
results = list() results = list()
c = {
"channel": getattr(update.effective_chat, "title", ""),
"name": self.name,
"user": update.effective_user.name,
"message": getattr(update.effective_message, "text", ""),
}
for i,quote in enumerate(self.pings):
actual_quote = ""
if not callable(quote):
actual_quote = quote.format(**c)
else:
actual_quote = quote(self, username, channel, message)
if re.search(query, actual_quote) or not query:
results.append( results.append(
InlineQueryResultArticle( InlineQueryResultArticle(
id=query.upper(), id=i,
title='Caps', title=actual_quote,
input_message_content=InputTextMessageContent(query.upper()) input_message_content=InputTextMessageContent(actual_quote)
) )
) )
context.bot.answer_inline_query(update.inline_query.id, results) context.bot.answer_inline_query(update.inline_query.id, results)
@ -81,7 +99,7 @@ class Bot:
if not self.is_allowed(update, context): if not self.is_allowed(update, context):
context.bot.send_message( context.bot.send_message(
chat_id=update.effective_chat.id, chat_id=update.effective_chat.id,
text="Sorry, mamma told me not to talk with random strangers.", text="Sorry, mamma told me not to talk with random strangers. You need to allow chat id {}.".format(update.effective_chat.id),
reply_to_message_id=update.effective_message.message_id reply_to_message_id=update.effective_message.message_id
) )
return return