import html # Local imports - metrics from .metrics import ( metrics, track_time, track_errors ) 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