Milestones
List view
Нужно реализовать базовое `API`, на основе которого будет работать фронт Нужно сделать ~1. Эндпоинты для регистрации и работы с `JWT` токенами~ ~2. Эндпоинт для поиска~ ~3. Эндпоинт для получения детальной инфы про мангу (с учётом перепарсинга и обновления информации, если необходимо)~ ~4. Документация, `SwaggerUI`/`Redoc`~ --- [OpenApi 3.0 схема API](https://github.com/Sora-reader/backend/blob/develop/apps/core/schema.yaml)
No due date•11/11 issues closed## Описание того, как должен работать парсинг и почему так 1. Поиск манги идёт по нашему АПИ 2. ~В нашей БД хранятся основные данные про мангу~ 3. ~Парсинг основных данных через management команду, что бы можно вручную обнлвять индекс. [Парсить отсюда](https://readmanga.live/list)~ 4. ~Парсинг основных данных происходит периодечески, например, каждый день. Для этого нужен Celery таск~ 5. Парсинг дополнительных данных происходит в момент запроса с фронта. Парсинг происходит только если: - дополнительные данные, пустые в БД - последнее обновление манги (новое поле `updated_detail`) было больше, чем 1 час назад 6. Для томов и глав такая же логика, только у неё отдельное поле `updated_chapters`. Томы и главы хранятся как `JSONField` по типу `{ {vol_№: int}: [ {chapter_№: int}, ... ] }`, например, `chapters = { 1: [ 1, 2, 3, 4 ] }`, где `chapters[1][0]` это `vol1/1` 7. Получение ссылок на картинки для глав происходит on-demand, через парсинг. Ссылки кешируются на 1 час (можно для этого использовать редис) Весь парсинг должен быть вынесен в отдельные функции, что бы использовать их **и в API, и в management-командах** ### Названия команд - индекс для бд, основные данные для поиска `./manage.py parse {каталог}` - детальные данные `./manage.py parse-detail {ID_из_бд}` - список томов и глав `./manage.py parse-chapters {ID_из_бд}` - ссылки на картинки `./manage.py parse-images {ID_из_бд} {vol_№} {chpater_№}`
No due date•13/13 issues closed