|
@@ -4,7 +4,11 @@ from telethon import TelegramClient
|
|
|
from telethon.events import NewMessage
|
|
|
from telethon.utils import resolve_bot_file_id
|
|
|
|
|
|
-from utils import parse_command, get_link_to_user
|
|
|
+from utils import (
|
|
|
+ parse_command,
|
|
|
+ get_link_to_user,
|
|
|
+ Kind
|
|
|
+)
|
|
|
from config import config
|
|
|
from db import init_db
|
|
|
from actions import (
|
|
@@ -47,24 +51,27 @@ async def on_message(event):
|
|
|
return
|
|
|
|
|
|
reply_to = None
|
|
|
- target = await event.get_reply_message()
|
|
|
+ target = None
|
|
|
|
|
|
- if not target:
|
|
|
- try:
|
|
|
- target = await bot.get_entity(command.args[0])
|
|
|
- except (ValueError, IndexError):
|
|
|
- await event.reply('Это действие нужно применить на кого-то!')
|
|
|
+ if action.kind != Kind.NO_TARGET:
|
|
|
+ target = await event.get_reply_message()
|
|
|
|
|
|
- return
|
|
|
- else:
|
|
|
- reply_to = target
|
|
|
- target = target.sender
|
|
|
+ if not target:
|
|
|
+ try:
|
|
|
+ target = await bot.get_entity(command.args[0])
|
|
|
+ except (ValueError, IndexError):
|
|
|
+ await event.reply('Это действие нужно применить на кого-то!')
|
|
|
|
|
|
- if target.id == event.sender.id\
|
|
|
- and not action.can_apply_to_self:
|
|
|
- await event.reply('Данное действие нельзя применять к самому себе...')
|
|
|
+ return
|
|
|
+ else:
|
|
|
+ reply_to = target
|
|
|
+ target = target.sender
|
|
|
|
|
|
- return
|
|
|
+ if action.kind == Kind.CANNOT_APPLY_TO_SELF\
|
|
|
+ and target.id == event.sender.id:
|
|
|
+ await event.reply('Данное действие нельзя применять к самому себе...')
|
|
|
+
|
|
|
+ return
|
|
|
|
|
|
try:
|
|
|
await event.delete()
|
|
@@ -73,7 +80,7 @@ async def on_message(event):
|
|
|
|
|
|
text = action.template.format(**{
|
|
|
'initiator': get_link_to_user(event.sender),
|
|
|
- 'target': get_link_to_user(target)
|
|
|
+ 'target': get_link_to_user(target) if target else '?'
|
|
|
})
|
|
|
|
|
|
gif = await get_random_gif(action)
|