|
9 | 9 | """ |
10 | 10 | from __future__ import annotations |
11 | 11 |
|
| 12 | +import logging |
| 13 | + |
| 14 | +from sqlalchemy.exc import SQLAlchemyError |
| 15 | + |
12 | 16 | from sopel import plugin |
13 | 17 | from sopel.tools.time import seconds_to_human |
14 | 18 |
|
15 | 19 |
|
| 20 | +logger = logging.getLogger(__name__) |
| 21 | + |
| 22 | + |
16 | 23 | @plugin.command('seen') |
17 | 24 | @plugin.output_prefix('[seen] ') |
18 | 25 | def seen(bot, trigger): |
@@ -63,9 +70,12 @@ def seen(bot, trigger): |
63 | 70 | @plugin.require_chanmsg |
64 | 71 | def note(bot, trigger): |
65 | 72 | 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