Скрипты командной строки ======================== .. 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 :