diff --git a/src/data/emojis.py b/src/data/emojis.py new file mode 100644 index 0000000..102da2e --- /dev/null +++ b/src/data/emojis.py @@ -0,0 +1,14 @@ +emoji_list = { + "Fallback": "🚉", + "Nahverkehr": "🚃", + "Höchstgeschwindigkeit": "🚄" +} + +train_types = { + "ICE": emoji_list["Höchstgeschwindigkeit"], + + "RE": emoji_list["Nahverkehr"], + "RB": emoji_list["Nahverkehr"], + "ARV": emoji_list["Nahverkehr"], + "BRB": emoji_list["Nahverkehr"], +} \ No newline at end of file diff --git a/src/embeds.py b/src/embeds.py index 231b755..4eac767 100644 --- a/src/embeds.py +++ b/src/embeds.py @@ -62,10 +62,11 @@ def build_info_embed() -> discord.Embed | None: embed.add_field(name="Route", value="\n".join(route_lines)) slogans = operator_infos.get("slogan") + footer_notice = f"Daten großzügig bereitgestellt von dbf.finalrewind.org • Typ: {handlers.train_type}" footer_text = ( - f"{random.choice(slogans)} • Daten großzügig bereitgestellt von dbf.finalrewind.org" + f"{random.choice(slogans)} • {footer_notice}" if slogans else - "Daten großzügig bereitgestellt von dbf.finalrewind.org" + footer_notice ) embed.set_footer(text=footer_text, icon_url="https://dbf.finalrewind.org/static/icons/icon-96x96.png") diff --git a/src/handlers.py b/src/handlers.py index 0277e73..22b4ee9 100644 --- a/src/handlers.py +++ b/src/handlers.py @@ -2,13 +2,13 @@ import discord from datetime import datetime, timedelta import asyncio from src.config import config -from src.utils import random_connection, get_train_info, logger +from src.utils import random_connection, get_train_info, get_channel_formatting, logger current = None _scheduled_task: asyncio.Task | None = None async def rename_vc(bot: discord.Bot): - global current, train_name, train_info, _scheduled_task + global current, train_name, train_info, train_type, _scheduled_task guild = bot.get_guild(int(config["server"])) if guild is None: @@ -51,14 +51,16 @@ async def rename_vc(bot: discord.Bot): train_name = f"{train} nach {current['destination']} von {current['station']}" logger(f"Vorbereitung auf {train_name} (typ: {train_type})") arrival = datetime.fromisoformat((train_info["arrival"])) + formatting = get_channel_formatting(train_type) _scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, arrival)) print("-----------------------------------------") logger(f"Umstieg: {train_name}") - logger(f"Betreiber: {train_info['operators']}") + logger(f"Betreiber: {''.join(train_info['operators'])}") + logger(f"Train-Type: {train_type}") logger(f"Wenn der Name nicht geändert wird bin ich im Cooldown") - await channel.edit(name=f"{config['formatting']}{train_name}") + await channel.edit(name=f"{formatting}{train_name}") await channel.set_status(f"Ankunft um {arrival.strftime('%H:%M')}") logger(f"Name geändert!") diff --git a/src/utils.py b/src/utils.py index 6d95ee2..a2f267c 100644 --- a/src/utils.py +++ b/src/utils.py @@ -5,6 +5,7 @@ import importlib from datetime import datetime from src.config import config import src.data.operators as operators_module +import src.data.emojis as emojis _operators_mtime = None @@ -128,6 +129,14 @@ def operator_metadata(operator): return operators_module.OPERATORS.get(operator, operators_module.OPERATORS["fallback"]) +def get_channel_formatting(train_type): + formatting = config.get("formatting", "") + + train_emoji = emojis.train_types.get(train_type) + if train_emoji is None: + train_emoji = emojis.emoji_list.get("Fallback", "") + return f"{train_emoji} {formatting}" + def logger(msg, log_type="info"): status = log_type.upper() current_time = datetime.now().strftime('%X')