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


.. contents::
   :local:

.. highlight:: none

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-сервера и останавливается.

.. vim: set tw=72 :
