Скрипты командной строки

ml-initdb.py

Использование:

ml-initdb.py [-C] [-D]

Опции:

-C, --config config      Путь к файлу конфигурации
-D, --database database  Использовать указанную БД

Инициализирует базу данных и импортирует список жанров. Этот скрипт не очень-то нужен, так как следующий скрипт делает всё указанное.

ml-import.py

Использование:

ml-import.py [-C] [-D] [-P] [file.inpx ...]

Опции:

-C, --config config      Путь к файлу конфигурации
-D, --database database  Использовать указанную БД
-P, --no-pbar            Не показывать индикатор процесса

Инициализирует базу данных, импортирует список жанров и список файлов INPX, перечисленных в командной строке. При повторных запусках не переинициализирует БД и не переимпортирует жанры; так же не переимпортирует уже проимпортированные книги, но импортирует в БД новые.

ml-search.py

Использование:

ml-search.py [-C] [-D] [-i] [-I] [-t] [-s] [-f] [-v] [-c] ...

Программа выполняет поиск по базе данных и показывает список результатов. В настоящее время может искать только в списке авторов.

Глобальные опции:

-C, --config config      Путь к файлу конфигурации
-D, --database database  Использовать указанную БД
-i, --ignore-case        независимо от регистра (по умолчанию: угадать)
-I, --case-sensitive     с учётом регистра
-t, --start              тип поиска: подстрока в начале строки
                         (это тип поиска по умолчанию)
-s, --substring          тип поиска: подстрока в любом месте
-f, --full               тип поиска: полное совпадение всей строки
-c, --count              Выводить число найденных объектов, а не сами
                         объекты
-v, --verbose            Выводить больше информации о найденных
                         объектах; повторите эту опцию несколько раз,
                         чтобы получить ещё больше деталей

Опции -i/-I не могут использованы одновременно, поскольку означают противоположные команды. В случае, если ни одна из них не использована, программа угадывает зависимость от регистра: если все параметры даны в нижнем регистре, программы выполнит поиск без учёта регистра. Если среди параметров есть параметры в ВЕРХНЕМ или Смешанном регистре - поиск будет с учётом регистра.

Опции -t/-s/-f определяют тип поиска. Возможные значения:

  • start - поиск подстроки в начале поля; поиск «друг» найдёт «друг» и «другой», но не «подруга»; это тип по умолчанию;

  • substring - поиск подстроки в любом месте; поиск «друг» найдёт «друг», «другой» и «подруга».

  • full - поиск на точное совпадение всей строки; поиск «друг» найдёт только «друг», но не «другой»;

Поиск авторов

Использование:

ml-search.py author [-s surname] [-n name] [-m misc-name] [--id id] [fullname]

Искать и печатать список авторов по фамилии, имени, доп. имени (обычно отчеству) или полному имени.

Опции:

-s, --surname фамилия       Искать по фамилии
-n, --name имя              Искать по имени
-m, --misc-name доп. имени  Искать по доп. имени
--id id                     Искать по id автора

Пример:

ml-search.py -i author -s друг

Искать и печатать список авторов, чья фамилия начинается на «друг», без учёта регистра.

Если использовать несколько опций, поиск будет сужен оператором «И». Пример:

ml-search.py -i author -s друг -n в

Искать и печатать список авторов, чья фамилия начинается на «друг» и имя начинается на «в», без учёта регистра.

При использовании опции -v также выводится id из БД.

Поиск и загрузка книг

Использование:

ml-search.py books [-t title] [-s series] [-a archive] [-f file] [--id id] [--surname name] [--name name] [--misc-name name] [--fullname name] [--aid aid] [-e ext] [--eid eid] [--gname name] [--gtitle title] [--gid gid] [-l lang] [--lid lid] [-P path] [-F format] [--get] [--get-many N]

Искать и печатать список книг по заголовку, серии, архиву, имени файла.

Опции:

