X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=scripts%2Fml-search.py;h=04a8b53ace74b5898b8dbb7bba13c1260a43d94a;hb=cd508a983971cb2d185c7839e7238c44aa0d871e;hp=e4ae0119fe58127de3b5c43515582063d1eb1ead;hpb=81e51d7fdb7ee03b540a4bb82477b4da90a0a2eb;p=m_librarian.git diff --git a/scripts/ml-search.py b/scripts/ml-search.py index e4ae011..04a8b53 100755 --- a/scripts/ml-search.py +++ b/scripts/ml-search.py @@ -43,7 +43,8 @@ def _search_authors(case_sensitive, args): if case_sensitive is None: case_sensitive = _guess_case_sensitivity(values) for author in search_authors(args.search_type, case_sensitive, values, - expressions): + expressions, + orderBy=('surname', 'name', 'misc_name')): names = filter(None, (author.surname, author.name, author.misc_name)) fullname = u' '.join(names) print fullname.encode(default_encoding), \ @@ -51,10 +52,14 @@ def _search_authors(case_sensitive, args): def _search_extensions(case_sensitive, args): - values = {'name': args.name} - if case_sensitive is None: - case_sensitive = _guess_case_sensitivity(values) - for ext in search_extensions(args.search_type, case_sensitive, values): + if args.name: + values = {'name': args.name} + if case_sensitive is None: + case_sensitive = _guess_case_sensitivity(values) + else: + values = {} + for ext in search_extensions(args.search_type, case_sensitive, values, + orderBy='name'): print ext.name.encode(default_encoding), \ (u"(%s: %d)" % (_('books'), ext.count)).encode(default_encoding) @@ -68,7 +73,8 @@ def _search_genres(case_sensitive, args): values[column] = unicode(value, default_encoding) if case_sensitive is None: case_sensitive = _guess_case_sensitivity(values) - for genre in search_genres(args.search_type, case_sensitive, values): + for genre in search_genres(args.search_type, case_sensitive, values, + orderBy='name'): names = filter(None, (genre.name, genre.title)) fullname = u' '.join(names) print fullname.encode(default_encoding), \ @@ -76,10 +82,14 @@ def _search_genres(case_sensitive, args): def _search_languages(case_sensitive, args): - values = {'name': args.name} - if case_sensitive is None: - case_sensitive = _guess_case_sensitivity(values) - for lang in search_languages(args.search_type, case_sensitive, values): + if args.name: + values = {'name': args.name} + if case_sensitive is None: + case_sensitive = _guess_case_sensitivity(values) + else: + values = {} + for lang in search_languages(args.search_type, case_sensitive, values, + orderBy='name'): print lang.name.encode(default_encoding), \ (u"(%s: %d)" % (_('books'), lang.count)).encode(default_encoding) @@ -109,7 +119,7 @@ if __name__ == '__main__': parser.set_defaults(func=_search_authors) parser = subparsers.add_parser('ext', help='Search extensions') - parser.add_argument('name', help='search by name') + parser.add_argument('name', nargs='?', help='search by name') parser.set_defaults(func=_search_extensions) parser = subparsers.add_parser('genres', help='Search genres') @@ -118,7 +128,7 @@ if __name__ == '__main__': parser.set_defaults(func=_search_genres) parser = subparsers.add_parser('lang', help='Search languages') - parser.add_argument('name', help='search by name') + parser.add_argument('name', nargs='?', help='search by name') parser.set_defaults(func=_search_languages) args = main_parser.parse_args()