یه بنده خدایی
کتابخانه ریوپای

riopy
معرفی و نصب
شروع سریع
هسته کتابخانه
ساختار کتابخانه
کلاس Bot
مدلهای داده
پیشرفته
مدیریت رویدادها
استفاده از Webhook
کیبوردها
مدیریت خطاها
متفرقه
نکات مهم
مجوز و توسعهدهنده
نسخه 3.2.0
مستندات کتابخانه 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: کلاس اصلی برای تعامل با API
riopy.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: خطای برگشتی از API
riopy.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
سال انتشار: ۱۴۰۴
© ۱۴۰۴ - تمامی حقوق برای کتابخانه riopy محفوظ است.
مطلبی دیگر در همین موضوع
انتخاب بازهای از تاریخ و ساعت در اندروید - داستان ایجاد یک کتابخانه
مطلبی دیگر در همین موضوع
حرفهایها پیام کامیت گیت را چطور می نویسند؟
افزایش بازدید بر اساس علاقهمندیهای شما
چرا با وجود رفع یک باگ، قیمت زی کش ۴۰ درصد سقوط کرد؟ آینده این رمزارز چه خواهد شد؟