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
Hashes for thestorygraph-client-0.1.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f372bb63f5e172d69cec4a588a74ce16cd97212936847d668b75d4eff4c33be4 |
|
MD5 | db0a2a138cb6eeb4de3201d1aa55db75 |
|
BLAKE2b-256 | 39136a25628fab2107ad864efa653262c6fd72d2019baaf8c3a6d99902f39d26 |
Hashes for thestorygraph_client-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c1afa730a3a1d659cea86f147df0bb840c3fae8b22e5c3a3fa21295100d122e |
|
MD5 | 07afb7325dca7d259800180e7792123d |
|
BLAKE2b-256 | ba05ceee7f560d16413ee4c375eaa3f6167ab43e9ed6ae533411999f256078d7 |