diff --git a/botplugins/tl.py b/botplugins/tl.py new file mode 120000 index 0000000..4eff73c --- /dev/null +++ b/botplugins/tl.py @@ -0,0 +1 @@ +../stdplugins/tl.py \ No newline at end of file diff --git a/stdplugins/tl.py b/stdplugins/tl.py index 3881eb8..b76470f 100644 --- a/stdplugins/tl.py +++ b/stdplugins/tl.py @@ -12,7 +12,7 @@ import mimetypes import re import time -from telethon import events, helpers, types +from telethon import helpers, types mimetypes.add_type('audio/mpeg', '.borg+tts') @@ -308,11 +308,11 @@ class Translator: translator = Translator() -@borg.on(events.NewMessage(pattern=r"\.tl", outgoing=True)) +@borg.on(borg.cmd(r"tl")) async def _(event): if event.is_reply: text = (await event.get_reply_message()).raw_text - else: + elif not borg.me.bot: text = '' started = False async for m in borg.iter_messages(event.chat_id): @@ -326,14 +326,18 @@ async def _(event): text = m.raw_text + '\n' + text else: text = m.raw_text + ' ' + text + else: + return translated = await translator.translate(text.strip()) - await event.edit('translation: ' + translated, parse_mode=None) + action = event.edit if not borg.me.bot else event.respond + await action('translation: ' + translated, parse_mode=None) -@borg.on(events.NewMessage(pattern=r"\.tts", outgoing=True)) +@borg.on(borg.cmd(r"tts")) async def _(event): - await event.delete() + if not borg.me.bot: + await event.delete() ts = event.raw_text.split(maxsplit=1) text = None if len(ts) < 2 else ts[1] @@ -349,7 +353,7 @@ async def _(event): await borg.send_file( event.chat_id, file, - reply_to=event.reply_to_msg_id, + reply_to=event.reply_to_msg_id if not borg.me.bot else None, attributes=[types.DocumentAttributeAudio( duration=0, voice=True diff --git a/uniborg/uniborg.py b/uniborg/uniborg.py index af1fdcf..883622d 100644 --- a/uniborg/uniborg.py +++ b/uniborg/uniborg.py @@ -110,6 +110,17 @@ class Uniborg(TelegramClient): return fut + def cmd(self, pattern): + if not self.me.bot: + return telethon.events.NewMessage( + outgoing=True, + pattern=fr'^\.{pattern}$' + ) + else: + return telethon.events.NewMessage( + pattern=fr'^\/{pattern}$' + ) + def admin_cmd(self, pattern): if not self.me.bot: return telethon.events.NewMessage(