import html # Local imports - metrics from .metrics import metrics, track_errors, track_time constants = { "HELLO_MESSAGE": "Привет, username!👋🏼&Меня зовут Виби, я бот канала 'Влюбленный Бийск'❤🤖" "&Я был создан для того, чтобы помочь тебе выложить пост в наш канал и если это необходимо, связаться с админами ✍✉" "&Так же я могу выдать тебе набор стикеров, где я буду главным героем🦸‍♂" "&Наш бот голосового общения переехал ко мне! Доступен по кнопке 🎤Голосовой бот &Там можно послушать о чем говорит наш город🎧" "&Предлагай свой пост мне и я обязательно его опубликую😉" "&Для продолжения взаимодействия воспользуйся меню внизу твоего дисплея⬇" "&&Если что-то пошло не так: введи в чат команду /start или /restart, это перезапустит сценарий сначала." "Почитать инструкцию к боту можно по команде /help. Если есть вопросы, то пиши в личку: @Kerrad1" "&Не жми кнопку несколько раз если я не ответил с первого раза. Возможно ведутся тех.работы и я отвечу позже" "&&Группа в ВК: https://vk.com/love_bsk" "&Канал в ТГ: https://t.me/love_bsk", "SUGGEST_NEWS": "username, окей, жду от тебя текст поста🙌🏼" "&Обрати внимание, что я умный и смогу из твоего текста понять команды указанные ниже😉" "&Если хочешь чтобы пост был опубликован анонимно, напиши в любом месте своего поста слово 'анон'." "&Если хочешь опубликовать пост не анонимно, то напиши 'не анон', 'неанон' или не пиши ничего." "&&❗️❗️Я обучен только на команды, указанные мной выше👆" "&❗️❗️Проверь, чтобы указание авторства было выполнено так как я попросил, иначе пост будет выложен не корректно" "&Пост будет опубликован только в группе ТГ📩", "CONNECT_WITH_ADMIN": "username, напиши свое обращение или предложение✍️" "&Мы рассмотрим и ответим тебе в ближайшее время☺️❤️", "DEL_MESSAGE": "username, напиши свое обращение или предложение✍" "&Мы рассмотрим и ответим тебе в ближайшее время☺❤", "BYE_MESSAGE": "Если позднее захочешь предложить еще один пост или обратиться к админам с вопросом, то просто пришли в чат команду 👉 /restart" "&&И тебе пока!👋🏼❤️", "USER_ERROR": "Увы, я не понимаю тебя😐💔 Выбери один из пунктов в нижнем меню, а затем пиши.", "QUESTION": "Сообщение успешно отправлено❤️ Ответим, как только сможем😉", "SUCCESS_SEND_MESSAGE": "Пост успешно отправлен❤️ Ожидай одобрения😊", # Voice handler messages "MESSAGE_FOR_STANDUP": "Отлично, ты вошел в режим стендапа 📣" "&Это свободное пространство, в котором может высказаться каждый житель нашего города, и он будет услышан🙌🏼" "&Для того чтобы высказаться, нажми кнопку: 'Высказаться' и запиши голосовое сообщение, оно выпадет анонимно кому-то другому🗣" "&Для того чтобы послушать о чем говорит наш город, нажми кнопку: 'Послушать'👂" "&Ты можешь анонимно пообщаться, поделиться чем-то важным, обратиться напрямую к жителям🤝 Также можешь выступить перед аудиторией (спеть песню, рассказать стихотворение, шутку)🎤" "&❗️Но пожалуйста не оскорбляй никого, и будь вежлив.", "WELCOME_MESSAGE": "Привет.", "DESCRIPTION_MESSAGE": "Здесь можно послушать голосовые сообщения от совершенно незнакомых людей из Бийска", "ANALOGY_MESSAGE": "Это почти как написать письмо, положить его в бутылку и швырнуть в океан. Никогда не узнаешь, послушал его кто-то или нет и ответить тоже не получится..", "RULES_MESSAGE": "Записывать можно всё что угодно — никаких правил нет. Главное — твой голос, хотя бы на 5-10 секунд", "ANONYMITY_MESSAGE": "Здесь всё анонимно: тот, кому я отправлю твое сообщение, не узнает ни твое имя, ни твой аккаунт (так что можно не стесняться говорить то, что не стал(а) бы выкладывать в собственные соцсети)", "SUGGESTION_MESSAGE": "Если не знаешь, что сказать, можешь просто прочитать любое текстовое сообщение из недавно полученных или отправленных (или спеть, рассказать стихотворенье)", "EMOJI_INFO_MESSAGE": "Любые войсы будут помечены эмоджи. Твой эмоджи - {emoji}Таким эмоджи будут помечены твои сообщения для других Но другие люди не узнают кто за каким эмоджи скрывается:)", "HELP_INFO_MESSAGE": "Так же можешь ознакомиться с инструкцией к боту по команде /help", "FINAL_MESSAGE": "Ну всё, достаточно инструкций. записывайся! Микрофон твой - 🎤", "HELP_MESSAGE": "Когда-нибудь здесь будет инструкция к боту. А пока по вопросам пиши в личку: @Kerrad1 или в Связаться с админами", "VOICE_SAVED_MESSAGE": "Окей, сохранил!👌", "LISTENINGS_CLEARED_MESSAGE": "Прослушивания очищены. Можешь начать слушать заново🤗", "NO_AUDIO_MESSAGE": "Прости, ты прослушал все аудио😔. Возвращайся позже, возможно наша база пополнится", "UNKNOWN_CONTENT_MESSAGE": "Я тебя не понимаю🤷‍♀️ запиши голосовое", "RECORD_VOICE_MESSAGE": "Хорошо, теперь пришли мне свое голосовое сообщение", } @track_time("get_message", "message_service") @track_errors("message_service", "get_message") def get_message(username: str, type_message: str): if username is None: # Поведение ожидаемое тестами: TypeError при username=None raise TypeError("username is None") message = constants[type_message] # Экранируем потенциально проблемные символы для HTML message = message.replace("username", html.escape(username)).replace("&", "\n") return message