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.33.tar.gz
(79.2 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.33.tar.gz.
File metadata
- Download URL: rubigramclient-1.7.33.tar.gz
- Upload date:
- Size: 79.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e3e0d80d7660ff5c13694488fece3e573d0d3eea12c49d8620a2947a3755bf8
|
|
| MD5 |
e7d7bee189b64ef9f7ddab5f28d77dee
|
|
| BLAKE2b-256 |
241f46cff4a97647f4afd7700c6c23a6e8b02547035b1725d51e220dfd5f253f
|
File details
Details for the file rubigramclient-1.7.33-py3-none-any.whl.
File metadata
- Download URL: rubigramclient-1.7.33-py3-none-any.whl
- Upload date:
- Size: 180.9 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 |
54ddced2e958882085462b49a2a5f974cb26371aa73e62cf8a73c72fbe700c45
|
|
| MD5 |
a3deeb64713d8c3f24762e485283a292
|
|
| BLAKE2b-256 |
84a2581655a826bc2c05c63b360bbc76d7b2882f19d54c5ab0d4fb32a95c5fd3
|