You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fb2-000065-005477.zip
- xxxx.zip (Внутри один fb2 файл)
- xxxx.zip (Внутри один fb2 файл)
Сканер проходит по всем файлам fb2-xxxxxxx-yyyyyyy.zip, но не заглядывает во вложенные zip файлы.
Потом догадался добавить расширение .zip в параметр SOPDS_BOOK_EXTENSIONS(Список расширений файлов, для включения в коллекцию книг по умолчанию содержит: .pdf .djvu .fb2 .epub .mobi)
После чего сканер начал парсить внутренние zip файлы.
Только начал ругаться что у объекта tree нет метода getroot
И действительно в классе FB2Zip в методе __create_tree__ объект tree создается методом etree.fromstring (создает объект класса Element), тогда как в классе FB2 в __create_tree__ объект tree создается методом etree.parse (создает объект класса ElementTree)
Может в классе FB2Zip сделать так чтобы метод __create_tree__ возвращал Element
class FB2(FB2Base):
def __init__(self, file, original_filename):
FB2Base.__init__(self, file, original_filename, Mimetype.FB2)
def __create_tree__(self):
try:
self.file.seek(0,0)
# Было так return etree.parse(self.file)
return etree.parse(self.file).getroot()
except Exception as err:
raise FB2StructureException('the file is not a valid XML (%s)'%err)
def __exit__(self, kind, value, traceback):
pass
Тогда __detect_namespaces(self, tree) можно было изменить на такое
def __detect_namespaces(self, tree):
# Было так if tree.getroot().tag.find(Namespace.FICTION_BOOK21) > 0:
if tree.tag.find(Namespace.FICTION_BOOK21) > 0:
self.__namespaces['fb'] = Namespace.FICTION_BOOK21
return None
The text was updated successfully, but these errors were encountered:
Архив книг имеет такую структуру
Сканер проходит по всем файлам fb2-xxxxxxx-yyyyyyy.zip, но не заглядывает во вложенные zip файлы.
Потом догадался добавить расширение .zip в параметр SOPDS_BOOK_EXTENSIONS (Список расширений файлов, для включения в коллекцию книг по умолчанию содержит: .pdf .djvu .fb2 .epub .mobi)
После чего сканер начал парсить внутренние zip файлы.
Только начал ругаться что у объекта tree нет метода getroot
src/book_tools/format/fb2.py:73
И действительно в классе FB2Zip в методе
__create_tree__
объект tree создается методомetree.fromstring
(создает объект класса Element), тогда как в классе FB2 в__create_tree__
объект tree создается методомetree.parse
(создает объект класса ElementTree)Может в классе FB2Zip сделать так чтобы метод
__create_tree__
возвращал ElementТогда
__detect_namespaces(self, tree)
можно было изменить на такоеThe text was updated successfully, but these errors were encountered: