Python library for rubika API
Rubigram
Rubigram is a powerful asynchronous Python framework for building advanced bots on Rubika, offering features like concurrent message handling, advanced filtering, and support for both webhooks and polling.
Features
- Asynchronous and fast: handle multiple messages concurrently.
- Advanced filters for private chats, commands, and text messages.
- Easy message and media sending (text, images, videos, files).
- Support for both webhooks and polling.
- Interactive keyboards and buttons for better user engagement.
- Flexible integration with databases for storing settings and data.
Start
from rubigram import Client, filters
from rubigram.types import Update
client = Client("bot_token")
@client.on_message(filters.command("start"))
async def start(client: Client, update: Update):
await update.reply("||Hello|| __from__ **Rubigram!**")
client.run()
Button and Keypad
from rubigram import Client, filters
from rubigram.enums import ChatKeypadType
from rubigram.types import Update, Keypad, Button, KeypadRow
client = Client("bot_token")
@client.on_message(filters.photo)
async def start(client: Client, update: Update):
button_1 = Button("send", "send Photo")
button_2 = Button("save", "Save Photo")
row = KeypadRow([button_1, button_2])
keypad = Keypad([row])
await update.reply(
"Select your action:",
chat_keypad=keypad,
chat_keypad_type=ChatKeypadType.NEW
)
client.run()
Use webhook and Get inline button data
from rubigram import Client, Server, filters
from rubigram.types import (
Update,
Button,
Keypad,
KeypadRow,
InlineMessage
)
client = Client(token="bot_token")
server = Server(client, "webhook_url")
@client.on_message(filters.photo)
async def start(client: Client, update: Update):
button_1 = Button("send", "send Photo")
button_2 = Button("save", "Save Photo")
row = KeypadRow([button_1, button_2])
keypad = Keypad([row])
await update.reply("Select your action:", inline_keypad=keypad)
@client.on_inline_message(filters.button(["send", "save"]))
async def inline_message(client: Client, message: InlineMessage):
button_id = message.aux_data.button_id
if button_id == "send":
await message.answer("You clicked the send button")
else:
await message.answer("You clicked the save button")
@client.on_start()
async def start(client):
print("Start bot ....")
@client.on_stop()
async def stop(client):
print("Stop bot")
server.run_server()
Auto state and save tmp data in cache
from rubigram import Client, Storage, filters
from rubigram.types import Update
storage = Storage(ttl=120)
client = Client("bot_token", storage=storage) # You can leave the `storage` parametr empty
@client.on_message(filters.command("start") & filters.private)
async def start(client: Client, update: Update):
state = client.state(update.chat_id)
await state.set("name")
await update.reply("Send your name:")
@client.on_message(filters.state("name") & filters.text & filters.private)
async def save_name(client: Client, update: Update):
state = client.state(update.chat_id)
await state.set("email", name=update.text)
await update.reply("Send your Email:")
@client.on_message(filters.state("email") & filters.text & filters.private)
async def save_email(client: Client, update: Update):
state = client.state(update.chat_id)
data = await state.get()
print(data)
await state.delete()
client.run()
Implementation of multiple programs
from rubigram import Client
import asyncio
tokens = ["TOKEN_1", "TOKEN_2"]
async def main():
for token in tokens:
async with Client(token) as client:
info = await client.get_me()
print(info)
asyncio.run(main())
Rubino
from rubigram.rubino import Rubino
import asyncio
async def main():
async with Rubino(auth="auth_account") as client:
info = await client.get_my_profile_info()
print(info)
asyncio.run(main())
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rubigramclient-1.7.29.tar.gz
(73.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rubigramclient-1.7.29.tar.gz.
File metadata
- Download URL: rubigramclient-1.7.29.tar.gz
- Upload date:
- Size: 73.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3785319f4217726233baf0ae8319bcea557260e7a5cbddd425ab26273e4b9a3
|
|
| MD5 |
69bcc92a1a4ed86645e100df925872e0
|
|
| BLAKE2b-256 |
e4b12afcd0572e9ad113663181820a7af4070e13fd4af38d5f511dfb24c2b956
|
File details
Details for the file rubigramclient-1.7.29-py3-none-any.whl.
File metadata
- Download URL: rubigramclient-1.7.29-py3-none-any.whl
- Upload date:
- Size: 172.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3f52077fa1fcd839bb9d344a13367c0580692115f1ba0ea04e45df7c2a474e7
|
|
| MD5 |
be1eb8435126216f8c342fbcd14a9c08
|
|
| BLAKE2b-256 |
76c96dc6635b3e6503ebbc3496f8b00d2aee4f1215cab5616756b77049343271
|