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,
-320933904,
-45394299,
-1001413424448 # Bot et des culs
-1001413424448, # Bot et des culs
452970435 # @Klafyvel
]
admins = [
452970435 # klafyvel
@ -21,25 +22,25 @@ quotes = [
"J'ai vraiment hâte de rencontrer les N1As de l'année prochaine.",
"À Metz vous êtes vraiment des experts.",
"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 ?",
"<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> 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",
"<@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> 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",
"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",
"<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> 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",
"<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.",
"<Nanoy> Toute façon, les prezs rezo c'est souvent des pots de fleurs avec une clé root.",
"<@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.",
"<@Nanoy> 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",
"<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 = [
"^[sS]el",

View file

@ -45,10 +45,14 @@ class Bot:
self.quote_handler = CommandHandler('ping', self.on_ping)
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.match_handler)
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
def start(self):
@ -67,13 +71,27 @@ class Bot:
if not query:
return
results = list()
results.append(
InlineQueryResultArticle(
id=query.upper(),
title='Caps',
input_message_content=InputTextMessageContent(query.upper())
)
)
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(
InlineQueryResultArticle(
id=i,
title=actual_quote,
input_message_content=InputTextMessageContent(actual_quote)
)
)
context.bot.answer_inline_query(update.inline_query.id, results)
@ -81,7 +99,7 @@ class Bot:
if not self.is_allowed(update, context):
context.bot.send_message(
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
)
return