comments.bot 1.0.0
A simple API wrapper for the comments.bot
License: MIT
Requires Python: >=3.6.2,<4.0.0
Keywords: comments bot,comments.bot,comments.bot api

# Comments.bot

<p align="center">
<a href="https://pypi.org/project/comments.bot/"><img src="https://img.shields.io/pypi/v/comments.bot" alt="PyPI"></a>
<a href="https://pypi.org/project/comments.bot/"><img src="https://img.shields.io/pypi/pyversions/comments.bot.svg" alt="Supported Python Versions"></a>
<a href="https://pepy.tech/project/comments.bot"><img src="https://pepy.tech/badge/comments.bot" alt="Downloads"></a>
</p>

A simple API wrapper to interact with [comments.bot](https://comments.bot) api.


## Installation

The latest version of comments.bot is available via `pip`:

```shell
pip install --upgrade comments.bot
```

Also, you can download the source code and install using:

```shell
poetry install
```

**Note:** You need to have [poetry](https://python-poetry.org/) installed on your system

## Usage

The library can be used in both Sync and Async!
For both there are 2 client which can be imported from comments_bot - SyncClient, AsyncClient.

```python3
from comments_bot import SyncClient, AsyncClient
from asyncio import run

asyncClient = AsyncClient(api_key="some api key", owner_id=12345678)  # Async Client
syncClient = SyncClient(api_key="some api key", owner_id=12345678)  # Sync Client

# Both of the clients have same function - createPost, editPost, deletePost
post_text_id, link_text = syncClient.createPost(text="hey")  # Post a text message
post_photo_id, link_photo = syncClient.createPost(type="photo", photo_url="some url", caption="some text for caption")  # Post a photo

status, post_text_id = syncClient.editPost(post_id=post_text_id, text="some other message")

status = syncClient.deletePost(post_id=post_id)  # Deletes the post from comments.bot
```

You can use the below methods for both SyncClient and AsyncClient.

## Methods Available:

### createPost() arguments:

- owner_id:
  - required if not passed on Client.

- type:
  - must be `text` or `photo`. `text` is used by default if not specified.

- text:
  - required if `type` equals to `text`. It must be a string betwen 0-4056 characters.

- photo_url:
  - required if `type` equals to `photo`. It must be a string containing a link to the image.

- caption:
  - Caption for the image. Only valid for `photo` type.

- parse_mode:
  - Parse mode for the text/caption. It must be `markdown` or `html`.

- administrators:
  - A string with user_ids (numbers) separated by comma. Example: `123456789,987654321,012345678`.

- disable_notifications:
  - Pass True if you don't want to receive notifications about new comments for your post.

### editPost() arguments:

- type:
  - must be `text` or `photo`. `text` is used by default if not specified.

- text:
  - required if `type` equals to `text`. It must be a string betwen 0-4056 characters.

- photo_url:
  - required if `type` equals to `photo`. It must be a string containing a link to the image.

- caption:
  - Caption for the image. Only valid for `photo` type.

- parse_mode:
  - Parse mode for the text/caption. It must be `markdown` or `html`.

### deletePost() arguments:

- post_id:
  - Pass the post id to be deleted


## Contribuiting

Wanna help and improve this project?

Make sure to follow these before opening a PR:

- Make sure your PR passes the test and is formatted according to pre-commit.
- Make sure the package is working without any issues!

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details