]> git.phdru.name Git - m_librarian.git/blobdiff - scripts/ml-search.py
Feat(search): Использовать фильтры из файла конфигурации
[m_librarian.git] / scripts / ml-search.py
index fe8dc48be67140af19d63108f9b96474be8fcb74..7cc32e187d9b913d46010e0b06b9cc275c4bb383 100755 (executable)
@@ -2,6 +2,11 @@
 
 from __future__ import print_function
 import argparse
+try:
+    from configparser import NoSectionError, NoOptionError
+except ImportError:  # Python 2
+    from ConfigParser import NoSectionError, NoOptionError
+import os
 import sys
 from sqlobject.sqlbuilder import CONCAT
 
@@ -152,7 +157,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'),
+                         use_filters=args.filters)
     if args.count:
         print_count(books.count())
         return
@@ -199,7 +205,13 @@ 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:
+                try:
+                    download_to = get_config().get('download', 'path')
+                except (NoSectionError, NoOptionError):
+                    download_to = os.path.curdir
+            download(book, download_to, args.path, args.format)
         count += 1
     print_count(count)
 
@@ -321,7 +333,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',