Add more commands/update strings in assistant (#981)

This commit is contained in:
Tulir Asokan 2018-09-03 19:10:57 +03:00 committed by Lonami
parent 36df6d1bf9
commit 5aaa6ec36e

View File

@ -53,10 +53,28 @@ DOCS_MESSAGE = (
'telethon.tl.custom.html#telethon.tl.custom.message.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 = ( ASK = (
"Hey, that's not how you ask a question! If you want helpful advice " "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" "(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 = ''' 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)) @bot.on(events.NewMessage(pattern='(?i)#log(s|ging)?', forwards=False))
async def handler(event): async def handler(event):
"""#log, #logs or #logging: Explains how to enable logging.""" """#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): async def handler(event):
await event.delete() await event.delete()
text = 'Available commands:\n' text = 'Available commands:\n'
for callback, handler in bot.list_event_handlers(): for callback, handler in bot.list_event_handlers():
if isinstance(handler, events.NewMessage) and callback.__doc__: if isinstance(handler, events.NewMessage) and callback.__doc__:
text += f'\n{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 asyncio.sleep(1 * text.count(' ')) # Sleep ~1 second per word
await message.delete() await message.delete()