Metadata-Version: 2.1
Name: srigram
Version: 2.4.0
Summary: Fork of pyrogram. Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
Project-URL: Channel, https://t.me/OriginalSrijan
Project-URL: Documentation, https://t.me/srigram
Project-URL: Developer, https://t.me/SrijanMajumdar
Author-email: SrijanMajumdar <srijanae028@gmail.com>
License-File: COPYING
License-File: COPYING.LESSER
License-File: NOTICE
Keywords: telegram chat messenger mtproto api client library python
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Communications
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: ~=3.10
Requires-Dist: pyaes==1.6.1
Requires-Dist: pymediainfo<7.0.0,>=6.0.1
Requires-Dist: pysocks==1.7.1
Provides-Extra: dev
Requires-Dist: hatch>=1.7.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.1; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.4.3; extra == 'dev'
Requires-Dist: twine>=4.0.2; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: sphinx-autobuild; extra == 'docs'
Requires-Dist: sphinx-copybutton; extra == 'docs'
Requires-Dist: sphinx-immaterial==0.12.5; extra == 'docs'
Requires-Dist: tornado>=6.3.3; extra == 'docs'
Provides-Extra: speedup
Requires-Dist: tgcrypto>=1.2.6; extra == 'speedup'
Requires-Dist: uvloop>=0.19.0; extra == 'speedup'
Description-Content-Type: text/markdown

<div align="center">
    <h1>Srigram</h1>
    <b>Telegram MTProto API Framework for Python</b>
    <br>
    <br>
    <a href="[https://github.com/SrijanMajumdar](https://github.com/SrijanMajumdar)">Homepage</a> •
    <a href="[https://github.com/SrijanMajumdar/srigram/issues](https://github.com/SrijanMajumdar/srigram/issues)">Issues</a> •
    <a href="[https://t.me/Srigram](https://t.me/Srigram)">Support Chat & News</a>
</div>

<br>

> **Srigram** is an elegant, modern, and asynchronous Telegram MTProto API framework in Python for both users and bots.

---

## ✨ Key Features

* **Bleeding-Edge API Support:** Natively supports the latest Telegram UI updates, including Bot API 9.4+ colored keyboards (`primary`, `danger`, `success`) and Custom Premium Emojis directly on buttons.
* **Fully Asynchronous:** Built from the ground up on `asyncio` to smoothly handle thousands of concurrent requests.
* **Dual Ecosystem:** Write code for both normal Bot Accounts and standard User Accounts (Userbots) using the exact same intuitive API.
* **Modern Syntax:** Clean, easy-to-read syntax inspired by modern Python development standards with minimal boilerplate.
* **Highly Customizable:** Full access to raw MTProto methods for advanced developers who need to dig deep into Telegram's backend.

## ⚙️ Installation

You can install Srigram and its dependencies directly from PyPI using `pip`:

```bash
pip install srigram
```

*Requires Python 3.8 or higher.*

## 🚀 Quick Start

Building your first Srigram bot is incredibly simple. Here is a minimal example to get you started:

```python
from srigram import Sri, filters

app = Sri(
    "my_bot",
    api_id=1234567,
    api_hash="your_api_hash_here",
    bot_token="your_bot_token" # Optional: Only if you are logging in as a bot!
)

@app.on_message(filters.private)
async def hello(client, message):
    await message.reply("Hello from Srigram! 🚀")

if __name__ == "__main__":
    app.run()
```

## 🤝 Community & Support

We welcome contributions and feedback! If you run into bugs, have feature requests, or just want to see what's new:

* **Bug Reports & Feature Requests:** [GitHub Issues](https://github.com/SrijanMajumdar/srigram/issues)
* **Developer Chat & Updates:** [Srigram Telegram Channel](https://t.me/Srigram)

---
<div align="center">
    <i>Built with ❤️ by Srijan Majumdar.</i>
</div>
