Обновлен контекст
This commit is contained in:
1 parent
ab4953ffd1
commit
a51a7e1a76
1 file changed
+33
@@ -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)` и т.д.
|
||||
|
||||
Reference in new issue
Block a user