Format globaltop channel labels
This commit is contained in:
@@ -1079,6 +1079,20 @@ class DuckHuntBot:
|
|||||||
bold = self.messages.messages.get('colours', {}).get('bold', '')
|
bold = self.messages.messages.get('colours', {}).get('bold', '')
|
||||||
reset = self.messages.messages.get('colours', {}).get('reset', '')
|
reset = self.messages.messages.get('colours', {}).get('reset', '')
|
||||||
|
|
||||||
|
def _display_channel_key(channel_key: str) -> str:
|
||||||
|
"""Convert internal channel keys to a user-friendly label."""
|
||||||
|
if not isinstance(channel_key, str) or not channel_key:
|
||||||
|
return "unknown"
|
||||||
|
if channel_key.startswith('#') or channel_key.startswith('&'):
|
||||||
|
return channel_key
|
||||||
|
if channel_key == '__global__':
|
||||||
|
return "global"
|
||||||
|
if channel_key == '__pm__':
|
||||||
|
return "pm"
|
||||||
|
if channel_key == '__unknown__':
|
||||||
|
return "unknown"
|
||||||
|
return channel_key
|
||||||
|
|
||||||
entries = [] # (xp, player_nick, channel_key)
|
entries = [] # (xp, player_nick, channel_key)
|
||||||
for channel_key, player_nick, player_data in self.db.iter_all_players():
|
for channel_key, player_nick, player_data in self.db.iter_all_players():
|
||||||
if not isinstance(player_data, dict):
|
if not isinstance(player_data, dict):
|
||||||
@@ -1102,9 +1116,10 @@ class DuckHuntBot:
|
|||||||
medals = {1: "🥇", 2: "🥈", 3: "🥉"}
|
medals = {1: "🥇", 2: "🥈", 3: "🥉"}
|
||||||
for idx, (xp, player_nick, channel_key) in enumerate(top5, 1):
|
for idx, (xp, player_nick, channel_key) in enumerate(top5, 1):
|
||||||
prefix = medals.get(idx, f"#{idx}")
|
prefix = medals.get(idx, f"#{idx}")
|
||||||
parts.append(f"{prefix} {player_nick} ({channel_key}) {xp}XP")
|
channel_label = _display_channel_key(channel_key)
|
||||||
|
parts.append(f"{prefix} {player_nick} in {channel_label}: {xp}XP")
|
||||||
|
|
||||||
line = f"Global Top XP: {bold}{reset} " + " | ".join(parts)
|
line = f"Top XP (all channels): {bold}{reset} " + " | ".join(parts)
|
||||||
self.send_message(channel, line)
|
self.send_message(channel, line)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"Error in handle_globaltop: {e}")
|
self.logger.error(f"Error in handle_globaltop: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user