pyskoob


Namepyskoob JSON
Version 0.1.20 PyPI version JSON
download
home_pageNone
SummaryPython client for the Skoob website handling authentication and HTML parsing
upload_time2025-08-04 02:04:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords skoob books client api scraping
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PySkoob
[![PyPI Version](https://img.shields.io/pypi/v/pyskoob?style=flat-square&logo=pypi)](https://pypi.org/project/pyskoob/)
![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue?style=flat-square&logo=python)
[![Coverage](https://raw.githubusercontent.com/victor-soeiro/pyskoob/main/coverage.svg)](https://github.com/victor-soeiro/pyskoob/actions/workflows/ci.yml)
[![Docs](https://img.shields.io/badge/docs-latest-blue?style=flat-square)](https://victor-soeiro.github.io/pyskoob/)
[![License](https://img.shields.io/github/license/victor-soeiro/pyskoob?style=flat-square)](LICENSE)

**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

## Services

Documentation for each service is available on GitHub Pages:

* [Author Service](https://victor-soeiro.github.io/pyskoob/author_service/)
* [Books Service](https://victor-soeiro.github.io/pyskoob/books_service/)
* [Publisher Service](https://victor-soeiro.github.io/pyskoob/publishers_service/)
* [Users Service](https://victor-soeiro.github.io/pyskoob/users_service/)
* [Profile Service](https://victor-soeiro.github.io/pyskoob/profile_service/)

## Installation

Install the latest release from PyPI:

```bash
python -m pip install pyskoob
```

Or install the bleeding edge version from GitHub:

```bash
python -m pip install git+https://github.com/victor-soeiro/pyskoob.git
```

## Authentication

You can authenticate in two different ways:

1. **Email and password**

   ```python
   from pyskoob import SkoobClient

   with SkoobClient() as client:
       me = client.auth.login(email="you@example.com", password="secret")
   ```

2. **Session cookie**

   ```python
   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

```python
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

```python
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

```python
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:

```bash
uv pip install -e .[dev]
pytest -vv
```

## Contributing

Before working on new features, set up a local development environment:

```bash
# Install uv if it's not already available
python -m pip install uv

# Create and activate a virtual environment
uv venv .venv
source .venv/bin/activate
# On Windows
.\.venv\Scripts\activate

# Install the project with development dependencies
uv pip install -e .[dev]

# Install pre-commit hooks
pre-commit install

# Verify linting, formatting, and tests
pytest -vv
pre-commit run --all-files
```

Once everything is ready:

1. Fork the repository and create a branch for your feature.
2. Implement your change and add tests.
3. Format your code with Ruff:

   ```bash
   ruff format .
   ```
4. Ensure lint checks pass:

   ```bash
   ruff check .
   ```
5. Run `pytest -vv` and `pre-commit run --all-files` and ensure everything passes.
6. Open a pull request describing your changes.

## Learn more

* [Examples](https://victor-soeiro.github.io/pyskoob/advanced_usage/)
* [Documentation](https://victor-soeiro.github.io/pyskoob/)
* [Contributing guidelines](https://victor-soeiro.github.io/pyskoob/contributing/)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyskoob",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "skoob, books, client, api, scraping",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a2/58/6e12f0055b4c1f28618a86b25394e7591b1fc879dacf6ffd03d277f4df3d/pyskoob-0.1.20.tar.gz",
    "platform": null,
    "description": "# PySkoob\n[![PyPI Version](https://img.shields.io/pypi/v/pyskoob?style=flat-square&logo=pypi)](https://pypi.org/project/pyskoob/)\n![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue?style=flat-square&logo=python)\n[![Coverage](https://raw.githubusercontent.com/victor-soeiro/pyskoob/main/coverage.svg)](https://github.com/victor-soeiro/pyskoob/actions/workflows/ci.yml)\n[![Docs](https://img.shields.io/badge/docs-latest-blue?style=flat-square)](https://victor-soeiro.github.io/pyskoob/)\n[![License](https://img.shields.io/github/license/victor-soeiro/pyskoob?style=flat-square)](LICENSE)\n\n**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.\n\n## Features\n\n* Search books by title, author or ISBN\n* Retrieve detailed book information and reviews\n* Access user profiles and reading statistics\n* Authenticate using email/password or an existing session cookie\n\n## Services\n\nDocumentation for each service is available on GitHub Pages:\n\n* [Author Service](https://victor-soeiro.github.io/pyskoob/author_service/)\n* [Books Service](https://victor-soeiro.github.io/pyskoob/books_service/)\n* [Publisher Service](https://victor-soeiro.github.io/pyskoob/publishers_service/)\n* [Users Service](https://victor-soeiro.github.io/pyskoob/users_service/)\n* [Profile Service](https://victor-soeiro.github.io/pyskoob/profile_service/)\n\n## Installation\n\nInstall the latest release from PyPI:\n\n```bash\npython -m pip install pyskoob\n```\n\nOr install the bleeding edge version from GitHub:\n\n```bash\npython -m pip install git+https://github.com/victor-soeiro/pyskoob.git\n```\n\n## Authentication\n\nYou can authenticate in two different ways:\n\n1. **Email and password**\n\n   ```python\n   from pyskoob import SkoobClient\n\n   with SkoobClient() as client:\n       me = client.auth.login(email=\"you@example.com\", password=\"secret\")\n   ```\n\n2. **Session cookie**\n\n   ```python\n   from pyskoob import SkoobClient\n\n   with SkoobClient() as client:\n       me = client.auth.login_with_cookies(\"PHPSESSID_TOKEN\")\n   ```\n\nOnce authenticated you can access all other services.\n\n## Usage example\n\n### Search for books\n\n```python\nfrom pyskoob import SkoobClient\nfrom pyskoob.models.enums import BookSearch\n\nwith SkoobClient() as client:\n    results = client.books.search(\"Harry Potter\", BookSearch.TITLE)\n    for book in results.results:\n        print(book.title, book.book_id)\n```\n\n### Fetch book details\n\n```python\nfrom pyskoob import SkoobClient\n\nwith SkoobClient() as client:\n    book = client.books.get_by_id(1)  # replace with a real edition ID\n    print(book.title, book.publisher.name)\n```\n\n### Authenticate and access your profile\n\n```python\nfrom pyskoob import SkoobClient\n\nwith SkoobClient() as client:\n    # TIP: use environment variables or a secrets manager instead of hard-coding credentials\n    me = client.auth.login(email=\"you@example.com\", password=\"secret\")\n    print(me.name)\n```\n\n## Running tests\n\nInstall the project in editable mode and run the test suite:\n\n```bash\nuv pip install -e .[dev]\npytest -vv\n```\n\n## Contributing\n\nBefore working on new features, set up a local development environment:\n\n```bash\n# Install uv if it's not already available\npython -m pip install uv\n\n# Create and activate a virtual environment\nuv venv .venv\nsource .venv/bin/activate\n# On Windows\n.\\.venv\\Scripts\\activate\n\n# Install the project with development dependencies\nuv pip install -e .[dev]\n\n# Install pre-commit hooks\npre-commit install\n\n# Verify linting, formatting, and tests\npytest -vv\npre-commit run --all-files\n```\n\nOnce everything is ready:\n\n1. Fork the repository and create a branch for your feature.\n2. Implement your change and add tests.\n3. Format your code with Ruff:\n\n   ```bash\n   ruff format .\n   ```\n4. Ensure lint checks pass:\n\n   ```bash\n   ruff check .\n   ```\n5. Run `pytest -vv` and `pre-commit run --all-files` and ensure everything passes.\n6. Open a pull request describing your changes.\n\n## Learn more\n\n* [Examples](https://victor-soeiro.github.io/pyskoob/advanced_usage/)\n* [Documentation](https://victor-soeiro.github.io/pyskoob/)\n* [Contributing guidelines](https://victor-soeiro.github.io/pyskoob/contributing/)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python client for the Skoob website handling authentication and HTML parsing",
    "version": "0.1.20",
    "project_urls": null,
    "split_keywords": [
        "skoob",
        " books",
        " client",
        " api",
        " scraping"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "70f4420700073467d4b91cd1404a409edd5c0fb1a0a195f8f0d084b5c8d349c5",
                "md5": "7c476eb583a24e970372084bbe3ad888",
                "sha256": "4f749d8efe5f1a7928c342bcf32a296120e5d1987b32bcff47d9d44284fb2e40"
            },
            "downloads": -1,
            "filename": "pyskoob-0.1.20-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7c476eb583a24e970372084bbe3ad888",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 31611,
            "upload_time": "2025-08-04T02:04:31",
            "upload_time_iso_8601": "2025-08-04T02:04:31.921445Z",
            "url": "https://files.pythonhosted.org/packages/70/f4/420700073467d4b91cd1404a409edd5c0fb1a0a195f8f0d084b5c8d349c5/pyskoob-0.1.20-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2586e12f0055b4c1f28618a86b25394e7591b1fc879dacf6ffd03d277f4df3d",
                "md5": "39a0f4dfed83e9043c3893535b653f8b",
                "sha256": "ac05299771a8828928ba1e4c59b00e72f9c432219465aeceb4f79e577f943cce"
            },
            "downloads": -1,
            "filename": "pyskoob-0.1.20.tar.gz",
            "has_sig": false,
            "md5_digest": "39a0f4dfed83e9043c3893535b653f8b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 33097,
            "upload_time": "2025-08-04T02:04:32",
            "upload_time_iso_8601": "2025-08-04T02:04:32.975146Z",
            "url": "https://files.pythonhosted.org/packages/a2/58/6e12f0055b4c1f28618a86b25394e7591b1fc879dacf6ffd03d277f4df3d/pyskoob-0.1.20.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 02:04:32",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyskoob"
}
        
Elapsed time: 1.95956s