Do not load settings which are not active (module not loaded)

Restart the bot, on heavy DB errors, with an 30 seconds delay (like: all connections terminated by DB, table_definition_cache exhausted)
Fix for channel prefixing (org <-> priv)
This commit is contained in:
2021-11-30 16:57:31 +01:00
parent c100b0ea76
commit bf6c1842d2
17 changed files with 57 additions and 29 deletions
+2 -2
View File
@@ -86,8 +86,8 @@ class CloakController:
timer_name = "Lower City Cloak"
else:
raise Exception(f"Unknown cloak action '{event_data.action}'")
self.timer_controller.add_timer(timer_name, event_data.sender.char_id, "org", int(time.time()), 3600)
if self.timer_controller:
self.timer_controller.add_timer(timer_name, event_data.sender.char_id, "org", int(time.time()), 3600)
def get_cloak_status(self, row):
one_hour = 3600
+5 -5
View File
@@ -40,14 +40,14 @@ class OrgChannelController:
def start(self):
self.message_hub_service.register_message_destination(
self.MESSAGE_SOURCE, self.handle_incoming_relay_message,
["private_channel", "websocket_relay", "cloak_reminder", "wave_counter", "shutdown_notice"],
[self.MESSAGE_SOURCE])
self.MESSAGE_SOURCE, self.handle_incoming_relay_message,
["private_channel", "websocket_relay", "cloak_reminder", "wave_counter", "shutdown_notice"],
[self.MESSAGE_SOURCE])
def handle_incoming_relay_message(self, ctx):
# {'source': 'org_channel', 'sender': {'char_id': 384018, 'name': 'Risianna'}, 'message': 'Sooo', 'formatted_message': "[<cyan>Org</cyan>] <a href='user://Risianna'>Risianna</a>: Sooo"}
if not self.display_main().get_value() == "1" and ctx.source == "private_channel" and ctx.sender:
name = f"{OrgChannelController.ORG_CHANNEL_PREFIX} <yellow>{ctx.sender.name}</yellow>"
if self.display_main().get_value() and ctx.source == "private_channel" and ctx.sender:
name = f"[<cyan>Priv</cyan>] <yellow>{ctx.sender.name}</yellow>"
if account := self.account_service.get_account(ctx.sender.char_id):
if account.main != ctx.sender.char_id:
name += f" (<yellow>{account.name}</yellow>)"
@@ -217,6 +217,8 @@ class OrgRosterController:
self.db.exec("INSERT INTO org_activity (message, time) VALUES(?, ?)", [ext_msg.get_message(), time.time()])
def process_org_msg(self, char_name, new_mode, actee=None):
# TODO: errors out on newly created chars, which do not show up on PoRK yet.
# self.pork.get_character_info(char_name)
char_id = self.character_service.resolve_char_to_id(char_name)
org_member = self.get_org_member(char_id)
self.process_update(char_id, org_member.member if org_member else None, new_mode, actee)