Принимаются предложения/замечания/вопросы.
10 years 9 months ago #44
by alexejnic
alexejnic replied the topic: Принимаются предложения/замечания/вопросы.
Всем спасибо.
Поменял версию питона на 3.3 и все пошло как по маслу.
Правда пришлось попрыгать с бубном, зато завёл на NAS Synology/
Поменял версию питона на 3.3 и все пошло как по маслу.
Правда пришлось попрыгать с бубном, зато завёл на NAS Synology/
The topic has been locked.
- alexejnic
- Visitor
10 years 9 months ago - 10 years 9 months ago #45
by VictorDa
VictorDa replied the topic: Принимаются предложения/замечания/вопросы.
Здравствуйте случайно зашел на сайт данного проекта.Очень интересуют opds каталоги.На даный момент являюсь тестировщиком
TinyOPDS
попробую и эту разработку -о багах естесвенно сообщу.Как я вижу идеальный с моей точки зрения opds каталог.
1)Наличие функции входа в каталог по логину и паролю-очень важно при организации доступа к домашнему серверу из сети интернет
2) Поддержка opds сервером книг форматов djvu,pdf,txt
1)Наличие функции входа в каталог по логину и паролю-очень важно при организации доступа к домашнему серверу из сети интернет
2) Поддержка opds сервером книг форматов djvu,pdf,txt
Last Edit: 10 years 9 months ago by VictorDa.
The topic has been locked.
- VictorDa
- Offline
- Новый участник
Less
More
- Posts: 1
10 years 9 months ago - 10 years 9 months ago #46
by mitshel
mitshel replied the topic: Принимаются предложения/замечания/вопросы.
На самом деле с версией питона имеется проблема связанная со следующими вещами.
При распаковке архивов используется модуль zipfile.py в котором к сожалению жестко прописана кодировка в которой должны быть записаны имена файлов : cp437
вот таким образом:
filename = filename.decode('cp437')
В результате русские имена файлов в базу данных падали в виде кракозябр.
Способ исправления данной ситуации похоже только один, а именно: пропатчить модуль zypfile.py, поставляемый с Питоном.
Поэтому zypfile.py был исправлен следующим образом:
[root@dsgate py]# diff /home/ds/distr/Python-3.3.2/Lib/zipfile.py zipf.py
888c888
< def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=False):
---
> def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=False, codepage='cp437'):
903a904
> self.codepage = codepage
1005c1006
< filename = filename.decode('cp437')
---
> filename = filename.decode(self.codepage)
1160c1161
< fname_str = fname.decode("cp437")
---
> fname_str = fname.decode(self.codepage)
Ну и далее чтобы не писать длинную инструкцию о необходимости пропатчить zipfile.py просто переименовал его в zipf.py и положил в каталог с проектом (ну и естественно делал import zipf)
Но, к сожалению некоторые элементы языка Python, которые используются в модуле zypfile.py меняются от версии к версии (в частности есть проблема с атрибутом zlib.Decompress.eof, который появился именно в версии 3.3), что приводит к неполной работоспособности пропатченного модуля zypf.py на различных версиях Python.
Вот такие дела.
Видимо придется написать эту инструкцию и переделать код так, чтобы он работал на всех версиях питона >3, но русские буквы у наименований зарахивированных файлов будут только, если пропатчить zipfile.py.
В любом случае, думаю проблема решена будет. Сейчас прикручиваю к проекту конвертацию в epub.
При распаковке архивов используется модуль zipfile.py в котором к сожалению жестко прописана кодировка в которой должны быть записаны имена файлов : cp437
вот таким образом:
filename = filename.decode('cp437')
В результате русские имена файлов в базу данных падали в виде кракозябр.
Способ исправления данной ситуации похоже только один, а именно: пропатчить модуль zypfile.py, поставляемый с Питоном.
Поэтому zypfile.py был исправлен следующим образом:
Warning: Spoiler!
[ Click to expand ]
[ Click to hide ]
[root@dsgate py]# diff /home/ds/distr/Python-3.3.2/Lib/zipfile.py zipf.py
888c888
< def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=False):
---
> def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=False, codepage='cp437'):
903a904
> self.codepage = codepage
1005c1006
< filename = filename.decode('cp437')
---
> filename = filename.decode(self.codepage)
1160c1161
< fname_str = fname.decode("cp437")
---
> fname_str = fname.decode(self.codepage)
Ну и далее чтобы не писать длинную инструкцию о необходимости пропатчить zipfile.py просто переименовал его в zipf.py и положил в каталог с проектом (ну и естественно делал import zipf)
Но, к сожалению некоторые элементы языка Python, которые используются в модуле zypfile.py меняются от версии к версии (в частности есть проблема с атрибутом zlib.Decompress.eof, который появился именно в версии 3.3), что приводит к неполной работоспособности пропатченного модуля zypf.py на различных версиях Python.
Вот такие дела.
Видимо придется написать эту инструкцию и переделать код так, чтобы он работал на всех версиях питона >3, но русские буквы у наименований зарахивированных файлов будут только, если пропатчить zipfile.py.
В любом случае, думаю проблема решена будет. Сейчас прикручиваю к проекту конвертацию в epub.
Last Edit: 10 years 9 months ago by mitshel.
The topic has been locked.
- mitshel
- Topic Author
- Offline
- Администратор
Less
More
- Posts: 297
- Karma: 8
10 years 9 months ago - 10 years 9 months ago #47
by Gregor
Gregor replied the topic: Принимаются предложения/замечания/вопросы.
У меня она как раз прошла после принудительного указания версии 3.3. На предыдущих творилось непотребство.mitshel wrote: в частности есть проблема с атрибутом zlib.Decompress.eof, который появился именно в версии 3.3
Вроде он больше у буржуинов распространен? Не, это все, конечно, замечательно, но не первостепенно, ИМХО.Сейчас прикручиваю к проекту конвертацию в epub.
Last Edit: 10 years 9 months ago by mitshel.
The topic has been locked.
- Gregor
- Offline
- Новый участник
Less
More
- Posts: 12
10 years 9 months ago #48
by mitshel
mitshel replied the topic: Принимаются предложения/замечания/вопросы.
У буржуинов и похоже у отечественных пользователей Айфонов, читалок типа Kindle.
The topic has been locked.
- mitshel
- Topic Author
- Offline
- Администратор
Less
More
- Posts: 297
- Karma: 8
10 years 9 months ago #49
by fabrikant
fabrikant replied the topic: Принимаются предложения/замечания/вопросы.
Прежде всего, хочу поблагодарить автора за его труд. Классная штука получилась. Да еще и бесплатно.
И еще у меня предложение по базе данных. В настоящий момент каждому жанру присваивается ID, а потом этот genre_id используется в bganres для связки с книгой. Имхо, было бы логично вообще отказаться от genre_id, а вместо него использовать поле genre.
Это позволит:
1. Во время сканирования библиотеки не JOIN'ить лишний раз таблицу genre, а просто писать идентификаторы жанров из файла. Пусть небольшой, но прирост производительности.
2. Новые жанры можно будет в любой момент добавлять в таблицу genres и это не потребует повторного сканирования всей коллекции.
И еще у меня предложение по базе данных. В настоящий момент каждому жанру присваивается ID, а потом этот genre_id используется в bganres для связки с книгой. Имхо, было бы логично вообще отказаться от genre_id, а вместо него использовать поле genre.
Это позволит:
1. Во время сканирования библиотеки не JOIN'ить лишний раз таблицу genre, а просто писать идентификаторы жанров из файла. Пусть небольшой, но прирост производительности.
2. Новые жанры можно будет в любой момент добавлять в таблицу genres и это не потребует повторного сканирования всей коллекции.
The topic has been locked.
- fabrikant
- Offline
- Новый участник
Less
More
- Posts: 7
Time to create page: 0.136 seconds