-t, --title заголовок  Искать по заголовку
-s, --series серия     Искать по серии
-a, --archive архив    Искать по имени архива (zip-файла)
-f, --file файл        Искать по имени файла (без расширения)
--id id                Искать по id книги
--surname surname      Искать по фамилии автора
--name name            Искать по имени автора
--misc-name misc. name Искать по доп. имени автора
--fullname name        Искать по полному имени автора
--aid aid              Искать по id автора
-e, --ext ext          Искать по расширению имени файла
--eid eid              Искать по id расширения
--gname name           Искать по названию жанра
--gtitle title         Искать по заголовку жанра
--gid gid              Искать по id жанра
-l, --lang lang        Искать по языку
--lid lid              Искать по id языка
--filters              Использовать фильтры из файла конфигурации
-P, --path path        Путь к директории с архивами библиотеки
--download-to [path]   Путь к директории для сохранения книг
-F, --format format    Формат имени сохраняемого файла
--get                  Загрузить ровно один файл
--get-many N           Загрузить не больше указанного числа файлов

По умолчанию программы выводит список заголовков найденных книг. При использовании опции -v также выводится id из БД, список авторов и жанров, а также серия, к которой принадлежит книга (если принадлежит) и порядковый номер книги в этой серии. С двумя опциями -v (-v -v или просто -vv) программа выводит дату файла и язык. С тремя -v выводятся имя архива, имя файла, расширение и размер файла, и признак, была ли книга помечена как удалённая.

Опция -P задаёт путь к директории с архивами библиотеки. По умолчанию этот путь берётся из файла конфигурации, секция [library], ключ path, например:

[library]
path = /var/lib/archives

Опция полезна в ситуации работы с несколькими базами данных (глобальная опция -D).

Опция –filters включает использование фильтров из файла конфигурации. Фильтры записываются следующим образом:

[filters]
lang = en ru
deleted = 0

Фильтр lang перечисляет список языков, которыми будет ограничен поиск. Фильтр deleted — это флаг 0/1; 0 означает, что удалённые книги не будут найдены.

Опция –download-to задаёт путь к директории для сохранения книг. По умолчанию скрипт сохраняет книги в текущую директорию. Если опция используется без указания аргумента path скрипт использует значение из файла конфигурации, секция [download], ключ path:

[download]
path = /tmp

Опция –get позволяет загрузить книгу из библиотеки в файл. Опция позволяет загрузить ровно одну книгу, поэтому самый простой способ использовать эту команду — совместно с опцией –id. Файл сохраняется в текущую директорию с тем именем, под которым он храниться в библиотеке.

Ключ format в секции [download] файла конфигурации

[download]
format = %a/%s/%n %t

позволяет управлять именами директорий и именем файла, куда m_Librarian будет сохранять файлы. Формат по умолчанию %f, т.е. просто имя файла. Другие доступные спецификаторы:

%a - автор (один из, если их несколько)
%e - расширение имени файла
%f - имя файла
%G - жанр (один из, если их несколько), имя из БД
%g - жанр (один из, если их несколько), название
%l - язык
%n - номер в серии (или 0)
%s - серия
%t - название

Формат не должен заканчиваться на разделитель директорий (/ или \). Если спецификатор %e (расширение) не найден в формате, он добавляется в конец с точкой в качестве разделителя. Т.о. формат %f эквивалентен формату %f.%e.

Опция -F|–format format позволяет указать формат в командной строке.

Опция –get-many N позволяет загрузить указанное число книг (не больше чем N, где N — целое число.) Опции –get-many N и –get взаимно исключают друг друга и не должны использоваться одновременно.

Поиск расширений

Использование:

ml-search.py ext [name] [--id id]

Опции:

--id id                Искать по id расширения

Искать и печатать список расширений имён файлов по имени.

При использовании опции -v также выводится id из БД.

Поиск жанров

Использование:

ml-search.py genres [-n name] [-t title] [--id id]

Искать и печатать список жанров по имени и заголовку.

Опции:

-n, --name имя         Искать по названию
-t, --title заголовок  Искать по заголовку
--id id                Искать по id жанра

При использовании опции -v также выводится id из БД.

Поиск языков

Использование:

ml-search.py lang [name] [--id id]

Опции:

--id id                Искать по id языка

Искать и печатать список языков по имени.

При использовании опции -v также выводится id из БД.

ml-web.py

Использование:

ml-web.py [-p port]

Опции:

-p, --port port      Порт протокола HTTP

Запускает web-сервер. Если указан порт, то используется указанный порт. Иначе выбирается случайный порт из числа свободных. Программа запускает браузер (или открывает новое окно уже запущенного web-обозревателя) с адресом, указывающим на сервер.

Если одна копия программы уже запущена, а пользователь запустил вторую, вторая копия определяет наличие первой, запускает браузер с адресом первого web-сервера и останавливается.