<p align="center">
<a href="https://github.com/mester-root/rubx">
<img src="https://raw.githubusercontent.com/Mester-Root/rubx/main/icons/rubx-action.png" alt="RuBx" width="420">
</a>
<br>
<b>Rubika Client API Framework | Python 3</b>
<br>
<a href="https://github.com/Mester-Root/rubx/blob/main/README.md">
Document
</a>
•
<a href="https://t.me/rubx_library">
Telegram
</a>
•
<a href="https://rubika.ir/TheClient">
Rubika
</a>
</p>
# Rubx | Rubika Client
## Messenger Methods:
```python
from rb import RubikaClient # rb: is main package
with RubikaClient('session', platform='rubx',) as client: # set the proxy, api client, api version, ...
client.send_message('Hey There!', 'username') # username, chat id, prviate links
```
### Or
```python
from rb import RubikaClient
def respond(callable, params) -> dict:
return callable(**params)
with RubikaClient(...) as client:
print(
respond(
client.send_message,
dict(
chat_id=...,
text='**Hey** @User@ __My__ ``Friend`` ~~How r u?~~'
mention_user_ids=['u0...']),
)
)
# for emoji
# print(respond(client.send_message, dict(chat_id=..., sticker=True, emoji_character='😜', sticker_id=..., )))
```
### Or
```python
# 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 a message
# print(client * 'chat-guid') # to get chat info
# print(client['chat-guid']) # to get a message from chat
# client['send_message'] = dict(text='Hey there', chat_id='chat-guid') # example to usage methods with setitem
# use the all operators
```
### if you forget the method name
```python
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')
```
## Rubino Methods:
``` python
from rb import RubinoClient
with RubinoClient('session') as app:
app.create_page(...)
```
## Handler Methods:
### Handler Examples
```python
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
```python
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):
```python
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:
```python
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)
```
## Bot API Methods:
### example for api methods send message text
```python
from rb import BotAPI
with BotAPI(__name__, 'token') as app:
app.send_message('chat-id', 'Hey!')
```
### Handler the Bot API
```python
from rb import BotAPI
with BotAPI(__name__, 'token') as app:
app.add_event_handling((r'\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.
Updates - 🌀 :
--------
- Complete documentation and optimization.
___________________________
## INSTALLING
```bash
pip install rubx
```
## UPGRADE
```
pip install rubx --upgrade
```
# self rubika client with python3 RUBX module ![](https://i.imgur.com/fe85aVR.png)
_______________________
[![Python 3|2.7|3.x](https://img.shields.io/badge/python-3|3.0|3.x-yellow.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-GPLv2-red.svg)](https://raw.githubusercontent.com/Mester-Root/rubx/main/LICENSE)
[![Creator](https://img.shields.io/badge/Telegram-Channel-33A8E3)](https://t.me/rubx_library)
[![Telegram](https://img.shields.io/badge/-telegram-red?color=white&logo=telegram&logoColor=black)](https://t.me/clientUser)
_______________________
<div align="center">
![issues](https://img.shields.io/github/issues/mester-root/rubx)
![forks](https://img.shields.io/github/forks/mester-root/rubx)
![version](https://img.shields.io/badge/version-v--1.0.1--beta-yellow)
![stars](https://img.shields.io/github/stars/mester-root/rubx)
![license](https://img.shields.io/github/license/mester-root/rubx)
![icon](https://raw.githubusercontent.com/Mester-Root/rubx/main/logo.png)
</div>
_______________________
### **special**:
- *[RUBX] > a library 'official' for rubika messnger with client server.*
- *[RUBX] > use api's rubika, and full methods.*
Raw data
{
"_id": null,
"home_page": "https://github.com/mester-root/rubx",
"name": "rubx",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.9",
"maintainer_email": "",
"keywords": "messenger,python,self,rubx,rubix,rubikax,rubika,bot,robot,library,rubikalib,rubikalibrary,rubika.ir,web.rubika.ir,telegram",
"author": "Saleh",
"author_email": "m3st3r.r00t@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8f/37/824ee6aa941baef6c56ae428a223326e226c3db49598df6c01d25c1428f8/rubx-10.6.9.tar.gz",
"platform": null,
"description": "\r\n<p align=\"center\">\r\n <a href=\"https://github.com/mester-root/rubx\">\r\n <img src=\"https://raw.githubusercontent.com/Mester-Root/rubx/main/icons/rubx-action.png\" alt=\"RuBx\" width=\"420\">\r\n </a>\r\n <br>\r\n <b>Rubika Client API Framework | Python 3</b>\r\n <br>\r\n <a href=\"https://github.com/Mester-Root/rubx/blob/main/README.md\">\r\n Document\r\n </a>\r\n \u2022\r\n <a href=\"https://t.me/rubx_library\">\r\n Telegram\r\n </a>\r\n \u2022\r\n <a href=\"https://rubika.ir/TheClient\">\r\n Rubika\r\n </a>\r\n</p>\r\n\r\n\r\n# Rubx | Rubika Client \r\n\r\n## Messenger Methods:\r\n\r\n```python\r\n\r\nfrom rb import RubikaClient # rb: is main package\r\n\r\nwith RubikaClient('session', platform='rubx',) as client: # set the proxy, api client, api version, ...\r\n client.send_message('Hey There!', 'username') # username, chat id, prviate links\r\n\r\n```\r\n\r\n### Or\r\n\r\n```python\r\nfrom rb import RubikaClient\r\n\r\ndef respond(callable, params) -> dict:\r\n return callable(**params)\r\n\r\nwith RubikaClient(...) as client:\r\n print(\r\n respond(\r\n client.send_message,\r\n dict(\r\n chat_id=...,\r\n text='**Hey** @User@ __My__ ``Friend`` ~~How r u?~~'\r\n mention_user_ids=['u0...']),\r\n )\r\n )\r\n\r\n # for emoji\r\n # print(respond(client.send_message, dict(chat_id=..., sticker=True, emoji_character='\ud83d\ude1c', sticker_id=..., )))\r\n```\r\n\r\n### Or\r\n\r\n```python\r\n# shorcuts\r\n\r\nfrom rb import RubikaClient\r\nfrom rb.responses import Self\r\n\r\nwith RubikaClient(...) as client:\r\n print(client == Self.Text(text='Hey', chat_id='chat-guid')) # to send a message\r\n \r\n # print(client * 'chat-guid') # to get chat info\r\n # print(client['chat-guid']) # to get a message from chat\r\n # client['send_message'] = dict(text='Hey there', chat_id='chat-guid') # example to usage methods with setitem\r\n # use the all operators\r\n\r\n```\r\n\r\n### if you forget the method name\r\n```python\r\nfrom rb import RubikaClient\r\n\r\nwith RubikaClient('session') as client:\r\n print(client.getChatInfo(client, 'chat-guid')) # GetChatInfo, GETchatINFO, or ...\r\n # normally: client.get_chat_info('chat-guid')\r\n```\r\n\r\n\r\n## Rubino Methods:\r\n\r\n``` python\r\n\r\nfrom rb import RubinoClient\r\n\r\nwith RubinoClient('session') as app:\r\n app.create_page(...)\r\n\r\n```\r\n\r\n## Handler Methods:\r\n\r\n### Handler Examples\r\n\r\n```python\r\nfrom rb import Handler, EventBuilder, Filters\r\n\r\nclient = Handler(...)\r\n\r\n# handlers: HandShake, ChatsUpdates, MessagesUpdates\r\nclient.add_event_handling(func='ChatsUpdates', events=dict(get_chats=True, get_messages=True, pattern=('/start', 'Hey from rubx lib.')))\r\n\r\n@client.handler\r\ndef hello(app, message: EventBuilder, event):\r\n # to print message: print(message) or print(event)\r\n # to use all methods: app.create_objcet_voice_chat(...)\r\n message.respond(message.pattern, Filters.author) # filters: chat, group, channel, author\r\n```\r\n\r\n### Or\r\n\r\n```python\r\nfrom rb import Handler, Filters, Performers\r\n\r\nclient = Handler('session')\r\n\r\ndef event(message):\r\n message.respond(message.pattern, Filters.author)\r\n \r\nclient.add_event_handling(func=Performers.hand_shake, events=dict(get_chats=True, get_messages=True, pattern=('/start', 'Hi from rubx lib.')))\r\nclient.starting = True\r\nclient.command_handler(event)\r\n```\r\n\r\n## To using HandShake(WebSocket):\r\n\r\n```python\r\nfrom rb import Handler, EventBuilder, Filters, Performers\r\n\r\nclient = Handler('abc...', 'u0...')\r\nclient.add_event_handling(func=Performers.hand_shake, events=dict(get_messages=True, get_chats=False))\r\n@client.handler\r\ndef update(app, update, event):\r\n if update.message.text == '/start':\r\n message.reply(text='Hello my dear', chat_id=update.message.author_object_guid, reply_to_message_id=update.message.message_id)\r\n # or using repond: message.respond('Hey!', Filters.author)\r\n```\r\n\r\n## Async Methods:\r\n\r\n```python\r\nfrom rb import Client # Client: asycn reader\r\n\r\nasync def run(*args):\r\n async with Client(...) as client:\r\n result = await client.start(client.send_message, 'Hey! from rubx', 'chat-guid')\r\n print(result)\r\n\r\nClient.run(run)\r\n```\r\n\r\n\r\n## Bot API Methods:\r\n\r\n### example for api methods send message text\r\n```python\r\nfrom rb import BotAPI\r\n\r\nwith BotAPI(__name__, 'token') as app:\r\n app.send_message('chat-id', 'Hey!')\r\n```\r\n\r\n### Handler the Bot API\r\n```python\r\nfrom rb import BotAPI\r\n\r\nwith BotAPI(__name__, 'token') as app:\r\n app.add_event_handling((r'\\w{1}start .+', 'Hello'))\r\n \r\n @app.handler\r\n def update(methods, update, event):\r\n ...\r\n```\r\n\r\n\r\n_____________________________\r\n\r\nRubx - \u26a1\r\n========\r\n\r\n - Now the best \u200d`sync\u200d` and `asycn` library for Rubika's was developed\r\n - \u2b50\ufe0f Thanks **everyone** who has starred the project, it means a lot!\r\n\r\n**Rubx** is an sync **Python 3** rubika library to interact with Rubika's API\r\nas a user or through a bot account (self API alternative).\r\n\r\n \ud83d\udd34 If you have code using Rubx before its 8.0.5 version, you must\r\n read docs to learn how to migrate. \ud83d\udca1\r\n\r\nWhat is this?\r\n-------------\r\n\r\n\ud83c\uddee\ud83c\uddf7 - Rubika is a popular messaging application. This library is meant\r\nto make it easy for you to write Python programs that can interact\r\nwith Rubika. Think of it as a wrapper that has already done the\r\nheavy job for you, so you can focus on developing an application.\r\nThis module provides all the desired methods with a very simple and beautiful user interface and has a very high speed.\r\nGive your employer the best experience of a project.\r\n\r\n\r\nUpdates - \ud83c\udf00 :\r\n--------\r\n - Complete documentation and optimization.\r\n\r\n___________________________\r\n\r\n\r\n## INSTALLING\r\n```bash\r\npip install rubx\r\n```\r\n\r\n\r\n## UPGRADE\r\n```\r\npip install rubx --upgrade\r\n```\r\n\r\n\r\n# self rubika client with python3 RUBX module ![](https://i.imgur.com/fe85aVR.png)\r\n\r\n_______________________\r\n\r\n[![Python 3|2.7|3.x](https://img.shields.io/badge/python-3|3.0|3.x-yellow.svg)](https://www.python.org/)\r\n\r\n[![License](https://img.shields.io/badge/license-GPLv2-red.svg)](https://raw.githubusercontent.com/Mester-Root/rubx/main/LICENSE)\r\n\r\n[![Creator](https://img.shields.io/badge/Telegram-Channel-33A8E3)](https://t.me/rubx_library)\r\n\r\n[![Telegram](https://img.shields.io/badge/-telegram-red?color=white&logo=telegram&logoColor=black)](https://t.me/clientUser)\r\n_______________________\r\n\r\n<div align=\"center\">\r\n\r\n![issues](https://img.shields.io/github/issues/mester-root/rubx)\r\n![forks](https://img.shields.io/github/forks/mester-root/rubx)\r\n![version](https://img.shields.io/badge/version-v--1.0.1--beta-yellow)\r\n![stars](https://img.shields.io/github/stars/mester-root/rubx)\r\n![license](https://img.shields.io/github/license/mester-root/rubx)\r\n![icon](https://raw.githubusercontent.com/Mester-Root/rubx/main/logo.png)\r\n</div>\r\n\r\n\r\n_______________________\r\n\r\n\r\n### **special**:\r\n\r\n- *[RUBX] > a library 'official' for rubika messnger with client server.*\r\n- *[RUBX] > use api's rubika, and full methods.*\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Iranian rubx library - rubika client module",
"version": "10.6.9",
"project_urls": {
"Channel": "https://t.me/rubx_library",
"Documentation": "https://github.com/Mester-Root/rubx/blob/main/README.md",
"Download": "https://github.com/mester-root/rubx/releases/latest",
"Homepage": "https://github.com/mester-root/rubx",
"Source": "https://github.com/mester-root/rubx",
"Tracker": "https://github.com/mester-root/rubx/issues"
},
"split_keywords": [
"messenger",
"python",
"self",
"rubx",
"rubix",
"rubikax",
"rubika",
"bot",
"robot",
"library",
"rubikalib",
"rubikalibrary",
"rubika.ir",
"web.rubika.ir",
"telegram"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ee8cf156ea4814b71504d29e78a17d454e01a321aac0975827a4e19cecd09990",
"md5": "115c381cc4acb6a2b7917af12d670b1b",
"sha256": "7530b97c1c72d8656d0c73b2cb7c2160659384e7d478682adc5ad911655689d4"
},
"downloads": -1,
"filename": "rubx-10.6.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "115c381cc4acb6a2b7917af12d670b1b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.9",
"size": 74479,
"upload_time": "2023-05-08T13:15:01",
"upload_time_iso_8601": "2023-05-08T13:15:01.922719Z",
"url": "https://files.pythonhosted.org/packages/ee/8c/f156ea4814b71504d29e78a17d454e01a321aac0975827a4e19cecd09990/rubx-10.6.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8f37824ee6aa941baef6c56ae428a223326e226c3db49598df6c01d25c1428f8",
"md5": "7908782af8f6143f5ce8742882ba388c",
"sha256": "3641ede162d554baeadde90db56d4509eb3afbbb12b6aaa06da75c096d7e32d8"
},
"downloads": -1,
"filename": "rubx-10.6.9.tar.gz",
"has_sig": false,
"md5_digest": "7908782af8f6143f5ce8742882ba388c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.9",
"size": 69353,
"upload_time": "2023-05-08T13:15:04",
"upload_time_iso_8601": "2023-05-08T13:15:04.696988Z",
"url": "https://files.pythonhosted.org/packages/8f/37/824ee6aa941baef6c56ae428a223326e226c3db49598df6c01d25c1428f8/rubx-10.6.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-08 13:15:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mester-root",
"github_project": "rubx",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "rubx"
}