def main(opts, args, dbctx): if len(args) < 1: raise SystemExit(_('You must specify a catalog output file')) if opts.ids: opts.ids = list(integers_from_string(opts.ids)) fmt = args[0].rpartition('.')[-1] if fmt not in available_catalog_formats(): raise SystemExit( _('Cannot generate a catalog in the {} format').format(fmt.upper()) ) # No support for connected device in CLI environment # Parallel initialization in calibre.gui2.tools:generate_catalog() opts.connected_device = { 'is_device_connected': False, 'kind': None, 'name': None, 'save_template': None, 'serial': None, 'storage': None, } dest = os.path.abspath(os.path.expanduser(args[0])) plugin = plugin_for_catalog_format(fmt) with plugin: plugin.run(dest, opts, dbctx.db) return 0
def main(opts, args, dbctx): if len(args) < 1: raise SystemExit(_('You must specify a catalog output file')) if opts.ids: opts.ids = list(integers_from_string(opts.ids)) fmt = args[0].rpartition('.')[-1] if fmt not in available_catalog_formats(): raise SystemExit( _('Cannot generate a catalog in the {} format').format( fmt.upper())) # No support for connected device in CLI environment # Parallel initialization in calibre.gui2.tools:generate_catalog() opts.connected_device = { 'is_device_connected': False, 'kind': None, 'name': None, 'save_template': None, 'serial': None, 'storage': None, } dest = os.path.abspath(os.path.expanduser(args[0])) plugin = plugin_for_catalog_format(fmt) with plugin: plugin.run(dest, opts, dbctx.db) return 0
def gui_catalog(fmt, title, dbspec, ids, out_file_name, sync, fmt_options, connected_device, notification=DummyReporter(), log=None): if log is None: log = Log() from calibre.library import db from calibre.utils.config import prefs prefs.refresh() db = db(read_only=True) db.catalog_plugin_on_device_temp_mapping = dbspec # Create a minimal OptionParser that we can append to parser = OptionParser() args = [] parser.add_option("--verbose", action="store_true", dest="verbose", default=True) opts, args = parser.parse_args() # Populate opts # opts.gui_search_text = something opts.catalog_title = title opts.connected_device = connected_device opts.ids = ids opts.search_text = None opts.sort_by = None opts.sync = sync # Extract the option dictionary to comma-separated lists for option in fmt_options: if isinstance(fmt_options[option], list): setattr(opts, option, ','.join(fmt_options[option])) else: setattr(opts, option, fmt_options[option]) # Fetch and run the plugin for fmt # Returns 0 if successful, 1 if no catalog built plugin = plugin_for_catalog_format(fmt) return plugin.run(out_file_name, opts, db, notification=notification)
def add_plugin_parser_options(fmt, parser): # Fetch the extension-specific CLI options from the plugin # library.catalogs.<format>.py plugin = plugin_for_catalog_format(fmt) p = parser.add_option_group(_('{} OPTIONS').format(fmt.upper())) for option in plugin.cli_options: if option.action: p.add_option(option.option, default=option.default, dest=option.dest, action=option.action, help=option.help) else: p.add_option(option.option, default=option.default, dest=option.dest, help=option.help)
def add_plugin_parser_options(fmt, parser, log): # Fetch the extension-specific CLI options from the plugin plugin = plugin_for_catalog_format(fmt) for option in plugin.cli_options: if option.action: parser.add_option(option.option, default=option.default, dest=option.dest, action=option.action, help=option.help) else: parser.add_option(option.option, default=option.default, dest=option.dest, help=option.help) return plugin
def add_plugin_parser_options(fmt, parser): # Fetch the extension-specific CLI options from the plugin # library.catalogs.<format>.py plugin = plugin_for_catalog_format(fmt) p = parser.add_option_group(_('{} OPTIONS').format(fmt.upper())) for option in plugin.cli_options: if option.action: p.add_option( option.option, default=option.default, dest=option.dest, action=option.action, help=option.help ) else: p.add_option( option.option, default=option.default, dest=option.dest, help=option.help )
def gui_catalog(fmt, title, dbspec, ids, out_file_name, sync, fmt_options, connected_device, notification=DummyReporter(), log=None): if log is None: log = Log() from calibre.library import db from calibre.utils.config import prefs prefs.refresh() db = db(read_only=True) db.catalog_plugin_on_device_temp_mapping = dbspec # Create a minimal OptionParser that we can append to parser = OptionParser() args = [] parser.add_option("--verbose", action="store_true", dest="verbose", default=True) opts, args = parser.parse_args() # Populate opts # opts.gui_search_text = something opts.catalog_title = title opts.connected_device = connected_device opts.ids = ids opts.search_text = None opts.sort_by = None opts.sync = sync # Extract the option dictionary to comma-separated lists for option in fmt_options: if isinstance(fmt_options[option],list): setattr(opts,option, ','.join(fmt_options[option])) else: setattr(opts,option, fmt_options[option]) # Fetch and run the plugin for fmt # Returns 0 if successful, 1 if no catalog built plugin = plugin_for_catalog_format(fmt) return plugin.run(out_file_name, opts, db, notification=notification)