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")
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 | |
|---|---|---|---|
| aio2ch-3.2.1.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aio2ch-3.2.1-py3-none-any.whl | Python 3 | none | any | Details |
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
|