X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=scripts%2Fml-search.py;h=7e6c9da3b793c02df82ea5d8570635258427a31a;hb=5ccddf723234cfc741f767c903f95615e8f41e45;hp=fe8dc48be67140af19d63108f9b96474be8fcb74;hpb=281320701796a6fd5984f3ef66ee450ea2e7c4b3;p=m_librarian.git diff --git a/scripts/ml-search.py b/scripts/ml-search.py index fe8dc48..7e6c9da 100755 --- a/scripts/ml-search.py +++ b/scripts/ml-search.py @@ -2,7 +2,9 @@ from __future__ import print_function import argparse +import os import sys + from sqlobject.sqlbuilder import CONCAT from m_lib.defenc import default_encoding @@ -152,7 +154,8 @@ def _search_books(case_sensitive, search_type, args): Language, search_type, case_sensitive, lvalues) join_expressions.extend(conditions) books = search_books(search_type, case_sensitive, values, join_expressions, - orderBy=('series', 'ser_no', 'title')) + orderBy=('series', 'ser_no', 'title', '-date'), + use_filters=args.filters) if args.count: print_count(books.count()) return @@ -199,7 +202,10 @@ def _search_books(case_sensitive, search_type, args): print(" ", encode(_("Deleted")), ":", encode(_(str(book.deleted)))) if args.get or args.get_many: - download(book, args.path, args.format) + download_to = args.download_to + if download_to is None: + download_to = get_config().getpath('download', 'path') + download(book, download_to, args.path, args.format) count += 1 print_count(count) @@ -321,7 +327,12 @@ if __name__ == '__main__': parser.add_argument('--gid', type=int, help='search by genre\'s id') parser.add_argument('-l', '--lang', help='search by language') parser.add_argument('--lid', type=int, help='search by language\'s id') + parser.add_argument('--filters', action='store_true', + help='use filters from config') parser.add_argument('-P', '--path', help='path to the library archives') + parser.add_argument('--download-to', nargs='?', + const=None, default=os.path.curdir, + help='download directory') parser.add_argument('-F', '--format', help='download format, default is %%f') parser.add_argument('--get', action='store_true', @@ -367,7 +378,7 @@ if __name__ == '__main__': if int(args.start) + int(args.substring) + int(args.full) > 1: sys.stderr.write( - "Cannot search case sensitive and case insensitive " + "Cannot search from start, substring and full " "at the same time\n") main_parser.print_help() sys.exit(1)