示例#1
0
def test_api_endpoints():
    for mirror in constants.MIRRORS:
        lg = Library(mirror)
        ids = lg.search('automate the boring stuff', 'title')
        assert isinstance(ids, list)
        assert set(ids) == set([
            '1421206',
            '1421207',
            '1421208',
            '1351717',
            '1381538',
            '1381540',
            '1529338',
        ])

        books = lg.lookup(ids)
        assert isinstance(books, list)
        assert isinstance(books[0], dict)
        assert {book['md5']
                for book in books} == {
                    'd826b3e593b12422784f50d59c97a966',
                    'b34564156c3778261ed03167b09f6694',
                    '4e0efdd614737fd66408fd43a9d5ff10',
                    '5a64e12e79af379110a31ea04bb6320c',
                    'c157d6ec28d1a7c4b528f4e6a1ea4c9e',
                    '054255117b2e86251415292ef48320fd',
                    '1af2c71c1342e850e1e47013b06f9eb9',
                }

        book = lg.lookup(1421206)
        assert isinstance(book, dict)
        assert book['md5'] == '1af2c71c1342e850e1e47013b06f9eb9'

        lg.get_download_url(books[0]['md5'])
示例#2
0
 def libgen(self, search):
     from pylibgen import Library
     parsed = self.parse_search()
     lg = Library()
     ids = []
     for key in ['title', 'author', 'isbn']:
         if parsed.get(key):
             ids += lg.search(ascii(parsed.get(key)), key)
     if len(ids) == 0:
         ids = lg.search(ascii(parsed.get('query')), 'title')
     if len(ids):
         data = lg.lookup(ids)
     else:
         self.logger.error("No documents found")
         return None
     doc = self.pick([papis.document.Document(data=d) for d in data])
     if doc:
         doc['doc_url'] = lg.get_download_url(doc['md5'])
     return doc