A Simple Python Client for TheStoryGraph
Project description
thestorygraph-client
A Simple Python Client for TheStoryGraph.com
Sync and async clients as well as a model abstraction layer for the website.
Since no public API is available, this library parses HTML via BeautifulSoup4
and loads the data into model objects.
Installation
pip install thestorygraph-client
Examples
Search for books (sync)
Find and print books related to 'SPQR'
:
from tsg.client import SyncTSGClient
def print_search_result(search_text: str) -> None:
client = SyncTSGClient()
book_list = client.search(text=search_text)
for book in book_list:
print(f'{book.authors[0].name} - {book.title}')
print_search_result('SPQR')
Search for books (async)
Same as above, but using the asynchronous client:
import asyncio
from tsg.client import AsyncTSGClient
async def print_search_result(search_text: str) -> None:
client = AsyncTSGClient()
book_list = await client.get_browse(text=search_text)
for book in book_list:
print(f'{", ".join(book.author_names)} - {book.title}')
asyncio.run(print_search_result('SPQR'))
The two clients have identical APIs (beside the fact that the latter is async).
Get a book by ID
import asyncio
from tsg.client import AsyncTSGClient
async def print_book_by_id(book_id: str) -> None:
client = AsyncTSGClient()
book = await client.get_book(id=book_id)
print(f'{book.title} by {", ".join(book.author_names)}')
asyncio.run(print_book_by_id('79b894b0-df12-4bb6-89d7-40288f28acc1'))
Development and Testing
Configuring the test environment
Install
pip install -Ue .[testing]
Testing
Run the tests:
pytest tests
And always validate typing:
mypy src/tsg
Or simply
make test
(it will run all test commands)
Links
Homepage on GitHub: https://github.com/altvod/thestorygraph-client
Project's page on PyPi: https://pypi.org/project/thestorygraph-client/
TheStoryGraph: https://thestorygraph.com/
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
File details
Details for the file thestorygraph-client-0.1.6.tar.gz
.
File metadata
- Download URL: thestorygraph-client-0.1.6.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f372bb63f5e172d69cec4a588a74ce16cd97212936847d668b75d4eff4c33be4 |
|
MD5 | db0a2a138cb6eeb4de3201d1aa55db75 |
|
BLAKE2b-256 | 39136a25628fab2107ad864efa653262c6fd72d2019baaf8c3a6d99902f39d26 |
File details
Details for the file thestorygraph_client-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: thestorygraph_client-0.1.6-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c1afa730a3a1d659cea86f147df0bb840c3fae8b22e5c3a3fa21295100d122e |
|
MD5 | 07afb7325dca7d259800180e7792123d |
|
BLAKE2b-256 | ba05ceee7f560d16413ee4c375eaa3f6167ab43e9ed6ae533411999f256078d7 |