TeleNet: Async Telegram Bot API framework
Project description
TeleNet
TeleNet یک کتابخانه مدرن و قدرتمند Python برای ساخت رباتهای چت و مدیریت دستورهاست، با قابلیت Long Polling و طراحی ساده اما منعطف. با TeleNet میتوانی رباتهای پیچیده با پیام فارسی، دکمه کیبرد، هندلینگ پیشرفته و مدیریت کامل کامندها بسازی، بدون دردسر و با کمترین کدنویسی.
🔹 ویژگیها
-
طراحی مدرن و سبک با asyncio
-
پشتیبانی کامل از پیامهای فارسی و Unicode
-
سیستم Router & Command برای مدیریت کامندها
-
امکان ساخت هندلرهای چندگانه برای دستورهای مختلف
-
Long Polling ساده برای دریافت آپدیتها
-
کاملاً آماده برای گسترش و ماژولار شدن
-
مناسب برای رباتهای شخصی و عمومی
🔹 نصب
pip install telenet
-
TeleNet نیاز به Python 3.10+ دارد.
🔹 شروع سریع
import asyncio
from telenet import TeleNetClient, Router, Command
TOKEN = "<YOUR_BOT_TOKEN>"
router = Router()
bot = TeleNetClient(TOKEN)
@router.on(Command("start"))
async def start_handler(msg):
await bot.send_message(msg.chat.id, "سلام") # پیام فارسی
async def main():
await bot.start()
await bot.poll_updates(router=router)
if __name__ == "__main__":
asyncio.run(main())
🔹 هندلرهای پیشرفته
from telenet import InlineButton
@router.on(Command("menu"))
async def menu_handler(msg):
keyboard = [
[InlineButton("گزینه 1", callback_data="opt1")],
[InlineButton("گزینه 2", callback_data="opt2")]
]
await bot.send_message(msg.chat.id, "منوی اصلی:", reply_markup=keyboard)
@router.on("callback_query")
async def callback_handler(query):
await bot.answer_callback(query.id, f"شما {query.data} را انتخاب کردید")
🔹 ویژگیهای پیشرفته
-
کامند داینامیک: میتوانی دستورها را در زمان اجرا اضافه یا حذف کنی.
-
پشتیبانی از چندین Router: مدیریت پیچیده مسیرها و گروههای کامندها.
-
سازگار با انواع آپدیتها: پیام، عکس، فایل، استیکر و دکمهها.
-
ماژولار و قابل گسترش: افزودن Middleware و Hookهای اختصاصی آسان است.
🔹 نکات مهم
-
ذخیره فایلها با UTF-8 برای پیامهای فارسی
-
اجرای asyncio.run(main()) تنها یکبار در برنامه
-
هندلرها باید async باشند
-
برای پاسخ سریعتر، میتوان از taskهای جداگانه استفاده کرد
🔹 مثال کامل ربات
import asyncio
from telenet import TeleNetClient, Router, Command, InlineButton
TOKEN = "<YOUR_BOT_TOKEN>"
bot = TeleNetClient(TOKEN)
router = Router()
@router.on(Command("start"))
async def start(msg):
await bot.send_message(msg.chat.id, "به TeleNet خوش آمدید!")
@router.on(Command("menu"))
async def menu(msg):
kb = [[InlineButton("گزینه A", "A")], [InlineButton("گزینه B", "B")]]
await bot.send_message(msg.chat.id, "منوی اصلی:", reply_markup=kb)
@router.on("callback_query")
async def cb(q):
await bot.answer_callback(q.id, f"شما {q.data} را انتخاب کردید")
async def main():
await bot.start()
await bot.poll_updates(router=router)
if __name__ == "__main__":
asyncio.run(main())
🔹 چرا TeleNet؟
-
ساده و سریع
-
قابل گسترش و ماژولار
-
مناسب برای رباتهای حرفهای و پروژههای بزرگ
-
ساختار مدرن asyncio و مدیریت آسان کامندها
طراحی شده توسط Ali-jafari و کمک گرفته شده از GPT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file telenet-0.2.0.tar.gz.
File metadata
- Download URL: telenet-0.2.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7282d6098d5870fed02dc50390268f389813b6c97c7f15cde0a71234028a5e8f
|
|
| MD5 |
ff67f5deccf76c06739c1cdc0dc89974
|
|
| BLAKE2b-256 |
b67772fe62d1bf4c65e07e467883f4c0aca2d2e93f0c50511cf7b932b53d3f03
|
File details
Details for the file telenet-0.2.0-py3-none-any.whl.
File metadata
- Download URL: telenet-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e45bc1f76ad62152523f83fae8636cddbd321c56f1accf1d3c75459c971bef9
|
|
| MD5 |
a1cb443dcc5ea2598b4f0db17c946cfc
|
|
| BLAKE2b-256 |
1e7bf406e6cc6d0ef8180391c1021c8c329e076e633f2699916afc25284e80ca
|