forked from uniborg/uniborg
port axe from kateborg
this more of an exercise to learn asyncio than it is an actual plugin
This commit is contained in:
parent
98bdf910e4
commit
54468c493f
|
@ -0,0 +1,40 @@
|
||||||
|
# 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
|
||||||
|
)
|
Loading…
Reference in New Issue