Скрипты командной строки — Документация m_Librarian 0.1.2

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

- ml-initdb.py
- ml-import.py
- ml-search.py
  - Поиск авторов
  - Поиск и загрузка книг
  - Поиск расширений
  - Поиск жанров
  - Поиск языков
- ml-web.py

## 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 языка
    -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).

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