From 100f4177446f8d61973b4d3cc1a60c35d55bcd96 Mon Sep 17 00:00:00 2001 From: udf Date: Wed, 28 Nov 2018 16:07:49 +0200 Subject: [PATCH] Only get self message from history if not a reply --- stdplugins/kbass_core.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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)