!seen seen-info should be per-channel, not network wide

closes #196
This commit is contained in:
jesopo 2019-10-30 11:42:00 +00:00
parent 4f5dbbb6e0
commit 35cc2d539d

View file

@ -7,7 +7,7 @@ from src import ModuleManager, utils
class Module(ModuleManager.BaseModule):
def _change_seen(self, channel, user, action):
user.set_setting("seen", time.time())
user.set_setting("seen-info", {"action": action})
channel.set_user_setting(user.get_id(), "seen-info", {"action": action})
@utils.hook("formatted.message.channel")
@utils.hook("formatted.notice.channel")
@ -30,14 +30,18 @@ class Module(ModuleManager.BaseModule):
seen_seconds = user.get_setting("seen")
if seen_seconds:
seen_info = user.get_setting("seen-info", None)
seen_info = "" if seen_info == None else (
" (%s%s)" % (seen_info["action"], utils.consts.RESET))
seen_info = None
if event["is_channel"]:
seen_info = event["target"].get_user_setting(
event["user"].get_id(), "seen-info", None)
if seen_info:
seen_info = " (%s%s)" % (seen_info["action"],
utils.consts.RESET)
since = utils.to_pretty_time(time.time()-seen_seconds,
max_units=2)
event["stdout"].write("%s was last seen %s ago%s" % (
event["args_split"][0], since, seen_info))
event["args_split"][0], since, seen_info or ""))
else:
event["stderr"].write("I have never seen %s before." % (
event["args_split"][0]))