diff --git a/mirzaev/parser_from_interneturok/system/models/interneturok.php b/mirzaev/parser_from_interneturok/system/models/interneturok.php index 78454c3..c214fab 100644 --- a/mirzaev/parser_from_interneturok/system/models/interneturok.php +++ b/mirzaev/parser_from_interneturok/system/models/interneturok.php @@ -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; } diff --git a/mirzaev/parser_from_interneturok/system/models/telegram/parser.php b/mirzaev/parser_from_interneturok/system/models/telegram/parser.php index f3c4448..fc23f88 100644 --- a/mirzaev/parser_from_interneturok/system/models/telegram/parser.php +++ b/mirzaev/parser_from_interneturok/system/models/telegram/parser.php @@ -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);