Fully asynchronous read-only API wrapper for 2ch.hk (dvach, Двач)
Requirements
Install with pip
$ pip3 install aio2ch
Build from source
$ git clone https://github.com/wkpn/aio2ch
$ cd ./aio2ch
$ python3 setup.py install
Usage
Simple usage (in this case client.close() must be called when client is no longer needed)
>>> from aio2ch import Api
>>> client = Api()
>>> ...
>>> await client.close()
Or you can use it as a context manager
>>> async with Api() as client:
... boards = await client.get_boards()
... ...
Get all boards
>>> boards = await client.get_boards()
>>> boards
(<Board name='Фагготрия', id='fag'>, ... )
In addition we can get status for each method. This is useful for debug purposes or if retries are needed
>>> status, boards = await client.get_boards(return_status=True)
>>> status
200
>>> boards
(<Board name='Фагготрия', id='fag'>, ... )
Get all threads from a board
>>> threads = await client.get_board_threads(board="b")
>>> threads
(<Thread num='180981319'>, ... )
Get top threads from a board sorted by method (views, score or posts_count)
>>> top_threads = await client.get_top_board_threads(board="b", method="views", num=3)
>>> top_threads
(<Thread num='180894312'>, <Thread num='180946622'>, <Thread num='180963318'>)
Get all thread’s posts (thread is an instance of Thread)
>>> thread_posts = await client.get_thread_posts(thread=thread)
>>> thread_posts
(<Post num='180894312'>, ... )
Get all thread’s posts by url
>>> thread_posts = await client.get_thread_posts(thread="https://2ch.hk/test/res/30972.html")
>>> thread_posts
(<Post num='30972'>, ... )
Get all media in all thread’s posts (images, webm and so on)
>>> thread_media = await client.get_thread_media(thread=thread)
>>> thread_media
(<File name='15336559148500.jpg', path='/b/src/180979032/15336559148500.jpg', size='19'>, ... )
Get specific thread media
>>> images_and_videos = await client.get_thread_media(thread, media_type=(Image, Video))
>>> images_and_videos
(<Image name=...>, <Video name=...>, ...)
>>> just_images = await client.get_thread_media(thread, media_type=Image)
>>> just_images
(<Image name=...>, ...)
Download all thread media
>>> await client.download_thread_media(files=thread_media, save_to="./downloads")
Metadata
Release files for aio2ch 3.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aio2ch-3.2.1.tar.gz | 11.2 kB | Without provenance | Details for aio2ch-3.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aio2ch-3.2.1-py3-none-any.whl | Python 3 | none | any | Details for aio2ch-3.2.1-py3-none-any.whl |
Total release size: 22.5 kB
Release files / aio2ch-3.2.1.tar.gz
| Download URL | aio2ch-3.2.1.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7db837c8b8781eaa951256211346b84540fc5280389816293cd4a6a9ab498b91
|
|
BLAKE2b-256 checksum How to use checksums |
3ecea2fdcfeb488762e2d11b7dbb091f44a5e97c97cc9c4497e9f43b90dda340
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.2
|
Release files / aio2ch-3.2.1-py3-none-any.whl
| Download URL | aio2ch-3.2.1-py3-none-any.whl |
|---|---|
| Size | 11.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5426cdc70625abb61f37e8aff0d182857732d295f88b56d3ca1c9acbfb2c61d2
|
|
BLAKE2b-256 checksum How to use checksums |
9a753808d2614e98a2b85ad69efb7e415bcdbe7066b82dccb5a2ead6fc0d11d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.2
|
Security for aio2ch 3.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.