مستندات کتابخانه riopy
یک کتابخانه قدرتمند و ساده پایتون برای توسعه رباتهای روبیکا. این کتابخانه به شما امکان میدهد به راحتی با API روبیکا تعامل داشته باشید، پیامها را مدیریت کنید و رباتهای هوشمند بسازید.
نصب
برای نصب کتابخانه از pip استفاده کنید:
pip install riopy
پس از نصب، میتوانید نسخه نصب شده را بررسی کنید:
import riopy
print(riopy.__version__) # 0.1.1 یا بالاتر
شروع سریع
یک بات ساده که به پیام /start پاسخ میدهد:
import riopy
bot = riopy.Bot("توکن_بات_شما")
@bot.on_message()
def handle_message(update):
if update.new_message.text == "/start":
bot.send_message(
chat_id=update.chat_id,
text="سلام! به بات من خوش آمدی 👋"
)
if __name__ == "__main__":
bot.polling()
ساختار کتابخانه
کتابخانه از بخشهای کلیدی زیر تشکیل شده است:
riopy.Bot: کلاس اصلی برای تعامل با APIriopy.types: مدلهای داده (Update, Message, Chat, ...)riopy.exceptions: استثناهای سفارشی برای مدیریت خطاriopy.polling: مدیریت دریافت پیامها به روش Long Polling
کلاس Bot
ایجاد نمونه
from riopy import Bot
bot = Bot("token")
متدهای اصلی
دریافت اطلاعات بات
me = bot.get_me()
print(me.bot_title) # نام بات
print(me.bot_id) # شناسه بات
ارسال پیام متنی
message_id = bot.send_message(
chat_id="شناسه_چت",
text="متن پیام",
disable_notification=False, # (اختیاری)
reply_to_message_id="شناسه_پیام", # (اختیاری) پاسخ به پیام خاص
chat_keypad=..., # (اختیاری) کیبورد پایین صفحه
inline_keypad=... # (اختیاری) کیبورد شیشهای
)
ارسال نظرسنجی
message_id = bot.send_poll(
chat_id="شناسه_چت",
question="آیا این کتابخانه مفید است؟",
options=["بله", "خیر", "نظری ندارم"]
)
مدیریت اعضا (مسدود کردن و رفع مسدودیت)
# مسدود کردن کاربر در گروه/کانال
bot.ban_chat_member("chat_id", "user_id")
# رفع مسدودیت کاربر
bot.unban_chat_member("chat_id", "user_id")
مدلهای داده (riopy.types)
این بخش شامل ساختار دادههای دریافتی از سرور است.
Update
| فیلد | نوع | توضیحات |
|---|---|---|
| type | UpdateTypeEnum | نوع آپدیت (NewMessage, UpdatedMessage, ...) |
| chat_id | str | شناسه چت |
| new_message | Optional[Message] | پیام جدید |
| updated_message | Optional[Message] | پیام ویرایششده |
Message
| فیلد | نوع | توضیحات |
|---|---|---|
| message_id | str | شناسه پیام |
| text | Optional[str] | متن پیام |
| sender_id | str | شناسه فرستنده |
| time | int | زمان ارسال (timestamp) |
مدیریت رویدادها (Polling)
کتابخانه به شما امکان میدهد با دکوراتور @bot.on_message() تابعی برای پردازش پیامهای جدید تعریف کنید.
@bot.on_message()
def my_handler(update):
# پردازش پیام جدید
pass
bot.polling(interval=2.0) # بررسی هر ۲ ثانیه
استفاده از Webhook
اگر سرور با دامنه عمومی و SSL دارید، میتوانید به جای Polling از Webhook استفاده کنید.
from flask import Flask, request
import riopy
app = Flask(__name__)
bot = riopy.Bot("token")
@app.route("/webhook", methods=["POST"])
def webhook():
data = request.json
update = riopy.types.Update.from_dict(data.get("update"))
# پردازش update مشابه قبل
return "OK"
استفاده از کیبوردها
شما میتوانید برای تعامل بهتر با کاربر، از دکمههای سفارشی استفاده کنید.
ارسال کیبورد ساده (Chat Keypad)
keypad = {
"rows": [
{
"buttons": [
{"id": "btn1", "type": "Simple", "button_text": "دکمه ۱"},
{"id": "btn2", "type": "Simple", "button_text": "دکمه ۲"}
]
}
],
"resize_keyboard": True
}
bot.send_message(
chat_id=chat_id,
text="یک دکمه انتخاب کنید:",
chat_keypad=keypad,
chat_keypad_type=riopy.types.ChatKeypadTypeEnum.New
)
مدیریت خطاها
کتابخانه استثناهای زیر را تعریف کرده است:
riopy.exceptions.RiopyError: خطای پایهriopy.exceptions.APIError: خطای برگشتی از APIriopy.exceptions.InvalidTokenError: توکن نامعتبر
from riopy.exceptions import APIError, InvalidTokenError
try:
me = bot.get_me()
except InvalidTokenError:
print("توکن اشتباه است!")
except APIError as e:
print(f"خطای API: {e}")
نکات مهم
توکن: از @BotFather در روبیکا دریافت کنید.
دسترسی: برای دیدن همه پیامهای گروه/کانال، گزینه «دریافت همه پیامها» را در @BotFather فعال کنید.
مدیریت: برای استفاده از متدهای مدیریتی مانند ban_chat_member، بات باید در گروه ادمین باشد.
مجوز و توسعهدهنده
این پروژه تحت مجوز MIT منتشر شده است.
- توسعهدهنده: محمد لطیفیپور
- ایمیل: mohammad.latifi@example.com
- سال انتشار: ۱۴۰۴