当前位置: 首页>>代码示例>>Python>>正文


Python USBMS.books方法代码示例

本文整理汇总了Python中calibre.devices.usbms.driver.USBMS.books方法的典型用法代码示例。如果您正苦于以下问题:Python USBMS.books方法的具体用法?Python USBMS.books怎么用?Python USBMS.books使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在calibre.devices.usbms.driver.USBMS的用法示例。


在下文中一共展示了USBMS.books方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: books

# 需要导入模块: from calibre.devices.usbms.driver import USBMS [as 别名]
# 或者: from calibre.devices.usbms.driver.USBMS import books [as 别名]
 def books(self, oncard=None, end_session=True):
     debug_print('PRS505: starting fetching books for card', oncard)
     bl = USBMS.books(self, oncard=oncard, end_session=end_session)
     c = self.initialize_XML_cache()
     c.update_booklist(bl, {'carda':1, 'cardb':2}.get(oncard, 0))
     debug_print('PRS505: finished fetching books for card', oncard)
     return bl
开发者ID:MarioJC,项目名称:calibre,代码行数:9,代码来源:driver.py

示例2: books

# 需要导入模块: from calibre.devices.usbms.driver import USBMS [as 别名]
# 或者: from calibre.devices.usbms.driver.USBMS import books [as 别名]
 def books(self, oncard=None, end_session=True):
     bl = USBMS.books(self, oncard=oncard, end_session=end_session)
     # Read collections information
     collections = os.path.join(self._main_prefix, 'system', 'collections.json')
     if os.access(collections, os.R_OK):
         try:
             self.kindle_update_booklist(bl, collections)
         except:
             import traceback
             traceback.print_exc()
     return bl
开发者ID:GaryMMugford,项目名称:calibre,代码行数:13,代码来源:driver.py

示例3: books

# 需要导入模块: from calibre.devices.usbms.driver import USBMS [as 别名]
# 或者: from calibre.devices.usbms.driver.USBMS import books [as 别名]
    def books(self, oncard=None, end_session=True):
        import sqlite3 as sqlite

        dummy_bl = BookList(None, None, None)

        if (
                (oncard == 'carda' and not self._card_a_prefix) or
                (oncard and oncard != 'carda')
            ):
            self.report_progress(1.0, _('Getting list of books on device...'))
            return dummy_bl

        prefix = self._card_a_prefix if oncard == 'carda' else self._main_prefix

        # Let parent driver get the books
        self.booklist_class.rebuild_collections = self.rebuild_collections
        bl = USBMS.books(self, oncard=oncard, end_session=end_session)

        dbpath = self.normalize_path(prefix + DBPATH)
        debug_print("SQLite DB Path: " + dbpath)

        with closing(sqlite.connect(dbpath)) as connection:
            # Replace undecodable characters in the db instead of erroring out
            connection.text_factory = lambda x: unicode(x, "utf-8", "replace")

            cursor = connection.cursor()
            # Query collections
            query = '''
                SELECT books._id, collection.title
                    FROM collections
                    LEFT OUTER JOIN books
                    LEFT OUTER JOIN collection
                    WHERE collections.content_id = books._id AND
                    collections.collection_id = collection._id
                '''
            cursor.execute(query)

            bl_collections = {}
            for i, row in enumerate(cursor):
                bl_collections.setdefault(row[0], [])
                bl_collections[row[0]].append(row[1])

            # collect information on offsets, but assume any
            # offset we already calculated is correct
            if self.device_offset is None:
                query = 'SELECT file_path, modified_date FROM books'
                cursor.execute(query)

                time_offsets = {}
                for i, row in enumerate(cursor):
                    try:
                        comp_date = int(os.path.getmtime(self.normalize_path(prefix + row[0])) * 1000)
                    except (OSError, IOError, TypeError):
                        # In case the db has incorrect path info
                        continue
                    device_date = int(row[1])
                    offset = device_date - comp_date
                    time_offsets.setdefault(offset, 0)
                    time_offsets[offset] = time_offsets[offset] + 1

                try:
                    device_offset = max(time_offsets, key=lambda a: time_offsets.get(a))
                    debug_print("Device Offset: %d ms"%device_offset)
                    self.device_offset = device_offset
                except ValueError:
                    debug_print("No Books To Detect Device Offset.")

            for idx, book in enumerate(bl):
                query = 'SELECT _id, thumbnail FROM books WHERE file_path = ?'
                t = (book.lpath,)
                cursor.execute(query, t)

                for i, row in enumerate(cursor):
                    book.device_collections = bl_collections.get(row[0], None)
                    thumbnail = row[1]
                    if thumbnail is not None:
                        thumbnail = self.normalize_path(prefix + thumbnail)
                        book.thumbnail = ImageWrapper(thumbnail)

            cursor.close()

        return bl
开发者ID:BobPyron,项目名称:calibre,代码行数:84,代码来源:driver.py


注:本文中的calibre.devices.usbms.driver.USBMS.books方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。