Skip to content

Latest commit

 

History

History
153 lines (97 loc) · 4.18 KB

README-ru.rst

File metadata and controls

153 lines (97 loc) · 4.18 KB

Logo

License Changelog Downloads PyPi Python

Полностью асинхронный read-only API wrapper для 2ch.hk (dvach, Двач)

Требования

Установка через pip

$ pip3 install aio2ch

Сборка из исходников

$ git clone https://github.com/wkpn/aio2ch
$ cd ./aio2ch
$ python3 setup.py install

Использование

Простой пример (тогда надо вызвать client.close() в конце использования)

>>> from aio2ch import Api
>>> client = Api()
>>> ...
>>> await client.close()

Или можно использовать как менеджер контекста

>>> async with Api() as client:
...     boards = await client.get_boards()
...     ...

Получить все доски

>>> boards = await client.get_boards()

>>> boards
(<Board name='Фагготрия', id='fag'>, ... )

Также дополнительно можно получить status для каждого метода. Полезно, если нужны ретраи

>>> status, boards = await client.get_boards(return_status=True)

>>> status
200

>>> boards
(<Board name='Фагготрия', id='fag'>, ... )

Получить все треды с доски

>>> threads = await client.get_board_threads(board="b")

>>> threads
(<Thread num='180981319'>, ... )

Получить топ тредов с доски с заданной сортировкой (views, score или 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'>)

Получить все посты с треда (thread инстанс Thread)

>>> thread_posts = await client.get_thread_posts(thread=thread)

>>> thread_posts
(<Post num='180894312'>, ... )

Получить все посты с треда по его адресу

>>> thread_posts = await client.get_thread_posts(thread="https://2ch.hk/test/res/30972.html")

>>> thread_posts
(<Post num='30972'>, ... )

Получить все медиа с треда (пикчи, webm-ки и прочее)

>>> thread_media = await client.get_thread_media(thread=thread)

>>> thread_media
(<File name='15336559148500.jpg', path='/b/src/180979032/15336559148500.jpg', size='19'>, ... )

Получить определенное медиа с треда

>>> 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=...>, ...)

Скачать все медиа с треда на диск в папку

>>> await client.download_thread_media(files=thread_media, save_to="./downloads")