MyHomeLib: Fb2Fix - MyHomeLib

Перейти к содержимому

Страница 1 из 1
  • Вы не можете начинать новые темы
  • Вы не можете отвечать в этой теме

Fb2Fix Исправление ошибок структуры с помощью Fb2Fix

#1 Пользователь не на сайте   koreec Значок

  • Владелец
  • Группа: Администраторы
  • Сообщений: 976
  • Регистрация: 01-September 09
  • LocationCheju

Отправлено 08 September 2009 - 02:05 AM

  • Создать bat файл
  • В этот файл добавить строку вида:
    D:\Fb2Fix\fb2fix.exe  /output:"E:\out"  E:\Temp

    где "E:\out" - папка, в которую fb2fix будет помещать обработанные книги
    E:\Temp - папка, указанная в настройках MyHomeLib ("Папка на устройстве")
  • Вызвать скрипт через подменю скрипты (в главном меню, контекстном меню или выпадающем списке Отправить на устройство)


Еще примеры:

Вложенное изображение: settings.png

C:\Temp - путь сохранения книг в MyHomeLib;
D:\Fb2Fix\FB2Fix.exe - путь к FB2Fix.exe;
/c"-" /translify"-" /output:"C:\Out" C:\Temp - параметры.
/c"-" /translify"-" - без транслитерации и запаковки в zip.
Внимание, в пути не должно быть пробелов, а в параметрах как есть!
не говорите что мне делать, и я не скажу, куда вам пойти!
0

#2 Пользователь не на сайте   Oleg08 Значок

  • Зануда
  • PipPipPip
  • Группа: Тестеры
  • Сообщений: 12
  • Регистрация: 03-September 09

Отправлено 09 September 2009 - 10:16 AM

work-around для обработки Traum Library 2.0 Автор - Sk0rp.

@echo off
set tmpout=%~f4
if #%tmpout%#==## set tmpout=%TEMP%\fb2fix
md "%tmpout%\tmp" 2>NUL

set fb2fix=%~f1
set z7=%~dp17za.exe
set outdir=%~f3
md "%outdir%" 2>NUL

cd %2
FOR /D %%D IN (*.*) DO call :nextdir "%%~nxD"
goto :EOF

:nextdir
echo Folder: %~1
md "%outdir%\%~1" 2>NUL
FOR /D %%D IN ("%~1\*.*") DO call :nextdir "%~1\%%~nxD"
FOR /F "tokens=* delims=" %%N IN ('dir "%~1\*.*" /B /A-D') DO call :convert "%~1\%%~N" "%~1" "%%~N"
rem rd "%~1" 2>NUL
goto :EOF

:convert
echo "%~f1"
del /F /S /Q "%tmpout%\*.*" >NUL
%fb2fix% /compress- /translify- "%~f1" /output:"%tmpout%" >NUL
IF EXIST "%tmpout%\Good\*.fb2" (
   move "%tmpout%\Good\*.fb2" "%tmpout%\tmp\%~n3" >NUL
) ELSE (
   move "%tmpout%\Bad\*.fb2" "%tmpout%\tmp\%~n3" >NUL
)
IF NOT %errorlevel%==0 goto :EOF

rem del /F /Q "%~f1"
"%z7%" a -tzip -mx7 "%outdir%\%~2\%~n3.zip" "%tmpout%\tmp\%~n3" >NUL


скопировать и вставить, например, в script.bat

Параметры запуска:
script.bat <ссылка на fb2fix> <начальная папка> <папка для обработанных> [<временная папка>]
Пути могут быть как относительными так и абсолютными.
Если в пути есть пробел путь надо брать в кавычки.
В папку где лежит fb2fix.exe нужно распаковать и скопировать 7za.exe из комплекта "7-Zip Command Line Version"

Что скрипт делает:
Запускает fb2fix для каждого файла, затем восстанавливает его начальное имя и реплицирует (воссоздает в том же виде) изначальную структуру папок.
Зачем это надо:
Это надо для того, что бы последующие обновления Traum Library, которые выходят на уровне файлов могли нормально применяться к ранее обработанной библиотеке.
Обновления также можно заранее обработать скриптом, это не повлияет на возможность его применения.

Четвертый параметр
Четвертый параметр скрипта нужно указывать если вы хотите одновременно запустить несколько копий скрипта. Для корректной работы у каждой копии должна быть своя временная папка.
У меня, например, ядер в процессоре много и несколько параллельно работающих копий справляются существенно быстрее чем одна

Примеры:

script.bat FB2Fix.exe D:\Library\ru\_ outlib\_ tmp1

- script.bat лежит в той же папке, что и FB2Fix, перерабатывает папку с файлами по адресу D:\Library\ru\_, результат складывает в папку где лежит script.bat в подпапку outlib\_, как временная папка используется созданная здесь же tmp1


script.bat D:\fb2fix\FB2Fix.exe E:\ D:\Library

- где лежит script.bat не важно, перерабатывает E:\, результат складывает в D:\Library\, FB2Fix распакован в D:\fb2fix\, туда же скопирован 7za.exe. Так, например, можно взять библиотеку непосредственно с подмонтированного диска с Traum Library


script.bat FB2Fix.exe "D:\Traum Library" "D:\Traum Library"

- Аналогично первому примеру script.bat лежит в той же папке, что и FB2Fix. Обрабатывается папка D:\Traum Library. Результат остается в той же папке. Это, imho, наиболее удобная форма для запуска.

Если результат не в той же папке где были обрабатываемые файлы, но начальные файлы больше не нужны, раскоментируйте строчки "del /F /Q "%~f1"" и "rd "%~1" 2>NUL" тогда по мере обработки исходные файлы будет удаляться, - это полезно если на диске нет места для 2х копий библиотеки, а религия не позволяет обработанные файлы сохранять в том же месте, где были файлы изначально.

Добавлено 1:
при применении к обновлениям Traum, если папка источник и папка назначение совпадают, следует сохранять пустые папки, т.к. они потом используются. Для этого нельзя раскоментировать строчку:
rd "%~1" 2>NUL

Добавлено 2:
При копировании текста скрипта с форума MS Internet Explorere'ом и браузерами на их основе, в конец каждой строки добавляются пробелы. В исходном тексте html этих пробелов нет, т.е. IE их полностью придумывает.
В bat файлах пробелы значимы, в частности в текущем случае они залезают в середину имен файлов, после чего скрипт перестает работать.
1

#3 Пользователь не на сайте   Альберт Значок

  • Профи
  • PipPipPipPip
  • Группа: Тестеры
  • Сообщений: 97
  • Регистрация: 04-September 09

Отправлено 08 July 2011 - 04:44 AM

Уважаемые любители книг!
Настоятельно НЕ рекомендую использовать FB2Fix, если Вы скачали книгу (выложенную только для чтения) с помощью eBookDownloader Дмитрия Александрова с lib.aldebaran.ru. В структуре этих файлов не хватает закрывающих (</p>) и открывающих (<p>) тэгов. В итоге FB2Fix объединяет в один абзац кусок текста с открывающим тэгом и кусок текста с закрывающим тэгом. Получается каша, а не книга.
На каком этапе исчезают тэги мне выяснить не удалось, так как страницы на Альдебаране сделаны на Java скриптах и я не смог посмотреть исходный html код.(Подскажите, кто знает, как посмотреть)
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете начинать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых