add comments to all functions

This commit is contained in:
2024-06-10 11:40:03 +07:00
parent 14ad9f2b28
commit f3bfe0fa8c
4 changed files with 123 additions and 10 deletions
+47 -7
View File
@@ -8,7 +8,14 @@ from DB import UseDB
from get import fetch_timetable_data, get_timetable_for_day
def get_group_id(user_id):
def get_group_id(user_id: int) -> int | None:
"""
Функция для получения id группы по id пользователя
:param user_id: int - id пользователя
:return: int | None - либо id группы полученный по id пользователя или ничего
"""
db = UseDB("users")
if db.find_document({"user_id": user_id}):
return db.find_document({"user_id": user_id})[0]["group_id"]
@@ -16,7 +23,14 @@ def get_group_id(user_id):
return None
async def on_notification(msg: Message):
async def on_notification(msg: Message) -> None:
"""
Функция для отправки уведомлений пользователя по времени
:param msg: Message - объект сообщения от пользователя
:return: None
"""
time_on_notification = msg.text.split()[1]
pattern = r'^([01]?[0-9]|2[0-3]):([0-5]?[0-9])$'
if re.match(pattern, time_on_notification):
@@ -34,14 +48,22 @@ async def on_notification(msg: Message):
)
async def set_group(msg: Message):
async def set_group(msg: Message) -> None:
"""
Функция для установки группы пользователя
:param msg: Message - объект сообщения от пользователя
:return: None
"""
try:
group_id = int(msg.text.split()[1])
except ValueError:
return await msg.answer(
await msg.answer(
"Указанная вами группа не найдена. "
"Пожалуйста, проверьте корректность номера группы."
)
return
response = fetch_timetable_data(group_id)
if "404" in str(response) or "500" in str(response):
await msg.answer(
@@ -72,18 +94,36 @@ async def set_group(msg: Message):
await msg.answer("Я сохранил группу для вас.", reply_markup=keyboard)
async def timetable_for_day(msg: Message, shift: int = 0):
async def timetable_for_day(msg: Message, shift: int = 0) -> None:
"""
Функция для отправки сообщения пользователю со сдвигом на некоторое количество дней
:param msg: Message - объект сообщения от пользователя
:param shift: int - на сколько дней вперёд пытается пользователь получить расписание
:return: None
"""
group_id = get_group_id(msg.from_user.id)
if group_id is None:
return await msg.answer(
await msg.answer(
"Кажется, вашего пользователя нет в нашей базе данных."
"Чтобы начать работу, пожалуйста, укажите вашу группу с "
"помощью команды: /set_group номер_группы."
)
return
for text in get_timetable_for_day(group_id, shift):
await msg.answer(text)
async def timetable_day(user_id: int, group_id: int, bot: Bot):
async def timetable_day(user_id: int, group_id: int, bot: Bot) -> None:
"""
Функция для отправки сообщения пользователю по уведомлению
:param user_id: int - id пользователя
:param group_id: int - id группы пользователя
:param bot: Bot - бот, с помощью которого можно отправлять сообщения
:return: None
"""
for text in get_timetable_for_day(group_id, 1):
await bot.send_message(chat_id=user_id, text=text)