1
0
Fork 0

try catch for accounts

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2025-03-06 06:28:41 +07:00
parent 05143b6865
commit 8ea9e7ef3d
2 changed files with 89 additions and 85 deletions

View File

@ -184,138 +184,143 @@ final class interneturok extends core
// Waiting for processing the request
sleep($waiting);
if ($this->authentication($account)->wait()) {
// Authenticated the account
try {
// Writing into the output buffer
echo 'Аутентифицирован: ' . $account['mail'] . "\n";
// Waiting for processing the request
sleep($waiting);
// Initializing the user journal
$journal = $this->journal(grade: $grade)->wait();
if (!empty($journal)) {
// Initialized the user journal
if ($this->authentication($account)->wait()) {
// Authenticated the account
// Writing into the output buffer
echo "Инициализирован журнал\n";
echo 'Аутентифицирован: ' . $account['mail'] . "\n";
// Initializing the actual date
$date = new datetime();
// Waiting for processing the request
sleep($waiting);
// Initializing the homeworks database
$model = new homework();
// Initializing the user journal
$journal = $this->journal(grade: $grade)->wait();
// Initializing the schedule subject events
$schedule = $journal?->schedule_events;
if (!empty($journal)) {
// Initialized the user journal
foreach ($schedule as $_subject) {
// Iterating over scheduled subject events
// Writing into the output buffer
echo "Инициализирован журнал\n";
if ($_subject->subject?->name === $subject->value) {
// Found the target suject
// Initializing the actual date
$date = new datetime();
foreach ($_subject->events as $event) {
// Iterating over the target subject events
// Initializing the homeworks database
$model = new homework();
// Normalizing the event variable (events can be more than one)
$event = $event[0] ?? null;
// Initializing the schedule subject events
$schedule = $journal?->schedule_events;
if (!empty($event)) {
// Initialized the target subject event (the homework exists)
foreach ($schedule as $_subject) {
// Iterating over scheduled subject events
if (new datetime($event->date) <= $date && new datetime($event->date)->modify('+6 days') >= $date) {
// Found the current event
if ($_subject->subject?->name === $subject->value) {
// Found the target suject
if ($event->subject?->name === $subject->value && $event->subject->grade === $grade) {
// Found the target subject
foreach ($_subject->events as $event) {
// Iterating over the target subject events
// Writing into the output buffer
echo "Найден школьный предмет: $subject->value для $grade класса (с " . new datetime($event->date)->format('d.m') . ' по ' . new datetime($event->date)->modify('+6 days')->format('d.m') . ")\n";
// Normalizing the event variable (events can be more than one)
$event = $event[0] ?? null;
// Initializing the unblock time
$unblock = svoboda::timestamp() - 31536000;
if (!empty($event)) {
// Initialized the target subject event (the homework exists)
foreach ($event->homeworks as $homework) {
// Iterating over scheduled event homeworks
if (new datetime($event->date) <= $date && new datetime($event->date)->modify('+6 days') >= $date) {
// Found the current event
if ($homework->status === 'checked' && $homework->mark === 5) {
// Homework checked and completed for a grade of 5
if ($event->subject?->name === $subject->value && $event->subject->grade === $grade) {
// Found the target subject
// Checking for the block record
$blocked = $model->database->read(
filter: fn(record $record) => $record->identifier === $homework->item_id && $record->created > $unblock,
amount: 1
)[0] ?? null;
// Writing into the output buffer
/* echo "Найден школьный предмет: $subject->value для $grade класса (с " . new datetime($event->date)->format('d.m') . ' по ' . new datetime($event->date)->modify('+6 days')->format('d.m') . ")\n"; */
if ($blocked instanceof record) {
// The account homework has been downloaded for 1 year
// Initializing the unblock time
$unblock = svoboda::timestamp() - 31536000;
continue 3;
} else {
// The account homework has not been downloaded for 1 year
foreach ($event->homeworks as $homework) {
// Iterating over scheduled event homeworks
// Writing into the output buffer
echo "Найдено домашнее задание: $homework->item_id с оценкой $homework->mark\n";
if ($homework->status === 'checked' && $homework->mark === 5) {
// Homework checked and completed for a grade of 5
// Waiting for processing the request
sleep($waiting);
// Checking for the block record
$blocked = $model->database->read(
filter: fn(record $record) => $record->identifier === $homework->item_id && $record->created > $unblock,
amount: 1
)[0] ?? null;
// Initializing the homework files
$files = $this->homework(lesson: $event->lesson->id, homework: $homework->item_id)->wait();
if ($blocked instanceof record) {
// The account homework has been downloaded for 1 year
if (!empty($files)) {
// Initialized the homework files
continue 3;
} else {
// The account homework has not been downloaded for 1 year
// Writing into the output buffer
echo "Получено домашнее задание\n";
echo "Найдено домашнее задание: $homework->item_id с оценкой $homework->mark\n";
// Blocking the homework downloading for 1 year
$blocked = $model->create(identifier: $homework->item_id);
// Waiting for processing the request
sleep($waiting);
if ($blocked !== false) {
// The homework was blocked for 1 year
// Initializing the homework files
$files = $this->homework(lesson: $event->lesson->id, homework: $homework->item_id)->wait();
if (!empty($files)) {
// Initialized the homework files
// Writing into the output buffer
echo "Заблокировано на 1 год домашнее задание\n";
echo "Получено домашнее задание\n";
// Exit (success)
return $files;
// Blocking the homework downloading for 1 year
$blocked = $model->create(identifier: $homework->item_id);
if ($blocked !== false) {
// The homework was blocked for 1 year
// Writing into the output buffer
echo "Заблокировано на 1 год домашнее задание\n";
// Exit (success)
return $files;
}
}
}
}
}
}
}
// Stopping processing events and starting processing the next account
break 2;
// Stopping processing events and starting processing the next account
break 2;
}
}
}
}
// Stopping processing events and starting processing the next account
break;
// Stopping processing events and starting processing the next account
break;
}
}
} else {
// Not initialized the user journal
// Writing into the output buffer
echo "Аккаунт не подходит под требования\n";
// Proceed to processing the next account
continue;
}
} else {
// Not initialized the user journal
// Not authenticated the account
// Writing into the output buffer
echo "Аккаунт не подходит под требования\n";
echo "Не аутентифицирован\n";
// Proceed to processing the next account
continue;
}
} else {
// Not authenticated the account
// Writing into the output buffer
echo "Не аутентифицирован\n";
// Proceed to processing the next account
} catch (exception $exception) {
continue;
}
}
@ -912,7 +917,7 @@ final class interneturok extends core
// Exit (success)
return $rows;
} catch (exception $exception) {
} catch (exception $exception) {
// Exit (fail)
return 0;
}

View File

@ -209,7 +209,6 @@ final class parser extends core
$parser = new interneturok();
try {
// Parsing homework files
$files = $parser->parse(subject: $subject, grade: $grade, waiting: 3);