Only get self message from history if not a reply

This commit is contained in:
udf 2018-11-28 16:07:49 +02:00
parent 7426cea6d2
commit 100f417744
Signed by: kate
GPG Key ID: E40724BAD73AF77B
1 changed files with 18 additions and 1 deletions

View File

@ -4,12 +4,29 @@ Contains code used by other kbass_* plugins
from uniborg import util from uniborg import util
async def get_target_message(event):
"""
If the event is a reply, returns the reply message if it's from us
If event is not a reply, then it tries to return the most recent message
from us
"""
target = await event.get_reply_message()
if event.is_reply and target.from_id == borg.uid:
return target
if target:
return None
async for target in borg.iter_messages(
await event.get_input_chat(), limit=20):
if target.out:
return target
def self_reply_cmd(borg, pattern): def self_reply_cmd(borg, pattern):
def wrapper(function): def wrapper(function):
@borg.on(util.admin_cmd(pattern)) @borg.on(util.admin_cmd(pattern))
async def wrapped(event, *args, **kwargs): async def wrapped(event, *args, **kwargs):
await event.delete() await event.delete()
target = await util.get_target_message(borg, event) target = await get_target_message(event)
if not target: if not target:
return return
return await function(event, target, *args, **kwargs) return await function(event, target, *args, **kwargs)