]> git.phdru.name Git - m_librarian.git/blobdiff - docs/command_line.rst
Docs: Update TODO
[m_librarian.git] / docs / command_line.rst
index da05ed2ba537dd95ada4953d536d0b63eb2384b0..e7421435d057888d960c3f2fdbecad65c44462a7 100644 (file)
@@ -6,17 +6,19 @@ Command-line scripts
 .. contents::
    :local:
 
+.. highlight:: none
 
 ml-initdb.py
 ------------
 
 Usage::
 
-    ml-initdb.py [-d]
+    ml-initdb.py [-C] [-D]
 
 Options::
 
-    -d, --database database  Open this database by pathname/db uri
+    -C, --config config      Configuration file
+    -D, --database database  Open this database by pathname/db uri
 
 Initialize database and import genres list. Isn’t really needed as
 the next script does all that too.
@@ -27,11 +29,13 @@ ml-import.py
 
 Usage::
 
-    ml-import.py [-d] [file.inpx ...]
+    ml-import.py [-C] [-D] [-P] [file.inpx ...]
 
 Options::
 
-    -d, --database database  Open this database by pathname/db uri
+    -C, --config config      Configuration file
+    -D, --database database  Open this database by pathname/db uri
+    -P, --no-pbar            Inhibit progress bar
 
 Initialize database, import genres list and import a list of INPX files
 listed in the command line. On subsequent runs doesn’t destroy DB or
@@ -43,14 +47,15 @@ ml-search.py
 
 Usage::
 
-    ml-search.py [-d] [-i] [-I] [-t] [-s] [-f] [-v] [-c] ...
+    ml-search.py [-C] [-D] [-i] [-I] [-t] [-s] [-f] [-v] [-c] ...
 
 Search through the database and display results. Currently can only
 search authors by name.
 
 Global options::
 
-    -d, --database database  Open this database by pathname/db uri
+    -C, --config config      Configuration file
+    -D, --database database  Open this database by pathname/db uri
     -i, --ignore-case        ignore case (default is to guess)
     -I, --case-sensitive     don’t ignore case
     -t, --start              search type: substring at the start
@@ -113,12 +118,12 @@ name starts with "mack", case insensitive.
 With one option `-v` it also prints database id.
 
 
-Book search
-^^^^^^^^^^^
+Book searching and downloading
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Usage::
 
-    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]
+    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]
 
 Search and print a list of books by title, series, archive or file name.
 
@@ -141,6 +146,13 @@ Options::
     --gid gid              Search by genre’s id
     -l, --lang lang        Search by language
     --lid lid              Search by language’s id
+    --filters              Use filters from config
+    -P, --path path        Path to the directory with the library
+                           archives
+    --download-to [path]   Download directory
+    -F, --format format    Format of the downloaded file name
+    --get                  Download exactly one book
+    --get-many N           Download at most this many books
 
 By default the program prints only titles of the found book. With one
 option `-v` it also prints database id, the list of authors and genres,
@@ -150,6 +162,68 @@ it also prints the file date and language. With three `-v` it prints
 archive name, file name, extension and size, and flag if the book is
 marked to be deleted.
 
+Option `-P` provides the path to the directory with the library
+archives. By default the path is extracted from configuration file,
+section `[library]`, key `path`::
+
+    [library]
+    path = /var/lib/archives
+
+The option is useful for multiple databases (global option `-D`).
+
+Option `--filters` turns on using filters from config. Currently there
+are two kind of filters: filters on languages and filter on flag
+`deleted`. They are defined in the config file the following way::
+
+    [filters]
+    lang = en ru
+    deleted = 0
+
+`lang` filters is a list of language codes separated by a space.
+`deleted` is a 0/1 flag; 0 hides deleted books from search.
+
+Option `--download-to` provides the path to the download directory.
+By default the script downloads books to the current directory.
+If the option is used without `path` argument the path is extracted from
+configuration file, section `[download]`, key `path`::
+
+    [download]
+    path = /tmp
+
+Option `--get` allows to download a book from the library to a local
+file. The option allows to download exactly one book. The simplest way
+to use it is via option `--id`. The file is downloaded into the current
+directory with the name from the library.
+
+Configuration key
+
+|    [download]
+|    format = %a/%s/%n %t
+
+allows to set format for the download file pathname. Default format is
+`%f`, i.e. just filename. Other format specifiers are::
+
+    %a - author (one of if many)
+    %e - file extension
+    %f - file name in archive
+    %G - genre (one of if many), name
+    %g - genre (one of if many), title
+    %l - language
+    %n - series number (or 0)
+    %s - series
+    %t - title
+
+Format must not end in directory separator (`/` or `\\`). If specifier
+`%e` (extension) is not found in the format it is appended
+unconditionally with a dot. That is, format `%f` is equivalent to
+`%f.%e`.
+
+Option `-F|--format format` allows to overwrite this configuration value.
+
+Option `--get-many N` allows to download many books (at most N, where N
+is an integer). Options `--get-many N` and `--get` are, of course,
+mutually incompatible.
+
 
 Extension search
 ^^^^^^^^^^^^^^^^
@@ -200,4 +274,23 @@ Options::
 
 With one option `-v` it also prints database id.
 
+
+ml-web.py
+------------
+
+Usage::
+
+    ml-web.py [-p port]
+
+Options::
+
+    -p, --port port      HTTP port to listen to
+
+Run a web server. If a port is given listens on the given port else
+chooses a random port. Starts a browser (or open a new window of a
+running browser) pointing it to the server.
+
+If the program is already running the second instance detects the first
+one, starts a browser pointing to running instance and exits.
+
 .. vim: set tw=72 :