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", webhook="webhook_url")
server = Server(client, host="127.0.0.1", port=8080)
@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 save send button")
else:
await message.answer("You clicked the save 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.18.tar.gz
(63.6 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.18.tar.gz.
File metadata
- Download URL: rubigramclient-1.7.18.tar.gz
- Upload date:
- Size: 63.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2356de1f918e8d36b6750323aeb094f2f575070554d6b08da81813080ba4500
|
|
| MD5 |
b93d9c43029f21aabbef7ca51a6f514c
|
|
| BLAKE2b-256 |
4f7ead666f7d9689e2b772007d6f6ea996fe361fbf4f760839f43d27217d14e6
|
File details
Details for the file rubigramclient-1.7.18-py3-none-any.whl.
File metadata
- Download URL: rubigramclient-1.7.18-py3-none-any.whl
- Upload date:
- Size: 121.8 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 |
b100865fc17f6b29f35bcf217c17cd077ee282bf671e8d1ec8306446a871ed12
|
|
| MD5 |
8c159c573d19905ad553cb189ba6c3fe
|
|
| BLAKE2b-256 |
04805c7bb9d36174f21ffb4234f51a92f062fe70b53dc7ab827fb02a1df5c6b8
|