Commit de293c1f authored by mitshel's avatar mitshel
Browse files

Несколько ускорен парсинг fb2-файлов (особенно в случае извлечения обложек)

исправлен HTTP-ответ в случае отсутствия обложки на 404 Not Found
parent 6e8388fc
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ fb2parse = yes
# если cover _show = 1 или 3
# Установка этой опции в yes значительно замедляет сканирование каталога (~ в 10 раз)
# Но зато обложки в OPDS-клиенте будут загружаться практически мгновенно
# Такой режим может потребоваться только если нагрузка на сервер достаточно высока
# Рекомендованная настройка показа обложек cover_extract = no, cover_show = 2
cover_extract = yes

# cover_show - способ показа обложек:
@@ -40,7 +42,7 @@ cover_extract = yes
# 2 - извлекать обложки на лету и показывать 
# 3 - показать ранее извлеченную обложку, если обложка не извлекалась, то извелечь на лету и показать
# 
cover_show = 1
cover_show = 2

# Предположительно столько байт от начала файла fb2 необходимо считать, чтобы получить необходимую метаинформацию (только description), если 0 то парсится весь файл
# при использование числа отличного от 0 возможны ошибки (например description очень длинный и занимает более, чем указанное число байт)
+12 −22
Original line number Diff line number Diff line
@@ -8,26 +8,16 @@ import base64
f=open('book1.fb2','rb')
parser=sopdsparse.fb2parser(1)
parser.parse(f)
print(parser.author_first.getvalue(), parser.author_last.getvalue(), parser.genre.getvalue(), parser.lang.getvalue(), parser.book_title.getvalue())
i=0
#if len(parser.cover_image.getvalue())>0:
#print(parser.author_first.getvalue(), parser.author_last.getvalue(), parser.genre.getvalue(), parser.lang.getvalue(), parser.book_title.getvalue())
#i=0
#print(parser.cover_image.cover_data)
#jpg=open('image.jpg','wb')
#   for str in parser.cover_image.getvalue():
#       sstr=str.strip("' ")
#       if sstr!='\\n':
#          print(i,"'"+sstr+"'")
#          i+=1
#sstr=parser.cover_image.cover_data.strip("' ")
#dstr=base64.b64decode(sstr)
#jpg.write(dstr)
#jpg.close()
print(parser.cover_image.cover_data)
jpg=open('image.jpg','wb')
sstr=parser.cover_image.cover_data.strip("' ")
dstr=base64.b64decode(sstr)
jpg.write(dstr)
jpg.close()
print(parser.cover_image.cover_data)
print(parser.cover_image.cover_name)
print(parser.cover_image.getattr('content-type'))
f.close()
#print(parser.cover_image.cover_data)
#print(parser.cover_image.cover_name)
#print(parser.cover_image.getattr('content-type'))
#f.close()

py/fb2parse.pyc

0 → 100644
+671 B

File added.

No diff preview for this file type.

Loading