Skip to main content

Rubx Library For Rubika Iranina Messenger

Project description

RuBx
Rubika Client API Framework | Python 3
Document Telegram Rubika

[Rubx] - Rubika Messenger

Messenger:

from rb import RubikaClient # rb: is main package

with RubikaClient('session') as client:
   client.send_message('Hey! From Rubx', '@username')

Or

from rb import RubikaClient as Client

def respond(callable, params) -> dict:
    return callable(**params)

with Client(...) as client:
    print(
        respond(
            client.send_message,
            dict(
                chat_id=...,
                text='**Hey** @User@ R U __My__ ``Friend`` and ~~My Love~~'
                mention_user_ids=['u0...']),
            )
        )
    
    # print(respond(client.send_message, dict(chat_id=..., sticker=True, emoji_character='😜', sticker_id=..., )))

Or

shorcuts

from rb import RubikaClient
from rb.responses import Self

with RubikaClient(...) as client:
    print(client == Self.Text(text='Hey', chat_id='chat-guid')) # to send message
    # print(client * 'chat-guid') # to get chat info
    # use the operators

for: if you forget the method name

from rb import RubikaClient

with RubikaClient('session') as client:
    print(client.getChatInfo(client, 'chat-guid')) # GetChatInfo, GETchatINFO, or ...
    # normally: client.get_chat_info('chat-guid')

for show all operators and shortcuts go to docs

Rubino

from rb import RubinoClient

with RubinoClient('session') as app:
    app.create_page(...)

Handler

Handler Examples

from rb import Handler, EventBuilder, Filters

client = Handler(...)

# handlers: HandShake, ChatsUpdates, MessagesUpdates
client.add_event_handling(func='ChatsUpdates', events=dict(get_chats=True, get_messages=True, pattern=('/start', 'Hey from rubx lib.')))

@client.handler
def hello(app, message: EventBuilder, event):
    # to print message: print(message) or print(event)
    # to use all methods: app.create_objcet_voice_chat(...)
    message.respond(message.pattern, Filters.author) # filters: chat, group, channel, author

Or

from rb import Handler, NewMessage, Filters, EventBuilder, Performers

client = Handler(...)

@client.on(NewMessage(client.handle, handle_name=Performers.chats_updates).builder())
def update(event: EventBuilder):
    ... # event.respond('Hey', Filters.chat)

Or

from rb import Handler, Filters, Performers

client = Handler('session')

def event(message):
    message.respond(message.pattern, Filters.author)
        
client.add_event_handling(func=Performers.hand_shake, events=dict(get_chats=True, get_messages=True, pattern=('/start', 'Hi from rubx lib.')))
client.starting = True
client.command_handler(event)

To using HandShake(WebSocket):

from rb import Handler, EventBuilder, Filters, Performers

client = Handler('abc...', 'u0...')
client.add_event_handling(func=Performers.hand_shake, events=dict(get_messages=True, get_chats=False))
@client.handler
def update(app, update, event):
    if update.message.text == '/start':
        message.reply(text='Hello my dear', chat_id=update.message.author_object_guid, reply_to_message_id=update.message.message_id)
        # or using repond: message.respond('Hey!', Filters.author)

Async methods

from rb import Client # Client: asycn reader

async def run(*args):
    async with Client(...) as client:
        result = await client.start(client.send_message, 'Hey! from rubx', 'chat-guid')
        print(result)

Client.run(run)

How to get keys from result?

from rb import RubikaClient

with RubikaClient('session', return_data_action='str') as client:
    print((client * 'chat-guid').data.chat) # get chat info: get data and get chat from a chat object

Bot API Methods

example for api methods send message text

from rb import BotAPI

with BotAPI(__name__, 'token') as app:
    app.send_message('chat-id', 'Hey!')

Handler

from rb import BotAPI

with BotAPI(__name__, 'token') as app:
    app.add_event_handling(('\w{1}start', 'Hello'))
    
    @app.handler
    def update(methods, update, event):
        ...

Rubx - ⚡

  • Now the best ‍sync‍ and asycn library for Rubika's was developed
  • ⭐️ Thanks everyone who has starred the project, it means a lot!

Rubx is an sync Python 3 rubika library to interact with Rubika's API as a user or through a bot account (self API alternative).

🔴 If you have code using Rubx before its 8.0.5 version, you must
read docs to learn how to migrate. 💡

What is this?

🇮🇷 - Rubika is a popular messaging application. This library is meant to make it easy for you to write Python programs that can interact with Rubika. Think of it as a wrapper that has already done the heavy job for you, so you can focus on developing an application. This module provides all the desired methods with a very simple and beautiful user interface and has a very high speed. Give your employer the best experience of a project.

Updating - 🌀 :

- Complete documentation and optimization.

INSTALLING

pip install rubx

UPGRADE

pip install rubx --upgrade

CREATED BY:

- saleh

self rubika client with python3 RUBX module


Python 3|2.7|3.x

License

Creator

Telegram


issues forks version stars license icon


special:

  • [RUBX] > a library 'official' for rubika messnger with client server.
  • [RUBX] > use api's rubika, and full methods.

to use it, your python must support type hint.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

rubx-10.6.0.tar.gz (64.5 kB view hashes)

Uploaded Source

Built Distribution

rubx-10.6.0-py3-none-any.whl (68.9 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