Booki программа для обработки файлов с книгами
booki
Новенький участник форума
Со временем от пользователей программы стали поступать просьбы добавить в шаблон некий новый символ %x, который бы, например, заменялся на фамилию автора с инициалами, на первые буквы из слов серии книги и т.д. Стало понятно, что с помощью шаблонов невозможно удовлетворить все запросы по формированию имени и каталога файла.
Начиная с версии 1.7.4 от мая 2007 года имя файла и каталога опеределяются с помощью скриптов. Скрипт - это небольшая программы написанная на простом языке встроенном в программу. Описание языка приведено в справке к программе. С помощью скриптов можно формировать имена файла и каталога по абсолютно любым правилам. Всего в программе используется 3 скрипта:
- для определения имени файла. Храниться в файле rename.sc;
- для определения каталога. Храниться в файле move.sc;
- для формирования заголовка текстового файла, который получается при конвертировании из fb2. Храниться в файле txthdr.sc.
Но как и преимущества, переход на скрипты принес и недостатки. Написание скриптов требует определенных, хотя и небольших, навыков программирования. Как написал один из пользователей - А что делать тем, для кого слово "скрипт" ассоциируется тока с несмазанной дверью? Каюсь, шутка дошла не сразу.
Кроме этого, предлагается:
- если у вас есть трудности с написанием скриптов (вплоть до совсем не знаю как) - пишите в эту ветку форума. Я постараюсь вам помочь;
- если у вас есть скрипты, которыми вы пользуетесь - то поделиться ими с другими пользователями, выложив здесь файлы со скриптами + небольшое описание.
jurgennt
Зрелый участник форума
Перемещение (move.sc)
· Диск: \ Каталог библиотеки \ Жанр (первый) \ Алфавитные папки \ Фамилия Имя автора (первого) \ Серия
C:\Library\Детектив\Классический\К\Кристи Агата\Эркюль Пуаро
Пользуюсь двупанельным проводником с деревом, поэтому решил отказаться от показа названия серии — слишком длинно. Да и зачем? — и так всё понятно — попадёт в каталог с названием серии. По этой же причине из всех авторов остаётся только первый и только фамилия (last name).
Перемещение придётся настраивать под себя: наименование диска; название каталога, в котором будет храниться вся библиотека (точка сборки); названия жанров (при желании).
WildGoblin
Новенький участник форума
Afist
Новенький участник форума
Marat
Новенький участник форума
jurgennt
Зрелый участник форума
Cd_spb
Зрелый участник форума
booki
Новенький участник форума
WildGoblin
Новенький участник форума
Marat
Новенький участник форума
Marat
Новенький участник форума
GRUMM
Новенький участник форума
Alexus
Новенький участник форума
У меня примерно так:
// в первой строке в кавычках укажите шаблон имени каталога для книг
// обратите внимание, что разделитель каталогов указывается двойным символом "\"
// %a - автор (имя отчество фамилия)
// %f - автор (фамилия имя отчество)
// %m - автор (фамилия)
// %l - автор (первая буква фамилии)
// текст ниже НЕ ИСПРАВЛЯЙТЕ
$i = 1
$str_a = author($i, "l")
$str_a = $str_a + " "
$str_t = author($i, "f")
$str_a = $str_a + $str_t
$f = $str_a
$str_l = author($i, "l")
$l = left($str_l, 1)
GRUMM
Новенький участник форума
GRUMM
Новенький участник форума
у меня хранится в формате "\Ф\Фамилия Имя" но в скачанных книгах файлы фб2.zip уже лежат в каталогах в таком виде: "\Ф\Фамилия_И" соответственно если я просто вставлю новые папки, они не интегрируются с другими а будут в виде дублей.
booki в главной папке не видит книг для сортировки, приходится указывать на каждого автора, что очень долно. Возможно ли с помощю скрипта расскидать авторов по "правильным" папкам?
Параметры командной строки:
booki.exe -операция[операция.] файл [файл.]
Операция:
r - переименовать
m - переместить
z - архивировать
u - перекодировать fb2 файл из UTF8 в WIN1251
t - переконвертировать fb2 файл в текстовый файл
d - перекодировать текстовый файл из DOS CP866 в WIN1251
В имени файла можно указывать символы-шаблоны '*' и '?'.
Пример: booki.exe -ru br
12.fb2 c:\books\*.zip
Переименовать и перекодировать из UTF8 в WIN1251 файл br
12.fb2 в текущем каталоге, переименовать все поддерживаемые типы файлов в zip архивах в каталоге c:\books, перекодировать из UTF8 в WIN1251 все fb2 файлы в zip архивах в каталоге c:\books.
Синтаксис скриптов:
Идентификатор переменной начинается с символа '$', может содержать символы 'A'.'Z', 'a'.'z', '_', '0'.'9'. Переменные бывают 2-х типов: строковые, числовые целые со знаком. Переменные не объявляются. Тип переменной определяется при первом присваивании её значения - строкового или числового. После того как тип переменной определен, ей нельзя присваивать значение другого типа.
Строковая константа представляет собой последовательность символов заключенных в апострофы или двойные кавычки. Чтобы в строковой константе указать апостроф, двойные кавычки или слэш перед ними ставиться символ '\'.
На вход скрипта подаются переменные:
$title - название книги (текстовая)
$authoo - количество авторов (числовая)
$seq - серия книги (текстовая)
$seqnum - номер в серии (текстовая)
$subseq - подсерия книги (текстовая)
$subseqnum - номер в подсерии (текстовая)
$genreno - кол-во жанров (числовая)
$publisher - издательство
$publcity - город издания
$publyear - год издания
$srcurl - ссылка на сайт, откуда был скачан исходный текст книги
$srcocr - информация о людях отсканировавших и вычитывавших книгу
$translatoo - количество переводчиков
$isannt - если есть аннотация, то не равна нулю. Если аннотации нет, равна нулю
$lang - язык книги
$langsrc - язык книги-оригинала (содержимое тега src-lang внутри тега title-info )
$srctitle - название книги-оригинала
$srclang - язык книги-оригинала (содержимое тега lang внутри тега src-title-info )
$srcdir - каталог исходного файла (без "\" на конце)
$srcfile - имя исходного файла
$srcfileext - расширение исходного файла (начинается с ".", например ".txt")
$bookfile - имя файла с книгой (если исх. файл не заархивирован, то $bookfile = $srcfile, иначе $bookfile - имя файла в архиве, а $srcfile - имя архивного файла)
$bookfileext - расширение файла с книгой
Скрипт для определения имени файла должен сформировать имя файла без расширения в переменной $filename. Скрипт для определения каталога должен сформировать имя каталога в переменной $dir.
В строке допускается только один оператор. Строка начинающаяся с // является комментарием.
Оператор присваивания:
$переменная = операнд
или
$переменная = операнд1 +|- операнд2
или
$переменная = функция(операнд1, .)
Операнд может быть переменной, строковой и числовой константой. Типы операндов должны совпадать. Для строковых операндов допускается только оператор +.
Функции доступные в скрипте:
author(i, p) - возвращает i-го автора. i должна быть от 1 до $authoo. Если p = 'l', функция возвращает фамилию, 'f' - имя, 'm' - отчество, 'n' - ник (сетевой псевдодим), 'lf' - фамилию имя, 'fl' - имя фамилию, 'lfm' - фамилию имя отчество, 'fml' - имя отчество фамилию
genre(i) - возвращает i-тый жанр книги. i должна быть от 1 до $genreno
genrematch(i) - возвращает процентное соответствие книги i-му жанру. i должна быть от 1 до $genreno
translator(i, p) - возвращает i-го переводчика. i должна быть от 1 до $translatoo. Если p = 'l', функция возвращает фамилию, 'f' - имя, 'm' - отчество, 'n' - ник (сетевой псевдодим), 'lf' - фамилию имя, 'fl' - имя фамилию, 'lfm' - фамилию имя отчество, 'fml' - имя отчество фамилию
len(str) - возвращает кол-во символов в строке
left(str, n) - возвращает первые n символов строки str
mid(str, p, n) - возвращает n символов строки str начиная с позиции p. Первый символ с строке имеет позицию 1.
rtrim(str) - удаляет пробелы в конце строки
ltrim(str) - удаляет пробелы в начале строки
trim(str) - удаляет пробелы в начале и конце строки
repl(str, src, des) - заменяет в строке str все вхождения подстроки src на строку des
upper(str) - переводит строку в верхний регистр
lower(str) - переводит в строку в нижний регистр
cstr(int) - возвращает строковое представление числа
isdef(name) - возвращает ненулевое значение, если переменная c именем name определена
Условный оператор:
if (условие) оператор присваивания
или
if (условие) .
>
Оператор цикла:
while (условие) .
>
Условие в операторах if и while:
операнд1 =| | | | =| = операнд2
Операнд может быть переменной, строковой и числовой константой. Типы операндов должны совпадать. Для строковых операндов допускается только операторы сравнения = и .
В скрипте формирующем заголовок текстового файла используются процедуры:
printp(str) - форматирует и выводит строку как отдельный параграф
printannt() - выводит аннотацию
Некоторые аспекты работы программы:
- программа позволяет обрабатывать файлы в zip архивах только если в архиве один файл и файл сжат методом deflate
- для текстовых файлов не существует формата по которому указывается автор и название книги. Обычно в первой строке файла автор, во второй название книги или наоборот. Программа подсчитывает кол-во попаданий слов из первых 2-х строк в список фамилий и имен авторов, который имеется в программе. В той строке, для которой кол-во попаданий больше, находиться автор книги, в другой - название.
- в кодировке WIN1251 символы представляется всегда одним байтом, в кодировке UTF-8 символы представляется от 1 до 4-х байт. Символы кирилицы в UTF-8 занимают 2 байта. Теоретически при перекодировании из UTF-8 в WIN1251 размер файла должен уменьшиться в 2 раза (на 50%), но из-за того что в файле содержатся управляющие теги латинскими букавами, которые занимают 1 байт, плюс картинка обложки книги, и в результате файл уменьшается только на 40%. Цифры 40% и 10-15% для сжатых файлов получены экспериментальным путем.
Условия регистрации:
- программа используется как есть без каких либо гарантий со стороны разработчика
- регистрация распостраняется на все последующие версии программы
- запрещается передавать кому-либо свой регистрационный файл, в противном случае в следующих версиях Ваша регистрация может быть отменена
Программа предназначена для обработки файлов с книгами. Не требует инсталляции, после первого запуска может вызываться из проводника через контекстное меню обрабатываемых типов файлов (функция «Утилита Booki»).
Умеет обрабатывать текстовые, fb2 и rtf файлы (в том числе в zip-архивах). Выполняет операции как с отдельным файлом, так и сразу со всеми файлами в текущем каталоге. Может запускаться в режиме, когда операции c файлами выполняются без вывода окна программы на экран. Выполняемые операции и обрабатываемые файлы задаются через параметры командной строки. Параметры командной строки подробно описаны в документации к программе — небольшом html-файле, котрорый «зашит» в exe-шник программы. Дублировать его здесь ради увеличения объема книги, я не считаю возможным.
1. Переименовывать файлы с книгами. Программа определяет автора, название и серию книги из файла, формирует новое имя файла и переименовывает файл. Имя файла формируется скриптом, который задается в настройках программы. Синтаксис и функции скрипта описаны в документации к программе.
2. Перемещать («раскассировать») файлы по каталогам. Программа определяет автора, название и серию книги из description файла, формирует имя каталога, если необходимо создает его, и перемещает файл в этот каталог. Имя каталога формируется скриптом, который задается в настройках программы. Синтаксис и функции скрипта описаны в документации.
3. Перекодировать fb2 файлы из кодировки UTF-8 в WIN1251, что уменьшает размер файла примерно на 40% (в zip-архиве на 10-15%). Если в файле встретится символ, который отсутствует в кодировке WIN1251, то программа не перекодирует файл.
4. Переконвертировать файл из fb2 в txt. В настройках программы задается формат создаваемого текстового файла.
5. Перекодировать текстовые файлы из кодировки DOS CP866 в WIN1251.
К сожалению, все эти солидные достоинства омрачаются мелкими, но от этого еще боее неприятными недостатками.
Помимо того, что утилита платная, большим недостатком Booki являются несколько багов, кочующих из версии в версию. К примеру, если в заголовке книги имеются две и более подсерии, то такую книгу программка в упор не видит.
Хорошо хоть, в последних версиях конвертация в обычный текст доведена до вполне приемлемого уровня. Заголовки секций и эпиграфы отбиваются пустыми строками.
Надо отдать должное, автор программы постоянно ее совершенствует. Правда, значительная часть его усилий уходит не на исправление застарелых багов (которые, повторно отдадим должное, тоже потихоньку выводятся), а на создание «удобств» пользователям. Вроде мегабайтного регистрационного файла или постоянного запроса кода запуска с сайта автора (последнюю вредную наклонность приходилось даже лечить — вмешательством в код программы). К счастью, в последующих версиях, автор перестал доводить пользователей до такого греха, вернувшись к более традиционному nag-screen. [7.1]
В общем-то, несмотря на все нюансы, Booki — достойная программка. Самый большой плюс ее, конечно же, в том, что она без каких-либо дополнительных библиотек или особых требований к ОС (программка прекрасно чувствует себя под Win9x) может сконвертировать FB2 в txt.
При написании параграфа использовалась оригинальная документация утилиты Booki.
10.1.2. Утилита debugfs
10.1.2. Утилита debugfs Эта утилита входит в состав пакета e2fsprogs и служит для интерактивного исследования и изменения состояния файловых систем типа ext2 и ext3. Порядок ваших действий будет следующим:1. Размонтируйте файловую систему с удаленным файлом.2. Откройте ее в режиме
19.3.2. Утилита ip
19.3.2. Утилита ip Утилита ip, входящая в состав пакета iproute2, объединяет в себе все возможности команд ifconfig, arp и route. Формат ее вызова такой:ip [ключи] объект [команда [аргументы команды]]Ключи можно указывать следующие:? -s — вывод статистической информации;? -f — выбор
20.1 Утилита dpkg
20.1 Утилита dpkg На самом деле всё очень просто. Существуют два основных инструмента работы с пакетами: aptitude и dpkg[83]. dpkg — это низкоуровневая программа управления пакетами, единственная полезная её функция для обычного пользователя — это прямая установка пакета из deb-файла.
20.2 Утилита aptitude
20.2 Утилита aptitude Основным же консольным инструментом работы с пакетами является aptitude. В некотором смысле это консольный аналог менеджера пакетов Synaptic, хотя aptitude на самом деле обладает куда как большим функционалом.Сразу же вспомните про sudo, поскольку как ни странно, для
20.3 Утилита apt-get
20.3 Утилита apt-get На самом деле я немного вас обманул. В инструкциях гораздо чаще вместо aptitude используется apt-get. apt-get — это стандартная утилита управления пакетами, используется она ровно так же, как и aptitude, только у неё нет графического интерфейса и поиска. То есть во всех
Утилита SQLXML
Утилита k9copy
Утилита DVD::rip
Утилита DVD::rip Очень мощная утилита, написанная на языке Perl с интерфейсом Gtk+ (рис. 3.36), предназначенная для DVD-риппинга, то есть снятия информации с Video DVD с последующим перекодированием с большим количеством возможностей по кодированию. Рис. 3.36. Интерфейс программы
Утилита CDW
Утилита Akregator
Утилита Liferea
Утилита Kandy
Утилита gnokii
Утилита gnokii Как и предыдущие две программы, она построена по классической схеме. Консольная часть называется gnokii, а графическая оболочка – xgnokii. Xgnokii не локализована, но пункты меню стандартны и разобраться будет просто. В списке поддерживаемых телефонов – почти весь
21.4. Утилита ri
21.4. Утилита ri Сокращение ri, вероятно, означает «Ruby index» или нечто подобное. Это командная утилита для чтения документации, предоставляющая информацию о классах, методах, модулях и т.д. Пример:$ ri each_with_index------------------------------------------------------------ enumObj.each_with_index <|obj, i| block >->
2.2.8.2 Утилита DB/Cockpit
2.2.8.2 Утилита DB/Cockpit DB/Cockpit - это утилита, которая предоставляет администраторам баз данных графический интерфейс для слежения за состоянием баз данных и выполнения необходимых административных действий. Основные возможности: выдача предупреждений для администратора,
2.2.8.3 Утилита OnPerf
2.2.8.3 Утилита OnPerf OnPerf - утилита с графическим интерфейсом, которая является развитием имевшейся в предыдущих версиях INFORMIX-OnLine утилиты tbstat. Основные новые возможности: графический показ метрических значений в реальном времени;выбор метрик, за которыми нужно
Вот именно. Кто-то тут наверняка посоветует программу Calibre, однако при именно её инсталляции нужна именно пустая папка, а как быть, если у человека на момент инсталляции книг уже шестьсот ("перекачивать каждую из шестисот снова?"), да многие из них - в нескольких "форматах" (*.fb2, *.epub, *.pdf. ) каждая? Так что - нужен совет по программе, сортирующей именно уже имеющуюся библиотеку.
1. Для упорядочивания нужна программа - "BOOKI" (Определение автора и названия книги из текстового файла .fb2) (Перекодирование fb2 файла из кодировки UTF-8 в WIN1251) ( Сортировка и перемещение файлов.) Работает с несколькими файлами одновременно)
2, "AlReader" или MyRuLib (работает с многими форматами, поиск по авторах, жанрах и сериях) У меня стоит портативная MyRuLib.
3, Для поиска файлов подойдет "Everything"
4, для конвертирования из .doc в .fb2 есть "doc2fb"
Если есть вопросы, спрашивайте, отвечу подробно. Ибо сам занимаюсь таким.
Спасибо большое! Обязательно попробую
Номер версии не указывал. Поскольку есть и бесплатные (старые версии) и демо. Так что может быть, что на сегодня уже есть в свободном доступе новейшая версия. Нужно поискать.
Пользуйтесь в удовольствия!
Несколько вопросов про программу MyRuLib.
1. Полная стоимость лицензии на неё - аж 990 рублей, но этого, якобы, можно избежать, если разместить свой "обзор" этой программы в блоге. Вопрос: в этом случае блог должен быть открытым или закрытым? А то, например, у меня основной блог (один из блогов на LiveInternet) "закрыт для неавторизованных и из черного списка", второстепенные (например, на LiveJournal) - открыты для всех. Вот всё равно, где размещать запись "бесплатности ради"?
2. Какие функции MyRuLib недоступны до введения ключа?
3. "Покупную" MyRuLib можно "авторизовать" не более чем на трёх разных компьютерах, на каждом из них - хоть несколько раз (при переходе, например, с MyRuLib 4.8 на MyRuLib 4.9 или с Windows 7 на Windows 10). Касается ли это ("многоразовость") лицензий, полученных блоггерами?
4. А если у меня одна и та же книга - несколько раз (несколько бумажных изданий, выпущенных разными издательствами, да ещё несколько электронных файлов, с разными расширениями, да ещё "аудио". ) - вносить книгу в каталог несколько раз?
5. А если человек от книги избавился (выбросил, подарил, отнёс в "зону буккроссинга") - как изъять её из программы-каталогизатора, оставив при этом запись о прочтении?
Я извиняюсь. Мои вопросы, оказывается, касаются другой программы, а не MyRuLib
1. -
а) Думаю что в этой теме можно писать ваши вопросы. Ибо вы спрашиваете по теме. Или создайте свою тему - ваш профиль позволяет это. Или пишите в личку тех кто может вам ответить по вашем вопросу. Или поройтесь в соответствующих сайтах или форумах. Можно спросить совета в модераторов Лайвлиба.
б) Есть старые версии, они бесплатные, вы потратите меньше денег на обновление. И старые версии тоже неплохо работают. Немного не то, но подойдет. Ведь не все функции всегда нужны, но за них платить нужно. И они никому не нужны. Иногда можно вручную все сделать, нет нужды автоматизировать.
3. Если это переносная версия, то плевать на все. (Есть разные и честные способы обойти ограничивания. (пример, смена даты или IP адреса, разные браузеры, Опера с турбо). Объясню подробно в личке.
4. Программа читает информацию из файла, особенно в .fb2. Если файл (то есть его информация, неверна или недостаточно заполненная, проблемы на вашей стороне. :) . Можно попробовать вручную заполнить данные, хотя бы в обычном блокноте, да, нужные знания в правке кода.)
5. Запустить новое сканирование (проще), или вручную удалить. Зависит от проги или ее версии.
Полная фигня этот Calibre! Не советую, он для любителей или салаг. Многие честные и профессиональные книгоделы ругают ее от и до. Ибо не все она делает, есть недочеты и сбои. Кроме того она пиратская и . короче, никакая.
Если что, обратитесь на сайт maxima-library. там очень хорошее заполнение файлов книг (все форматы, если не поддерживает система, есть отдельные форумы где ведутся материалы и обсуждения). Прописывают почти все, особенно в .fb2! То что в бумажной книге пишут, и иногда есть дополнительные строки и информация. Есть полная инфа со сканов или иногда фото страниц и то же оформления (шрифт, информация, био, сноски, иллюстрации и прочее. Так же можно и самому поучаствовать и поучится всему и у всех. (конечно с умом и желанием. сайт пиратский, но соблюдает приличия и авторские требования. В общем смотрите сами).
Это не реклама, а объяснение как нужно делать дубликаты бумажной книги в электронные книги, то есть файлы. Ведь главное правило книгоделов электронной книги, или файлов книг --
ставит своей целью привлечение внимания к электронному чтению. У проекта нет задачи заменить реальные книги на электронные файлы. Наша цель – расширение круга читателей и возможность получить книгу или информацию о чтении в реальном времени, в любом уголке мира. Основная задача проекта - объединять все, что связано с электронными книгами и электронным чтением. Сайт также является открытым общественным проектом и ставит своей целью привлечение внимания к электронному чтению. Мы надеемся, что электронное чтение станет настолько же привычным как электронные деньги, которым в свое время уделяли еще меньше внимания. Электронные книги несут в себе схожую, но скрытую возможность, ибо завтра книги будут доступны читателям по всему миру благодаря возможностям Интернет. Основное правило существования проекта: объединять все самое лучшее, не создавать подмену книг электронными файлами, расширять круг читателей.
цитата с сайта Куллиб, которую я сам писал, правил и ставил админ сайта.
Если что, обращайтесь в личку.
1. Для упорядочивания нужна программа - "BOOKI" (Определение автора и названия книги из текстового файла .fb2) (Перекодирование fb2 файла из кодировки UTF-8 в WIN1251) ( Сортировка и перемещение файлов.) Работает с несколькими файлами одновременно)
2, "AlReader" или MyRuLib (работает с многими форматами, поиск по авторах, жанрах и сериях) У меня стоит портативная MyRuLib.
3, Для поиска файлов подойдет "Everything"
4, для конвертирования из .doc в .fb2 есть "doc2fb"
Если есть вопросы, спрашивайте, отвечу подробно. Ибо сам занимаюсь таким.
Читайте также: