Dynamische Emojis je nach Zugart

This commit is contained in:
Kaaninchen
2026-07-20 21:22:09 +02:00
parent 5d651640ec
commit 068eaa7b85
4 changed files with 32 additions and 6 deletions
+14
View File
@@ -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"],
}
+3 -2
View File
@@ -62,10 +62,11 @@ def build_info_embed() -> discord.Embed | None:
embed.add_field(name="Route", value="\n".join(route_lines)) embed.add_field(name="Route", value="\n".join(route_lines))
slogans = operator_infos.get("slogan") slogans = operator_infos.get("slogan")
footer_notice = f"Daten großzügig bereitgestellt von dbf.finalrewind.org • Typ: {handlers.train_type}"
footer_text = ( footer_text = (
f"{random.choice(slogans)}Daten großzügig bereitgestellt von dbf.finalrewind.org" f"{random.choice(slogans)}{footer_notice}"
if slogans else 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") embed.set_footer(text=footer_text, icon_url="https://dbf.finalrewind.org/static/icons/icon-96x96.png")
+6 -4
View File
@@ -2,13 +2,13 @@ import discord
from datetime import datetime, timedelta from datetime import datetime, timedelta
import asyncio import asyncio
from src.config import config 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 current = None
_scheduled_task: asyncio.Task | None = None _scheduled_task: asyncio.Task | None = None
async def rename_vc(bot: discord.Bot): 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"])) guild = bot.get_guild(int(config["server"]))
if guild is None: 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']}" train_name = f"{train} nach {current['destination']} von {current['station']}"
logger(f"Vorbereitung auf {train_name} (typ: {train_type})") logger(f"Vorbereitung auf {train_name} (typ: {train_type})")
arrival = datetime.fromisoformat((train_info["arrival"])) arrival = datetime.fromisoformat((train_info["arrival"]))
formatting = get_channel_formatting(train_type)
_scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, arrival)) _scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, arrival))
print("-----------------------------------------") print("-----------------------------------------")
logger(f"Umstieg: {train_name}") 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") 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')}") await channel.set_status(f"Ankunft um {arrival.strftime('%H:%M')}")
logger(f"Name geändert!") logger(f"Name geändert!")
+9
View File
@@ -5,6 +5,7 @@ import importlib
from datetime import datetime from datetime import datetime
from src.config import config from src.config import config
import src.data.operators as operators_module import src.data.operators as operators_module
import src.data.emojis as emojis
_operators_mtime = None _operators_mtime = None
@@ -128,6 +129,14 @@ def operator_metadata(operator):
return operators_module.OPERATORS.get(operator, operators_module.OPERATORS["fallback"]) 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"): def logger(msg, log_type="info"):
status = log_type.upper() status = log_type.upper()
current_time = datetime.now().strftime('%X') current_time = datetime.now().strftime('%X')