"""Themed birthday messages dictionaries.""" import random # Themes list THEMES = [ "Автомобили", "Спорт", "Танцы", "Музыка", "Аниме", "Игры", "Книги", "Кино", "Путешествия", "Еда", "Технологии", "Искусство", ] # Emoji dictionary for each theme THEME_EMOJIS = { "Автомобили": "🚗", "Спорт": "⚽", "Танцы": "💃", "Музыка": "🎵", "Аниме": "🦊", "Игры": "🎮", "Книги": "📚", "Кино": "🎬", "Путешествия": "✈️", "Еда": "🍕", "Технологии": "💻", "Искусство": "🎨", } def get_theme_emoji(theme: str) -> str: """Get emoji for the given theme.""" return THEME_EMOJIS.get(theme, "🎉") # Default emoji # Birthday greeting opening phrases (random variations) BIRTHDAY_GREETINGS = [ "С днем рождения", "Поздравляю с днем рождения", "С твоим днем рождения", "Поздравляю тебя с днем рождения", "Поздравляю с днем рождения", ] def get_birthday_greeting_opening() -> str: """Get a random birthday greeting opening phrase.""" return random.choice(BIRTHDAY_GREETINGS) # Birthday messages for each theme BIRTHDAY_MESSAGES = { "Автомобили": [ "желаю тебе купить бугатти!", "пусть твой стальной конь всегда заводится с первого раза!", "желаю тебе обновить свой автопарк!", "чтобы у тебя проблем с машиной не было никогда!", ], "Спорт": [ "желаю тебе новых спортивных достижений!", "пусть каждый день будет полон энергии!", "желаю тебе побить все личные рекорды!", "пусть здоровье будет крепким, а дух сильным!", "желаю достичь своих целей!", ], "Танцы": [ "желаю тебе танцевать до упаду!", "пусть каждый танец будет особенным!", "желаю тебе найти свой ритм!", "пусть музыка всегда вдохновляет тебя!", "пусть жизнь будет грациозной, как и твои танцы!", "встречай свой праздник в танце!", ], "Музыка": [ "пусть каждый день звучит как любимый альбом!", "желаю дальше двигаться по жизни только с ритмом!", "желаю эпичных плейлистов под каждый случай!", "желаю чтобы концерт твоих любимых исполнителей был неподалеку!" ], "Аниме": [ "пусть жизнь будет как вечереника из Grand Blue!", "встречай свой день рождения в 24 кадра!", "качественных дабов от любимых дабберов тебе!", "желаю тебе продолжения любимых тайтлов!", "пусть твоя жизнь будет лучше финала Атаки Титанов!", "желаю встречать новый день под любимый опенинг!", ], "Игры": [ "чтобы твой вишлист никогда не пустовал!", "с тебя платина в этом году!", "тиммейтов в пачку, да бабок тачку!", "чтоб раскиды на мираже залетали с первого раза!", "чтобы хук стоял и на байбек всегда было!!", "желаю пройти тайтлы, которые ты откладывал в долгий ящик!", ], "Книги": [ "пусть каждая книга открывает новые миры!", "желаю тебе найти свою книгу года!", "пусть чтение всегда приносит удовольствие!", "желаю тебе открыть новых любимых авторов!", ], "Кино": [ "пусть каждый фильм оставляет яркие впечатления!", "пусть кино всегда вдохновляет тебя!", "желаю тебе открыть новых любимых режиссеров!", "побольше попкорна, поменьше некачественных дабов!", "пусть твое знание фильмов впечатляет и дальше!" ], "Путешествия": [ "пусть каждое путешествие будет незабываемым!", "желаю тебе открыть новые страны и города!", "пусть дороги ведут к интересным местам!", "пусть каждый отпуск будет полон приключений!", ], "Еда": [ "желаю тебе открыть новые вкусы!", "пусть кулинарные эксперименты всегда удаются!", "желаю тебе найти свое идеальное блюдо!", "пусть каждый ресторан удивляет тебя!", ], "Технологии": [ "пусть код компилируется с первого раза!", "пусть баги обходят тебя стороной!", "пусть каждый проект приносит успех!", "поменьше отвалов, побольше DDR5!", ], "Искусство": [ "желаю тебе вдохновения для новых творений!", "пусть каждый арт-проект будет особенным!", "желаю тебе найти свой уникальный стиль!", "желаю тебе открыть новые художественные горизонты!", ], } def get_birthday_message(theme: str) -> str: """Get a random birthday message for the given theme.""" if theme not in BIRTHDAY_MESSAGES: theme = "Музыка" # Default theme messages = BIRTHDAY_MESSAGES.get(theme, BIRTHDAY_MESSAGES["Музыка"]) return random.choice(messages) def format_birthday_greeting(first_name: str, theme: str, user_id: int) -> str: """Format a complete birthday greeting with emoji and user link.""" emoji = get_theme_emoji(theme) greeting_opening = get_birthday_greeting_opening() message = get_birthday_message(theme) # Format: party popper + theme emoji + greeting + bold name with link user_link = f"tg://user?id={user_id}" return f"🎉 {greeting_opening}, {emoji} {first_name}, {message}" def format_multiple_birthdays_greetings(users_data: list[tuple[str, str, int]]) -> str: """Format greetings for multiple users celebrating birthday today. Args: users_data: List of tuples (first_name, theme, user_id) Returns: Formatted message with all greetings """ count = len(users_data) # Determine correct form of "человек" if count == 1: person_word = "человек" elif count in [2, 3, 4]: person_word = "человека" else: person_word = "человек" header = f"🎉 Сегодня день рождения отмечают {count} {person_word}:\n\n" greetings = [] for first_name, theme, user_id in users_data: emoji = get_theme_emoji(theme) greeting_opening = get_birthday_greeting_opening() message = get_birthday_message(theme) user_link = f"tg://user?id={user_id}" greeting = f"{emoji} {first_name} — {greeting_opening.lower()}, {message}" greetings.append(greeting) return header + "\n\n".join(greetings)