1
from typing import Any, Protocol, cast
3
from mako.lookup import TemplateLookup
6
class FormatTemplate(Protocol):
8
Protocol for correct templates typing.
10
Allow use format() instead of render() method that needed to maintain consistency
11
with regular string formatting.
14
def format(self, **kwargs: Any) -> str:
15
"""Render template."""
18
class TemplateFormatterLookup(TemplateLookup):
19
"""Represent a collection of templates from the local filesystem."""
21
def get_template(self, uri: str) -> FormatTemplate:
22
"""Cast default mako template to FormatTemplate."""
24
def _format(**kwargs: Any) -> str:
25
return template.render(**kwargs).rstrip()
27
template = super().get_template(uri)
28
template.format = _format
29
return cast(FormatTemplate, template)
32
lookup = TemplateFormatterLookup(
33
directories=["app/resources/templates"],
34
input_encoding="utf-8",
35
strict_undefined=True,
38
BOT_PROJECT_NAME = "gpq-bot"
39
BOT_DISPLAY_NAME = "GPQBot"
41
INPUT_FIDBACK = "Запись выполнена"
42
FIDBACK_SUB = "Укажите свою площадку ПТЛ, ТП, ЗП"
43
FIDBACK_DIV = "Укажите свое подразделение (Цех)"
44
FIDBACK_TEXT = "Укажите выше предложение или замечание"
46
CANCEL_COMMAND = "CANCEL"
47
CANCEL_TASK_COMMAND = "NO"
48
CONFIRM_TASK_COMMAND = "YES"
49
CHAT_CREATED_TEMPLATE = lookup.get_template("chat_created.txt.mako")
50
INPUT_TASK_TITLE = "Введите название задачи:"
51
FILE_NOT_DESCRIPTION = "Чтобы указать **описание** задачи, введите его **текстом**"
52
FILE_NOT_TITLE = "Чтобы указать **название** задачи, введите его **текстом**"
53
HELP_COMMAND_MESSAGE_TEMPLATE = lookup.get_template("help.txt.mako")
54
HELP_COMMAND_DESCRIPTION = "Показать список команд"
56
INCORRECT_CONTACT = "Вы некорректно отметили коллегу. Пожалуйста, укажите **только одного** пользователя **через @@**"
57
LIST_TASKS_LABEL = "Показать список задач"
58
NEXT_PAGE_LABEL_TEMPLATE = lookup.get_template("forward.txt.mako")
59
PREV_PAGE_LABEL_TEMPLATE = lookup.get_template("back.txt.mako")
61
TASK_APPROVE_TEMPLATE = lookup.get_template("task_approve.txt.mako")
62
TASK_STATUS_TEMPLATE = lookup.get_template("status.txt.mako")
63
TASKS_NUM_TEMPLATE = lookup.get_template("tasks_num.txt.mako")
65
"Вы не прикрепили файл к сообщению. Прикрепите файл или пропустите этот шаг."
70
"Я чат-бот GPTQBot и ты в главном меню",
71
"Раздел статистика КН и АИК покажет количество отклонений по интересующему цеху",
72
"Обратная связь - здесь можно указать свои пожелания, вопросы к дирекции качества",
76
SUCCESS_FIDBACK = "Запись успешно создана!"
77
DIVISION = "Укажите свое подразделение"
78
SUBDIVISION = "Укажите вашу площадку"
79
RETURN_BACK = "Вернуться назад"
82
OTHER_CTS_WARNING = "\n".join(
84
"Данный бот зарегистрирован на другом CTS.",
85
"Обратитесь к администратору, чтобы он зарегистрировал бота на вашем CTS",
90
OTHER_CTS_WITH_BOT_MENTION_WARNING = "\n".join(
92
"Данный бот зарегистрирован на другом CTS.",
93
"Перейдите по `меншну`, чтобы попасть к вашему боту",
97
SOMETHING_GOES_WRONG = "\n".join(
99
"При обработке сообщения или нажатия на кнопку произошла непредвиденная ошибка.",
100
"Пожалуйста, сообщите об этом вашему администратору бота.",
104
DEFAULT_MESSAGE = "\n\n".join(
106
"К сожалению, я не знаю данной команды.",
107
"Для дальнейшей работы вернитесь в главное меню",