Skip to content

Commit fbfb8e0

Browse files
SnoopJExirel
andcommitted
seen: catch database write errors
Co-authored-by: Florian Strzelecki <[email protected]>
1 parent e45d69b commit fbfb8e0

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

sopel/modules/seen.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,17 @@
99
"""
1010
from __future__ import annotations
1111

12+
import logging
13+
14+
from sqlalchemy.exc import SQLAlchemyError
15+
1216
from sopel import plugin
1317
from sopel.tools.time import seconds_to_human
1418

1519

20+
logger = logging.getLogger(__name__)
21+
22+
1623
@plugin.command('seen')
1724
@plugin.output_prefix('[seen] ')
1825
def seen(bot, trigger):
@@ -63,9 +70,12 @@ def seen(bot, trigger):
6370
@plugin.require_chanmsg
6471
def note(bot, trigger):
6572
nick = trigger.nick
66-
# as of Sopel 8, `trigger.time` is Aware, meaning we should store its value
67-
# for timezone safety when comparing it later
68-
bot.db.set_nick_value(nick, 'seen_timestamp', trigger.time.timestamp())
69-
bot.db.set_nick_value(nick, 'seen_channel', trigger.sender)
70-
bot.db.set_nick_value(nick, 'seen_message', trigger)
71-
bot.db.set_nick_value(nick, 'seen_action', trigger.ctcp is not None)
73+
try:
74+
# as of Sopel 8, `trigger.time` is Aware, meaning we should store its value
75+
# for timezone safety when comparing it later
76+
bot.db.set_nick_value(nick, 'seen_timestamp', trigger.time.timestamp())
77+
bot.db.set_nick_value(nick, 'seen_channel', trigger.sender)
78+
bot.db.set_nick_value(nick, 'seen_message', trigger)
79+
bot.db.set_nick_value(nick, 'seen_action', trigger.ctcp is not None)
80+
except SQLAlchemyError as error:
81+
logger.error("Unable to save seen, database error: %s" % error)

0 commit comments

Comments
 (0)