teloxi


Nameteloxi JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryA user-friendly library based on Telethon, with additional features and easier usage.
upload_time2025-09-07 11:54:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords telethon telegram telegram multi session telegram-python opentele openetele teloxi dbflux api abbas bachari عباس بچاری
VCS
bugtrack_url
requirements telethon dbflux python-socks
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">🚀 Teloxi: Based on Telethon, with additional features and easier usage</h1>

<p align="center">
<a href="https://pypi.org/project/teloxi/"><img src="https://img.shields.io/pypi/v/teloxi?style=plastic" alt="PyPI - Version"></a>
<a href="https://github.com/abbas-bachari/teloxi"><img src="https://img.shields.io/badge/Python%20-3.8+-green?style=plastic&logo=Python" alt="Python"></a>
  <a href="https://pypi.org/project/teloxi/"><img src="https://img.shields.io/pypi/l/teloxi?style=plastic" alt="License"></a>
  <a href="https://pepy.tech/project/teloxi"><img src="https://pepy.tech/badge/teloxi?style=flat-plastic" alt="Downloads"></a>
</p>

## 🛠️ Version: 1.0.1

## 🌟 **Introduction**

### **Teloxi** is a lightweight, easy-to-use library based on Telethon, with additional features and easier usage.  

## ✨ Features

**Teloxi** is a user-friendly Python library built on top of Telethon, offering enhanced Telegram automation capabilities. Key features include:

- 🖥️ **Multi-session management**: Easily store, retrieve, update, and delete multiple Telegram accounts.  
- 🔑 **Login code handling**: Automatically fetch Telegram login codes via BotFather interaction.  
- 🗄️ **Database integration**: Store sessions in SQLite or other supported storage backends.  
- 📊 **Query filtering & sorting**: Retrieve sessions using advanced filtering, ordering, and limit options.  
- ⚡ **Asynchronous support**: Fully async functions for high-performance Telegram operations.  
- 📱 **Multi-platform Device support**: Compatible with Telegram Device for **Android, Windows, Linux, macOS, and iOS**.  
- 🛠️ **Extensible & open-source**: Easy to customize and contribute additional features.  

> Designed to simplify Telegram automation and make multi-account management effortless.


---

## 📚 **Requirements**

