summaryrefslogtreecommitdiff
path: root/ircbot
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-11-04 23:19:52 +0800
committerMistivia <i@mistivia.com>2025-11-04 23:19:52 +0800
commit8dbcdce76cbd4cd3b2ad2dcfce5bf828d91aa07c (patch)
treecb0f93e5df84353fc1f1257f71b3792d42edb2d2 /ircbot
parent6c66b7c72013f8e335d93b28e743101883f30bb9 (diff)
better log
Diffstat (limited to 'ircbot')
-rw-r--r--ircbot/main.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/ircbot/main.py b/ircbot/main.py
index 3d5b4e8..a106dc1 100644
--- a/ircbot/main.py
+++ b/ircbot/main.py
@@ -96,7 +96,18 @@ def meet_cmd(chan, sender, args):
def log_command(chan, sender, args):
return f"https://raye.mistivia.com/irclog/view/?chan={chan[1:]}"
-LAST_SEEN = dict()
+def load_lastseen():
+ try:
+ with open("lastseen", "r") as fp:
+ return json.load(fp)
+ except:
+ return dict()
+
+LAST_SEEN = load_lastseen()
+
+def save_lastseen():
+ with open("lastseen", "w") as fp:
+ json.dump(LAST_SEEN, fp)
def get_greeting(chan, sender, args):
if sender == NICKNAME:
@@ -109,10 +120,12 @@ def get_greeting(chan, sender, args):
and sender in LAST_SEEN[chan] \
and time.time() - LAST_SEEN[chan][sender] < 300:
LAST_SEEN[chan][sender] = time.time()
+ save_lastseen()
return ''
if chan not in LAST_SEEN:
LAST_SEEN[chan] = dict()
LAST_SEEN[chan][sender] = time.time()
+ save_lastseen()
return "Dōmo, " + sender + ' san.'
@command("join")
@@ -463,6 +476,7 @@ class IRCBot:
for chan in LAST_SEEN:
if sender_nick in LAST_SEEN[chan]:
LAST_SEEN[chan][sender_nick] = time.time()
+ save_lastseen()
elif command == 'PART':
args = params
if len(params) >= 1:
@@ -471,6 +485,7 @@ class IRCBot:
chan = trailing
if chan in LAST_SEEN:
LAST_SEEN[chan][sender_nick] = time.time()
+ save_lastseen()
elif command == "PRIVMSG":
if sender_nick == NICKNAME:
return