Beispiel #1
0
def test_mirror(mirror, test_book):
    search_params, md5_of_ids = test_book
    library = pylibgen.Library(mirror)
    ids = library.search(*search_params)

    assert isinstance(ids, list)
    assert set(ids) == set(md5_of_ids.keys())

    books = library.lookup(ids)
    assert isinstance(books, GeneratorType)
    for book in books:
        assert isinstance(book, pylibgen.Book)
        assert md5_of_ids[book.id] == book.md5.lower()
Beispiel #2
0
def test_mirror(mirror, test_book):
    search_params, md5_of_ids = test_book
    l = pylibgen.Library(mirror)
    ids = l.search(*search_params)

    assert isinstance(ids, list)
    assert set(ids) == set(md5_of_ids.keys())

    books = l.lookup(ids)
    assert isinstance(books, list)
    assert all((isinstance(b, pylibgen.Book) for b in books))
    for book in books:
        assert md5_of_ids[book.id] == book.md5.lower()
Beispiel #3
0
 async def chainer(self, start: float, isbn: str, path: Path):
     proxy, headers = self.prep_request()
     async with ClientSession(headers=headers, connector=proxy) as session:
         pylibgen_lib = pylibgen.Library()
         try:
             book_ids = await self.part1_get_book_ids(
                 isbn=isbn, pylibgen_lib=pylibgen_lib, session=session)
             self.message(isbn, f"Got the book ids", start)
             libgen_book = await self.part2_get_best_book_from_ids(
                 pylibgen_lib=pylibgen_lib,
                 book_ids=book_ids,
                 session=session)
             self.message(isbn, f"Got the book", start)
             filename = await self.part3_download_book(
                 libgen_book=libgen_book,
                 isbn=isbn,
                 path=path,
                 session=session)
         except Exception:
             self.message(isbn, "Failed", start=start, err=True)
             return
         self.message(isbn, f"Download complete {filename}", start)
Beispiel #4
0
def test_all_book_fields(mirror):
    l = pylibgen.Library(mirror)
    book = l.lookup("112887", fields=["*"])
    assert set(book.__dict__.keys()) == pylibgen.constants.ALL_BOOK_FIELDS