示例#1
0
    def search(self, query, max_results=10, timeout=60):
        """Searches LibGen for Books. Since the mirror links are not direct
        downloads, it should not provide these as `s.downloads`.
        """
        debug_print = partial(module_debug_print, 'LibgenStore:search:')
        debug_print('search:query = ', query)

        libgen_results = self.libgen.search(query)

        for result in libgen_results.results[:min(max_results, len(libgen_results.results))]:
            debug_print('result.title = ', result.title)

            for mirror in result.mirrors[0:1]:  # Calibre only shows 1 anyway
                debug_print('result.mirror.url = ', mirror.url)

                s = SearchResult()

                s.store_name = PLUGIN_NAME
                s.cover_url = result.image_url
                s.title = '{} ({}, {}{})'.format(
                    result.title, result.language, mirror.size, mirror.unit)
                s.author = result.authors
                s.price = '0.00'
                s.detail_item = result.md5
                s.drm = SearchResult.DRM_UNLOCKED
                s.formats = mirror.format
                s.plugin_author = PLUGIN_AUTHORS

                debug_print('s = ', s)

                yield s
    def to_search_result(result):
        s = SearchResult()

        s.store_name = "Libgen"
        s.title = result.get("Title", " ")
        s.author = result.get("Author(s)", " ")
        s.price = "FREE!!"
        s.language = result.get("Language", " ")
        s.downloads = result.get("Mirrors", " ")
        s.formats = result.get("Extension", " ")
        s.drm = SearchResult.DRM_UNLOCKED
        s.cover_url = result.get("Img", " ")
        s.detail_item = result.get("Link", " ")

        return s