diff options
| author | mroik <mroik@delayed.space> | 2021-11-25 16:29:39 +0100 |
|---|---|---|
| committer | mroik <mroik@delayed.space> | 2021-11-25 16:29:39 +0100 |
| commit | 9ab1160316b16056abe91af13fde6946f2e0ade8 (patch) | |
| tree | 51d757f6aab1db83f0520a68dd70a64d46d705df /userbot.py | |
| parent | 1b14ca9b44de19369463ad2afcf77b5b4fce3ef7 (diff) | |
Modified to retain user tagging
Diffstat (limited to 'userbot.py')
| -rw-r--r-- | userbot.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/userbot.py b/userbot.py new file mode 100644 index 0000000..bd390d6 --- /dev/null +++ b/userbot.py @@ -0,0 +1,47 @@ +import re +import logging + +from telethon import TelegramClient, events +from telethon.tl.types import PeerUser + +from config import API_ID, API_HASH, WORDLIST, BOT_ID + + +LOG = logging.getLogger(__name__) +client = TelegramClient("notify me on untagged", API_ID, API_HASH) +client.parse_mode = "markdown" + + +@client.on(events.NewMessage()) +async def handler(event: events.NewMessage.Event): + me = await client.get_me() + from_ = event.message.from_id + chan = event.message.peer_id + message = event.message + + if isinstance(event.message.peer_id, PeerUser): + return + if int(BOT_ID) == from_.user_id: + return + if from_.user_id == me.id: + return + if message.message == "" or message.message is None: + return + if message.mentioned: + return + for word in WORDLIST: + if f" {word.upper()} " in message.message.upper()\ + or message.message.upper().startswith(f"{word.upper()} ")\ + or message.message.upper().endswith(f" {word.upper()}"): + msg = f"[{from_.user_id}](tg://user?id={from_.user_id}) tagged you in" + msg += f" [{chan.channel_id}](https://t.me/c/{chan.channel_id}/{str(message.id)}):\n" + found = re.search(f"{word.upper()}", message.message.upper()) + if found is None: + msg += f"{message.message}" + else: + msg += f"{message.message[:found.start()]}__"\ + f"{message.message[found.start():found.end()]}__"\ + f"{message.message[found.end():]}" + await client.send_message(await client.get_input_entity(int(BOT_ID)), msg) + LOG.info(f"Message from {from_.user_id} was sent to BOT {BOT_ID}") + return |
