Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions Errors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class BaseError(Exception):
'''Base class error for init error Classes'''
def __init__(self, error):
self.error = error
super().__init__(self.error)


class ForbiddenError(BaseError):
'''Raises when browser attract 403 error'''

def __init__(self, error):
super().__init__(error)

def __str__(self):
return f'Упс, возникла проблема с полуением данных :(\nОшибка: {self.error}'


class LostTaskError(BaseError):
'''Raises when search_tasks function can't get result'''

def __init__(self, error):
super().__init__(error)

def __str__(self):
return f'Упс, не удалось найти задачу :(\nОшибка: {self.error}'
3 changes: 2 additions & 1 deletion methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ def get_lesson_info(s, lesson_id, group_id, course_id):
def get_all_lessons(s, course_id, group_id):
url = 'https://lyceum.yandex.ru/api/student/lessons'
params = {'courseId': course_id,
'groupId': group_id}
'groupId': group_id,
'code': 200}
return s.get(url, params=params).json()


Expand Down
5 changes: 4 additions & 1 deletion search.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from methods import *
from Errors import (ForbiddenError, LostTaskError)


def search_tasks(lessons, search_part):
Expand All @@ -21,6 +22,8 @@ def prepare(s, course_id, group_id):
lessons = []
print("Получаю информацию об уроках, это занимает примерно 5-10 секунд...")
lessons_info = get_all_lessons(s, course_id, group_id)
if lessons_info['code'] != 200:
raise ForbiddenError(lessons_info['code'])
for lesson in lessons_info:
lesson_title = lesson['title']
lesson_id = lesson['id']
Expand All @@ -44,7 +47,7 @@ def prepare(s, course_id, group_id):
while search_part != r'\\':
fd = search_tasks(lessons, search_part)
if not fd:
print('Не удалось найти задачу')
raise LostTaskError("Task can't found")
else:
for lesson_name, task_title_full, is_solved in fd:
print(f'Урок: "{lesson_name}", Задача: "{task_title_full}" '
Expand Down