Skip to main content

A simple and flexible Python library for building advanced Rubika bots with powerful message handling, inline buttons, and custom filters.

Project description

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.

Rubigram Logo

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.

Quick Example

from rubigram import Client
from rubigram.types import Update

client = Client(token="...")

@client.on_message()
async def start(client: Client, update: Update):
    await update.reply(text="**Hi**, ||rubigram user||")

client.run()

Reply and Edit message

from rubigram import Client
from rubigram.types import Update

client = Client(token="...")

@client.on_message()
async def echo(client: Client, update: Update):
    message = await update.reply(text=f"Hi, {update.new_message.text}")
    await message.edit_text(text="message was edited")

client.run()

Use webhook and run a server

from rubigram import Client, Server, types, filters

client = Client(token="...", webhook="...")
server = Server(client, host="127.0.0.1", port=8080)


@client.on_message(filters.command("start"))
async def start(client: Client, update: types.Update):
    await update.reply("```import rubigram\n\nprint(rubigram.__version__)```")


@client.on_start()
async def start(client):
    print("start bot ....")


@client.on_stop()
async def stop(client):
    print("stop bot")


server.run_server()

Filters

from rubigram import Client, filters
from rubigram.types import Update

client = Client(token="...")


@client.on_message(filters.text)
async def text(client: Client, update: Update):
    await update.reply(text="message is text")


@client.on_message(filters.contact)
async def contact(client: Client, update: Update):
    await update.reply(text="message is contact")


@client.on_message(filters.edited)
async def edited(client: Client, update: Update):
    await update.reply(text="message is edited")


@client.on_message(filters.file)
async def file(client: Client, update: Update):
    await update.reply(text="message is efiledited")

client.run()

Handlers

from rubigram import Client

client = Client(token="...")

@client.on_message()
async def new_message():
    ...
    
@client.on_inline_message()
async def inline_message():
    ...
    
@client.on_update_message()
async def update_message():
    ...
    
@client.on_remove_message()
async def remove_message():
    ...
    
@client.on_started_bot()
async def start_bot():
    ...
    
@client.on_stopped_bot()
async def stop_bot():
    ...
    
@client.on_start()
async def start():
    ...

@client.on_stop()
async def stop():
    ...

Contex Manager

from rubigram import Client
import asyncio


async def main():
    async with Client(token="...") as client:
        data = await client.get_me()
        print(data.bot_id)

asyncio.run(main())

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=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="...") as client:
        info = await client.get_my_profile_info()
        print(info)

asyncio.run(main())

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

rubigramclient-1.7.9.tar.gz (53.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rubigramclient-1.7.9-py3-none-any.whl (110.7 kB view details)

Uploaded Python 3

File details

Details for the file rubigramclient-1.7.9.tar.gz.

File metadata

  • Download URL: rubigramclient-1.7.9.tar.gz
  • Upload date:
  • Size: 53.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for rubigramclient-1.7.9.tar.gz
Algorithm Hash digest
SHA256 c8cb1b8e74328412d3aa793d68154722c5db3ef3d5b084283c19a9b02e4571f2
MD5 cf7f088e752c36a4eae5ea94ac8aefb0
BLAKE2b-256 b4760017b34e248c072a1956214be0b678c8c95501baadf2dde2a11de4447ad7

See more details on using hashes here.

File details

Details for the file rubigramclient-1.7.9-py3-none-any.whl.

File metadata

  • Download URL: rubigramclient-1.7.9-py3-none-any.whl
  • Upload date:
  • Size: 110.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for rubigramclient-1.7.9-py3-none-any.whl
Algorithm Hash digest
SHA256 974b030cb051bcaf2ae988647515b9be490b553dc2c99746fd68a157d20977e8
MD5 b4656297136da1b7d6070c58593c8f05
BLAKE2b-256 ce8593c70092b9426ebe98f27957afc4dcb89375b147c3268187a0d1cd55c15f

See more details on using hashes here.

Supported by

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