Add your description here
Project description
PySkoob
PySkoob is a Python client that makes it easy to interact with the Skoob website. It takes care of authentication and HTML parsing so you can focus on your automation or data collection tasks.
Features
- Search books by title, author or ISBN
- Retrieve detailed book information and reviews
- Access user profiles and reading statistics
- Authenticate using email/password or an existing session cookie
Installation
Install the latest release from PyPI:
python -m pip install pyskoob
Or install the bleeding edge version from GitHub:
python -m pip install git+https://github.com/victor-soeiro/pyskoob.git
Authentication
You can authenticate in two different ways:
-
Email and password
from pyskoob import SkoobClient with SkoobClient() as client: me = client.auth.login(email="you@example.com", password="secret")
-
Session cookie
from pyskoob import SkoobClient with SkoobClient() as client: me = client.auth.login_with_cookies("PHPSESSID_TOKEN")
Once authenticated you can access all other services.
Usage example
Search for books
from pyskoob import SkoobClient
from pyskoob.models.enums import BookSearch
with SkoobClient() as client:
results = client.books.search("Harry Potter", BookSearch.TITLE)
for book in results.results:
print(book.title, book.book_id)
Fetch book details
from pyskoob import SkoobClient
with SkoobClient() as client:
book = client.books.get_by_id(1) # replace with a real edition ID
print(book.title, book.publisher.name)
Authenticate and access your profile
from pyskoob import SkoobClient
with SkoobClient() as client:
# TIP: use environment variables or a secrets manager instead of hard-coding credentials
me = client.auth.login(email="you@example.com", password="secret")
print(me.name)
Running tests
Install the project in editable mode and run the test suite:
uv pip install -e .[dev]
pytest -vv
Contributing
-
Fork the repository and create a branch for your feature.
-
Install the dependencies in editable mode:
uv pip install -e .[dev]
-
Implement your change and add tests.
-
Format your code with Ruff:
ruff format .
-
Ensure formatting and lint checks pass:
ruff format --check . ruff check .
-
Run
pytestand ensure everything passes. -
Open a pull request describing your changes.
Learn more
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyskoob-0.1.18.tar.gz.
File metadata
- Download URL: pyskoob-0.1.18.tar.gz
- Upload date:
- Size: 31.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7bea9edd085e8b1157278b66e7484a46bc4b7409bc58d7cb001d685b5be57f3
|
|
| MD5 |
47a075c1d8ca4ad40ae635d9023a4a1f
|
|
| BLAKE2b-256 |
9146592e70e5afd7e7f60160dcf2c26c116d032c98e9aea3ad245cd36bac9293
|
File details
Details for the file pyskoob-0.1.18-py3-none-any.whl.
File metadata
- Download URL: pyskoob-0.1.18-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee61875b24d87d32f40703130078337127a44350c1d13dd4b54a6774094c1491
|
|
| MD5 |
0a81e4c3dfaa8d90aef395106037a44e
|
|
| BLAKE2b-256 |
4c79aae92b22966f3aa430c2a295bc794d6b31b777c430453d40f743cf74e2e9
|