diff --git a/stdplugins/kbass_core.py b/stdplugins/kbass_core.py index cfa3738..1d1ebff 100644 --- a/stdplugins/kbass_core.py +++ b/stdplugins/kbass_core.py @@ -4,12 +4,29 @@ Contains code used by other kbass_* plugins 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 wrapper(function): @borg.on(util.admin_cmd(pattern)) async def wrapped(event, *args, **kwargs): await event.delete() - target = await util.get_target_message(borg, event) + target = await get_target_message(event) if not target: return return await function(event, target, *args, **kwargs)