* **[Python 3.10+](https://python.org)**
* **[telethon 1.41.2+](https://pypi.org/project/telethon)**
* **[dbflux 1.0.2+](https://pypi.org/project/dbflux)**

---

## 🔧 **Installation**

Install **teloxi** via **pip**:

```bash
pip install teloxi
```

Or install from source:

```bash
git clone https://github.com/abbas-bachari/teloxi.git
cd teloxi
pip install .

```

---

## 💡 **Quick Start**

```python
import asyncio
from dbflux import Sqlite
from proxa import ProxyManager
from teloxi import TeloxiClient,Device,Storage


proxa=ProxyManager(['http://127.0.0.1:10808','socks5://127.0.0.1:1080'])
DB=Storage(Sqlite('sessions.ses'))


proxy=proxa.get_working_proxy()

async def main():
    session_id='+19223338123'

    
    client=TeloxiClient(
                        session_id=session_id, 
                        database=DB,
                        device=Device.TelegramAndroid.Generate(),
                        proxy=proxy.for_telethon
                        )
    

    await client.connect()
   
    is_auth=await client.is_user_authorized()
    if not is_auth:
        await client.start(phone=p)
  
    
    await client.PrintSessions()
    

    me=await client.get_full_me()

    print(f"Phone    : {me.phone}")
    print(f"User ID  : {me.id}")
    print(f"Username : {me.username or ''}")
    print(f"Full Name: {me.first_name} {me.last_name or ''}")
    print(f"About    : {me.about}")
    
   

    chat_info,error,is_joined= await client.join_chat('https://t.me/+2Rllq4qAlvk4MjM0')
    if is_joined:
       
       print(f"Success join to {chat_info.__class__.__name__}: {chat_info.title } ")
    else:
        print(f"{ error.__class__.__name__}: {error}")
        
    
    await client.disconnect()

    
if __name__=="__main__":
    asyncio.run(main())

```

### 💻 Output:

```shel
|---------+---------------------+----------+------------+--------+--------------------------+--------------|
|         |       Device        | Platform |   System   | API_ID |         App name         | Official App |
|---------+---------------------+----------+------------+--------+--------------------------+--------------|
| Current | Samsung Galaxy S25  | Android  |  13 (33)   |   6    | Telegram Android 11.14.1 |      ✔       |
|---------+---------------------+----------+------------+--------+--------------------------+--------------|
|    1    | Redmi Redmi Note 9S | Android  |  12 (31)   |   6    | Telegram Android 11.14.1 |      ✔       |
|    2    |  Samsung Galaxy S3  | Android  | 8.0 O (26) |   6    | Telegram Android 11.13.2 |      ✔       |
|---------+---------------------+----------+------------+--------+--------------------------+--------------|
Phone    : +19223338123
User ID  : 46567598
Username : usernam_2
Full Name: user-2 telegram
About    : None
Success join to Channel: Test Channel 
```

---

## 🗄️ Connect to Saved Sessions

```python
import asyncio
from dbflux import Sqlite
from proxa import ProxyManager
from teloxi import TeloxiClient,Device,Storage,Account


proxa=ProxyManager(['http://127.0.0.1:10808','socks5://127.0.0.1:1080'])
DB=Storage(Sqlite('sessions.ses'))

async def main():
    proxy=proxa.get_working_proxy()
    accounts: list[Account]=DB.get(limit=5,conditions=[Account.status=='ACTIVE'])
    for account in accounts:
        
        client=TeloxiClient(session_id=account.session_id,database=DB,proxy=proxy.for_telethon) 
        await client.connect()
        
        
        
        me=await client.get_me()
        
        if me:
            print(f"Phone    : {me.phone}")
            print(f"User ID  : {me.id}")
            print(f"Username : {me.username or ''}")
            print(f"Full Name: {me.first_name} {me.last_name or ''}")
            print("="*30)
            

        await client.disconnect()
        await asyncio.sleep(5)

if __name__=="__main__":
    asyncio.run(main())

```

### 💻 Output:

```shell
Phone    : 9812356488
User ID  : 46567598
Username : username_1
Full Name: user-1
==============================
Phone    : +19223338123
User ID  : 5865442887
Username : usernam_2
Full Name: user-2 telegram
==============================
Phone    : 1923155554
User ID  : 8320041566
Username : usernam_2
Full Name: user-3
==============================
```

---

### 🔑 Get Login Code

```python
async def code_callback(message, code):
    if code:
        print(f"Received login code: {code}")
    else:
        print(message)


async def main():
    proxy = proxa.get_working_proxy()
    session_id = '+1987654321'

    client = TeloxiClient(
        session_id=session_id, 
        database=DB,
        proxy=proxy.for_telethon
    )

    await client.connect()
   
    is_auth = await client.is_user_authorized()
    if is_auth:
        code = await client.get_login_code(callback=code_callback)
        if code:
            print(f"Login code successfully retrieved: {code}")
        else:
            print("Failed to get login code.")


if __name__ == "__main__":
    asyncio.run(main())

```

### 💻 Example Output

```shell
Login to +1987654321 now to grab your code!
Received login code: 86305
Login code successfully retrieved: 86305

```

---

## 🗄️ Manage Saved Sessions

```python
# Initialize sessions manager
DB = Storage(base_db=Sqlite('sessions.ses'))
session_id = '+1987654321'

# ------------------------------
# Get a single session by session_id
accounts: list[Account] = DB.get(conditions=[Account.session_id == session_id])
if accounts:
    account = accounts[0]
    print(f"Name: {account.first_name:<15} | Is bot: {'YES' if account.is_bot else 'NO':<3} | status: {account.status}")

# ------------------------------
# Get all sessions
accounts: list[Account] = DB.get()
for account in accounts:
    print(f"Name: {account.first_name:<15} | Is bot: {'YES' if account.is_bot else 'NO':<3} | status: {account.status}")

# ------------------------------
# Get active sessions
active_sessions: list[Account] = DB.get(conditions=[Account.status == "ACTIVE"])

# Get inactive sessions
inactive_sessions: list[Account] = DB.get(conditions=[Account.status == "INACTIVE"])

# Get bot sessions
bot_sessions: list[Account] = DB.get(conditions=[Account.is_bot == True])

# ------------------------------
# Get first 5 active non-bot sessions
first_5_sessions: list[Account] = DB.get(limit=5, conditions=[Account.status == "ACTIVE", Account.is_bot == False])

# ------------------------------
# Get random sessions (example: 3 active non-bot)
random_sessions: list[Account] = DB.get(limit=3, conditions=[Account.status=="ACTIVE", Account.is_bot==False], random=True)

# ------------------------------
# Delete all bot sessions
deleted_bots = DB.delete(conditions=[Account.is_bot == True])
print(f'Deleted {deleted_bots} bot sessions!')

# Delete all sessions
deleted_all = DB.delete(conditions='ALL')
print(f'Deleted {deleted_all} sessions!')

# Delete inactive sessions
deleted_inactive = DB.delete(conditions=[Account.status == "INACTIVE"])
print(f'Deleted {deleted_inactive} inactive sessions!')

# ------------------------------
# Update bot sessions to inactive
updated_bots = DB.update(conditions=[Account.is_bot == True], data={'status':'INACTIVE'})
print(f'Updated {updated_bots} bot sessions!')

# Update a specific session by phone
updated_one = DB.update(conditions=[Account.phone == '+9811111'], data={'status':'INACTIVE'})
print(f'Updated {updated_one} session!')
```

---

### 💻 Example Output

```shell
Name: user-1         | Is bot: NO  | status: ACTIVE
Name: user-2         | Is bot: YES | status: INACTIVE
Name: user-3         | Is bot: NO  | status: ACTIVE
...
Deleted 2 bot sessions!
Deleted 10 sessions!
Updated 3 bot sessions!
Updated 1 session!
```

---

## 👤 About the Author

**Abbas Bachari / عباس بچاری** – Developer & Maintainer of **Teloxi**

- 📧 Telegram: [@abbas_bachari](https://t.me/abbas_bachari)  
- 🌐 GitHub: [github.com/abbas-bachari](https://github.com/abbas-bachari)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "teloxi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "telethon, telegram, telegram multi session, telegram-python, opentele, openetele, teloxi, dbflux, api, abbas bachari, \u0639\u0628\u0627\u0633 \u0628\u0686\u0627\u0631\u06cc",
    "author": null,
    "author_email": "Abbas Bachari <abbas-bachari@hotmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/48/e0/6ce458fe94f6b3981cd352c97f45e94e6b624891d0e5738c4b300a8188f5/teloxi-1.0.1.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\ud83d\ude80 Teloxi: Based on Telethon, with additional features and easier usage</h1>\r\n\r\n<p align=\"center\">\r\n<a href=\"https://pypi.org/project/teloxi/\"><img src=\"https://img.shields.io/pypi/v/teloxi?style=plastic\" alt=\"PyPI - Version\"></a>\r\n<a href=\"https://github.com/abbas-bachari/teloxi\"><img src=\"https://img.shields.io/badge/Python%20-3.8+-green?style=plastic&logo=Python\" alt=\"Python\"></a>\r\n  <a href=\"https://pypi.org/project/teloxi/\"><img src=\"https://img.shields.io/pypi/l/teloxi?style=plastic\" alt=\"License\"></a>\r\n  <a href=\"https://pepy.tech/project/teloxi\"><img src=\"https://pepy.tech/badge/teloxi?style=flat-plastic\" alt=\"Downloads\"></a>\r\n</p>\r\n\r\n## \ud83d\udee0\ufe0f Version: 1.0.1\r\n\r\n## \ud83c\udf1f **Introduction**\r\n\r\n### **Teloxi** is a lightweight, easy-to-use library based on Telethon, with additional features and easier usage.  \r\n\r\n## \u2728 Features\r\n\r\n**Teloxi** is a user-friendly Python library built on top of Telethon, offering enhanced Telegram automation capabilities. Key features include:\r\n\r\n- \ud83d\udda5\ufe0f **Multi-session management**: Easily store, retrieve, update, and delete multiple Telegram accounts.  \r\n- \ud83d\udd11 **Login code handling**: Automatically fetch Telegram login codes via BotFather interaction.  \r\n- \ud83d\uddc4\ufe0f **Database integration**: Store sessions in SQLite or other supported storage backends.  \r\n- \ud83d\udcca **Query filtering & sorting**: Retrieve sessions using advanced filtering, ordering, and limit options.  \r\n- \u26a1 **Asynchronous support**: Fully async functions for high-performance Telegram operations.  \r\n- \ud83d\udcf1 **Multi-platform Device support**: Compatible with Telegram Device for **Android, Windows, Linux, macOS, and iOS**.  \r\n- \ud83d\udee0\ufe0f **Extensible & open-source**: Easy to customize and contribute additional features.  \r\n\r\n> Designed to simplify Telegram automation and make multi-account management effortless.\r\n\r\n\r\n---\r\n\r\n## \ud83d\udcda **Requirements**\r\n\r\n* **[Python 3.10+](https://python.org)**\r\n* **[telethon 1.41.2+](https://pypi.org/project/telethon)**\r\n* **[dbflux 1.0.2+](https://pypi.org/project/dbflux)**\r\n\r\n---\r\n\r\n## \ud83d\udd27 **Installation**\r\n\r\nInstall **teloxi** via **pip**:\r\n\r\n```bash\r\npip install teloxi\r\n```\r\n\r\nOr install from source:\r\n\r\n```bash\r\ngit clone https://github.com/abbas-bachari/teloxi.git\r\ncd teloxi\r\npip install .\r\n\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udca1 **Quick Start**\r\n\r\n```python\r\nimport asyncio\r\nfrom dbflux import Sqlite\r\nfrom proxa import ProxyManager\r\nfrom teloxi import TeloxiClient,Device,Storage\r\n\r\n\r\nproxa=ProxyManager(['http://127.0.0.1:10808','socks5://127.0.0.1:1080'])\r\nDB=Storage(Sqlite('sessions.ses'))\r\n\r\n\r\nproxy=proxa.get_working_proxy()\r\n\r\nasync def main():\r\n    session_id='+19223338123'\r\n\r\n    \r\n    client=TeloxiClient(\r\n                        session_id=session_id, \r\n                        database=DB,\r\n                        device=Device.TelegramAndroid.Generate(),\r\n                        proxy=proxy.for_telethon\r\n                        )\r\n    \r\n\r\n    await client.connect()\r\n   \r\n    is_auth=await client.is_user_authorized()\r\n    if not is_auth:\r\n        await client.start(phone=p)\r\n  \r\n    \r\n    await client.PrintSessions()\r\n    \r\n\r\n    me=await client.get_full_me()\r\n\r\n    print(f\"Phone    : {me.phone}\")\r\n    print(f\"User ID  : {me.id}\")\r\n    print(f\"Username : {me.username or ''}\")\r\n    print(f\"Full Name: {me.first_name} {me.last_name or ''}\")\r\n    print(f\"About    : {me.about}\")\r\n    \r\n   \r\n\r\n    chat_info,error,is_joined= await client.join_chat('https://t.me/+2Rllq4qAlvk4MjM0')\r\n    if is_joined:\r\n       \r\n       print(f\"Success join to {chat_info.__class__.__name__}: {chat_info.title } \")\r\n    else:\r\n        print(f\"{ error.__class__.__name__}: {error}\")\r\n        \r\n    \r\n    await client.disconnect()\r\n\r\n    \r\nif __name__==\"__main__\":\r\n    asyncio.run(main())\r\n\r\n```\r\n\r\n### \ud83d\udcbb Output:\r\n\r\n```shel\r\n|---------+---------------------+----------+------------+--------+--------------------------+--------------|\r\n|         |       Device        | Platform |   System   | API_ID |         App name         | Official App |\r\n|---------+---------------------+----------+------------+--------+--------------------------+--------------|\r\n| Current | Samsung Galaxy S25  | Android  |  13 (33)   |   6    | Telegram Android 11.14.1 |      \u2714       |\r\n|---------+---------------------+----------+------------+--------+--------------------------+--------------|\r\n|    1    | Redmi Redmi Note 9S | Android  |  12 (31)   |   6    | Telegram Android 11.14.1 |      \u2714       |\r\n|    2    |  Samsung Galaxy S3  | Android  | 8.0 O (26) |   6    | Telegram Android 11.13.2 |      \u2714       |\r\n|---------+---------------------+----------+------------+--------+--------------------------+--------------|\r\nPhone    : +19223338123\r\nUser ID  : 46567598\r\nUsername : usernam_2\r\nFull Name: user-2 telegram\r\nAbout    : None\r\nSuccess join to Channel: Test Channel \r\n```\r\n\r\n---\r\n\r\n## \ud83d\uddc4\ufe0f Connect to Saved Sessions\r\n\r\n```python\r\nimport asyncio\r\nfrom dbflux import Sqlite\r\nfrom proxa import ProxyManager\r\nfrom teloxi import TeloxiClient,Device,Storage,Account\r\n\r\n\r\nproxa=ProxyManager(['http://127.0.0.1:10808','socks5://127.0.0.1:1080'])\r\nDB=Storage(Sqlite('sessions.ses'))\r\n\r\nasync def main():\r\n    proxy=proxa.get_working_proxy()\r\n    accounts: list[Account]=DB.get(limit=5,conditions=[Account.status=='ACTIVE'])\r\n    for account in accounts:\r\n        \r\n        client=TeloxiClient(session_id=account.session_id,database=DB,proxy=proxy.for_telethon) \r\n        await client.connect()\r\n        \r\n        \r\n        \r\n        me=await client.get_me()\r\n        \r\n        if me:\r\n            print(f\"Phone    : {me.phone}\")\r\n            print(f\"User ID  : {me.id}\")\r\n            print(f\"Username : {me.username or ''}\")\r\n            print(f\"Full Name: {me.first_name} {me.last_name or ''}\")\r\n            print(\"=\"*30)\r\n            \r\n\r\n        await client.disconnect()\r\n        await asyncio.sleep(5)\r\n\r\nif __name__==\"__main__\":\r\n    asyncio.run(main())\r\n\r\n```\r\n\r\n### \ud83d\udcbb Output:\r\n\r\n```shell\r\nPhone    : 9812356488\r\nUser ID  : 46567598\r\nUsername : username_1\r\nFull Name: user-1\r\n==============================\r\nPhone    : +19223338123\r\nUser ID  : 5865442887\r\nUsername : usernam_2\r\nFull Name: user-2 telegram\r\n==============================\r\nPhone    : 1923155554\r\nUser ID  : 8320041566\r\nUsername : usernam_2\r\nFull Name: user-3\r\n==============================\r\n```\r\n\r\n---\r\n\r\n### \ud83d\udd11 Get Login Code\r\n\r\n```python\r\nasync def code_callback(message, code):\r\n    if code:\r\n        print(f\"Received login code: {code}\")\r\n    else:\r\n        print(message)\r\n\r\n\r\nasync def main():\r\n    proxy = proxa.get_working_proxy()\r\n    session_id = '+1987654321'\r\n\r\n    client = TeloxiClient(\r\n        session_id=session_id, \r\n        database=DB,\r\n        proxy=proxy.for_telethon\r\n    )\r\n\r\n    await client.connect()\r\n   \r\n    is_auth = await client.is_user_authorized()\r\n    if is_auth:\r\n        code = await client.get_login_code(callback=code_callback)\r\n        if code:\r\n            print(f\"Login code successfully retrieved: {code}\")\r\n        else:\r\n            print(\"Failed to get login code.\")\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())\r\n\r\n```\r\n\r\n### \ud83d\udcbb Example Output\r\n\r\n```shell\r\nLogin to +1987654321 now to grab your code!\r\nReceived login code: 86305\r\nLogin code successfully retrieved: 86305\r\n\r\n```\r\n\r\n---\r\n\r\n## \ud83d\uddc4\ufe0f Manage Saved Sessions\r\n\r\n```python\r\n# Initialize sessions manager\r\nDB = Storage(base_db=Sqlite('sessions.ses'))\r\nsession_id = '+1987654321'\r\n\r\n# ------------------------------\r\n# Get a single session by session_id\r\naccounts: list[Account] = DB.get(conditions=[Account.session_id == session_id])\r\nif accounts:\r\n    account = accounts[0]\r\n    print(f\"Name: {account.first_name:<15} | Is bot: {'YES' if account.is_bot else 'NO':<3} | status: {account.status}\")\r\n\r\n# ------------------------------\r\n# Get all sessions\r\naccounts: list[Account] = DB.get()\r\nfor account in accounts:\r\n    print(f\"Name: {account.first_name:<15} | Is bot: {'YES' if account.is_bot else 'NO':<3} | status: {account.status}\")\r\n\r\n# ------------------------------\r\n# Get active sessions\r\nactive_sessions: list[Account] = DB.get(conditions=[Account.status == \"ACTIVE\"])\r\n\r\n# Get inactive sessions\r\ninactive_sessions: list[Account] = DB.get(conditions=[Account.status == \"INACTIVE\"])\r\n\r\n# Get bot sessions\r\nbot_sessions: list[Account] = DB.get(conditions=[Account.is_bot == True])\r\n\r\n# ------------------------------\r\n# Get first 5 active non-bot sessions\r\nfirst_5_sessions: list[Account] = DB.get(limit=5, conditions=[Account.status == \"ACTIVE\", Account.is_bot == False])\r\n\r\n# ------------------------------\r\n# Get random sessions (example: 3 active non-bot)\r\nrandom_sessions: list[Account] = DB.get(limit=3, conditions=[Account.status==\"ACTIVE\", Account.is_bot==False], random=True)\r\n\r\n# ------------------------------\r\n# Delete all bot sessions\r\ndeleted_bots = DB.delete(conditions=[Account.is_bot == True])\r\nprint(f'Deleted {deleted_bots} bot sessions!')\r\n\r\n# Delete all sessions\r\ndeleted_all = DB.delete(conditions='ALL')\r\nprint(f'Deleted {deleted_all} sessions!')\r\n\r\n# Delete inactive sessions\r\ndeleted_inactive = DB.delete(conditions=[Account.status == \"INACTIVE\"])\r\nprint(f'Deleted {deleted_inactive} inactive sessions!')\r\n\r\n# ------------------------------\r\n# Update bot sessions to inactive\r\nupdated_bots = DB.update(conditions=[Account.is_bot == True], data={'status':'INACTIVE'})\r\nprint(f'Updated {updated_bots} bot sessions!')\r\n\r\n# Update a specific session by phone\r\nupdated_one = DB.update(conditions=[Account.phone == '+9811111'], data={'status':'INACTIVE'})\r\nprint(f'Updated {updated_one} session!')\r\n```\r\n\r\n---\r\n\r\n### \ud83d\udcbb Example Output\r\n\r\n```shell\r\nName: user-1         | Is bot: NO  | status: ACTIVE\r\nName: user-2         | Is bot: YES | status: INACTIVE\r\nName: user-3         | Is bot: NO  | status: ACTIVE\r\n...\r\nDeleted 2 bot sessions!\r\nDeleted 10 sessions!\r\nUpdated 3 bot sessions!\r\nUpdated 1 session!\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udc64 About the Author\r\n\r\n**Abbas Bachari / \u0639\u0628\u0627\u0633 \u0628\u0686\u0627\u0631\u06cc** \u2013 Developer & Maintainer of **Teloxi**\r\n\r\n- \ud83d\udce7 Telegram: [@abbas_bachari](https://t.me/abbas_bachari)  \r\n- \ud83c\udf10 GitHub: [github.com/abbas-bachari](https://github.com/abbas-bachari)\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A user-friendly library based on Telethon, with additional features and easier usage.",
    "version": "1.0.1",
    "project_urls": {
        "Documentation": "https://github.com/abbas-bachari/teloxi",
        "Homepage": "https://github.com/abbas-bachari/teloxi",
        "Source": "https://github.com/abbas-bachari/teloxi/",
        "Tracker": "https://github.com/abbas-bachari/teloxi/issues"
    },
    "split_keywords": [
        "telethon",
        " telegram",
        " telegram multi session",
        " telegram-python",
        " opentele",
        " openetele",
        " teloxi",
        " dbflux",
        " api",
        " abbas bachari",
        " \u0639\u0628\u0627\u0633 \u0628\u0686\u0627\u0631\u06cc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "55dce8d390fb35fe8cec62bcba1ff328a7d835c8c79f971937ee77eba5754e36",
                "md5": "dc8fa2841fef4e5a8a4a9969e60025a3",
                "sha256": "989145420d8d9bf854d1965c8818bf56c49846709c9f86a2dbaf29935844e598"
            },
            "downloads": -1,
            "filename": "teloxi-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dc8fa2841fef4e5a8a4a9969e60025a3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 65516,
            "upload_time": "2025-09-07T11:54:40",
            "upload_time_iso_8601": "2025-09-07T11:54:40.096416Z",
            "url": "https://files.pythonhosted.org/packages/55/dc/e8d390fb35fe8cec62bcba1ff328a7d835c8c79f971937ee77eba5754e36/teloxi-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48e06ce458fe94f6b3981cd352c97f45e94e6b624891d0e5738c4b300a8188f5",
                "md5": "aa4b6b1318e1f8296ba85b1cae16bec5",
                "sha256": "8cdf631cb09f382c8362d542db2a7bff452dba98f69af3bd24c688d333108f2e"
            },
            "downloads": -1,
            "filename": "teloxi-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "aa4b6b1318e1f8296ba85b1cae16bec5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 62924,
            "upload_time": "2025-09-07T11:54:42",
            "upload_time_iso_8601": "2025-09-07T11:54:42.314273Z",
            "url": "https://files.pythonhosted.org/packages/48/e0/6ce458fe94f6b3981cd352c97f45e94e6b624891d0e5738c4b300a8188f5/teloxi-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-07 11:54:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "abbas-bachari",
    "github_project": "teloxi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "telethon",
            "specs": [
                [
                    ">=",
                    "1.41.0"
                ]
            ]
        },
        {
            "name": "dbflux",
            "specs": [
                [
                    ">=",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "python-socks",
            "specs": [
                [
                    ">=",
                    "2.7.1"
                ]
            ]
        }
    ],
    "lcname": "teloxi"
}
        
Elapsed time: 0.45063s