Я недавно купил Nook Simple Touch. Я использую Caliber для управления своими электронными книгами и для переноса их в Nook.
Из-за нестандартной реализации спецификации epub со стороны B&N Nook ST не отображает изображения обложек, когда они получены из многих источников. Проблема описана здесь: http://john.nachtimwald.com/2011/08/21/nook-covers-not-showing-up/ Обычно Nook ST требует, чтобы атрибут XML для обложки был в формате:
<meta name="cover" content="id5" />
Но у многих создателей epub они примерно такие:
<meta content="id5" name="cover" />
Затем Nook ST полностью игнорирует изображение обложки.
Я вручную редактировал файл content.opf в своих файлах epub. До сих пор у всех была мета изображения, но она всегда была «неправильной» (неправильной, согласно Nook).
Недавно я играл с REGEX, в основном чтобы попытаться автоматизировать очистку файлов epub, преобразованных Caliber из файлов PDF. Я все еще новичок в REGEX.
Мне было интересно, как я могу автоматизировать замену атрибутов «имя» и «содержимое»? Я полагаю, что это можно сделать с помощью комбинации REGEX и сценариев. Я знаю, что некоторые из других скриптов, связанных с epub, у меня есть на Python. Я использую Mac (OS X), и они, кажется, работают нормально. AppleScript тоже может быть хорошим вариантом, хотя я бы хотел, чтобы люди могли запускать что-то на любой платформе, поскольку я уверен, что другие сочтут это полезным.
Вот шаги, которые я предвижу:
~ Извлечь файл epub
~ Используйте REGEX для поиска:
<meta content="???" name="cover">
~ Если найдено, используйте REGEX, чтобы изменить его на:
<meta name="cover" content="???">
~ Заархивируйте извлеченные файлы обратно в epub, используя правильный процесс архивирования.
Я нашел информацию здесь: http://www.mobileread.com/forums/showthread.php?t=55681, объясняющий, как правильно заархивировать файл epub. В основном для этого требуются эти две команды:
zip -X0 "full path to new epub file" mimetype
zip -rDX9 "full path to new epub file" * -x "*.DS_Store" -x mimetype
Я хотел бы опубликовать получившийся скрипт в Интернете, где бы он ни был найден и использовался (пока B&N не разрешит их плохую реализацию epub / XML). На ум приходит размещение его на форумах Caliber и форумах mobileread (поскольку это два, с которыми я знаком, и видел, как люди обсуждали ручные исправления этой проблемы).
Есть ли кто-нибудь, кто может объяснить мне, как создать такой сценарий? В идеале мне бы хотелось знать, как создать сценарий, чтобы со временем я мог сам начать разбираться в подобных вещах (особенно в части REGEX, поскольку я все больше и больше вижу, насколько это полезно).
Спасибо.
Джонатан
@Haldean: ДОБАВЛЕНО, чтобы проиллюстрировать, что я имею в виду в комментарии к Haldean относительно того, как заставить его скрипт рекурсивно работать со всеми файлами content.opf во всех подпапках.
> My_expanded_epubs
- -> epub_one_expanded
- - - -> content.opf
- -> epub_two_expanded
- - - -> content.opf
- -> epub_three_expanded
- - - -> content.opf
etc.