def generate_catalog(parent, dbspec, ids, device_manager, db): # {{{ from calibre.gui2.dialogs.catalog import Catalog # Build the Catalog dialog in gui2.dialogs.catalog d = Catalog(parent, dbspec, ids, db) if d.exec_() != d.Accepted: return None # Create the output file out = PersistentTemporaryFile(suffix='_catalog_out.' + d.catalog_format.lower()) # Profile the connected device # Parallel initialization in calibre.db.cli.cmd_catalog connected_device = { 'is_device_connected': device_manager.is_device_present, 'kind': device_manager.connected_device_kind, 'name': None, 'save_template': None, 'serial': None, 'storage': None } if device_manager.is_device_present: device = device_manager.device connected_device['name'] = device.get_gui_name() try: storage = [] if device._main_prefix: storage.append( os.path.join(device._main_prefix, device.EBOOK_DIR_MAIN)) if device._card_a_prefix: storage.append( os.path.join(device._card_a_prefix, device.EBOOK_DIR_CARD_A)) if device._card_b_prefix: storage.append( os.path.join(device._card_b_prefix, device.EBOOK_DIR_CARD_B)) connected_device['storage'] = storage connected_device['serial'] = device.detected_device.serial if \ hasattr(device.detected_device,'serial') else None connected_device['save_template'] = device.save_template() except: pass # These args are passed inline to gui2.convert.gui_conversion:gui_catalog args = [ d.catalog_format, d.catalog_title, dbspec, ids, out.name, d.catalog_sync, d.fmt_options, connected_device ] out.close() # This returns to gui2.actions.catalog:generate_catalog() # Which then calls gui2.convert.gui_conversion:gui_catalog() with the args inline return 'gui_catalog', args, _('Generate catalog'), out.name, d.catalog_sync, \ d.catalog_title
def generate_catalog(parent, dbspec, ids, device_manager, db): # {{{ from calibre.gui2.dialogs.catalog import Catalog # Build the Catalog dialog in gui2.dialogs.catalog d = Catalog(parent, dbspec, ids, db) if d.exec_() != d.Accepted: return None # Create the output file out = PersistentTemporaryFile(suffix='_catalog_out.'+d.catalog_format.lower()) # Profile the connected device # Parallel initialization in calibre.library.cli:command_catalog() connected_device = { 'is_device_connected': device_manager.is_device_connected, 'kind': device_manager.connected_device_kind, 'name': None, 'save_template': None, 'serial': None, 'storage': None } if device_manager.is_device_connected: device = device_manager.device connected_device['name'] = device.get_gui_name() try: storage = [] if device._main_prefix: storage.append(os.path.join(device._main_prefix, device.EBOOK_DIR_MAIN)) if device._card_a_prefix: storage.append(os.path.join(device._card_a_prefix, device.EBOOK_DIR_CARD_A)) if device._card_b_prefix: storage.append(os.path.join(device._card_b_prefix, device.EBOOK_DIR_CARD_B)) connected_device['storage'] = storage connected_device['serial'] = device.detected_device.serial if \ hasattr(device.detected_device,'serial') else None connected_device['save_template'] = device.save_template() except: pass # These args are passed inline to gui2.convert.gui_conversion:gui_catalog args = [ d.catalog_format, d.catalog_title, dbspec, ids, out.name, d.catalog_sync, d.fmt_options, connected_device ] out.close() # This returns to gui2.actions.catalog:generate_catalog() # Which then calls gui2.convert.gui_conversion:gui_catalog() with the args inline return 'gui_catalog', args, _('Generate catalog'), out.name, d.catalog_sync, \ d.catalog_title