ruz-bot/helpers/ruz.py
Administrator b7ef588b34 initial
2022-10-21 13:43:59 +03:00

63 lines
1.7 KiB
Python

import datetime
from requests import get
import settings
fields = [
'discipline',
'building',
'auditorium',
'date',
'beginLesson',
'endLesson',
'lecturer'
]
class RUZ:
def find_person(self, name: str) -> dict | None:
search_str = settings.RUZ_API + f"search?term={name}&type=student"
try:
data = get(search_str)
except:
return None
if data.status_code == 200:
return data.json()
return None
def get_schedule(self, hse_id: int, begin_date: datetime.datetime, end_date: datetime.datetime):
start_date_str = begin_date.strftime("%Y.%m.%d")
end_date_str = end_date.strftime("%Y.%m.%d")
search_str = settings.RUZ_API + f"schedule/student/{hse_id}?start={start_date_str}&finish={end_date_str}&lng=1"
try:
data = get(search_str)
except:
return None
if data.status_code != 200:
return None
data = data.json()
formatted_data = [
{
field: element[field]
for field in fields
}
for element in data
]
return formatted_data
def schedule_builder(self, lessons: list[dict]) -> str:
ans = ""
for lesson in lessons:
ans += "Аудитория: " + lesson["building"] + ", " + lesson["auditorium"] + "\n"
ans += "Начало: " + lesson["begin"].strftime("%H:%M") + "\n"
ans += "Конец: " + lesson["end"].strftime("%H:%M") + "\n"
ans += "Преподаватель: " + lesson["lecturer"] + "\n"
ans += "_______________\n"
return ans
ruz = RUZ()