GR Catalog Plugin implementation

This commit is contained in:
GRiker 2010-01-13 11:07:14 -07:00
parent 00b4b1194a
commit f91a304051
2 changed files with 31 additions and 12 deletions

View File

@ -249,7 +249,34 @@ class CatalogPlugin(Plugin):
cli_options = [] cli_options = []
def run(self, path_to_output, opts, log): def search_sort_db_as_dict(self, db, opts):
if opts.search_text:
db.search(opts.search_text)
if opts.sort_by:
# 2nd arg = ascending
db.sort(opts.sort_by, True)
return db.get_data_as_dict()
def get_output_fields(self, opts):
# Return a list of requested fields, with opts.sort_by first
all_fields = set(
['author_sort','authors','comments','cover','formats', 'id','isbn','pubdate','publisher','rating',
'series_index','series','size','tags','timestamp',
'title','uuid'])
fields = all_fields
if opts.fields != 'all':
# Make a list from opts.fields
requested_fields = set(opts.fields.split(','))
fields = list(all_fields & requested_fields)
else:
fields = list(all_fields)
fields.sort()
fields.insert(0,fields.pop(int(fields.index(opts.sort_by))))
return fields
def run(self, path_to_output, opts, db):
''' '''
Run the plugin. Must be implemented in subclasses. Run the plugin. Must be implemented in subclasses.
It should generate the catalog in the format specified It should generate the catalog in the format specified
@ -263,17 +290,10 @@ class CatalogPlugin(Plugin):
:param path_to_output: Absolute path to the generated catalog file. :param path_to_output: Absolute path to the generated catalog file.
:param opts: A dictionary of keyword arguments :param opts: A dictionary of keyword arguments
:param db: A LibraryDatabase2 object
:return: Absolute path to the modified ebook. :return: None
Access the opts object as a dictionary with this code:
opts_dict = vars(opts)
keys = opts_dict.keys()
keys.sort()
print "opts:"
for key in keys:
print "\t%s: %s" % (key, opts_dict[key])
''' '''
# Default implementation does nothing # Default implementation does nothing
print "CatalogPlugin.generate_catalog() default method, should be overridden in subclass" print "CatalogPlugin.generate_catalog() default method, should be overridden in subclass"

View File

@ -600,7 +600,6 @@ def catalog_option_parser(args):
dest=option.dest, dest=option.dest,
help=option.help) help=option.help)
# print_help(parser, log)
return plugin return plugin
def print_help(parser, log): def print_help(parser, log):
@ -691,7 +690,7 @@ def command_catalog(args, dbpath):
return 1 return 1
if opts.verbose: if opts.verbose:
log("library.cli:command_catalog dispatching to plugin %s" % plugin.name) log("library.cli:command_catalog dispatching to plugin %s" % plugin.name)
plugin.run(args[1], opts) plugin.run(args[1], opts, get_db(dbpath, opts))
return 0 return 0
# end of GR additions # end of GR additions