Skip to content
Veniamin Arefev edited this page Sep 30, 2023 · 10 revisions

deliver

  • Занимается скачиванием домашних заданий
  • Через определённые промежутки времени может получать запрос от control на скачивание или обновление скаченных решений
  • Получает информацию о том, откуда нужно скачивать решения через config, который читает созданный пользователем конфиг файл
  • Преобразует скачанный архив/репозиторий/whatever в последовательность домашек, которые записываются в depot
    • ID объекта-домашки предположительно генерируется на основе уникальных ID, специфичных для способа доставки
      • Первая буква ID — это первая буква backend-а, "g", "i", "f"
    • TODO На основании ID объекта можно реализовать backend-кеширование (например, не скачивать повторно письма с уже имеющимся в depot MalID)

.git

  • Скачивает домашки из репозиториев (git clone + git pull)
  • Каждый объект-домашка — это дерево файлов в каталоге с решением определённого Д/З определённым пользователем, соответствующее каждому коммиту, который затрагивал этот каталог
  • Конфиг должен содержать соответствие ФИО студента → URL с репозиторием

.imap

  • Скачивает архивы решений, присылаемых по почте
  • Ве архивы в объекте-домашке должны быть разархивированы
  • Конфиг должен содержать соответствие ФИО студента → почтовый адрес

.file

  • Все решения лежат в указанном каталоге как дерево файлов, совпадающее со структурой объекта-домашки
  • Структура дерева: Имя пользователя/Имя задачи/дерево домашки
  • Timestamp берётся непосредственно из файловой системы (как самое позднее из времён модификации файлов в домашке)
  • ID объекта — путь к домашке
Clone this wiki locally