Version 0.0.10 (2016-05-??)
- Print count after the list
+ Multidatabase - every script can open a database by pathname or DB URI.
- Rename -d/--details options to -v/--verbose
+ Print count after the list.
+
+ Rename -d/--details options to -v/--verbose.
Version 0.0.9 (2016-05-30)
- Search authors/extensions/genres/languages by database id
+ Search authors/extensions/genres/languages by database id.
Version 0.0.8 (2016-05-29)
- Search by author's, book's, extension's, language's id
+ Search by author's, book's, extension's, language's id.
- Output count of found objects
+ Output count of found objects.
- Use option -d to output database id
+ Use option -d to output database id.
Version 0.0.7 (2016-05-25)
Web interface for listing authors, books, series, etc.
-Multidatabase: LRE FB2, Flibusta FB2, LRE all, Flibusta all,
-LRE+Flibusta FB2, LRE+Flibusta all.
-
-
Import from SQL instead of INPX. Import annotations and illustrations.
ml-initdb.py
------------
+Использование::
+
+ ml-initdb.py [-d]
+
+Опции::
+
+ -d, --database database Использовать указанную БД
+
Инициализирует базу данных и импортирует список жанров. Этот скрипт не
очень-то нужен, так как следующий скрипт делает всё указанное.
Использование::
- ml-import.py [file.inpx ...]
+ ml-import.py [-d] [file.inpx ...]
+
+Опции::
+
+ -d, --database database Использовать указанную БД
Инициализирует базу данных, импортирует список жанров и список файлов
INPX, перечисленных в командной строке. При повторных запусках не
Использование::
- ml-search.py [-i] [-I] [-t] [-s] [-f] [-d] [-c] ...
+ ml-search.py [-d] [-i] [-I] [-t] [-s] [-f] [-v] [-c] ...
Программа выполняет поиск по базе данных и показывает список
результатов. В настоящее время может искать только в списке авторов.
Глобальные опции::
- -i, --ignore-case независимо от регистра (по умолчанию: угадать)
- -I, --case-sensitive с учётом регистра
- -t, --start тип поиска: подстрока в начале строки
- (это тип поиска по умолчанию)
- -s, --substring тип поиска: подстрока в любом месте
- -f, --full тип поиска: полное совпадение всей строки
- -c, --count Выводить число найденных объектов, а не сами
- объекты
- -v, --verbose Выводить больше информации о найденных
- объектах; повторите эту опцию несколько раз,
- чтобы получить ещё больше деталей
+ -d, --database database Использовать указанную БД
+ -i, --ignore-case независимо от регистра (по умолчанию: угадать)
+ -I, --case-sensitive с учётом регистра
+ -t, --start тип поиска: подстрока в начале строки
+ (это тип поиска по умолчанию)
+ -s, --substring тип поиска: подстрока в любом месте
+ -f, --full тип поиска: полное совпадение всей строки
+ -c, --count Выводить число найденных объектов, а не сами
+ объекты
+ -v, --verbose Выводить больше информации о найденных
+ объектах; повторите эту опцию несколько раз,
+ чтобы получить ещё больше деталей
Опции ``-i/-I`` не могут использованы одновременно, поскольку означают
противоположные команды. В случае, если ни одна из них не использована,
Использование::
- ml-search.py [-i/-I] [-t/-s/-f] author [-s surname] [-n name] [-m misc-name] [--id id] [fullname]
+ ml-search.py author [-s surname] [-n name] [-m misc-name] [--id id] [fullname]
Искать и печатать список авторов по фамилии, имени, доп. имени (обычно
отчеству) или полному имени.
Искать и печатать список авторов, чья фамилия начинается на "друг" и имя
начинается на "в", без учёта регистра.
-При использовании опции `-d` также выводится id из БД.
+При использовании опции `-v` также выводится id из БД.
Поиск книг
Использование::
- ml-search.py [-i/-I] [-t/-s/-f] 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]
Искать и печатать список книг по заголовку, серии, архиву, имени файла.
--lid lid Искать по id языка
По умолчанию программы выводит список заголовков найденных книг. При
-использовании опции `-d` также выводится id из БД, список авторов и
+использовании опции `-v` также выводится id из БД, список авторов и
жанров, а также серия, к которой принадлежит книга (если принадлежит) и
-порядковый номер книги в этой серии. С двумя опциями `-d` (`-d -d` или
-просто `-dd`) программа выводит дату файла и язык. С тремя `-d`
+порядковый номер книги в этой серии. С двумя опциями `-v` (`-v -v` или
+просто `-vv`) программа выводит дату файла и язык. С тремя `-v`
выводятся имя архива, имя файла, расширение и размер файла, и признак,
была ли книга помечена как удалённая.
Использование::
- ml-search.py [-i/-I] [-t/-s/-f] ext [name] [--id id]
+ ml-search.py ext [name] [--id id]
Опции::
Искать и печатать список расширений имён файлов по имени.
-При использовании опции `-d` также выводится id из БД.
+При использовании опции `-v` также выводится id из БД.
Поиск жанров
Использование::
- ml-search.py [-i/-I] [-t/-s/-f] genres [-n name] [-t title] [--id id]
+ ml-search.py genres [-n name] [-t title] [--id id]
Искать и печатать список жанров по имени и заголовку.
-t, --title заголовок Искать по заголовку
--id id Искать по id жанра
-При использовании опции `-d` также выводится id из БД.
+При использовании опции `-v` также выводится id из БД.
Поиск языков
Использование::
- ml-search.py [-i/-I] [-t/-s/-f] lang [name] [--id id]
+ ml-search.py lang [name] [--id id]
Опции::
Искать и печатать список языков по имени.
-При использовании опции `-d` также выводится id из БД.
+При использовании опции `-v` также выводится id из БД.
.. vim: set tw=72 :
ml-initdb.py
------------
+Usage::
+
+ ml-initdb.py [-d]
+
+Options::
+
+ -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.
Usage::
- ml-import.py [file.inpx ...]
+ ml-import.py [-d] [file.inpx ...]
+
+Options::
+
+ -d, --database database Open this database by pathname/db uri
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
Usage::
- ml-search.py [-i] [-I] [-t] [-s] [-f] [-d] [-c] ...
+ ml-search.py [-d] [-i] [-I] [-t] [-s] [-f] [-v] [-c] ...
Search through the database and display results. Currently can only
search authors by name.
Global options::
- -i, --ignore-case ignore case (default is to guess)
- -I, --case-sensitive don’t ignore case
- -t, --start search type: substring at the start
- (this is the default)
- -s, --substring search type: substring anywhere
- -f, --full search type: match the full string
- -c, --count Output count of found objects
- -v, --verbose Output more details about found objects;
- repeat for even more details
+ -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
+ (this is the default)
+ -s, --substring search type: substring anywhere
+ -f, --full search type: match the full string
+ -c, --count Output count of found objects
+ -v, --verbose Output more details about found objects;
+ repeat for even more details
Options ``-i/-I`` cannot be used together as they are the opposite. In
case none of them are used the program guesses case-sensitivity by
Usage::
- ml-search.py [-i/-I] [-t/-s/-f] author [-s surname] [-n name] [-m misc-name] [--id id] [fullname]
+ ml-search.py author [-s surname] [-n name] [-m misc-name] [--id id] [fullname]
Search and print a list of authors by surname/name/misc name/full name.
Search and print a list of authors whose surname starts with "duck" and
name starts with "mack", case insensitive.
-With one option `-d` it also prints database id.
+With one option `-v` it also prints database id.
Book search
Usage::
- ml-search.py [-i/-I] [-t/-s/-f] 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]
Search and print a list of books by title, series, archive or file name.
--lid lid Search by language’s id
By default the program prints only titles of the found book. With one
-option `-d` it also prints database id, the list of authors and genres,
+option `-v` it also prints database id, the list of authors and genres,
and also series the book belongs to (if any) and the serial number of
-the book in the series. With two options `-d` (`-d -d` or simply `-dd`)
-it also prints the file date and language. With three `-d` it prints
+the book in the series. With two options `-v` (`-v -v` or simply `-vv`)
+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.
Usage::
- ml-search.py [-i/-I] [-t/-s/-f] ext [name] [--id id]
+ ml-search.py ext [name] [--id id]
Options::
Search and print a list of extensions by name.
-With one option `-d` it also prints database id.
+With one option `-v` it also prints database id.
Genres search
Usage::
- ml-search.py [-i/-I] [-t/-s/-f] genres [-n name] [-t title] [--id id]
+ ml-search.py genres [-n name] [-t title] [--id id]
Search and print a list of genres by name and title.
-t, --title title Search by title
--id id Search by database id
-With one option `-d` it also prints database id.
+With one option `-v` it also prints database id.
Language search
Usage::
- ml-search.py [-i/-I] [-t/-s/-f] lang [name] [--id id]
+ ml-search.py lang [name] [--id id]
Search and print a list of languages by name.
--id id Search by database id
-With one option `-d` it also prints database id.
+With one option `-v` it also prints database id.
.. vim: set tw=72 :
except:
db_uri = find_sqlite_dburi()
- if db_uri.startswith(os.sep) or db_uri.startswith(os.altsep) \
+ if db_uri.startswith(os.sep) or os.altsep and db_uri.startswith(os.altsep) \
or db_uri.startswith(os.pardir + os.sep) \
- or db_uri.startswith(os.pardir + os.altsep):
+ or os.altsep and db_uri.startswith(os.pardir + os.altsep):
if db_uri.startswith(os.pardir + os.sep) \
- or db_uri.startswith(os.pardir + os.altsep):
+ or os.altsep and db_uri.startswith(os.pardir + os.altsep):
db_uri = os.path.abspath(db_uri)
db_uri = 'sqlite://' + db_uri.replace(os.sep, '/')
#! /usr/bin/env python
-import sys
+import argparse
from m_librarian.db import open_db, init_db, update_counters
from m_librarian.glst import import_glst
from m_librarian.inp import import_inpx
if __name__ == '__main__':
- if len(sys.argv) < 2:
- sys.exit("Usage: %s file.inpx..." % sys.argv[0])
- open_db()
+ parser = argparse.ArgumentParser(description='Import')
+ parser.add_argument('-d', '--database', help='database URI')
+ parser.add_argument('inpx', nargs='+', help='INPX files to import')
+ args = parser.parse_args()
+
+ open_db(args.database)
init_db()
import_glst()
- for inpx in sys.argv[1:]:
+ for inpx in args.inpx:
import_inpx(inpx)
update_counters()
#! /usr/bin/env python
+import argparse
from m_librarian.db import open_db, init_db
from m_librarian.glst import import_glst
if __name__ == '__main__':
- open_db()
+ parser = argparse.ArgumentParser(description='Init')
+ parser.add_argument('-d', '--database', help='database URI')
+ args = parser.parse_args()
+
+ open_db(args.database)
init_db()
old, new = import_glst()
if old:
if __name__ == '__main__':
main_parser = argparse.ArgumentParser(description='Search')
+ main_parser.add_argument('-d', '--database', help='database URI')
main_parser.add_argument('-i', '--ignore-case', action='store_true',
help='ignore case '
'(default is to guess)')
else:
search_type = 'start'
- open_db()
+ open_db(args.database)
args.func(case_sensitive, search_type, args)