mitshel / sopds

Simple opds catalog
http://www.sopds.ru/
Other
211 stars 80 forks source link

Некорректное сканирование inpx #37

Closed nidjan closed 5 years ago

nidjan commented 6 years ago

В коде формат inp-файлов inpx-каталого жёстко задан, а ведь он может задаваться в structure.info, лежащем в inpx-каталоге. Раз. Два. Книги могут (внезапно) лежать не в inp-файлах-архивах внутри каталога, а в сторонней директории (zip), которая указывается в соответствующей строке inp-файла. Два.

Счас я попробую это сделать. Изменить inpx_parser.py

mitshel commented 6 years ago

Согласен с Вами. Реализация получения данных из INPX несколько не полная. Спасибо за помощь проекту.

nidjan commented 6 years ago

Теперь inpx_парсер читает прописанную структуру inp, если есть файл описания. А в sopdscan я переделал inpx_callback так, чтобы он вносил в путь к книге не inp-файл, а архив с книгой, указанный в inp. Именно переделал, поскольку написать нормальную развилку у меня не получилось. Как бы код сюда залить?

mitshel commented 6 years ago

Pull request сделайте

nidjan commented 6 years ago

Блин, чувствую себя ламером. Не смог. Вот эти два отредактированные файла.

opds_catalog.zip

mitshel commented 6 years ago

Хотел внести ваши изменения в проект, Cо structure.info все ясно. Но вот обработка archives.info у меня вызывает сомнения, в первую очередь из-за того, что не могу найти описание этого файла. И даже уже полного описания формата INPX найти тоже не удается. Киньте пожалуйста ссылку на описания этих структур, если у вас есть. Ну или ссылку на пример INPX со включенными structure.info и archives.info. К сожалению я не особо пользуюсь INPX форматом, но думаю у людей есть интерес подключать такие библиотеки, поэтому хотел бы исправить указанную вами недоработку.

nidjan commented 6 years ago

Ой. Восстанавливаю. Откуда я брал данные по формату structure: https://forum.myhomelib.org/viewtopic.php?f=17&t=16 Коллеги с другой стороны: https://github.com/rupor-github/InpxCreator Archives.info - это построчный список просканированных архивов каталога - путь к файлу от местонахождения inpx, если в одной папке - то просто имя, в конце строки - CR Пример https://yadi.sk/d/xIIVWS0i3YyCdL