forked from uniborg/uniborg
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
|
||
|
import asyncio
|
||
|
import re
|
||
|
|
||
|
from telethon import events
|
||
|
from telethon.tl.types import Message
|
||
|
|
||
|
pattern = re.compile(r'(?i)^a+nd\b')
|
||
|
|
||
|
|
||
|
@borg.on(events.NewMessage)
|
||
|
async def and_my_axe(event):
|
||
|
async def next_match(event):
|
||
|
if pattern.match(event.raw_text):
|
||
|
raise events.StopPropagation
|
||
|
return True
|
||
|
|
||
|
prev_event = None
|
||
|
while pattern.match(event.raw_text):
|
||
|
prev_message = getattr(prev_event, 'message', None)
|
||
|
if event.is_reply:
|
||
|
prev_message = await event.reply_message
|
||
|
if not (isinstance(prev_message, Message)
|
||
|
and pattern.match(prev_message.message)):
|
||
|
return
|
||
|
|
||
|
if prev_message:
|
||
|
if event.message.from_id != prev_message.from_id:
|
||
|
await event.reply('and my axe!')
|
||
|
return
|
||
|
if event.is_reply:
|
||
|
return
|
||
|
|
||
|
prev_event = event
|
||
|
event = await borg.await_event(
|
||
|
events.NewMessage(chats=await event.input_chat), next_match
|
||
|
)
|