Skip to content

Commit

Permalink
Docstring, typehints
Browse files Browse the repository at this point in the history
  • Loading branch information
teanus committed Aug 2, 2024
1 parent 16d606e commit fe2555a
Show file tree
Hide file tree
Showing 9 changed files with 462 additions and 12 deletions.
10 changes: 10 additions & 0 deletions add_super_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,14 @@


async def console_add_super_admin() -> str:
"""
Добавляет супер-администратора через консоль.
:return: Возвращает строку с результатом выполнения.
:rtype: str
"""
root = "template"

if not config.console()["give_role"]:
return render_template_jinja(
"add_super_admin/false_give_role.jinja2", root_directory_name=root
Expand All @@ -31,18 +38,21 @@ async def console_add_super_admin() -> str:
"add_super_admin/messages.jinja2", root_directory_name=root
)
)

if admin_id == "":
return render_template_jinja(
"add_super_admin/exit.jinja2", root_directory_name=root
)

context = {"admin_id": admin_id}

if await db.check_admin(admin_id):
return render_template_jinja(
"add_super_admin/admin_exists.jinja2", root_directory_name=root, **context
)

await db.add_admin(admin_id)

return render_template_jinja(
"add_super_admin/add_admin.jinja2", root_directory_name=root, **context
)
12 changes: 11 additions & 1 deletion bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,24 @@


async def on_startup() -> None:
"""
Обработчик событий при запуске бота. Выполняет добавление супер-администратора
и логирует сообщение о запуске.
:return: None
"""
await console_add_super_admin()
text = render_template_jinja("on_startup.jinja2", "template/bot")
print(text)
logger.info(text)


async def on_shutdown() -> None:
"""
Обработчик событий при остановке бота. Логирует сообщение о завершении работы.
:return: None
"""
text = render_template_jinja("on_shutdown.jinja2", "template/bot")
print(text)
logger.info(text)
Expand All @@ -50,7 +61,6 @@ async def main():
dp.include_router(client_router)
dp.include_router(admin_router)
dp.include_router(common_router)
# Регистрация обработчиков для каждого роутера
await register_other_handlers()
await register_client_handlers()
await register_admin_handlers()
Expand Down
18 changes: 18 additions & 0 deletions custom_filters/text_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,26 @@


class TextInFilter(BaseFilter):
"""
Фильтр для проверки наличия текста сообщения в заданном списке текстов.
:param texts: Список строк для проверки.
"""

def __init__(self, texts: List[str]):
"""
Инициализация фильтра.
:param texts: Список строк для проверки.
"""
self.texts = [text.lower() for text in texts]

async def __call__(self, message: Message) -> bool:
"""
Проверка, содержится ли текст сообщения в списке текстов.
:param message: Сообщение Telegram.
:return: True, если текст сообщения содержится в списке, иначе False.
:rtype: bool
"""
return message.text.lower() in self.texts
7 changes: 7 additions & 0 deletions keyboards/main_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@


async def get_main_menu(user_id: int) -> types.ReplyKeyboardMarkup:
"""
Получает главное меню в зависимости от роли пользователя.
:param user_id: ID пользователя.
:return: Главное меню в виде клавиатуры.
:rtype: types.ReplyKeyboardMarkup
"""
if await db.check_admin(user_id):
return kb_admin.main_menu
elif await db.user_exists(user_id):
Expand Down
8 changes: 8 additions & 0 deletions logger/group_logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@


async def groups_logger(prefix: str, user_id: int, message: str) -> None:
"""
Логирует сообщения в группы, если включен лагер групп.
:param prefix: Префикс сообщения.
:param user_id: ID пользователя.
:param message: Сообщение для логирования.
:return: None
"""
if config.telegram().get("on_logger_group"):
is_admin = await db.check_admin(user_id)
context = {
Expand Down
7 changes: 7 additions & 0 deletions minecraft/rcon.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ def replace_color_tag(text: str) -> str:


def command_execute(command: str) -> Union[str, List[str]]:
"""
Выполняет команду через RCON и возвращает результат.
:param command: Команда для выполнения.
:return: Результат выполнения команды в виде строки или списка строк.
:rtype: Union[str, List[str]]
"""
try:
with MCRcon(
getenv("rcon_host"), getenv("rcon_password"), int(getenv("rcon_port"))
Expand Down
Loading

0 comments on commit fe2555a

Please sign in to comment.