Обновлен контекст

This commit is contained in:
astakhovp committed 2026-10-08 23:14:00 +03:00
1 parent ab4953ffd1
commit a51a7e1a76
1 file changed
+33
+33
View File
@@ -89,6 +89,39 @@ AUTHOR \x04 GENRE \x04 TITLE \x04 SERIES \x04 SERNO \x04 FILE \x04 SIZE \x04 LIB
- ❌ Редактирование жанров (кастомные жанры с `is_custom=TRUE` ждут ручного заполнения)
- ❌ Языковой фильтр (56 языков в базе, но основные — ru)
## Новый импорт: сканирование файловой системы
**Проблема INPX:** файл содержит ссылки на книги, которых нет на диске (удалены, не скачаны).
**Решение:** скрипт-сканер каталога — альтернатива INPX.
### Логика работы
1. Принимает каталог как параметр
2. Обходит все файлы в каталоге и подкаталогах
3. Определяет новые/изменённые файлы через таблицу `file_scan_log`
4. Новые/изменённые файлы → распаковка → парсинг FB2 → добавление в БД
5. Исчезнувшие файлы → удаление связанных книг из БД
### Поддержка форматов
- `.zip` → внутри может быть `.zip` → внутри может быть `.fb2`
- Вложенность: до 3 уровней
- RAR: бонусная поддержка
### Таблица `file_scan_log`
| Поле | Тип | Назначение |
|------|-----|-----------|
| file_path | TEXT | Полный путь к файлу |
| file_size | INTEGER | Размер файла |
| file_hash | TEXT | MD5/SHA256 хеш содержимого |
| updated_at | TIMESTAMP | Последнее обновление |
### Удаление книг
- Файл исчез с диска → книга удаляется из БД безвозвратно
- Файл изменён → старые книги удаляются, парсится заново
### Источник
- Отдельная строка в `books.source` (например, `"file_scan"`)
## Ключевые решения
- **Язык в скобках**: для не-русских книг показывать `(en)`, `(uk)` и т.д.