Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AliRn76/rubika-bot
Rubika Bot Library
https://github.com/AliRn76/rubika-bot
bot rubika rubika-bot
Last synced: 2 months ago
JSON representation
Rubika Bot Library
- Host: GitHub
- URL: https://github.com/AliRn76/rubika-bot
- Owner: AliRn76
- License: mit
- Created: 2022-03-30T08:26:25.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-05-09T07:12:02.000Z (over 2 years ago)
- Last Synced: 2024-11-07T07:18:03.953Z (3 months ago)
- Topics: bot, rubika, rubika-bot
- Language: Python
- Homepage: https://pypi.org/project/rubika-bot/
- Size: 213 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Rubika has created APIs for you that you can use to build your own "bot".
## Requirements
```
python3.8 +
```## Installation
```
$ pip install rubika-bot
```## Steps of use
- First you have to create a bot for yourself with Bot Father.
- Hold the token it gives you and use it the following methods.## Description
After you have built your bot in Bot Father and defined your endpoint, the system will send any event or message sent to your bot to your Endpoint in one of the following two ways.
- Endpoint/``receiveUpdate``
- Endpoint/``receiveInlineMessage``
### receiveUpdate
Whenever a user sends a message or taps on a keypad , you will receive this type of request.
sample body :```json
{
"inline_message": {
"sender_id": "u0QFtn01dd26d72abc5c77b8e116cd79",
"text": "custom text",
"location": null,
"aux_data": {
"start_id": null,
"button_id": "61f674bd0abcd57b5b816a7c"
},
"message_id": "204216801381244279",
"chat_id": "b0QFtabc1I02214b529f1d60c9ce5b08"
}
}
```- sender_id: Unique identifier assigned to the user.
- text: The text of the sent button.
- button_id: The ID you set for the button.
- message_id: The unique identifier assigned to the message.
- chat_id: Unique identifier for the conversation between the user and the bot (you must continue to use this identifier.)
### receiveInlineMessage
Whenever the user taps on the inline keypad, you receive this type of request.
sample body :```json
{
"update": {
"type": "NewMessage",
"chat_id": "b0QFtn0C1I022abcd29f1d60c9ce5b08",
"new_message": {
"message_id": 204215121115944300,
"text": "custom text",
"time": "1643122902",
"is_edited": false,
"sender_type": "User",
"sender_id": "u0QFtn0abcded727585c77b8e116cd79",
"aux_data": {
"start_id": null,
"button_id": "61f674bd0abcd57b5b816a7c"
}
}
}
}
```- type: can be NewMessage , StartedBot , StoppedBot and ....
- text: The text of the sent button.
- button_id: is the identifier you set for the button.
- message_id: The unique identifier assigned to the message.
- chat_id: Unique identifier for the conversation between the user and the bot (you must continue to use this identifier.)## Usage
- #### Get Your Bot Information
```python
from rubika_bot.requests import get_me
from rubika_bot.models import Botbot: Bot = get_me(token=...)
```- #### Send Start Keypad
```python
from rubika_bot.requests import send_message
from rubika_bot.models import Keypad, KeypadRow, Buttonb1 = Button(id='100', type='Simple', button_text='Add Account')
b2 = Button(id='101', type='Simple', button_text='Edit Account')
b3 = Button(id='102', type='Simple', button_text='Remove Account')
keypad = Keypad(
rows=[
KeypadRow(buttons=[b1]),
KeypadRow(buttons=[b2, b3])
],
resize_keyboard=True,
on_time_keyboard=False
)
send_message(
token=...,
chat_id=...,
text='Welcome',
chat_keypad_type='New',
chat_keypad=keypad
)
```- #### Send Inline Keypad
```python
from rubika_bot.requests import send_message
from rubika_bot.models import Keypad, KeypadRow, Buttonb1 = Button(id='100', type='Simple', button_text='Add Account')
b2 = Button(id='101', type='Simple', button_text='Edit Account')
b3 = Button(id='102', type='Simple', button_text='Remove Account')
keypad = Keypad(
rows=[
KeypadRow(buttons=[b1]),
KeypadRow(buttons=[b2, b3])
],
)
send_message(
token=...,
chat_id=...,
text='Welcome',
inline_keypad=keypad
)
```- #### Send Message
```python
from rubika_bot.requests import send_messagesend_message(
token=...,
chat_id=...,
text='Hello World',
)
```- #### Send Poll
```python
from rubika_bot.requests import send_pollsend_poll(
token=...,
chat_id=...,
question='Do you have any question?',
options=['yes', 'no']
)
```- #### Send Location
```python
from rubika_bot.requests import send_locationsend_location(
token=...,
chat_id=...,
latitude='35.759662741892626',
longitude='51.4036344416759'
)
```- #### Send Contact
```python
from rubika_bot.requests import send_contactsend_contact(
token=...,
chat_id=...,
first_name='Ali',
last_name='Rn',
phone_number='09038754321'
)
```- #### Get Chat Information
```python
from rubika_bot.requests import get_chat
from rubika_bot.models import Chatchat: Chat = get_chat(
token=...,
chat_id=...,
)
```- #### Get Last 10 Updates
```python
from rubika_bot.requests import get_updates
from rubika_bot.models import Updateupdates, _ = get_updates(
token=...,
limit=10,
)
```- #### Forward Message
```python
from rubika_bot.requests import forward_messageforward_message(
token=...,
from_chat_id=...,
message_id=...,
to_chat_id=...
)
```- #### Edit Message Text
```python
from rubika_bot.requests import edit_message_textedit_message_text(
token=...,
chat_id=...,
message_id=...,
text='New Message Text'
)
```- #### Edit Inline Keypad
```python
from rubika_bot.requests import edit_message_keypad
from rubika_bot.models import Button, Keypad, KeypadRowb1 = Button(id='100', type='Simple', button_text='Add Account')
b2 = Button(id='101', type='Simple', button_text='Edit Account')
b3 = Button(id='102', type='Simple', button_text='Remove Account')
new_keypad = Keypad(
rows=[
KeypadRow(buttons=[b1]),
KeypadRow(buttons=[b2, b3])
],
)edit_message_keypad(
token=...,
chat_id=...,
message_id=...,
inline_keypad=new_keypad
)
```- #### Delete Message
```python
from rubika_bot.requests import delete_messagedelete_message(
token=...,
chat_id=...,
message_id=...,
)
```## TODO:
- [x] Change the required python version from 3.10 to 3.8