From 5aaa6ec36e4fe2c43151661d2a6e82a2ed642b3f Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 3 Sep 2018 19:10:57 +0300 Subject: [PATCH] Add more commands/update strings in assistant (#981) --- telethon_examples/assistant.py | 43 +++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/telethon_examples/assistant.py b/telethon_examples/assistant.py index 17c307e1..c55fc401 100644 --- a/telethon_examples/assistant.py +++ b/telethon_examples/assistant.py @@ -53,10 +53,28 @@ DOCS_MESSAGE = ( 'telethon.tl.custom.html#telethon.tl.custom.message.Message.' ) +SPAM = ( + "Telethon is free software. That means using it is a right: you are " + "free to use it for absolutely any purpose whatsoever. However, help " + "and support with using it is a privilege. If you misbehave or want " + "to do bad things, nobody is obligated to help you and you're not " + "welcome here." +) + +OFFTOPIC = { +-1001109500936: + 'That is not related to Telethon. ' + 'You may continue the conversation in @TelethonOffTopic' +-1001200633650: + 'That seems to be related to Telethon. Try asking in @TelethonChat' +} + ASK = ( "Hey, that's not how you ask a question! If you want helpful advice " "(or any response at all) [read this first](https://stackoverflow.com" - "/help/how-to-ask) and then ask again." + "/help/how-to-ask) and then ask again. If you have the time, [How To " + "Ask Questions The Smart Way](catb.org/~esr/faqs/smart-questions.html)" + " is another wonderful resource worth reading." ) LOGGING = ''' @@ -198,6 +216,23 @@ async def handler(event): ]) +@bot.on(events.NewMessage(pattern='(?i)#spam(mer|ming)?', forwards=False)) +async def handler(event): + """#spam, #spammer, #spamming: Informs spammers that they are not welcome here.""" + await asyncio.wait([ + event.delete(), + event.respond(SPAM, reply_to=event.reply_to_msg_id) + ]) + +@bot.on(events.NewMessage(pattern='(?i)#(ot|offtopic)', forwards=False)) +async def handler(event): + """#ot, #offtopic: Tells the user to move to @TelethonOffTopic.""" + await asyncio.wait([ + event.delete(), + event.respond(OFFTOPIC[event.chat_id], reply_to=event.reply_to_msg_id) + ]) + + @bot.on(events.NewMessage(pattern='(?i)#log(s|ging)?', forwards=False)) async def handler(event): """#log, #logs or #logging: Explains how to enable logging.""" @@ -226,15 +261,17 @@ async def handler(event): ]) -@bot.on(events.NewMessage(pattern='#list', forwards=False)) +@bot.on(events.NewMessage(pattern='(?i)#(list|help)', forwards=False)) async def handler(event): await event.delete() text = 'Available commands:\n' for callback, handler in bot.list_event_handlers(): if isinstance(handler, events.NewMessage) and callback.__doc__: text += f'\n{callback.__doc__}' + text += '\n\nYou can suggest new commands [here](https://docs.google.com/'\ + 'spreadsheets/d/12yWwixUu_vB426_toLBAiajXxYKvR2J1DD6yZtQz9l4/edit).' - message = await event.respond(text) + message = await event.respond(text, link_preview=False) await asyncio.sleep(1 * text.count(' ')) # Sleep ~1 second per word await message.delete()