Разработать telegram
-бота для транслитерации из кириллицы в латиницу на базе библиотеки Юлия
.
- В "движке" бота для выполнения транслитерации должна быть использована библиотека
Юлия
- https://iuliia.ru/. - Язык программирования - любой на выбор из списка реализаций библиотеки
Юлия
- https://iuliia.ru/#code. - Для взаимодействия с
telegram
сервером рекомендуется использовать лубую совместимую готовую библиотеку на выбор изopen-source
реализаций. - Рекомендуется предпочитать максимально свободные лицензии в коде программы и её зависимостях.
- Обрабатывать сообщения и команды только от пользователей состоящих в заданной группе в
telegram
(задаётся в настройках программы). - Поддерживать независимый конечный автомат состояний для каждого пользователя.
- Обеспечить обработку следующих команд:
/start
- сбрасывает состояние бота (для текущего пользователя) в начальное./standard
- выбор стандарта кодирования (из тех, что поддерживаются библиотекойЮлия
).- Cледующее за командой
/standard
сообщение интерпретируется как выбранный пользователем стандарт. - Обеспечить графическое выпадающее меню с выбором стандарта для "юзабилити".
- Запоминать выбранный пользователем стандарт до завершения работы программы.
- Cледующее за командой
/translate
- транслитерация следующего текстового сообщения согласно выбранному ранее стандарту кодирования.- Если стандарт кодирования не был выбран пользователем ранее (командой
/standard
), то перейти в подсостояние выбора стандарта кодирования (предупредив об этом пользователя), затем продолжить выполнение транслитерации. - Ответом на сообщение пользователя с текстом для транслитерации отправлять перекодированное сообщение.
- Если стандарт кодирования не был выбран пользователем ранее (командой
- Перечислять все поддерживаемые команды в графическом выпадающем меню для "юзабилити".
- Проверять введённые команды и их параметры на корректность - "защита от дурака".
- Если в процессе выполнения команды происходит ошибка (ввод неверных данных, исключение и проч.), то бот сообщает об этом пользователю и завершает выполнение текущей команды.
- Если бот не находится в состоянии выполнения какой-либо команды, то любое текстовое сообщение не соответствующее регулярному выражению
^\s*/.+$
интерпретировать как неявный запрос на транслитерацию (команда/translate
).
П: Привет, Юлия Щеглова.
Б: > Привет, Юлия Щеглова.
Выберите один из возможных вариантов стандарта кодирования.
П: ГОСТ Р 52290-2004
Б: > ГОСТ Р 52290-2004
Выбран стандарт "ГОСТ Р 52290-2004".
Б: > Привет, Юлия Щеглова.
Privet, Yuliya Shcheglova.
П: Пока, Юлька!
Б: > Пока, Юлька!
Poka, Yul'ka!
П: /translate
Б: > /translate
Введите сообщение для транслитерации.
П: Ю. Щ.
Б: > Ю. Щ.
Yu. Shch.