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'])
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