Skip to main content

Rubika Bot Library

Project description

Requirements

python 3.10+

Installation

$ pip install rubika-bot

Introduction

You will receive updates in receiveUpdate and receiveInlineMessage urls

  • receiveUpdate:

    You'll get a request whenever user send text or tap a keypad

    • sample request body:

      {
          "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 is the unique ID of user
      • text is the text of button
      • button_id is the ID that you set for the button
      • message_id is the unique ID of this message
      • chat_id is the unique ID of this chat with user (You should use this value when you want to send him back anything)
  • receiveInlineMessage:

    You'll get a request whenever user tap an inline keypad

    • sample request body:

      {
          "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
      • text is the text of button
      • button_id is the ID that you set for the button
      • message_id is the unique ID of this message
      • chat_id is the unique ID of this chat with user (You should use this value when you want to send him back anything)

And when you get request, you can use methods below for sending request to bot.


Usage

  • Get Your Bot Information

from rubika_bot.requests import get_me
from rubika_bot.schemas import Bot

bot: Bot = get_me(token=...)
  • Send Start Keypad

from rubika_bot.requests import send_message
from rubika_bot.schemas import Keypad, KeypadRow, Button

b1 = 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

from rubika_bot.requests import send_message
from rubika_bot.schemas import Keypad, KeypadRow, Button

b1 = 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

from rubika_bot.requests import send_message

send_message(
    token=...,
    chat_id=...,
    text='Hello World',
)
  • Send Poll

from rubika_bot.requests import send_poll

send_poll(
    token=...,
    chat_id=...,
    question='Do you have any question?',
    options=['yes', 'no']
)
  • Send Location

from rubika_bot.requests import send_location

send_location(
    token=...,
    chat_id=...,
    latitude='35.759662741892626',
    longitude='51.4036344416759'
)
  • Send Sticker

from rubika_bot.requests import send_sticker

send_sticker(
    token=...,
    chat_id=...,
    sticker_id=...,
)
  • Send Sticker

from rubika_bot.requests import send_contact

send_contact(
    token=...,
    chat_id=...,
    first_name='Ali',
    last_name='Rn',
    phone_number='09038754321'
)
  • Get Chat Information

from rubika_bot.requests import get_chat
from rubika_bot.schemas import Chat

chat: Chat = get_chat(
    token=...,
    chat_id=...,
)   
  • Get Last 10 Updates

from rubika_bot.requests import get_updates
from rubika_bot.schemas import Update

updates, _ = get_updates(
    token=...,
    limit=10,
)
  • Forward Message

from rubika_bot.requests import forward_message

forward_message(
    token=...,
    from_chat_id=...,
    message_id=...,
    to_chat_id=...
)
  • Edit Message Text

from rubika_bot.requests import edit_message_text

edit_message_text(
    token=...,
    chat_id=...,
    message_id=...,
    text='New Message Text'
)
  • Edit Inline Keypad

from rubika_bot.requests import edit_message_keypad
from rubika_bot.schemas import Button, Keypad, KeypadRow

b1 = 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

from rubika_bot.requests import delete_message

delete_message(
    token=...,
    chat_id=...,
    message_id=...,
)

TODO:

  • Change the required python version from 3.10 to 3.8

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rubika-bot-1.0.4.tar.gz (8.1 kB view hashes)

Uploaded Source

Built Distribution

rubika_bot-1.0.4-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page