Skip to content مستندات کتابخانه MAXRubika خانه Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents معرفی ویژگی‌ها نصب شروع کنید MAXRubika کتابخانه ناهمگام پایتون برای پیام‌رسان روبیکا معرفی MAXRubika یک کتابخانه متن‌باز و غیررسمی برای تعامل با API پیام‌رسان روبیکا است. این کتابخانه با هدف ارائه راهکاری کامل و سریع برای توسعه‌دهندگان طراحی شده است. برخلاف سایر کتابخانه‌های مشابه، نیازی نیست کدهای خود را به صورت async بنویسید. MAXRubika تمام عملیات ناهمگام را در پشت صحنه مدیریت می‌کند و شما می‌توانید مانند یک کتابخانه ساده و همگام از آن استفاده کنید، بدون اینکه درگیر پیچیدگی‌های asyncio و await شوید. ویژگی‌ها کامل، ساده و سریع — کامل‌ترین، ساده‌ترین و سریع‌ترین کتابخانه پایتون برای روبیکا پوشش کامل API روبیکا — پشتیبانی از تمام متدهای ربات و یوزربات ناهمگام (Async/Await) — ساخته شده با asyncio برای حداکثر کارایی API انعطاف‌پذیر — تمام متدها از هر دو حالت sync و async پشتیبانی می‌کنند بدون نیاز به کد ناهمگام — کتابخانه تمام عملیات async را برای شما مدیریت می‌کند Type Hints کامل — پشتیبانی کامل از تایپ برای یکپارچگی بهتر با IDE سیستم پلاگین — ربات خود را به راحتی با پلاگین‌ها گسترش دهید پشتیبانی از Middleware — رویدادها را رهگیری و پردازش کنید Webhook و Polling — پشتیبانی از هر دو حالت دریافت به‌روزرسانی سیستم فیلتر قدرتمند — فیلترهای پیشرفته برای پردازش رویدادها Handlerهای مبتنی بر Decorator — سینتکسی تمیز و شهودی نصب pip install maxrubika شروع کنید مشاهده مستندات ربات روبیکا مشاهده مستندات حساب کاربری روبیکا مشاهده مستندات پیام‌رسان شاد Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika متدها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_me get_chat_info get_chat_member get_updates send_message edit_message edit_inline_keypad edit_chat_keypad remove_chat_keypad delete_message auto_delete_message forward_message send_contact send_location send_poll send_quiz send_file send_image send_video send_voice send_music send_gif request_send_file upload_file download_file get_file ban_member unban_member member_is_admin member_is_owner member_is_joined set_commands update_bot_endpoints register_all_endpoints get_token_string start run request disconnect close متدها get_me این متد برای دریافت اطلاعات هویتی بات به کار می‌رود. اطلاعاتی نظیر نام، نام‌کاربری، شناسه (ID)، پیام اولیه بات و... از طریق این متد قابل دریافت است. این متد هیچ پارامتری به عنوان ورودی دریافت نمی‌کند. مثال: from maxrubika import Bot with Bot("token") as bot: print(bot.get_me()) get_chat_info این متد برای دریافت اطلاعات مربوط به یک کاربر، گروه یا کانال استفاده می‌شود. پارامتر پذیرفته‌شده توسط این متد به شرح زیر است: chat_id: شناسه (چت آیدی) گفتگوی مقصد. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.get_chat_info("chat_id") print(a) get_chat_member این متد برای دریافت اطلاعات یک عضو خاص در یک گروه یا کانال استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گروه (با g0) یا کانال (با c0). user_id: شناسه کاربر (با u0). مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.get_chat_member("g0xxxxxxxxxxxxxxx", "u0xxxxxxxxxxxxxxx") print(a) get_updates این متد برای دریافت رویدادهای جدید (مانند پیام‌ها) از API به صورت دستی استفاده می‌شود، این متد عمدتاً برای حالت Polling کاربرد دارد. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: offset_id: شناسه‌ای برای دریافت رویدادهای بعدی. (پیش‌فرض: None) limit: حداکثر تعداد رویدادهای قابل دریافت. (پیش‌فرض: ۱۰۰) مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.get_updates(limit=50) print(a) send_message این متد برای ارسال پیام متنی به یک گفتگو (چت) به کار می‌رود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. text: متن پیام. metadata: متادیتای قالب‌بندی‌شده (اختیاری). chat_keypad: تنظیم کیبورد سفارشی برای گفتگو. (پیش‌فرض: None) inline_keypad: تنظیم دکمه‌های شیشه‌ای (Inline) برای پیام. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیامی که می‌خواهید به آن ریپلای بزنید. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان برای این پیام. (پیش‌فرض: False) resize_keyboard: تراز بودن اندازه دکمه‌های chat_keypad. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد گفتگو پس از کلیک کاربر روی یکی از دکمه‌ها. (پیش‌فرض: False) نکات: شناسه گفتگو (chat_id) باید با g0 (برای گروه)، c0 (برای کانال) یا b0 (برای کاربر) شروع شود و مجموعاً ۳۲ کاراکتر باشد. دقت کنید که chat_id کاربر (که با b0 شروع می‌شود) با sender_id کاربر (که با u0 شروع می‌شود) متفاوت است. همچنین از وارد کردن GUID که ظاهری مشابه دارد، خودداری کنید. برای دریافت chat_id گفتگوی مورد نظر، اینجا کلیک کنید. حداکثر تعداد کاراکتر مجاز برای متن پیام ۴۰۹۶ کاراکتر است. برای ساخت chat_keypad و inline_keypad، می‌توانید از روش ساده‌سازی‌شده کتابخانه استفاده کنید. در این روش، نیازی به تنظیم دستی button_id و type نیست. کتابخانه به طور خودکار button_id را از عدد ۱۰۰ به ترتیب چینش دکمه‌ها مقداردهی می‌کند و نوع (type) دکمه را نیز Simple در نظر می‌گیرد. برای مشاهده انواع دکمه‌ها، اینجا کلیک کنید. پارامترهای resize_keyboard و one_time_keyboard تنها زمانی تأثیرگذار هستند که chat_keypad مقداردهی شده باشد. برای استفاده از متادیتا در متن پیام (مانند برجسته، کج، منشن، هایپرلینک و...)، اینجا کلیک کنید. در صورتی که به روش تاپل از کیبوردها استفاده نمایید، ترتیب آن به ترتیب (متن، آیدی، و نوع دکمه) است؛ در صورتی که نمی‌خواهید نوع دکمه و آیدی آن را تنظیم کنید، کافی‌ست صرفاً متن دکمه را وارد کنید. (کامای بعد از متن فراموش نشود). اگر می‌خواهید فقط متن دکمه و نوع آن را وارد کنید، در قسمت آیدی، None وارد کنید؛ کتابخانه به ترتیب از عدد ۱۰۰ آیدی دکمه‌ها را ثبت خواهد کرد. مثال‌ها: ارسال یک پیام متنی ساده: from maxrubika import Bot with Bot("token") as bot: a = bot.send_message("chat_id", "این یک پیام تستی است.") print(a) ارسال پیام با استفاده از متادیتا: from maxrubika import Bot with Bot("token") as bot: a = bot.send_message("chat_id", "> **سلام** به __کتابخانه__ ||MAXRubika|| ~~خوش آمدید.~~") print(a) ارسال پیام همراه با chat_keypad و inline_keypad (روش ساده): from maxrubika import Bot with Bot("token") as bot: a = bot.send_message( chat_id="chat_id", text="این یک پیام تستی است.", inline_keypad=[["دکمه 1"], ["دکمه 2"]], chat_keypad=[["ارتباط با مدیر", "خروج"]]) print(a) ارسال پیام همراه با chat_keypad و inline_keypad (به صورت تاپل): from maxrubika import Bot with Bot("token") as bot: a = bot.send_message( chat_id="chat_id", text="این یک پیام تستی است.", inline_keypad=[ [("Help", "help")], [("Retry", "retry"), ("Close", "close")], [("Admin Panel", "panel", "Simple"), ("Settings", "settings", "Simple")], [("About", None), ("Support", None)], [("✅ Confirm", "confirm"), ("❌ Cancel", "cancel"), ("🔄 Back", "back")], ], chat_keypad=[ [("ارتباط با مدیر", None)], [("خروج", None)], ]) print(a) ارسال پیام همراه با chat_keypad و inline_keypad (روش سفارشی): from maxrubika import Bot with Bot("token") as bot: a = bot.send_message( chat_id="chat_id", text="این یک پیام تستی است.", inline_keypad={ "rows": [ { "buttons": [ {"id": "10", "type": "Simple", "button_text": "دکمه 1"}, {"id": "100", "type": "Simple", "button_text": "دکمه 2"}, {"id": "1000", "type": "Simple", "button_text": "دکمه 3"} ] } ] }, chat_keypad={ "rows": [ { "buttons": [{"id": "1", "type": "Simple", "button_text": "ارتباط با مدیر"}] }, { "buttons": [ {"id": "2", "type": "AskMyPhoneNumber", "button_text": "نمایش شماره تلفن من"}, {"id": "3", "type": "AskMyLocation", "button_text": "نمایش موقعیت مکانی من"} ] } ] }) print(a) edit_message این متد برای ویرایش متن یک پیام از پیش ارسال‌شده در گفتگو به کار می‌رود. پارامترهای ورودی آن عبارتند از: chat_id: شناسه (چت آیدی) گفتگویی که پیام در آن قرار دارد. message_id: شناسه (مسیج آیدی) پیامی که باید ویرایش شود. text: متن جدید جایگزین. metadata: متادیتای قالب‌بندی‌شده (اختیاری). نکات: شناسه گفتگو باید با g0، c0 یا b0 شروع شده و مجموعاً ۳۲ کاراکتر باشد. دقت کنید که chat_id کاربر (با b0) با sender_id کاربر (با u0) متفاوت است. از GUID به جای آن استفاده نکنید. برای راهنمایی بیشتر اینجا کلیک کنید. متن جدید نیز حداکثر می‌تواند ۴۰۹۶ کاراکتر باشد. بات تنها قادر به ویرایش پیام‌هایی است که خود ارسال کرده است. این محدودیت هم در گروه‌ها و هم در چت‌های خصوصی برقرار است. برای آشنایی با نحوه استفاده از متادیتا در متن، اینجا کلیک کنید. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.edit_message("chat_id", "message_id", "متن جدید") print(a) edit_inline_keypad این متد برای ویرایش دکمه‌های شیشه‌ای (Inline Keypad) یک پیام در گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی حاوی پیام. message_id: شناسه (مسیج آیدی) پیامی که دکمه‌های شیشه‌ای آن باید ویرایش شوند. inline_keypad: ساختار جدید دکمه‌های شیشه‌ای. نکات: شناسه گفتگو در حال حاضر باید با b0 (برای کاربر) شروع شده و ۳۲ کاراکتر باشد. آن را با sender_id اشتباه نگیرید. برای راهنمایی اینجا کلیک کنید. بات تنها می‌تواند دکمه‌های پیام‌هایی را ویرایش کند که خود ارسال کرده است. اگر برای هر دکمه button_id و type مشخص نکنید، کتابخانه به طور خودکار button_id را از ۱۰۰ شماره‌گذاری کرده و type را Simple قرار می‌دهد. برای مشاهده انواع type، اینجا کلیک کنید. مثال‌ها: ویرایش inline_keypad به روش ساده: from maxrubika import Bot with Bot("token") as bot: inline_keypad = [ ["Button 1", "Button 2"], ["Button 3"] ] bot.edit_inline_keypad("chat_id", "message_id", inline_keypad) ویرایش inline_keypad به روش تاپل: from maxrubika import Bot with Bot("token") as bot: inline_keypad = [ [("Help", "help")], [("Retry", "retry"), ("Close", "close")], [("Admin Panel", "panel", "Simple"), ("Settings", "settings", "Simple")], [("About", None), ("Support", None)], [("✅ Confirm", "confirm"), ("❌ Cancel", "cancel"), ("🔄 Back", "back")], ] bot.edit_inline_keypad("chat_id", "message_id", inline_keypad) ویرایش inline_keypad به روش سفارشی (دیکشنری): from maxrubika import Bot with Bot("token") as bot: inline_keypad = { "rows": [ {"buttons": [{"id": "1", "button_text": "Button 1", "type": "Simple"}]}, {"buttons": [{"id": "2", "button_text": "Button 2", "type": "Simple"}]} ] } bot.edit_inline_keypad("chat_id", "message_id", inline_keypad) حذف کامل inline_keypad از یک پیام (با ارسال یک لیست خالی): from maxrubika import Bot with Bot("token") as bot: bot.edit_inline_keypad("chat_id", "message_id", inline_keypad=[]) edit_chat_keypad این متد برای ویرایش کیبورد اصلی (Chat Keypad) یک گفتگو به کار می‌رود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگو. chat_keypad: ساختار جدید کیبورد. resize_keyboard: تراز بودن اندازه دکمه‌ها. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از اولین کلیک کاربر. (پیش‌فرض: False) نکات: شناسه گفتگو باید با b0 شروع و ۳۲ کاراکتری باشد. برای راهنمایی اینجا کلیک کنید. اگر button_id و type دکمه‌ها را مشخص نکنید، کتابخانه به‌طور خودکار آن‌ها را تنظیم می‌کند (button_id از ۱۰۰ و type به صورت Simple). برای اطلاعات بیشتر اینجا کلیک کنید. مثال: from maxrubika import Bot with Bot("token") as bot: chat_keypad = { "rows": [ {"buttons": [{"id": "1", "button_text": "Button 1", "type": "Simple"}]}, {"buttons": [{"id": "2", "button_text": "Button 2", "type": "Simple"}]} ] } bot.edit_chat_keypad("chat_id", chat_keypad) remove_chat_keypad این متد برای حذف کیبورد سفارشی از یک گفتگو و بازگرداندن آن به حالت پیش‌فرض استفاده می‌شود. پارامتر پذیرفته‌شده توسط این متد به شرح زیر است: chat_id: شناسه (چت آیدی) گفتگویی که کیبورد آن باید حذف شود. نکته: شناسه گفتگو باید با b0 شروع و ۳۲ کاراکتری باشد. برای راهنمایی اینجا کلیک کنید. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.remove_chat_keypad("chat_id") print(a) delete_message این متد برای حذف یک پیام خاص از یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی حاوی پیام. message_id: شناسه (مسیج آیدی) پیام مورد نظر برای حذف. نکات: شناسه گفتگو می‌تواند با b0 ، c0 یا g0 شروع شود و می‌بایست ۳۲ کاراکتری باشد. برای راهنمایی اینجا کلیک کنید. بات در چت‌های خصوصی تنها پیام‌های خود را می‌تواند حذف کند. برای حذف پیام‌ها در گروه‌ها و کانال‌ها، بات باید دسترسی "حذف پیام" را داشته باشد. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.delete_message("chat_id", "message_id") print(a) auto_delete_message این متد برای حذف خودکار یک پیام پس از گذشت مدت زمان مشخصی به کار می‌رود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگو. message_id: شناسه (مسیج آیدی) پیام. time: مدت زمان تأخیر تا حذف پیام (به ثانیه). نکات: مشابه با محدودیت‌های متد delete_message است. مثال: from maxrubika import Bot with Bot("token") as bot: chat_id = "chat_id" message = bot.send_message(chat_id, "**This is a test message!**") print(message) delete = bot.auto_delete_message(chat_id, message.message_id, time=50) print(delete) forward_message این متد برای هدایت (فوروارد) یک پیام از یک گفتگو به گفتگویی دیگر استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: from_chat_id: شناسه (چت آیدی) گفتگوی مبدأ. message_id: شناسه (مسیج آیدی) پیام مورد نظر برای فوروارد. to_chat_id: شناسه (چت آیدی) گفتگوی مقصد. disable_notification: غیرفعال‌سازی اعلان برای کاربر مقصد. (پیش‌فرض: False) مثال: from maxrubika import Bot with Bot("token") as bot: from_chat_id = "c0asc...." to_chat_id = "b0adf...." a = bot.forward_message(from_chat_id, "message_id", to_chat_id) print(a) send_contact این متد برای ارسال یک مخاطب به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. phone_number: شماره تلفن مخاطب. first_name: نام مخاطب. last_name: نام خانوادگی مخاطب. (پیش‌فرض: خالی) chat_keypad: کیبورد سفارشی برای گفتگو. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: مشابه نکات مربوط به chat_id و ساختار کیبوردها در بخش send_message است. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_contact( phone_number="+989123456789", first_name="MEHRAB", last_name="Farahmand", chat_id="chat_id") print(a) send_location این متد برای ارسال یک موقعیت مکانی جغرافیایی به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. latitude: عرض جغرافیایی (Latitude). longitude: طول جغرافیایی (Longitude). chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: مشابه نکات مربوط به chat_id و ساختار کیبوردها در بخش send_message است. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_location(chat_id="chat_id", latitude=32.6546, longitude=51.6680) print(a) send_poll این متد برای ایجاد و ارسال یک نظرسنجی ساده به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. question: متن سؤال نظرسنجی. options: لیستی از گزینه‌های نظرسنجی (بین ۲ تا ۱۰ گزینه). is_anonymous: ناشناس بودن رأی‌ها. (پیش‌فرض: True) multi_select: امکان انتخاب چند گزینه. (پیش‌فرض: False) chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: مشابه نکات مربوط به chat_id و ساختار کیبوردها در بخش send_message است. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_poll( chat_id="chat_id", question= "شما کدام رنگ را بیشتر دوست دارید؟", options=["آبی", "صورتی", "زرد", "سبز", "نارنجی", "قرمز", "بنفش"], is_anonymous=False, multi_select=True) print(a) send_quiz این متد برای ایجاد و ارسال یک نظرسنجی به‌صورت آزمون که تنها یک پاسخ صحیح دارد، استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. question: متن سؤال آزمون. options: لیست گزینه‌های آزمون (بین ۲ تا ۱۰ گزینه). correct_option: ایندکس عددی (شروع از ۰) یا متن دقیق گزینه صحیح. hint: متن راهنمایی برای آزمون. (پیش‌فرض: None) is_anonymous: ناشناس بودن پاسخ‌ها. (پیش‌فرض: True) chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: مشابه نکات مربوط به chat_id و ساختار کیبوردها در بخش send_message است. مثال: from maxrubika import Bot with Bot("token") as bot: b = bot.send_quiz( chat_id= "chat_id", question= "پایتخت کشور کره جنوبی کدام گزینه است؟", options= ["بوسان", "اینچئون", "سئول", "دائگو"], correct_option= "سئول", hint= "پایتخت و بزرگترین شهر کره جنوبی سئول می‌باشد.", is_anonymous= False) print(b) send_file این متد برای ارسال یک فایل (به‌صورت عمومی) به یک گفتگو استفاده می‌شود؛ برای ارسال فایل‌های خاص مانند عکس یا ویدئو، متدهای اختصاصی توصیه می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. file: نام و پسوند فایل برای ارسال. (در صورت استفاده از file_id، این پارامتر نیاز نیست.) file_type: نوع فایل ('File', 'Image', 'Voice', 'Video', 'Music', 'Gif'). (پیش‌فرض: 'File') text: کپشن یا توضیح فایل (حداکثر ۲۰۴۸ کاراکتر). file_id: شناسه فایلی که از طریق متد upload_file دریافت شده است. (در صورت استفاده از file، این پارامتر نیاز نیست.) base64: داده فایل به صورت Base64. (در صورت استفاده از file یا file_id نیاز نیست.) file_name: نام سفارشی برای فایل. (اختیاری) metadata: متادیتای کپشن. (اختیاری) chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: مشابه نکات مربوط به chat_id و ساختار کیبوردها در بخش send_message است. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_file(chat_id= "chat_id", file= "newfile.py", text= "فایل پایتونی تقدیم به شما") print(a) send_image این متد برای ارسال یک تصویر به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. image: نام و پسوند فایل تصویری (مانند .jpg یا .png). (در صورت استفاده از file_id نیاز نیست.) file_id: شناسه تصویر دریافت‌شده از upload_file. (در صورت استفاده از image نیاز نیست.) base64: داده تصویر به صورت Base64. (اختیاری) file_name: نام سفارشی تصویر. (اختیاری) text: کپشن یا توضیح تصویر (حداکثر ۲۰۴۸ کاراکتر). chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: نکات مربوط به chat_id و ساختار کیبوردها مشابه متد send_message است. فایل واردشده باید حتماً یک تصویر با پسوندهای معتبر تصویری (.jpg ، .png و غیره) باشد، در غیر این صورت با خطا مواجه خواهید شد. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_image(chat_id= "chat_id", image= "1.jpg", disable_notification= True) print(a) send_video این متد برای ارسال یک ویدئو به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. video: نام و پسوند فایل ویدئویی (مانند .mp4). (در صورت استفاده از file_id نیاز نیست.) file_id: شناسه ویدئو دریافت‌شده از upload_file. (در صورت استفاده از video نیاز نیست.) base64: داده ویدئو به صورت Base64. (اختیاری) file_name: نام سفارشی ویدئو. (اختیاری) text: کپشن یا توضیح ویدئو (حداکثر ۲۰۴۸ کاراکتر). chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: نکات مربوط به chat_id و ساختار کیبوردها مشابه متد send_message است. فایل واردشده باید حتماً یک ویدئو با پسوندهای معتبر (.mp4 ، .mov و غیره) باشد. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_video(chat_id= "chat_id", video= "20260531.mp4", text= "این یک ویدئو است.") print(a) send_voice این متد برای ارسال یک پیام صوتی (ویس) به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. voice: نام و پسوند فایل صوتی (فقط .mp3). (در صورت استفاده از file_id نیاز نیست.) file_id: شناسه فایل صوتی دریافت‌شده از upload_file. (در صورت استفاده از voice نیاز نیست.) base64: داده صوتی به صورت Base64. (اختیاری) file_name: نام سفارشی فایل صوتی. (اختیاری) text: کپشن یا توضیح پیام صوتی (حداکثر ۲۰۴۸ کاراکتر). chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: نکات مربوط به chat_id و ساختار کیبوردها مشابه متد send_message است. پسوند فایل صوتی باید الزاماً .mp3 باشد، در غیر این صورت با خطا مواجه خواهید شد. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_voice(chat_id= "chat_id", voice= "20260531.mp3") print(a) send_music این متد برای ارسال یک فایل موسیقی به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. music: نام و پسوند فایل موسیقی (مانند .mp3). (در صورت استفاده از file_id نیاز نیست.) file_id: شناسه موسیقی دریافت‌شده از upload_file. (در صورت استفاده از music نیاز نیست.) base64: داده موسیقی به صورت Base64. (اختیاری) file_name: نام سفارشی فایل موسیقی. (اختیاری) text: کپشن یا توضیح موسیقی (حداکثر ۲۰۴۸ کاراکتر). chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: نکات مربوط به chat_id و ساختار کیبوردها مشابه متد send_message است. فایل واردشده باید دارای پسوندهای معتبر موسیقی (مانند .mp3) باشد. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_music(chat_id= "chat_id", music= "Hamid Hiraad - Khaste Shodam (320).mp3") print(a) send_gif این متد برای ارسال یک گیف (تصویر متحرک بی‌صدا) به یک گفتگو استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گفتگوی مقصد. gif: نام و پسوند فایل گیف (فقط .mp4 بی‌صدا). (در صورت استفاده از file_id نیاز نیست.) file_id: شناسه گیف دریافت‌شده از upload_file. (در صورت استفاده از gif نیاز نیست.) base64: داده گیف به صورت Base64. (اختیاری) file_name: نام سفارشی فایل گیف. (اختیاری) text: کپشن یا توضیح گیف (حداکثر ۲۰۴۸ کاراکتر). chat_keypad: کیبورد سفارشی. (پیش‌فرض: None) inline_keypad: دکمه‌های شیشه‌ای. (پیش‌فرض: None) reply_to_message_id: شناسه (مسیج آیدی) پیام برای ریپلای. (پیش‌فرض: None) disable_notification: غیرفعال‌سازی اعلان. (پیش‌فرض: False) resize_keyboard: تراز بودن دکمه‌های کیبورد. (پیش‌فرض: True) one_time_keyboard: محو شدن کیبورد پس از کلیک. (پیش‌فرض: False) نکات: نکات مربوط به chat_id و ساختار کیبوردها مشابه متد send_message است. گیف باید یک فایل ویدئویی .mp4 بی‌صدا باشد، در غیر این صورت با خطا مواجه می‌شوید. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.send_gif(chat_id= "chat_id", gif= "2_5352595205864328454.mp4") print(a) request_send_file این متد برای درخواست یک URL آپلود از سرورهای روبیکا به منظور ارسال یک فایل استفاده می‌شود. این اولین گام در فرایند آپلود فایل است. پارامتر پذیرفته‌شده توسط این متد به شرح زیر است: file_type: نوع فایل برای آپلود. مقادیر قابل قبول: ['File', 'Image', 'Voice', 'Video', 'Music', 'Gif'] (پیش‌فرض: File) مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.request_send_file(file_type="Image") print(a) upload_file این متد برای آپلود فایل روی سرورهای روبیکا با استفاده از URL دریافت‌شده از متد request_send_file به کار می‌رود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: url: آدرس آپلود دریافت‌شده از مرحله قبل. file: مسیر فایل، URL یا بایت‌های خام. (اختیاری) base64: داده فایل به صورت Base64. (اختیاری) file_name: نام فایل. (اگر این پارامتر وارد نشود، نام فایل از file_path گرفته می‌شود.) نکته: یکی از file یا base64 الزامی است. مثال: from maxrubika import Bot with Bot("token") as bot: # مرحله اول: دریافت URL آپلود برای نوع فایل "Image" upload_info = bot.request_send_file(file_type="Image") # مرحله دوم: آپلود فایل به سرور b = bot.upload_file(url= upload_info.upload_url, file= "IMG_20250911_220142_592.jpg") print(b) download_file این متد برای دانلود یک فایل از سرورهای روبیکا با استفاده از شناسه فایل (file_id) به کار می‌رود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: file_id: شناسه فایل برای دانلود. name: نام سفارشی برای فایل ذخیره‌شده (بدون پسوند). path: مسیر سفارشی برای ذخیره‌سازی. save_as: در صورت True بودن، فایل روی دیسک ذخیره می‌شود. در صورت False بودن، محتوای فایل به صورت بایت (bytes) بازگردانده می‌شود. (پیش‌فرض: False) as_base64: در صورت True بودن، فایل به صورت Base64 بازگردانده می‌شود. فقط وقتی save_as=False کار می‌کند. (پیش‌فرض: False) callback: تابعی برای گزارش پیشرفت دانلود که سه آرگومان downloaded, total, percent دریافت می‌کند. (پیش‌فرض: None) خروجی: اگر save_as=True باشد: دیکشنری شامل وضعیت، file_path و size. اگر save_as=False و as_base64=False باشد: محتوای فایل به صورت bytes. اگر save_as=False و as_base64=True باشد: رشته Base64. مثال: from maxrubika import Bot with Bot("token") as bot: b = bot.download_file("file_id", save_as= True, path="/home/user/downloads") print(b) get_file این متد برای دریافت اطلاعات یک فایل با استفاده از شناسه آن به کار می‌رود. پارامتر پذیرفته‌شده توسط این متد به شرح زیر است: file_id: شناسه فایل. مثال: from maxrubika import Bot with Bot("token") as bot: b = bot.get_file("file_id") print(b) ban_member این متدها برای مسدود کردن (بن کردن) یک عضو از یک گروه یا کانال استفاده می‌شوند. (متد remove_member دقیقاً میانبری برای ban_member است). پارامترهای پذیرفته‌شده توسط این متدها به شرح زیر هستند: chat_id: شناسه (چت آیدی) گروه (با g0) یا کانال (با c0). sender_id: شناسه (سندر آیدی) کاربری که باید مسدود شود (با u0). نکته: مقدار chat_id نباید با b0 (چت خصوصی) شروع شود. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.ban_member(chat_id="g0xxxxxxxxxxxxxxx", sender_id="u0xxxxxxxxxxxxxxx") print(a) unban_member این متد برای رفع مسدودیت (آنبن کردن) یک عضو از یک گروه یا کانال استفاده می‌شود. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: chat_id: شناسه (چت آیدی) گروه (با g0) یا کانال (با c0). sender_id: شناسه (سندر آیدی) کاربری که باید از مسدودیت خارج شود. نکته: مقدار chat_id نباید با b0 شروع شود. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.unban_member(chat_id="g0xxxxxxxxxxxxxxx", sender_id="u0xxxxxxxxxxxxxxx") print(a) member_is_admin این متد برای بررسی ادمین یا مالک بودن یک عضو در یک گروه یا کانال استفاده می‌شود. chat_id: شناسه (چت آیدی) گروه (با g0) یا کانال (با c0). user_id: شناسه کاربر (با u0). خروجی: مقدار True اگر وضعیت کاربر Admin یا Creator باشد، در غیر این صورت False. مثال: from maxrubika import Bot with Bot("token") as bot: is_admin = bot.member_is_admin("g0xxxxxxxxxxxxxxx", "u0xxxxxxxxxxxxxxx") print(is_admin) member_is_owner این متد برای بررسی مالک بودن یک عضو در یک گروه یا کانال استفاده می‌شود. chat_id: شناسه (چت آیدی) گروه (با g0) یا کانال (با c0). user_id: شناسه کاربر (با u0). خروجی: مقدار True اگر وضعیت کاربر Creator باشد، در غیر این صورت False. مثال: from maxrubika import Bot with Bot("token") as bot: is_owner = bot.member_is_owner("g0xxxxxxxxxxxxxxx", "u0xxxxxxxxxxxxxxx") print(is_owner) member_is_joined این متد برای بررسی عضویت یک کاربر در یک گروه یا کانال استفاده می‌شود. chat_id: شناسه (چت آیدی) گروه (با g0) یا کانال (با c0). user_id: شناسه کاربر (با u0). خروجی: مقدار True اگر کاربر عضو باشد، در غیر این صورت False. مثال: from maxrubika import Bot with Bot("token") as bot: is_joined = bot.member_is_joined("g0xxxxxxxxxxxxxxx", "u0xxxxxxxxxxxxxxx") print(is_joined) set_commands این متد برای تنظیم لیست کامندهای بات که در منوی آن نمایش داده می‌شود، استفاده می‌شود. پارامتر پذیرفته‌شده توسط این متد به شرح زیر است: commands: تنظیم کامندها. می‌تواند یک لیست از دیکشنری‌ها یا یک دیکشنری ساده باشد. (اگر این پارامتر وارد نشود یا خالی باشد، تمام کامندهای قبلی حذف خواهند شد.) نکته: نام دستور باید با حرف یا _ شروع شود و حداکثر ۳۲ کاراکتر باشد. توضیحات حداکثر ۲۵۶ کاراکتر. مثال‌ها: from maxrubika import Bot # روش اول: ارسال یک لیست از دیکشنری‌ها with Bot("token") as bot: b = bot.set_commands([{"command": "start", "description": "Start the bot"}, {"command": "help", "description": "help of bot"}]) print(b) from maxrubika import Bot # روش دوم: ارسال یک دیکشنری ساده with Bot("token") as bot: b = bot.set_commands({"start": "Start the bot", "help": "Show help"}) print(b) update_bot_endpoints این متد برای ثبت یک یا چند URL وب‌هوک روی سرورهای روبیکا استفاده می‌شود. با این کار، رویدادهای مختلف بات به‌جای این که شما آن‌ها را دریافت (Pull) کنید، از سمت سرور به سمت URL شما ارسال (Push) می‌شوند. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: url: آدرس کامل و عمومی که سرور روبیکا باید رویدادها را به آن ارسال کند (توصیه می‌شود از HTTPS استفاده شود). endpoint_type: نوع رویدادی که این URL مدیریت خواهد کرد. مقادیر قابل قبول: "ReceiveUpdate": پیام‌های جدید، ویرایش‌ها و حذف‌ها. "ReceiveInlineMessage": فشردن دکمه‌های شیشه‌ای (Inline). "ReceiveQuery": نتایج جستجوی درون‌خطی (Inline Query). "GetSelectionItem": انتخاب آیتم‌های منو. "SearchSelectionItems": درخواست جستجو در آیتم‌های انتخابی. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.update_bot_endpoints( url="https://myserver.com/wk", endpoint_type="ReceiveUpdate" ) print(a) register_all_endpoints این متد یک میانبر برای ثبت تمامی وب‌هوک‌ها به‌طور هم‌زمان است و برای راه‌اندازی اولیه بات بسیار مفید است. base_url: URL پایه سرور شما (مثلاً "https://myserver.com"). مسیر /wk به‌طور خودکار به آن اضافه خواهد شد. endpoints: لیستی از انواع رویدادها برای ثبت. اگر None باشد، هر پنج نوع ثبت می‌شوند. مثال: from maxrubika import Bot with Bot("token") as bot: a = bot.register_all_endpoints("https://myserver.com") print(a) get_token_string این متد توکن فعلی بات را به صورت یک TokenString رمزنگاری‌شده برمی‌گرداند. با این کار می‌توانید توکن خود را در محیط‌های ناامن (مثل فایل‌های تنظیمات یا مخزن گیت) ذخیره کنید بدون اینکه توکن خام در معرض دید قرار گیرد. password: رمز عبور اختیاری برای رمزنگاری. اگر ارائه شود، TokenString فقط با همین رمز باز می‌شود. مثال: from maxrubika import Bot with Bot("token") as bot: token_string = bot.get_token_string(password="my_pass") print(token_string) start این متد (غیرهمگام - async) برای راه‌اندازی بات در یکی از دو حالت Polling (دریافت مداوم به‌روزرسانی‌ها) یا Webhook (دریافت رویدادها از طریق یک سرور وب) استفاده می‌شود. این متد تا زمانی که بات متوقف نشود، اجرا می‌ماند. پارامترهای پذیرفته‌شده توسط این متد به شرح زیر هستند: poll_interval: فاصله زمانی (به ثانیه) بین هر درخواست دریافت به‌روزرسانی در حالت Polling. (پیش‌فرض: ۰.۰۰۵) webhook_url: URL عمومی سرور شما برای فعال‌سازی حالت Webhook. در صورت تنظیم، حالت Polling غیرفعال می‌شود. webhook_path: مسیر مدیریت درخواست‌های وب‌هوک روی سرور. (پیش‌فرض: /wk) host: آدرس میزبان برای راه‌اندازی وب سرور. (پیش‌فرض: "0.0.0.0") port: پورت برای راه‌اندازی وب سرور. (پیش‌فرض: ۸۰۸۰) مثال (حالت Polling): import asyncio from maxrubika import Bot async def main(): bot = Bot("token") @bot.on_message() async def handle_message(bot, event): print(event) await bot.start() asyncio.run(main()) run این یک متد همگام (sync) است که به عنوان یک پوشش ساده برای متد start عمل می‌کند و اجرای برنامه را تا زمان فشردن Ctrl+C متوقف نگه می‌دارد. برای اسکریپت‌هایی که حلقه رویداد asyncio فعال ندارند، بسیار مناسب است. پارامترهای این متد دقیقاً مشابه متد start هستند. مثال (حالت Polling): from maxrubika import Bot bot = Bot("token") @bot.on_message() async def handle_message(bot, event): print(event) bot.run() request این متد یک درخواست HTTP خام به API بات ارسال می‌کند. اگر متدی در مستندات پیدا نکردید یا نیاز به استفاده از قابلیت‌های جدید API دارید که هنوز به صورت متد اختصاصی پیاده‌سازی نشده‌اند، می‌توانید از این متد استفاده کنید. method: نوع درخواست HTTP (مثلاً "POST" یا "GET"). endpoint: نام متد API که به base_url اضافه می‌شود (مثلاً "getMe"). kwargs: آرگومان‌های اضافی که به aiohttp پاس داده می‌شود (مانند json= یا data=). نکته: این متد به طور خودکار خطاهای شبکه را مدیریت کرده و در صورت خطا، چندین بار تلاش مجدد می‌کند. خروجی آن یک شیء Response است. مثال: from maxrubika import Bot with Bot("token") as bot: # ارسال یک درخواست سفارشی به API response = bot.request("POST", "getMe", json={}) print(response) disconnect این متد برای قطع دستی اتصال از سرورهای روبیکا استفاده می‌شود. اگر از Context Manager (with یا async with) استفاده نکرده‌اید، باید در پایان کار ربات، این متد را فراخوانی کنید تا اتصال به درستی بسته شود و منابع آزاد شوند. پارامترها: ندارد. مثال (Sync): from maxrubika import Bot bot = Bot("token") me = bot.get_me() print(me) bot.disconnect() # قطع اتصال close این متد نسخهٔ ناهمگام (Async) برای قطع اتصال است. در محیط‌های Async باید از این متد به همراه await استفاده کنید. پارامترها: ندارد. مثال (Async): import asyncio from maxrubika import Bot async def main(): bot = Bot("token") me = await bot.get_me() print(me) await bot.close() # قطع اتصال در حالت Async asyncio.run(main()) نکته مهم: اگر از bot.run() یا await bot.start() استفاده می‌کنید، خود کتابخانه مدیریت اتصال را در طول اجرا به عهده دارد و نیازی به فراخوانی دستی disconnect یا close نیست. بازگشت به مستندات ربات صفحه بعد ← Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika دکوراتورها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents on_new_message on_edit_message on_delete_message on_message on_callback on_command on_update on_event_data on_bot_joined on_bot_removed on_bot_permissions_changed on_started_bot on_stopped_bot middleware on_start on_shutdown دکوراتورها on_new_message فقط پیام‌های جدید را دریافت می‌کند. @bot.on_new_message() async def handler(bot, event): await event.reply("پیام جدید دریافت شد!") on_edit_message فقط پیام‌های ویرایش شده را دریافت می‌کند. @bot.on_edit_message() async def handler(bot, event): await event.reply("پیام ویرایش شد!") on_delete_message فقط پیام‌های حذف شده را دریافت می‌کند. @bot.on_delete_message() async def handler(bot, event): print(f"پیام {event.deleted_message_id} حذف شد.") on_message همه نوع پیام (جدید، ویرایش شده، حذف شده، callback) را دریافت می‌کند. @bot.on_message() async def handler(bot, event): print(f"رویداد: {event.update_type}") on_callback فقط کلیک روی دکمه‌های اینلاین (شیشه‌ای) را دریافت می‌کند. @bot.on_callback() async def handler(bot, event): await event.reply(f"دکمه {event.text} کلیک شد!") on_command میانبر برای دریافت دستورات. معادل @bot.on_new_message(Command("name")). @bot.on_command("start") async def start(bot, event): await event.reply("شروع!") on_update همه نوع آپدیت‌ها را دریافت می‌کند. @bot.on_update() async def update(bot, event): print(event) on_event_data رویدادهای مربوط به بات را دریافت می‌کند. @bot.on_event_data() async def handler(bot, event): print(event) on_bot_joined رویداد مربوط به اضافه شدنِ بات در چت را دریافت می‌کند. @bot.on_bot_joined() async def handler(bot, event): print(f"بات به چت {event.chat_id} اضافه شد.") on_bot_removed رویداد مربوط به حذف شدنِ بات از چت را دریافت می‌کند. @bot.on_bot_removed() async def handler(bot, event): print(f"بات از چت {event.chat_id} حذف شد.") on_bot_permissions_changed رویداد مربوط به تغییر دسترسی بات در چت را دریافت می‌کند. @bot.on_bot_permissions_changed() async def handler(bot, event): print(f"دسترسی بات در چت {event.chat_id} تغییر کرد.") on_started_bot رویداد مربوط به شروع بات را دریافت می‌کند. @bot.on_started_bot() async def handler(bot, event): print("بات شروع شد.") on_stopped_bot رویداد مربوط به توقف بات را دریافت می‌کند. @bot.on_stopped_bot() async def handler(bot, event): print("بات متوقف شد.") middleware لایه میانی - قبل و بعد از همه هندلرها اجرا می‌شود. باید await call_next() صدا زده شود. @bot.middleware() async def logger(bot, event, call_next): print(f"[{event.update_type}] {event.chat_id}: {event.text}") await call_next() on_start هنگام شروع بات اجرا می‌شود. @bot.on_start() async def startup(bot): print("بات روشن شد!") on_shutdown هنگام خاموشی بات اجرا می‌شود. @bot.on_shutdown() async def shutdown(bot): print("بات خاموش شد!") → صفحه قبل صفحه اصلی صفحه بعد ← Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika فیلترها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents فیلترهای نوع رویداد فیلترهای متن فیلترهای چت و کاربر فیلترهای فایل و مدیا فیلترهای ریپلای و فوروارد فیلترهای متادیتا فیلترهای عضویت و دسترسی فیلترها فیلترها با & (AND)، | (OR) و ~ (NOT) ترکیب می‌شوند. # ترکیبِ چند فیلتر @bot.on_message((Text("سلام") | Command("start")) & ChatType("group") & ~IsForwarded()) async def handler(bot, event): await event.reply("سلام!") # OR - گروه یا کانال @bot.on_new_message(ChatType("group") | ChatType("channel")) # NOT - هر چیزی غیر از دستور @bot.on_new_message(~Command()) فیلترهای نوع رویداد فیلتر توضیح IsMessage() پیام جدید IsEdited() پیام ویرایش شده IsDeleted() پیام پاک شده IsCallback() کلیک دکمه اینلاین IsStartedBot() شروع بات توسط کاربر IsStoppedBot() توقف بات توسط کاربر IsEventData() رویدادهای EventData (مثل اضافه / حذف شدن بات) EventType("BotJoined") نوع خاص رویداد داخل EventData مثال: @bot.on_new_message(IsMessage()) async def new_msg(bot, event): await event.reply("این یک پیام جدید است!") @bot.on_callback(IsCallback()) async def callback_handler(bot, event): await event.reply("روی دکمه کلیک شد!") @bot.on_message(EventType("BotJoined")) async def bot_joined(bot, event): await event.reply("بات به چت اضافه شد!") فیلترهای متن فیلتر توضیح مثال IsText() فقط پیام متنی (بدون فایل) - Text("pattern") متن شامل الگو باشد (regex) Text("سلام") TextMatch("pattern") مانند Text + ذخیره match TextMatch(r"اسم (\w+)") Command("name") متن با / شروع شود Command("start") Command() هر دستوری - Command(["start", "شروع"]) چند نام - Command("help", prefixes=["/", "!"]) با prefix دلخواه - مثال: @bot.on_new_message(IsText()) async def text_only(bot, event): await event.reply(f"متن: {event.text}") @bot.on_new_message(TextMatch(r"اسم من (\w+) هست")) async def name_catcher(bot, event): name = event.pattern_match.group(1) await event.reply(f"سلام {name}!") فیلترهای چت و کاربر فیلتر توضیح مثال ChatType("user") فقط پیوی - ChatType("group") فقط گروه - ChatType("channel") فقط کانال - ChatType(["group", "channel"]) گروه یا کانال - FromChat("g0abc...") چت خاص - FromUser("u0abc...") کاربر خاص - FromUser(["u0A", "u0B"]) چند کاربر - IsUser() پیوی کاربر - IsGroup() گروه - IsChannel() کانال - مثال: @bot.on_new_message(ChatType("user")) async def private_only(bot, event): await event.reply("این پیام در پیوی ارسال شده!") @bot.on_new_message(FromChat("g0abc123def456ghi789jklmno123456")) async def specific_group(bot, event): await event.reply("سلام به گروه خاص!") فیلترهای فایل و مدیا فیلتر توضیح IsFile() هر نوع فایل (به جز استیکر) IsImage() عکس IsVideo() ویدیو IsVoice() پیام صوتی IsMusic() موسیقی IsSticker() استیکر IsPoll() نظرسنجی IsLocation() موقعیت مکانی مثال: @bot.on_new_message(IsImage()) async def image_handler(bot, event): await event.reply(f"عکس {event.file_name} دریافت شد!") @bot.on_new_message(IsPoll()) async def poll_handler(bot, event): await event.reply("یک نظرسنجی دریافت شد!") فیلترهای ریپلای و فوروارد فیلتر توضیح IsReply() پیام ریپلای شده IsForwarded() هر نوع فوروارد ForwardedFromUser() فوروارد از کاربر ForwardedFromChannel() فوروارد از کانال ForwardedFromBot() فوروارد از بات ForwardedNoLink() فوروارد با هدایت بسته (پروفایل مخفی) مثال: @bot.on_new_message(IsReply()) async def reply_handler(bot, event): await event.reply("این پیام به پیام دیگری ریپلای زده!") @bot.on_new_message(ForwardedFromBot()) async def forward_from_bot(bot, event): await event.reply("این پیام از یک بات فوروارد شده!") فیلترهای متادیتا فیلتر توضیح مثال HasMetadata() پیام فرمت‌دار (Bold, Italic) - MetadataType("Bold") نوع خاص - MetadataType(["Bold", "Italic"]) چند نوع - مثال: @bot.on_new_message(HasMetadata()) async def metadata_handler(bot, event): await event.reply("این پیام فرمت‌دار است!") @bot.on_new_message(MetadataType("Bold")) async def bold_handler(bot, event): await event.reply("این پیام دارای متن پررنگ است!") فیلترهای عضویت و دسترسی فیلتر توضیح IsJoined("c0...") کاربر عضو چت خاصی باشد IsJoined(["c0A", "c0B"]) عضو چند چت باشد ~IsJoined("c0...") عضو نباشد IsAdmin() ادمین یا مالک چت IsOwner() فقط مالک چت مثال: @bot.on_message(IsJoined("c0abc123def456ghi789jklmno123456") & Command("start")) async def joined_user(bot, event): await event.reply("شما عضو کانال هستید، خوش آمدید!") @bot.on_new_message(IsAdmin()) async def admin_handler(bot, event): await event.reply("شما ادمین این چت هستید!") @bot.on_new_message(IsOwner()) async def owner_handler(bot, event): await event.reply("شما مالک این چت هستید!") → صفحه قبل صفحه اصلی صفحه بعد ← Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika پراپرتی‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents اطلاعات پایه فایل استیکر، موقعیت مکانی و نظرسنجی دکمه‌های کیبورد فوروارد متادیتا چت و کاربر دستورات ریپلای الگو و رویداد متدهای کاربردی متدهای ریپلای تخصصی پراپرتی‌ها همه هندلرها یک شیء event دریافت می‌کنند با پراپرتی‌های زیر: اطلاعات پایه پراپرتی توضیح نوع event.update_type نوع رویداد "NewMessage", "UpdatedMessage", "RemovedMessage", "InlineMessage", "StartedBot", "StoppedBot", "EventData" event.chat_id آیدی چت str event.text متن پیام str یا None event.msg_id آیدی پیام str یا None event.message_id مترادف msg_id str یا None event.author_id آیدی فرستنده str یا None event.sender_id مترادف author_id str یا None event.sender_type نوع فرستنده "User", "Bot" یا None event.is_edited ویرایش شده؟ bool event.is_deleted پاک شده؟ bool event.timestamp زمان آپدیت (سرور) int event.message_time زمان پیام str یا None فایل پراپرتی توضیح نوع event.file_id آیدی فایل پیوست str یا None event.file_name نام اصلی فایل str یا None event.file_size سایز فایل به بایت int یا None event.file_type نوع فایل "image", "video", "voice", "music", "sticker", "file" یا None event.is_image عکس است؟ bool event.is_video ویدیو است؟ bool event.is_voice ویس است؟ bool event.is_music موزیک است؟ bool استیکر، موقعیت مکانی و نظرسنجی پراپرتی توضیح نوع event.sticker دیتای استیکر dict یا None event.sticker_id آیدی استیکر str یا None event.is_sticker استیکر است؟ bool event.poll دیتای نظرسنجی dict یا None event.poll_options گزینه‌های نظرسنجی list یا None event.is_poll نظرسنجی است؟ bool event.location دیتای موقعیت مکانی dict یا None event.is_location موقعیت مکانی است؟ bool دکمه‌های کیبورد پراپرتی توضیح نوع event.button_id آیدی دکمه str یا None event.aux_data دیکشنری aux_data dict یا None event.callback_payload کل payload کلیک دکمه dict یا None event.callback_data مترادف callback_payload dict یا None event.callback_button_id آیدی دکمه (فقط InlineMessage) str یا None فوروارد پراپرتی توضیح نوع event.is_forwarded فوروارد شده؟ (هر نوع) bool event.forward_type نوع فوروارد "User", "Channel", "Bot", "NoLink" یا None event.forward_sender_id آیدی فرستنده اصلی str یا None event.forward_chat_id آیدی چت اصلی str یا None event.forward_message_id آیدی پیام اصلی فوروارد شده str یا None event.forward_title عنوان (هدایت بسته) str یا None event.forwarded_from اطلاعات فوروارد (با لینک) dict یا None event.forwarded_no_link اطلاعات فوروارد (هدایت بسته) dict یا None event.is_forwarded_from_user فوروارد از کاربر؟ bool event.is_forwarded_from_channel فوروارد از کانال؟ bool event.is_forwarded_from_bot فوروارد از بات؟ bool event.is_forwarded_no_link هدایت بسته؟ bool متادیتا پراپرتی توضیح نوع event.metadata دیکشنری متادیتا (Bold, Italic و...) dict یا None event.metadata_types لیست انواع متادیتا ["Bold", "Italic", "Quote", "Monospace", "Strikethrough", "Underline", ...] event.metadata_parts آرایه کامل بخش‌های متادیتا List[dict] event.metadata_type اولین نوع متادیتا str یا None چت و کاربر پراپرتی توضیح نوع event.is_user پیوی کاربر؟ bool event.is_group گروه؟ bool event.is_channel کانال؟ bool event.is_text متن خالص؟ bool event.is_reply ریپلای؟ bool event.is_command با / شروع می‌شود؟ bool دستورات پراپرتی توضیح نوع event.command نام دستور (بدون /) str یا None event.command_args آرگومان‌های بعد از دستور str یا None event.is_command با / شروع می‌شود؟ bool ریپلای پراپرتی توضیح نوع event.reply_to_message_id آیدی پیام ریپلای شده str یا None event.reply_to_msg_id مترادف reply_to_message_id str یا None event.is_reply ریپلای است؟ bool الگو و رویداد پراپرتی توضیح نوع event.pattern_match آبجکت match از فیلتر regex Match یا None event.event_data payload رویداد EventData dict یا None event.event_type نوع رویداد داخل event_data str یا None event.message payload پیام جدید (NewMessage) dict یا None event.edited_message payload پیام ویرایش‌شده (UpdatedMessage) dict یا None event.deleted_message_id آیدی پیام پاک‌شده str یا None متدهای کاربردی متد توضیح await event.reply("متن") ریپلای سریع await event.delete() حذف پیام await event.copy() کپی پیام در همان چت await event.copy("chat_id") کپی پیام به چت دیگر await event.forward() فوروارد پیام در همان چت await event.forward("chat_id") فوروارد پیام به چت دیگر await event.ban_member() بن کردن کاربر await event.is_admin() آیا ادمین است؟ await event.is_owner() آیا سازنده است؟ await event.is_joined("chat_id") آیا عضو چت است؟ await event.get_chat_info() دریافت اطلاعات چت event.original_data دیتای خام API متدهای ریپلای تخصصی متد توضیح await event.reply_image() ریپلای عکس await event.reply_video() ریپلای ویدیو await event.reply_gif() ریپلای گیف await event.reply_music() ریپلای موزیک await event.reply_voice() ریپلای ویس await event.reply_file() ریپلای فایل await event.reply_contact() ریپلای مخاطب await event.reply_location() ریپلای موقعیت مکانی await event.reply_poll() ریپلای نظرسنجی await event.reply_quiz() ریپلای کوییز → صفحه قبل صفحه اصلی صفحه بعد ← Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika پلاگین Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents ساختار پایه فیلدهای PluginMeta روش‌های ساخت پلاگین روش ۱: با دکوراتور @create_plugin روش ۲: با PluginMeta (برای تنظیمات پیشرفته) متدهای کلاس Plugin فعال‌سازی پلاگین‌ها ثبت دستی کشف خودکار از پوشه plugins/ کشف خودکار از Entry Points (برای پکیج‌های نصب‌شده) مدیریت پلاگین‌ها در زمان اجرا تنظیمات پلاگین وابستگی‌ها نمونه‌های کاربردی پلاگین ضد اسپم پلاگین لاگر پلاگین ذخیره پیام پلاگین تایمر چرخه حیات پلاگین نکات مهم پلاگین سیستم پلاگین به شما اجازه می‌دهد کد ربات را به ماژول‌های مستقل، قابل استفاده مجدد و قابل اشتراک‌گذاری تقسیم کنید. ساختار پایه هر پلاگین یک کلاس است که از Plugin ارث‌بری می‌کند: from maxrubika.bot.plugin import Plugin, PluginMeta class MyPlugin(Plugin): meta = PluginMeta( name="myplugin", version="1.0.0", description="توضیحات پلاگین", author="نام شما" ) async def setup(self): # هنگام فعال شدن پلاگین اجرا می‌شود pass async def teardown(self): # هنگام غیرفعال شدن پلاگین اجرا می‌شود pass فیلدهای PluginMeta فیلد نوع پیش‌فرض توضیح name str (الزامی) شناسه یکتای پلاگین version str "1.0.0" نسخه پلاگین description str "" توضیحات پلاگین author str "Unknown" نام نویسنده homepage str None آدرس صفحه پروژه dependencies tuple () شناسه پلاگین‌های وابسته required_permissions tuple () دسترسی‌های مورد نیاز (فقط اطلاعاتی) default_config dict {} تنظیمات پیش‌فرض پلاگین enabled_by_default bool False فعال بودن خودکار هنگام راه‌اندازی نکته: فیلد required_permissions فقط جنبه اطلاعاتی دارد و توسط مدیر پلاگین اعتبارسنجی نمی‌شود. روش‌های ساخت پلاگین روش ۱: با دکوراتور @create_plugin from maxrubika.bot.plugin import Plugin, create_plugin @create_plugin("greeter", version="1.0.0", description="پلاگین خوش‌آمدگویی") class GreeterPlugin(Plugin): async def setup(self): @self.bot.on_command("hello") async def hello(bot, event): await event.reply("سلام! 👋") روش ۲: با PluginMeta (برای تنظیمات پیشرفته) from maxrubika.bot.plugin import Plugin, PluginMeta class AdminPlugin(Plugin): meta = PluginMeta( name="admin", version="2.0.0", description="مدیریت گروه", author="MEHRAB", dependencies=("logger", "antispam"), default_config={ "admins": [], "welcome_message": "خوش آمدید!" } ) async def setup(self): admins = self.get_config("admins", []) msg = self.get_config("welcome_message", "") @self.bot.on_command("ban") async def ban(bot, event): if event.author_id in admins: await bot.ban_member(event.chat_id, "sender_id") await event.reply("کاربر مورد نظر باموفقیت بن شد.") متدهای کلاس Plugin متد / پراپرتی توضیح setup() هوک فعال‌سازی. در انتها پراپرتی is_ready را True می‌کند. teardown() هوک غیرفعال‌سازی. پراپرتی is_ready را False می‌کند. configure(config) اعتبارسنجی یا اصلاح تنظیمات قبل از ذخیره. باید دیکشنری برگرداند. get_config(key, default) خواندن یک مقدار از تنظیمات. update_config(config) جایگزینی تنظیمات فعلی (ادغام با پیش‌فرض‌ها). is_ready آیا پلاگین آماده و فعال است؟ bot نمونه ربات برای دسترسی به متدها. config دیکشنری تنظیمات فعلی. identifier() (classmethod) دریافت شناسه یکتای پلاگین. مثال configure برای اعتبارسنجی تنظیمات: class MyPlugin(Plugin): meta = PluginMeta(name="myplugin", default_config={"level": 5}) def configure(self, config): # محدود کردن مقدار level بین ۱ تا ۱۰ config["level"] = max(1, min(int(config.get("level", 5)), 10)) return config فعال‌سازی پلاگین‌ها ثبت دستی from maxrubika import Bot bot = Bot("TOKEN") # ثبت پلاگین bot.plugin_manager.register_plugin(GreeterPlugin) bot.plugin_manager.register_plugin(AdminPlugin) # فعال‌سازی @bot.on_start() async def startup(bot): await bot.plugin_manager.enable_all() bot.run() کشف خودکار از پوشه plugins/ my_bot/ ├── test.py └── plugins/ ├── greeter.py ├── admin.py └── antispam.py # test.py from maxrubika import Bot bot = Bot("TOKEN") @bot.on_start() async def startup(bot): await bot.plugin_manager.enable_all() bot.run() پلاگین‌ها خودکار از پوشه plugins/ کشف و فعال می‌شوند. مدیر پلاگین تنها کلاس‌هایی را کشف می‌کند که در همان فایل تعریف شده باشند (نه کلاس‌های ایمپورت‌شده). کشف خودکار از Entry Points (برای پکیج‌های نصب‌شده) اگر کتابخانه یا پلاگین شما به صورت پکیج نصب می‌شود، می‌توانید از Entry Points استفاده کنید: # pyproject.toml [project.entry-points."rubika.plugins"] myplugin = "my_package.plugins:MyPlugin" مدیریت پلاگین‌ها در زمان اجرا # فعال کردن یک پلاگین await bot.plugin_manager.enable("greeter") # غیرفعال کردن await bot.plugin_manager.disable("greeter") # فعال کردن همه await bot.plugin_manager.enable_all() # فعال کردن چند پلاگین مشخص await bot.plugin_manager.enable_many(["greeter", "admin"]) # فعال کردن پلاگین‌های enabled_by_default await bot.plugin_manager.enable_defaults() # غیرفعال کردن همه await bot.plugin_manager.disable_all() # بارگذاری مجدد (کد فایل دوباره اجرا می‌شود) await bot.plugin_manager.reload("greeter") # ثبت پلاگین جدید bot.plugin_manager.register_plugin(MyPlugin) # حذف پلاگین از رجیستری (فقط اگر غیرفعال باشد) bot.plugin_manager.unregister_plugin("myplugin") # بررسی وضعیت bot.plugin_manager.is_enabled("greeter") # True/False bot.plugin_manager.is_registered("greeter") # True/False bot.plugin_manager.enabled_plugins # ['greeter', 'admin'] bot.plugin_manager.registered_plugins # ['greeter', 'admin', 'logger'] # گرفتن نمونه پلاگین plugin = bot.plugin_manager.get_plugin("greeter") print(plugin.is_ready) # True/False # گرفتن همه پلاگین‌های فعال all_plugins = bot.plugin_manager.get_all_plugins() # دریافت اطلاعات کامل یک پلاگین info = bot.plugin_manager.get_plugin_info("greeter") print(info["version"], info["dependencies"], info["enabled"]) تنظیمات پلاگین # تنظیم تنظیمات bot.plugin_manager.set_config("admin", { "admins": ["u0abc123..."], "welcome_message": "سلام به گروه ما!" }) # گرفتن تنظیمات config = bot.plugin_manager.get_config("admin") print(config["admins"]) # داخل پلاگین class AdminPlugin(Plugin): async def setup(self): admins = self.get_config("admins", []) msg = self.get_config("welcome_message", "خوش آمدید") وابستگی‌ها پلاگین‌ها می‌توانند به پلاگین‌های دیگر وابسته باشند: @create_plugin("stats", version="1.0.0", dependencies=("logger", "saver")) class StatsPlugin(Plugin): async def setup(self): # logger و saver اول فعال می‌شوند saver = self.bot.plugin_manager.get_plugin("saver") print(f"پیام‌های ذخیره شده: {len(saver.saved)}") سیستم به طور خودکار: پلاگین‌های وابسته را اول فعال می‌کند از وابستگی دایره‌ای جلوگیری می‌کند اگر وابستگی فعال نشود، پلاگین فعال نمی‌شود اگر پلاگینی که پلاگین‌های دیگر به آن وابسته‌اند فعال باشد، غیرفعال نمی‌شود نمونه‌های کاربردی پلاگین ضد اسپم @create_plugin("antispam", version="1.0.0", description="حذف پیام‌های اسپم") class AntiSpamPlugin(Plugin): SPAM_WORDS = "پیام اسپم" async def setup(self): @self.bot.on_new_message(Text(self.SPAM_WORDS) & ChatType("group")) async def spam_filter(bot, event): await event.delete() await bot.send_message(event.chat_id, "⛔ پیام اسپم حذف شد!") پلاگین لاگر @create_plugin("logger", version="1.0.0", description="ثبت تمام پیام‌ها") class LoggerPlugin(Plugin): async def setup(self): @self.bot.middleware() async def log_middleware(bot, event, call_next): print(f"[{event.update_type}] {event.chat_id}: {event.text}") await call_next() پلاگین ذخیره پیام @create_plugin("saver", version="1.0.0") class MessageSaverPlugin(Plugin): async def setup(self): self.saved = [] @self.bot.on_new_message(Text("ذخیره") & IsForwarded()) async def save_forward(bot, event): self.saved.append({ "text": event.text, "from": event.forward_title, "time": event.message_time }) await event.reply(f"✅ ذخیره شد! ({len(self.saved)} پیام)") @self.bot.on_command("list") async def list_saved(bot, event): text = "📋 پیام‌های ذخیره شده:\n\n" for i, msg in enumerate(self.saved[-5:], 1): text += f"{i}. {msg['text'][:50]}...\n" await event.reply(text) پلاگین تایمر import asyncio @create_plugin("timer", version="1.0.0") class TimerPlugin(Plugin): async def setup(self): @self.bot.on_command("timer") async def timer(bot, event): await event.reply("⏰ ۵ ثانیه صبر کن...") await asyncio.sleep(5) await bot.send_message(event.chat_id, "⏰ وقت تموم شد!") چرخه حیات پلاگین register_plugin → enable → setup() → فعال و آماده (is_ready=True) ↓ disable → teardown() → غیرفعال (is_ready=False) ↓ reload → اجرای دوباره فایل + enable نکات مهم پلاگین‌ها در setup() هندلرها و میدلورها را ثبت می‌کنند از self.bot برای دسترسی به نمونه ربات استفاده کنید از self.get_config() برای خواندن تنظیمات استفاده کنید پلاگین‌های وابسته خودکار اول فعال می‌شوند برای اشتراک‌گذاری، فقط فایل پلاگین را کپی کنید هر پلاگین می‌تواند داده‌های خود را در self ذخیره کند is_ready نشان می‌دهد پلاگین فعال و آماده است هر فایل پلاگین فقط باید یک کلاس پلاگین داشته باشد که در همان فایل تعریف شده است برای اعتبارسنجی تنظیمات، متد configure() را بازنویسی کنید → صفحه قبل صفحه اصلی صفحه بعد ← Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika توضیحات بیشتر Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents راهنمای شناسه‌های گفتگو (Chat ID) نکات کلیدی: راهنمای ساخت و پیکربندی بات توکن استرینگ (TokenString) و امنیت آن مزایای امنیتی TokenString: ساخت TokenString از توکن فعلی: استفاده از TokenString برای ساخت ربات: نحوه اتصال و قطع اتصال روش اول: استفاده از Context Manager حالت Sync: حالت Async: روش دوم: صدا زدن متد disconnect یا close حالت Sync: حالت Async: مثال: استفاده از دکوراتور (بدون نیاز به قطع دستی) راهنمای متادیتا در متن پیام نمونه‌های ترکیبی پیشرفته ساختار و انواع دکمه‌های کیپاد مدل‌های پایه دکمه‌ها ۱. ButtonSelectionItem ۲. ButtonSelection ۳. ButtonCalendar ۴. ButtonNumberPicker ۵. ButtonStringPicker ۶. ButtonTextbox ۷. ButtonLocation مدل اصلی Button انواع دکمه‌ها (ButtonTypeEnum) انواع نمایش دکمه‌های انتخابی (ButtonSelectionTypeEnum) نحوهٔ جستجو در لیست انتخابی (ButtonSelectionSearchEnum) نحوهٔ دریافت آیتم‌های لیست (ButtonSelectionGetEnum) انواع تقویم (ButtonCalendarTypeEnum) انواع صفحه‌کلید ورودی (ButtonTextboxTypeKeypadEnum) انواع خطوط ورودی (ButtonTextboxTypeLineEnum) انواع موقعیت مکانی (ButtonLocationTypeEnum) نمونه‌های عملی ساخت دکمهٔ ساده ساخت دکمهٔ انتخاب از لیست ساخت دکمهٔ تقویم ساخت دکمهٔ ورودی متن توضیحات بیشتر راهنمای شناسه‌های گفتگو (Chat ID) شناسه‌های گفتگو در پلتفرم روبیکا از قاعده‌ی مشخصی پیروی می‌کنند که آگاهی از آن برای عملکرد صحیح بات ضروری است: نوع گفتگو پیشوند طول مثال گروه g0 ۳۲ کاراکتر g0G3R190567fa33c5f5ee7d399a104e8 کانال c0 ۳۲ کاراکتر c0Hzgbk0ac24729c1d1a5d55c26ac3ef گفتگوی خصوصی b0 ۳۲ کاراکتر b0Hzgbk0ac24729c1d1a5d55c29ac5ag نکات کلیدی: تمایز شناسه‌ها: شناسهٔ فرستنده (Sender ID) که با u0 شروع می‌شود، کاملاً با شناسهٔ گفتگوی خصوصی کاربر (b0) متفاوت است. این دو را هرگز با یکدیگر اشتباه نگیرید. ماهیت پویای شناسهٔ خصوصی: شناسهٔ گفتگوی خصوصی (b0) برای هر بات منحصربه‌فرد است. به عبارت دیگر، شناسه‌ای که از بات A دریافت می‌کنید، در بات B قابل استفاده نخواهد بود. تمایز از GUID: شناسهٔ گفتگو را با GUID (گوید) اشتباه نگیرید. اگرچه از نظر ظاهری مشابه هستند، اما کاربردهای کاملاً متفاوتی دارند: GUID: در کلاینت و سرورهای پیام‌رسان مورد استفاده قرار می‌گیرد. Chat ID: مختص سرور بات است و برای ارتباط با API استفاده می‌شود. راهنمای ساخت و پیکربندی بات هنگام ساخت نمونه ربات، می‌توانید پارامترهای زیر را به سازنده کلاس Bot بدهید: پارامتر نوع پیش‌فرض توضیح token str None توکن احراز هویت بات. اگر خالی یا نامعتبر باشد، از کاربر در ترمینال درخواست می‌شود. token_string str None نسخهٔ رمزنگاری‌شدهٔ توکن. اولویت آن از token بیشتر است. password str None رمز عبور برای رمزگشایی token_string (در صورت استفاده). base_url str "https://botapi.rubika.ir/v3" آدرس پایهٔ API. timeout int/float 30 مدت زمان انتظار برای هر درخواست (ثانیه). max_retries int 5 حداکثر تعداد تلاش مجدد در صورت خطای شبکه. show_welcome bool True نمایش پیام خوش‌آمدگویی کتابخانه هنگام راه‌اندازی. run_all_handlers bool True اگر True باشد، همهٔ هندلرهایی که شرطشان با رویداد مطابقت دارد اجرا می‌شوند. اگر False باشد، تنها اولین هندلر مطابق اجرا می‌شود. نکات مهم: اولویت token_string: اگر هم token و هم token_string را بدهید، token_string استفاده می‌شود (و در صورت نیاز با password رمزگشایی می‌شود). run_all_handlers: اگر چند هندلر با یک رویداد مطابقت داشته باشند، با True همه اجرا می‌شوند و با False فقط اولی. توکن استرینگ (TokenString) و امنیت آن توکن بات یکی از حساس‌ترین اطلاعات پروژه است. اگر توکن شما به دست شخص دیگری بیفتد، می‌تواند از طرف بات شما به کاربران پیام بفرستد، اطلاعات گروه‌ها را بخواند یا حتی بات را مختل کند. TokenString یک راهکار امنیتی برای ذخیره و انتقال توکن است. این قابلیت توکن خام بات را به یک رشتهٔ رمزنگاری‌شده تبدیل می‌کند و می‌توانید آن را جای توکن اصلی استفاده کنید. مزایای امنیتی TokenString: رمزنگاری: توکن اصلی بات هرگز به‌صورت متن ساده ذخیره یا ارسال نمی‌شود. رمز عبور اختیاری: می‌توانید TokenString را با یک رمز عبور محافظت کنید. در این صورت، حتی اگر رشتهٔ رمزنگاری‌شده لو برود، بدون رمز عبور قابل استفاده نیست. دور ماندن از مخازن: می‌توانید TokenString را در فایل‌های تنظیمات، متغیرهای محیطی یا مخزن کد قرار دهید بدون نگرانی از افشای توکن اصلی. چرخش توکن: در صورت نیاز، می‌توانید TokenString جدید بسازید بدون اینکه توکن اصلی بات تغییر کند. ساخت TokenString از توکن فعلی: با متد get_token_string() می‌توانید توکن فعلی بات را به یک TokenString رمزنگاری‌شده تبدیل کنید: from maxrubika import Bot with Bot("TOKEN") as bot: # بدون رمز عبور token_string = bot.get_token_string() # با رمز عبور (امن‌تر) token_string = bot.get_token_string(password="my_secret_password") print(token_string) استفاده از TokenString برای ساخت ربات: from maxrubika import Bot with Bot(token_string="ENCRYPTED_STRING", password="my_secret_password") as bot: print(bot.get_me()) پارامترهای get_token_string: پارامتر نوع پیش‌فرض توضیح password str None رمز عبور اختیاری برای رمزنگاری. اگر بدهید، TokenString فقط با همین رمز قابل باز شدن است. نکات مهم: اگر TokenString را با رمز عبور بسازید، حتماً رمز را جای امنی نگه دارید. بدون آن، TokenString قابل بازیابی نیست. TokenString در واقع توکن اصلی نیست، بلکه یک نسخهٔ رمزنگاری‌شده است. توکن اصلی همچنان در سمت سرور روبیکا معتبر است. نحوه اتصال و قطع اتصال برای برقراری و قطع اتصال در کتابخانه MAXRubika، دو روش اصلی وجود دارد که بسته به نوع استفاده (Sync یا Async) و نیاز پروژه، می‌توانید یکی را انتخاب کنید. روش اول: استفاده از Context Manager در این روش نیازی به صدا زدن متد اضافه‌ای برای قطع اتصال نیست؛ کافی است از with (در حالت Sync) یا async with (در حالت Async) استفاده کنید. اتصال به‌صورت خودکار برقرار می‌شود و در پایان بلوک، به‌درستی بسته خواهد شد. حالت Sync: from maxrubika import Bot with Bot("Token") as bot: me = bot.get_me() print(me) همچنین می‌توانید ابتدا شیء را بسازید و سپس از with استفاده کنید: from maxrubika import Bot bot = Bot("Token") with bot: me = bot.get_me() print(me) حالت Async: import asyncio from maxrubika import Bot async def main(): async with Bot("Token") as bot: me = await bot.get_me() print(me) asyncio.run(main()) یا ساخت جداگانه‌ی شیء و سپس استفاده از async with: import asyncio from maxrubika import Bot async def main(): bot = Bot("Token") async with bot: me = await bot.get_me() print(me) asyncio.run(main()) روش دوم: صدا زدن متد disconnect یا close در این روش، خودتان به‌صورت دستی اتصال را برقرار می‌کنید و در انتهای عملیات، با صدا زدن متد مناسب، اتصال را می‌بندید. حالت Sync: در کدهای Sync از متد disconnect استفاده کنید: from maxrubika import Bot bot = Bot("Token") me = bot.get_me() print(me) bot.disconnect() # قطع اتصال در پایان عملیات حالت Async: در کدهای Async از متد close استفاده کنید: import asyncio from maxrubika import Bot async def main(): bot = Bot("Token") me = await bot.get_me() print(me) await bot.close() # قطع اتصال در پایان عملیات asyncio.run(main()) نکته مهم: استفاده از این روش‌ها فقط زمانی لازم است که بخواهید یک عملیات موقت با کتابخانه انجام دهید (مثلاً دریافت اطلاعات یک‌باره‌ی یک شیء). اگر از دکوراتورها، لانگ‌پولینگ یا وب‌هوک استفاده می‌کنید، نیازی به صدا زدن disconnect یا close یا استفاده از Context Manager نیست؛ زیرا کتابخانه خودش مدیریت اتصال را در طول اجرا به عهده دارد. مثال: استفاده از دکوراتور (بدون نیاز به قطع دستی) from maxrubika import Bot bot = Bot("Token") @bot.on_command("start") async def start(bot, event): await event.reply("سلام، پیام شما دریافت شد.") bot.run() در این حالت، کتابخانه به‌طور خودکار اتصال را در طول اجرای ربات مدیریت می‌کند و نیازی به فراخوانی متدهای disconnect یا close نخواهد بود. راهنمای متادیتا در متن پیام برای غنی‌سازی متن پیام‌ها و ایجاد قالب‌بندی پیشرفته، می‌توانید از متادیتاهای زیر استفاده کنید. هر متادیتا با علامت‌های مشخصی در ابتدا و انتهای عبارت اعمال می‌شود: نوع قالب‌بندی علامت‌ها مثال برجسته (Bold) ** **سلام دوست عزیز!** کج (Italic) __ __این یک جمله تست است.__ اسپویل (Spoiler) || ||متن اسپویل شده|| نقل قول (Quote) > (فقط ابتدا) > سلام! زیرخط (Underline) -- --تست-- خط‌خورده (Strikethrough) ~~ ~~عالی و قوی~~ مونو (Monospace) ` `بی‌نظیر` بلاک کد (Code Block) ``` ``` کد ``` هایپرلینک [متن](لینک) [کلیک کنید](https://example.com) منشن (Mention) [متن](sender_id) [مدیر](u0...) نمونه‌های ترکیبی پیشرفته مثال ۱ - ترکیب چند متادیتا: "> __سلام__ (کاربر عزیز)[u0] --به کتابخانه‌ی-- **MAXRubika** ||خوش آمدید||!" مثال ۲ - متادیتای تودرتو: "> ||__**این یک جمله از کتابخانه --MAXRubika-- است.**__||" مثال ۳ - بلاک کد کامل: """```from maxrubika import Messenger with Messenger("mySession") as app: info = client.get_channel_post_by_link("https://rubika.ir/RubiFAQ/BEFIDIFGBJHJECCD") print(info)```""" توجه: حداکثر تعداد متادیتا در هر پیام ۳۰ مورد است و می‌توانید از ترکیب‌های مختلف به‌صورت همزمان استفاده کنید. برای اعمال متادیتا بر روی پیام، می‌بایست علامت‌ها را اول و آخر جمله قرار دهید، اگر در اول و آخر متن قرار دهید، متادیتا اعمال نمی‌شود. (به جز علامت های بلاک کد) ساختار و انواع دکمه‌های کیپاد دکمه‌های تعاملی در روبیکا به دو دستهٔ کلی تقسیم می‌شوند: Inline Keypad: دکمه‌های شیشه‌ای که در زیر پیام نمایش داده می‌شوند. Chat Keypad: دکمه‌های صفحه‌کلید که در پایین صفحهٔ گفتگو قرار می‌گیرند. مدل‌های پایه دکمه‌ها ۱. ButtonSelectionItem هر گزینه از لیست انتخابی را تعریف می‌کند. فیلد نوع توضیحات text string متن نمایشی گزینه image_url string آدرس تصویر مرتبط (اختیاری) type ButtonSelectionTypeEnum نوع نمایش دکمه ۲. ButtonSelection تنظیمات کامل دکمهٔ انتخاب (type = Selection). فیلد نوع توضیحات selection_id string شناسهٔ یکتای لیست search_type ButtonSelectionSearchEnum نحوهٔ جستجو در لیست get_type ButtonSelectionGetEnum نحوهٔ دریافت آیتم‌ها items list[ButtonSelectionItem] آرایه‌ای از گزینه‌ها is_multi_selection bool امکان انتخاب چندگانه columns_count string تعداد ستون‌های نمایش title string عنوان لیست ۳. ButtonCalendar تنظیمات دکمهٔ تقویم (type = Calendar). فیلد نوع توضیحات default_value Optional[string] تاریخ پیش‌فرض type ButtonCalendarTypeEnum نوع تقویم (شمسی/میلادی) min_year string حداقل سال قابل انتخاب max_year string حداکثر سال قابل انتخاب title string عنوان دکمه ۴. ButtonNumberPicker تنظیمات دکمهٔ انتخاب عدد (type = NumberPicker). فیلد نوع توضیحات min_value string حداقل مقدار max_value string حداکثر مقدار default_value Optional[string] مقدار پیش‌فرض title string عنوان دکمه ۵. ButtonStringPicker تنظیمات دکمهٔ انتخاب رشته (type = StringPicker). فیلد نوع توضیحات items list[string] لیست گزینه‌های قابل انتخاب default_value Optional[string] مقدار پیش‌فرض title Optional[string] عنوان دکمه ۶. ButtonTextbox تنظیمات دکمهٔ ورودی متن (type = Textbox). فیلد نوع توضیحات type_line ButtonTextboxTypeLineEnum تک‌خطی یا چندخطی type_keypad ButtonTextboxTypeKeypadEnum نوع صفحه‌کلید (عددی/متنی) place_holder Optional[string] متن راهنما در فیلد title Optional[string] عنوان دکمه default_value Optional[string] مقدار پیش‌فرض ۷. ButtonLocation تنظیمات دکمهٔ موقعیت مکانی (type = Location). فیلد نوع توضیحات default_pointer_location Location مختصات نقطهٔ پیش‌فرض default_map_location Location مرکز نقشه در نمای اولیه type ButtonLocationTypeEnum حالت (انتخاب/مشاهده) title Optional[string] عنوان دکمه مدل اصلی Button مدل Button نمایانگر یک دکمهٔ تعاملی در رابط کاربری است که در کیپادهای شیشه‌ای یا صفحه‌کلید قابل استفاده است. فیلد نوع توضیحات id string شناسهٔ یکتای دکمه type ButtonTypeEnum نوع دکمه (تعیین‌کنندهٔ رفتار) button_text string متن نمایشی روی دکمه button_selection ButtonSelection تنظیمات دکمهٔ انتخابی button_calendar ButtonCalendar تنظیمات دکمهٔ تقویم button_number_picker ButtonNumberPicker تنظیمات دکمهٔ انتخاب عدد button_string_picker ButtonStringPicker تنظیمات دکمهٔ انتخاب رشته button_location ButtonLocation تنظیمات دکمهٔ موقعیت button_textbox ButtonTextbox تنظیمات دکمهٔ ورودی متن نکته مهم: فیلدهای تخصصی دکمه (مانند button_selection و button_calendar) تنها زمانی معتبر هستند که نوع دکمه (type) با آن مدل سازگاری داشته باشد. انواع دکمه‌ها (ButtonTypeEnum) نوع توضیحات Simple دکمهٔ معمولی با متن ثابت Selection نمایش لیست انتخابی Calendar نمایش تقویم NumberPicker انتخاب عدد از محدودهٔ مشخص StringPicker انتخاب مقدار از لیست رشته‌ها Location اشتراک‌گذاری موقعیت مکانی CameraImage گرفتن عکس با دوربین CameraVideo گرفتن ویدئو با دوربین GalleryImage انتخاب عکس از گالری GalleryVideo انتخاب ویدئو از گالری File انتخاب فایل Audio انتخاب فایل صوتی RecordAudio ضبط صدا Textbox باز کردن ورودی متن Link باز کردن لینک AskMyPhoneNumber درخواست شماره تلفن کاربر AskMyLocation درخواست موقعیت کاربر Barcode اسکن بارکد انواع نمایش دکمه‌های انتخابی (ButtonSelectionTypeEnum) مقدار توضیحات TextOnly نمایش فقط به صورت متن TextImgThu نمایش متن به همراه تصویر کوچک TextImgBig نمایش متن به همراه تصویر بزرگ نحوهٔ جستجو در لیست انتخابی (ButtonSelectionSearchEnum) مقدار توضیحات None حالت پیش‌فرض (بدون جستجو) Local جستجو در آیتم‌های ارسالی در فیلد items Api جستجو از طریق API نحوهٔ دریافت آیتم‌های لیست (ButtonSelectionGetEnum) مقدار توضیحات Local نمایش آیتم‌های ارسالی در فیلد items Api دریافت آیتم‌ها از طریق API انواع تقویم (ButtonCalendarTypeEnum) مقدار توضیحات DatePersian تقویم شمسی DateGregorian تقویم میلادی انواع صفحه‌کلید ورودی (ButtonTextboxTypeKeypadEnum) مقدار توضیحات String ورودی متنی (همهٔ کاراکترها) Number ورودی عددی (فقط اعداد) انواع خطوط ورودی (ButtonTextboxTypeLineEnum) مقدار توضیحات SingleLine تک‌خطی MultiLine چندخطی انواع موقعیت مکانی (ButtonLocationTypeEnum) مقدار توضیحات Picker کاربر می‌تواند موقعیت را انتخاب کند View موقعیت فقط به صورت نمایشی نشان داده می‌شود نمونه‌های عملی ساخت دکمهٔ ساده simple_button = { "id": "1", "type": "Simple", "button_text": "کلیک کنید" } ساخت دکمهٔ انتخاب از لیست selection_button = { "id": "2", "type": "Selection", "button_text": "انتخاب رنگ", "button_selection": { "selection_id": "color_picker", "search_type": "Local", "get_type": "Local", "is_multi_selection": False, "columns_count": "2", "title": "رنگ مورد نظر را انتخاب کنید", "items": [ {"text": "قرمز", "type": "TextOnly"}, {"text": "آبی", "type": "TextOnly"}, {"text": "سبز", "type": "TextOnly"} ] } } ساخت دکمهٔ تقویم calendar_button = { "id": "3", "type": "Calendar", "button_text": "انتخاب تاریخ", "button_calendar": { "type": "DatePersian", "min_year": "1400", "max_year": "1410", "title": "تاریخ تولد خود را انتخاب کنید" } } ساخت دکمهٔ ورودی متن textbox_button = { "id": "4", "type": "Textbox", "button_text": "نظر خود را بنویسید", "button_textbox": { "type_line": "MultiLine", "type_keypad": "String", "place_holder": "نظر خود را اینجا وارد کنید...", "title": "فرم نظرسنجی" } } → صفحه قبل بازگشت به مستندات ربات Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika مثال‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents دریافت پیام ساده دریافت چت آیدی و سندر آیدی تاس، سکه و عدد تصادفی اکو کردن پیام‌ها اکو کردن پیام‌ها با استفاده از پراپرتی‌ها سکوت کردن کاربران تگ (منشن) کردن کاربران ترکیب بات و سلف‌بات - دریافت لینک پست کد بررسی عضویت به صورت مستقیم کد بررسی عضویت با استفاده از فیلتر کد بررسی عضویت و اجازه‌ی ارسال پیام در گروه مثال‌ها دریافت پیام ساده from maxrubika import Bot bot = Bot("Token") @bot.on_command("start") async def start(bot, event): await event.reply("سلام، پیام شما دریافت شد.") bot.run() دریافت چت آیدی و سندر آیدی from maxrubika import Bot from maxrubika.bot.filters import ChatType bot = Bot("Token") @bot.on_command("start", ChatType("user")) async def start(bot, event): i = await bot.get_chat_info(event.chat_id) first_name = getattr(i.data.chat, 'first_name', '-') last_name = getattr(i.data.chat, 'last_name', '-') username = getattr(i.data.chat, 'username', '-') await event.reply(f"""🔹 **نام:** {first_name} 🔸 **نام خانوادگی:** {last_name} 🔹 **نام‌کاربری:** {username} 🔸 **چت آیدی:** `{event.chat_id}` 🔷 **سندر آیدی:** `{event.author_id}`""") @bot.on_command("start", ChatType(["group", "channel"])) async def start_group(bot, event): r = await bot.get_chat_info(event.chat_id) await event.reply(f"🏷 **نام:** {r.data.chat.title}\n\n🆔 **چت آیدی:**\n`{event.chat_id}`") bot.run(0) تاس، سکه و عدد تصادفی from maxrubika import Bot from maxrubika.bot.filters import Text import random bot = Bot("Token") @bot.on_new_message(Text("^تاس")) async def roll_dice(bot, event): dice = ["⚀", "⚁", "⚂", "⚃", "⚄", "⚅"] result = random.choice(dice) await event.reply(result) @bot.on_message(Text("^سکه")) async def coin(bot, event): result = random.choice(["🪙 شیر", "🪙 خط"]) await event.reply(result) @bot.on_message(Text("^عدد")) async def random_number(bot, event): num = random.randint(1, 100) await event.reply(f"🔢 {num}") bot.run(0) اکو کردن پیام‌ها from maxrubika import Bot from maxrubika.bot.filters import * TOKEN = "Token" SENDER_ID = "" bot = Bot(TOKEN) @bot.on_new_message(ChatType("group") & FromUser(SENDER_ID) & IsForwarded()) async def l(bot, event): await event.forward() await event.delete() @bot.on_message(ChatType("group") & FromUser(SENDER_ID)) async def i(bot, event): await event.copy() await event.delete() bot.run(0) اکو کردن پیام‌ها با استفاده از پراپرتی‌ها from maxrubika import Bot from maxrubika.bot.filters import FromUser TOKEN = "Token" SENDER_ID = "" bot = Bot(TOKEN) @bot.on_new_message(FromUser(SENDER_ID)) async def i(bot, event): if event.is_forwarded or event.is_sticker or event.is_poll or event.is_location: await event.forward() await event.delete() else: await event.delete() await event.copy() bot.run(0) سکوت کردن کاربران from maxrubika import Bot from maxrubika.bot.filters import ChatType, Text, IsReply, FromUser token = "Token" sender_id = "" bot = Bot(token) messages = {} muted = [] @bot.middleware() async def process_all_messages(bot, event, call_next): chat_id = str(event.chat_id) msg_id = event.msg_id author_id = event.author_id if chat_id not in messages: messages[chat_id] = [] messages[chat_id].append({ "msg_id": msg_id, "sender_id": author_id }) if author_id in muted: try: await event.delete() return except: pass await call_next() @bot.on_message(Text("^سکوت$") & ChatType("group") & FromUser(sender_id) & IsReply()) async def mute_user(bot, event): chat_id = str(event.chat_id) reply_to_id = event.reply_to_message_id target_sender = None for msg in messages.get(chat_id, []): if msg["msg_id"] == reply_to_id: target_sender = msg["sender_id"] break if not target_sender: await event.reply("**کاربر مورد نظر پیدا نشد!**") return if target_sender == sender_id: await event.reply("**شما نمی‌توانید خودتان را سکوت کنید!**") return if target_sender in muted: await event.reply(f"**[کاربر مورد نظر]({target_sender}) قبلاً سکوت شده است.**") return muted.append(target_sender) await event.reply(f"**[کاربر مورد نظر]({target_sender}) با موفیقت سکوت شد، از این پس پیام های کاربر از گروه حذف می‌شود.**") @bot.on_message(Text("^لغو سکوت$") & ChatType("group") & FromUser(sender_id) & IsReply()) async def unmute_user(bot, event): chat_id = str(event.chat_id) reply_to_id = event.reply_to_message_id target_sender = None for msg in messages.get(chat_id, []): if msg["msg_id"] == reply_to_id: target_sender = msg["sender_id"] break if not target_sender: await event.reply("**کاربر مورد نظر پیدا نشد!**") return if target_sender in muted: muted.remove(target_sender) await event.reply(f"**سکوت [کاربر مورد نظر]({target_sender}) لغو شد.**") else: await event.reply(f"**[کاربر مورد نظر]({target_sender}) سکوت نبوده است.**") bot.run(0) تگ (منشن) کردن کاربران from maxrubika import Bot from maxrubika.bot.filters import Text, IsReply, ChatType import random import json import os import asyncio bot = Bot("Token") DATA_FILE = "group_data.json" def load_data(): if os.path.exists(DATA_FILE): with open(DATA_FILE, "r", encoding="utf-8") as f: return json.load(f) return {} def save_data(data): with open(DATA_FILE, "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=2) data = load_data() def get_group_data(chat_id): if chat_id not in data: data[chat_id] = {"admin": None, "users": []} save_data(data) return data[chat_id] def is_admin(event): chat_id = str(event.chat_id) group_data = get_group_data(chat_id) return group_data["admin"] == str(event.author_id) def get_non_admin_users(group_data, admin_id): return [user for user in group_data["users"] if user != admin_id] def parse_tag_count(text): parts = text.split() if len(parts) > 1 and parts[1].isdigit(): count = int(parts[1]) if count == 0: raise ValueError("❌ **تعداد تگ نمی‌تواند ۰ باشد!**\nلطفاً عددی بین ۱ تا ۱۰۰۰ وارد کنید.") if count > 1000: raise ValueError("❌ **حداکثر تعداد برای تگ کردن ۱۰۰۰ نفر است!**\nلطفاً عددی کمتر از ۱۰۰۰ وارد کنید.") return count return 300 def generate_tags(users, count): positive_texts = [ "سلام", "درود", "چه خبر؟", "خوبی؟", "چطوری؟", "عزیزم", "جانم", "گلم", "عشقم", "رفیق", "دوست خوبم", "نازنین", "مهربون", "زیبا", "خوشگل", "دلبر", "قشنگ", "استاد", "ماه من", "ستاره", "آفتاب", "شاهزاده", "سلطان", "دوست داشتنی", "خوش اخلاق", "بهترینی", "یک دونه‌ای", "ناز", "برادر", "خواهر", "ویژه", "خاص", "قهرمان" ] emojis = ["❤️", "🌹", "💫", "✨", "🌸", "💝", "🌟", "💗", "🌺", "💕"] selected = random.sample(users, min(count, len(users))) tags = [] for i, user in enumerate(selected): text = random.choice(positive_texts) emoji = random.choice(emojis) tags.append(f"[{text} {emoji}]({user})") return tags def chunk_tags(tags, max_per_message=30, per_line=3): messages = [] for i in range(0, len(tags), max_per_message): chunk = tags[i:i + max_per_message] lines = [" | ".join(chunk[j:j+per_line]) for j in range(0, len(chunk), per_line)] messages.append("\n".join(lines)) return messages async def send_tag_messages(bot, chat_id, msg_id, tags, count, is_reply=False): messages = chunk_tags(tags) first_msg = f"✅ {count} نفر تگ شدند:\n\n{messages[0]}" if is_reply: await bot.send_message(chat_id, first_msg, reply_to_message_id=msg_id) else: await bot.send_message(chat_id, first_msg, reply_to_message_id=msg_id) for msg in messages[1:]: await asyncio.sleep(1) if is_reply: await bot.send_message(chat_id, msg, reply_to_message_id=msg_id) else: await bot.send_message(chat_id, msg, reply_to_message_id=msg_id) async def handle_tag(bot, event, is_reply=False): chat_id = str(event.chat_id) author_id = str(event.author_id) if is_reply and not event.reply_to_message_id: return group_data = get_group_data(chat_id) if group_data["admin"] is None: await event.reply("❌ **ابتدا با نوشتن دستور 'فعال'، بات را فعال کنید.**") return if group_data["admin"] != author_id: await event.reply("❌ **فقط مدیر بات می‌تواند از این دستور استفاده کند!**") return users = get_non_admin_users(group_data, group_data["admin"]) if not users: await event.reply("❌ **هیچ کاربری به جز مدیر در گروه ثبت نشده است!**") return try: count = parse_tag_count(event.text) except ValueError as e: await event.reply(str(e)) return tags = generate_tags(users, count) if is_reply: msg_id = event.reply_to_message_id else: msg_id = event.msg_id await send_tag_messages(bot, chat_id, msg_id, tags, len(tags), is_reply) @bot.on_message(Text("^تگ") & IsReply() & ChatType("group")) async def handle_reply_tag(bot, event): await handle_tag(bot, event, is_reply=True) @bot.on_message(Text("^تگ") & ChatType("group")) async def handle_normal_tag(bot, event): if not event.reply_to_message_id: await handle_tag(bot, event, is_reply=False) @bot.on_message(Text("^فعال$") & ChatType("group")) async def set_admin(bot, event): chat_id = str(event.chat_id) author_id = str(event.author_id) group_data = get_group_data(chat_id) if group_data["admin"] is not None: admin_id = group_data["admin"] await event.reply(f"❌ **این بات قبلاً توسط [این کاربر]({admin_id}) فعال شده است!**\n\nتنها ایشان می‌توانند از بات استفاده کنند.") return group_data["admin"] = author_id if author_id not in group_data["users"]: group_data["users"].append(author_id) save_data(data) chat_info = await bot.get_chat_info(event.chat_id) title = chat_info.data.chat.title await event.reply(f"✅ **ثبت نام شما به عنوان مدیر بات در گروه '{title}' با موفقیت انجام شد.**\n\nشما اکنون می‌توانید از دستور 'تگ' برای منشن کردن کاربران استفاده فرمایید.") @bot.on_message(ChatType("group")) async def save_users(bot, event): chat_id = str(event.chat_id) author_id = str(event.author_id) group_data = get_group_data(chat_id) if author_id not in group_data["users"]: group_data["users"].append(author_id) save_data(data) bot.run(0) ترکیب بات و سلف‌بات - دریافت لینک پست import re from maxrubika import Bot, Messenger from maxrubika.bot.filters import Text bot = Bot("Token") # توکن بات خود را اینجا وارد کنید. app = Messenger("mySession") # سشن اکانت خود را اینجا وارد کنید. app.start() @bot.on_message(Text(re.compile(r'https://rubika\.ir/\w+/[A-Z]+', re.IGNORECASE))) async def get_post(bot, event): link = event.text.strip() try: result = await app.get_channel_post_by_link(link) ask_spam_link = result.ask_spam_link if ask_spam_link: await event.reply(f"**لینک پست مورد نظر آماده شد:\n\n>**{ask_spam_link}") else: await event.reply("**خطایی رخ داد.**") except Exception as e: print(e) await event.reply(f"**لطفاً لینک معتبر وارد شود.**") bot.run() کد بررسی عضویت به صورت مستقیم from maxrubika import Bot from maxrubika.bot.filters import IsUser from maxrubika.bot.exceptions import InvalidAccess bot = Bot("Token") # توکن بات خود اینجا وارد شود channel_id = "" # چت آیدی کانال اینجا وارد شود username = "" # یوزرنیم کانال اینجا وارد شود info = bot.get_chat_info(channel_id) @bot.on_command("start", IsUser()) async def start(bot, event): try: await bot.get_chat_member(channel_id, event.sender_id) except InvalidAccess: await event.reply(f"‼ **ابتدا در کانال {username} عضو شوید و سپس مجدد بات را استارت کنید.**") return await event.reply(f"✅ **عضویت شما در کانال {info.title} تایید شد.**") bot.run() کد بررسی عضویت با استفاده از فیلتر from maxrubika import Bot from maxrubika.bot.filters import IsJoined, IsUser bot = Bot("Token") # توکن بات خود را اینجا وارد کنید chat_ids = [ # چت آیدی گفتگو های مورد نظر را اینجا وارد کنید "", "", ] usernames = ["", ""] # نام کاربری یا لینک گفتگوهای مورد نظر خود را اینجا وارد کنید @bot.on_command("start", ~IsJoined(chat_ids), IsUser()) async def not_joined(bot, event): links = "\n".join(f"👉 {link}" for link in usernames) await event.reply(f"‼ **ابتدا در کانال‌های زیر عضو شوید و سپس مجدد بات را استارت کنید.**\n{links}") @bot.on_command("start", IsJoined(chat_ids), IsUser()) async def joined(bot, event): await event.reply("✅ **عضویت شما تایید شد.**") bot.run() کد بررسی عضویت و اجازه‌ی ارسال پیام در گروه import asyncio import time from maxrubika import Bot from maxrubika.bot.filters import IsGroup, IsJoined, FromChat bot = Bot("Token") # توکن بات خود را اینجا وارد کنید CHANNEL_LINK = ["@TheMAXRubika", "@TheProgrammer"] # نام کاربری کانال‌های مورد نظر را اینجا وارد کنید GROUP_ID = "" # چت آیدی گروه خود را اینجا وارد کنید info = bot.get_chat_info(GROUP_ID) channels = "\n".join(f"👉 {link}" for link in CHANNEL_LINK) sleep = 100 warned_users = {} @bot.on_new_message(IsGroup() & ~IsJoined(CHANNEL_LINK) & FromChat(GROUP_ID)) async def not_joined(bot, event): chat_id = event.chat_id author_id = event.author_id now = time.time() last_warn = warned_users.get(chat_id, {}).get(author_id, 0) if now - last_warn < sleep: await event.delete() return warned_users.setdefault(chat_id, {})[author_id] = now await event.delete() warn = await bot.send_message( chat_id, f"⚠ **[کاربر گرامی]({author_id})**\n\n" f"برای ارسال پیام در گروه {info.title} ابتدا در کانال‌های زیر عضو شوید:\n\n" f"{channels}" ) asyncio.create_task(bot.auto_delete_message(event.chat_id, warn.message_id, 60)) bot.run() بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika بات‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_bot_info get_inline_bots get_service_info start_bot stop_bot delete_bot_chat delete_service_chat بات‌ها get_bot_info این متد برای دریافت اطلاعات یک بات به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. همچنین می‌توانید مستقیماً GUID بات (که با b0 شروع می‌شود) را نیز پاس دهید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_bot_info("@ShowInfoBot") print(info) get_inline_bots این متد برای دریافت اطلاعات یک یا چند بات اینلاین به کار می‌رود. پارامتر: bots: یک بات یا لیستی از بات‌ها (شناسه GUID یا نام‌کاربری). نکته: اگر یک رشته پاس دهید، کتابخانه به‌صورت خودکار آن را در یک لیست قرار می‌دهد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: # یک بات info = app.get_inline_bots("@ShowInfoBot") print(info) # چند بات infos = app.get_inline_bots(["@ShowInfoBot", "@TestBot"]) print(infos) get_service_info این متد برای دریافت اطلاعات یک سرویس به کار می‌رود. پارامتر: service: شناسه (GUID) سرویس مورد نظر. باید با s0 شروع شده و مجموعاً ۳۲ کاراکتر باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_service_info("s0abcdefghijklmnopqrstuvwxyz12") print(info) start_bot این متد برای ارسال دستور /start به یک بات و راه‌اندازی آن به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.start_bot("@TestBot") print(result) stop_bot این متد برای متوقف کردن یک بات به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.stop_bot("@TestBot") print(result) delete_bot_chat این متد برای حذف تاریخچه چت با یک بات به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_bot_chat("@TestBot") print(result) delete_service_chat این متد برای حذف تاریخچه چت با یک سرویس به کار می‌رود. پارامتر: service: شناسه (GUID) سرویس مورد نظر. باید با s0 شروع شده و مجموعاً ۳۲ کاراکتر باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_service_chat("s0abcdefghijklmnopqrstuvwxyz12") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika کانال‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents check_channel_username create_channel delete_channel edit_channel_info edit_channel_title get_channel_admin_access get_channel_admins get_channel_info get_channel_link get_channel_members get_channel_post_by_link get_post_by_ask_link get_channel_seen_count get_channel_statistics join_channel leave_channel seen_channel_messages set_channel_link set_channel_type update_channel_username کانال‌ها check_channel_username این متد برای بررسی وضعیت یک نام‌کاربری به کار می‌رود. با استفاده از آن می‌توان تعیین کرد که نام‌کاربری مورد نظر آزاد است یا پیش‌تر ثبت شده است. پارامتر: username: نام‌کاربری مورد نظر برای بررسی. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: check = app.check_channel_username("@Undefined") print(check) create_channel این متد برای ایجاد یک کانال جدید به کار می‌رود. پارامترها: title: عنوان کانال. (حداکثر ۶۰ کاراکتر، نمی‌تواند خالی باشد) members: لیست اعضای اولیه کانال. نام‌کاربری و GUID هر دو قابل قبول هستند. فقط کاربران (u0) و بات‌ها (b0) مجاز هستند. (پیش‌فرض: None) channel_type: نوع کانال. مقادیر قابل قبول: Public یا Private. (پیش‌فرض: Public) description: متن بیوگرافی کانال. (حداکثر ۳۰۰ کاراکتر، پیش‌فرض: None) avatar: تصویر آواتار کانال. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) thumbnail_avatar: تصویر بندانگشتی آواتار کانال. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. نکته: اگر فقط avatar داده شود، بندانگشتی از همان تصویر گرفته می‌شود. اگر هیچ‌کدام داده نشود، آواتاری تنظیم نمی‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.create_channel( title="کانال تست", members=["Online_User", "@ShowInfoBot", "@Cipher", "ir_maxware", "u0HryBf03dbfba68374497983bc850a0"], channel_type="Public", description="این یک کانال تست است.", avatar="avatar.jpg" ) print(action) delete_channel این متد برای حذف یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. confirm: در صورت True بودن، قبل از حذف از کاربر تأیید گرفته می‌شود (y/n). در صورت False بودن، بدون پرسش حذف می‌شود. (پیش‌فرض: True) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. توجه: در حالت confirm=True، برای تکمیل عملیات حذف باید حرف y را در کنسول وارد نمایید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.delete_channel("c0CyVlK0cae995e5b46031170a358a4e") print(action) # حذف بدون تأیید action = app.delete_channel("c0CyVlK0cae995e5b46031170a358a4e", confirm=False) print(action) edit_channel_info این متد برای ویرایش تنظیمات یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. title: عنوان جدید کانال. (حداکثر ۶۰ کاراکتر، نمی‌تواند خالی باشد) description: بیوگرافی جدید کانال. (حداکثر ۳۰۰ کاراکتر) username: نام‌کاربری جدید کانال. (حداقل ۷ و حداکثر ۳۲ کاراکتر) channel_type: نوع کانال (Public یا Private). sign_messages: تعیین می‌کند که نام نویسندگان زیر پیام‌های کانال نمایش داده شود یا خیر. is_restricted_content: تعیین می‌کند که امکان اسکرین‌شات یا ذخیره محتوای کانال برای اعضا محدود شود یا خیر. reactions: تنظیمات ری‌اکشن. مقادیر قابل قبول: All (فعال‌سازی همه)، Disable (غیرفعال‌سازی همه)، یا لیستی از اعداد (فعال‌سازی ری‌اکشن‌های خاص). نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.edit_channel_info( channel="https://rubika.ir/joinc/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", title="کانال من", username="infoChannel1234", channel_type="Public", description="درباره‌ی من.", reactions=[1, 2, 3, 5, 7, 9, 12, 20], sign_messages=True ) print(action) edit_channel_title این متد برای ویرایش عنوان یک کانال به کار می‌رود. این متد میانبری برای edit_channel_info با پارامتر title است. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. title: عنوان جدید کانال. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.edit_channel_title("@TheProgrammer", "new title") print(action) get_channel_admin_access این متد برای دریافت سطح دسترسی‌های یک ادمین در کانال هدف به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. admin: نام‌کاربری یا شناسه (GUID) ادمین مورد نظر. نکات: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. تنها در صورتی می‌توانید دسترسی‌های یک ادمین را مشاهده کنید که شما او را ادمین کرده باشید یا مالک کانال باشید؛ در غیر این صورت با خطا مواجه خواهید شد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.get_channel_admin_access("@TheProgrammer", "@Online_User") print(action) get_channel_admins این متد برای دریافت فهرست کامل ادمین‌های یک کانال به کار می‌رود. این متد به صورت خودکار تمام صفحات را پیمایش می‌کند و همه ادمین‌ها را بازمی‌گرداند. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. show_admin_guids: در صورت True بودن، شناسه (GUID) ادمین‌ها نیز به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.get_channel_admins("CodeYaran") print(action) get_channel_info این متد برای دریافت اطلاعات یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.get_channel_info("MEH2RAB") print(action) get_channel_link این متد برای دریافت لینک خصوصی یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.get_channel_link("c0G3R19035f77574adc0127ab97c999c") print(action) get_channel_members این متد برای دریافت فهرست اعضای یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. search_text: عبارت مورد نظر برای جستجو در میان اعضا، مانند نام‌کاربری. (پیش‌فرض: None) start_id: شناسه شروع برای دریافت صفحه‌بندی‌شده اعضا. (پیش‌فرض: None) نکات: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. به دلیل محدودیت‌های سرور روبیکا، این متد فقط 100 عضو آخر را نمایش می‌دهد. مثال‌ها: نمایش اعضای کانال: from maxrubika import Messenger with Messenger("mySession") as app: action = app.get_channel_members("c0G3R19035f77574adc0127ab97c999c") print(action) جستجوی یک کاربر خاص: from maxrubika import Messenger with Messenger("mySession") as app: action = app.get_channel_members("PythonChannel", search_text="@ir_MAXWare") print(action) get_channel_post_by_link این متد برای دریافت اطلاعات یک پیام کانال از طریق لینک آن پیام به کار می‌رود. خروجی شامل اطلاعات کانال، متن پیام و زمان ارسال است. پارامتر: url: لینک پیام کانال. نکته: فرمت معتبر لینک پیام کانال به صورت زیر است: https://rubika.ir/RubiFAQ/BICEGHDGFBGJHCCD مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_channel_post_by_link("https://rubika.ir/RubiFAQ/BICEGHDGFBGJHCCD") print(info) get_post_by_ask_link این متد برای دریافت اطلاعات یک پیام کانال از طریق لینک‌های go.rubika.ir (لینک‌های Ask) به کار می‌رود. پارامتر: url: لینک go.rubika.ir. نکته: این لینک‌ها معمولاً به شکل https://go.rubika.ir/...*... هستند و از base64 برای کدگذاری اطلاعات استفاده می‌کنند. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_post_by_ask_link("https://go.rubika.ir/...*...") print(info) get_channel_seen_count این متد برای دریافت آمار بازدید بازه‌ای از پیام‌های یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. min_id: شناسه (message_id) پیام آغازین بازه. max_id: شناسه (message_id) پیام پایانی بازه. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.get_channel_seen_count("CodeYaran", 157896351047, 189720063713) print(result) get_channel_statistics این متد برای دریافت تمام آمارهای یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: stats = app.get_channel_statistics("CodeYaran") print(stats) join_channel این متد برای عضویت در یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.join_channel("@TheComputeriha") print(result) leave_channel این متد برای خروج از یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.leave_channel("@Rubika") print(result) seen_channel_messages این متد برای علامت‌گذاری بازه‌ای از پیام‌های یک کانال به عنوان دیده‌شده به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. min_id: شناسه (message_id) پیام آغازین بازه. max_id: شناسه (message_id) پیام پایانی بازه. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.seen_channel_messages("@PythonChannel", 11231014101, 52415414554) print(result) set_channel_link این متد برای تنظیم لینک خصوصی یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_channel_link("@PC_and_Mobile") print(result) set_channel_type این متد برای تغییر نوع کانال (عمومی یا خصوصی) به کار می‌رود. این متد میانبری برای edit_channel_info با پارامتر channel_type است. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. channel_type: نوع کانال. مقادیر قابل قبول: Public یا Private. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_channel_type("@Undefined", channel_type="Private") print(result) update_channel_username این متد برای به‌روزرسانی نام‌کاربری یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. username: نام‌کاربری جدید. (حداقل ۷ و حداکثر ۳۲ کاراکتر، فقط حروف انگلیسی، اعداد و زیرخط) نکات: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. نام‌کاربری نمی‌تواند با عدد یا زیرخط شروع شود یا به زیرخط ختم شود و باید حداقل شامل یک حرف باشد. اگر username رشته خالی باشد، نام‌کاربری کانال حذف می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.update_channel_username("TheProgrammer", username="TheProgrammer2") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika گروه‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_group_info get_group_link set_group_link get_group_online_count create_group delete_group join_group leave_group edit_group_info edit_group_title edit_group_timer edit_slow_mode get_group_admins get_group_admin_access get_group_default_access set_group_default_access lock_group unlock_group get_group_members get_group_mention_list get_unread_mentions get_group_message_read_participants گروه‌ها get_group_info این متد برای دریافت اطلاعات یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. نکته: شناسه گروه باید با g0 شروع شده و ۳۲ کاراکتر باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_group_info("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(info) get_group_link این متد برای دریافت لینک خصوصی یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: link = app.get_group_link("g0G3R19035f77574adc0127ab97c999c") print(link) set_group_link این متد برای تنظیم لینک خصوصی یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_group_link("g0G3R19035f77574adc0127ab97c999c") print(result) get_group_online_count این متد برای دریافت تعداد اعضای آنلاین یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: count = app.get_group_online_count("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(count) create_group این متد برای ایجاد یک گروه جدید به کار می‌رود. پارامترها: title: عنوان گروه. (حداکثر ۶۰ کاراکتر، نمی‌تواند خالی باشد) members: یک عضو یا لیستی از اعضا (GUID یا نام‌کاربری). حداقل یک عضو الزامی است. فقط کاربران (u0) و بات‌ها (b0) مجاز هستند. description: متن توضیحات گروه. (حداکثر ۳۰۰ کاراکتر، پیش‌فرض: None) avatar: تصویر آواتار گروه. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) thumbnail_avatar: تصویر بندانگشتی آواتار گروه. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. نکته: اگر فقط avatar داده شود، بندانگشتی از همان تصویر گرفته می‌شود. اگر هیچ‌کدام داده نشود، آواتاری تنظیم نمی‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.create_group( title="گروه تست", members=["Online_User", "@ShowInfoBot", "u0HryBf03dbfba68374497983bc850a0"], description="این یک گروه تست است.", avatar="avatar.jpg" ) print(result) delete_group این متد برای حذف یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. confirm: در صورت True بودن، قبل از حذف از کاربر تأیید گرفته می‌شود (y/n). در صورت False بودن، بدون پرسش حذف می‌شود. (پیش‌فرض: True) توجه: در حالت confirm=True، برای تکمیل عملیات حذف باید حرف y را در کنسول وارد نمایید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_group("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(result) # حذف بدون تأیید result = app.delete_group("g0CyVlK0cae995e5b46031170a358a4e", confirm=False) print(result) join_group این متد برای عضویت در یک گروه از طریق لینک دعوت به کار می‌رود. پارامتر: group: لینک دعوت گروه. باید با https://rubika.ir/joing/ شروع شود. نکته: این متد فقط لینک دعوت را می‌پذیرد؛ نه GUID و نه نام‌کاربری. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.join_group("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(result) leave_group این متد برای خروج از یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.leave_group("g0CyVlK0cae995e5b46031170a358a4e") print(result) edit_group_info این متد برای ویرایش تنظیمات یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. title: عنوان جدید گروه. (حداکثر ۶۰ کاراکتر) description: توضیحات جدید گروه. (حداکثر ۳۰۰ کاراکتر) slow_mode: تنظیم حالت آهسته (محدودیت زمانی بین پیام‌ها). event_messages: فعال یا غیرفعال کردن پیام‌های رویدادی (ورود/خروج اعضا). is_restricted_content: محدود کردن محتوا (جلوگیری از اسکرین‌شات و ذخیره فایل). reactions: تنظیمات ری‌اکشن. مقادیر قابل قبول: All، Disable، یا لیستی از اعداد. chat_history_for_new_members: نمایش تاریخچه چت برای اعضای جدید. مقادیر: Visible یا Hidden. restricted_period: محدودیت زمانی برای ارسال پیام. لیستی از دیکشنری‌ها شامل days_of_week، from_time و to_time. نکته: برای restricted_period قوانین زیر اعمال می‌شود: - روزهای مجاز: Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday - فرمت زمان: HH:MM (۲۴ ساعته) - بازه‌ها می‌توانند از نیمه‌شب عبور کنند (مثلاً 22:00 تا 04:00) مثال‌ها: ویرایش عنوان و توضیحات: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_group_info( group="g0G3R19035f77574adc0127ab97c999c", title="گروه جدید", description="توضیحات جدید گروه" ) print(result) تنظیم ری‌اکشن‌های خاص: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_group_info( group="g0G3R19035f77574adc0127ab97c999c", reactions=[1, 2, 6, 7, 8, 23, 44] ) print(result) تنظیم محدودیت زمانی: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_group_info( group="g0G3R19035f77574adc0127ab97c999c", restricted_period=[{ "days_of_week": ["Saturday", "Sunday"], "from_time": "00:00", "to_time": "06:00" }] ) print(result) edit_group_title این متد برای ویرایش عنوان یک گروه به کار می‌رود. این متد میانبری برای edit_group_info با پارامتر title است. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. title: عنوان جدید گروه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_group_title("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", "عنوان جدید") print(result) edit_group_timer این متد برای تنظیم Slow Mode (حالت آهسته) یک گروه به کار می‌رود. این متد میانبری برای edit_group_info با پارامتر slow_mode است. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. timer: مقدار Slow Mode جدید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_group_timer("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", "30") print(result) edit_slow_mode این متد نیز برای تنظیم Slow Mode یک گروه به کار می‌رود و عملکردی مشابه edit_group_timer دارد. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. slow_mode: مقدار Slow Mode جدید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_slow_mode("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", "60") print(result) get_group_admins این متد برای دریافت فهرست کامل ادمین‌های یک گروه به کار می‌رود. این متد به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. show_admin_guids: در صورت True بودن، شناسه (GUID) ادمین‌ها به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) مثال: from maxrubika import Messenger with Messenger("mySession") as app: admins = app.get_group_admins("g0G3R19035f37574adc0127ab97c999c") print(admins) get_group_admin_access این متد برای دریافت سطح دسترسی‌های یک ادمین خاص در گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. admin: شناسه (GUID) یا نام‌کاربری ادمین مورد نظر. فقط کاربران (u0) و بات‌ها (b0) مجاز هستند. نکته: تنها در صورتی می‌توانید دسترسی‌های یک ادمین را مشاهده کنید که خودتان ادمین یا مالک گروه باشید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: access = app.get_group_admin_access("g0G3R19035f77574adc0127ab97c999c", "@Online_User") print(access) get_group_default_access این متد برای دریافت دسترسی‌های پیش‌فرض اعضای یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: access = app.get_group_default_access("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(access) set_group_default_access این متد برای تنظیم دسترسی‌های پیش‌فرض اعضای یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. access: لیستی از دسترسی‌های مجاز. مقادیر قابل قبول: ViewMembers: مشاهده اعضا ViewAdmins: مشاهده ادمین‌ها SendMessages: ارسال پیام AddMember: افزودن عضو [] (لیست خالی): غیرفعال کردن تمام دسترسی‌ها مثال‌ها: فقط اجازه ارسال پیام: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_group_default_access( "https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", ["SendMessages"] ) print(result) بستن کامل گروه: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_group_default_access( "g0G3R19035f77574adc0127ab97c999c", [] ) print(result) lock_group این متد برای قفل کردن گروه با غیرفعال کردن دسترسی ارسال پیام به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. نکته: اگر گروه از قبل قفل باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.lock_group("g0G3R19035f77574adc0127ab97c999c") print(result) unlock_group این متد برای باز کردن قفل گروه با فعال‌سازی مجدد دسترسی ارسال پیام به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. نکته: اگر گروه از قبل باز باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unlock_group("g0G3R19035f77574adc0127ab97c999c") print(result) get_group_members این متد برای دریافت فهرست اعضای یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. search_text: عبارت مورد نظر برای جستجو در میان اعضا. (پیش‌فرض: None) start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال‌ها: دریافت اعضای گروه: from maxrubika import Messenger with Messenger("mySession") as app: members = app.get_group_members("g0G3R19035f77574adc0127ab97c999c") print(members) جستجوی یک کاربر خاص: from maxrubika import Messenger with Messenger("mySession") as app: members = app.get_group_members("g0G3R19035f77574adc0127ab97c999c", search_text="@Online_User") print(members) get_group_mention_list این متد برای دریافت لیست منشن‌های یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. search_mention: عبارت جستجو برای فیلتر منشن‌ها. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: mentions = app.get_group_mention_list("g0G3R19035f77574adc0127ab97c999c") print(mentions) get_unread_mentions این متد برای دریافت منشن‌های خوانده‌نشده در یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. max_id: حداکثر شناسه پیام. min_id: حداقل شناسه پیام. sort: ترتیب مرتب‌سازی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: mentions = app.get_unread_mentions( "g0G3R19035f77574adc0127ab97c999c", max_id="1000", min_id="1" ) print(mentions) get_group_message_read_participants این متد برای دریافت فهرست اعضایی که یک پیام خاص را در گروه خوانده‌اند به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. message_id: شناسه پیام مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: participants = app.get_group_message_read_participants( "g0G3R19035f77574adc0127ab97c999c", message_id="123456" ) print(participants) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika کاربران Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_me get_user_info check_user_username get_last_online get_contacts_last_online get_contacts add_contact delete_contact reset_contacts get_contacts_updates block_user unblock_user get_blocked_users unblock_all_users get_common_groups delete_user_chat request_voice_call request_video_call discard_call get_top_users remove_from_top_users get_saved_music_playlist get_contacts_stories کاربران get_me این متد برای دریافت اطلاعات کاربر احراز هویت شده (خودتان) به کار می‌رود. اطلاعات بازگشتی شامل داده‌های کاربر به همراه اطلاعات احراز هویت می‌باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: me = app.get_me() print(me) get_user_info این متد برای دریافت اطلاعات یک کاربر خاص به کار می‌رود. در صورت فراخوانی بدون پارامتر، اطلاعات کاربر فعلی بازگردانده می‌شود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. (پیش‌فرض: None - اطلاعات خود کاربر) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_user_info("@Online_User") print(info) check_user_username این متد برای بررسی وضعیت یک نام‌کاربری به کار می‌رود. با استفاده از آن می‌توان تعیین کرد که نام‌کاربری مورد نظر آزاد است یا پیش‌تر ثبت شده است. پارامتر: username: نام‌کاربری مورد نظر برای بررسی. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن. مثال: from maxrubika import Messenger with Messenger("mySession") as app: check = app.check_user_username("@Undefined") print(check) get_last_online این متد برای دریافت آخرین وضعیت آنلاین بودن یک کاربر به کار می‌رود. خروجی شامل نوع آنلاین بودن (دقیق یا تقریبی) و زمان مربوطه است. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: online = app.get_last_online("@Online_User") print(online) get_contacts_last_online این متد برای دریافت آخرین وضعیت آنلاین بودن چند کاربر به صورت هم‌زمان به کار می‌رود. پارامتر: users: یک کاربر یا لیستی از کاربران (GUID یا نام‌کاربری). مثال: from maxrubika import Messenger with Messenger("mySession") as app: online = app.get_contacts_last_online(["@User1", "@User2", "u0abc123..."]) print(online) get_contacts این متد برای دریافت فهرست کامل مخاطبان ذخیره شده به کار می‌رود. پارامتر: show_user_guids: در صورت True بودن، شناسه (GUID) کاربران به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) مثال: from maxrubika import Messenger with Messenger("mySession") as app: contacts = app.get_contacts() print(contacts) add_contact این متد برای افزودن یک مخاطب جدید به دفترچه تلفن به کار می‌رود. پارامترها: phone_number: شماره تلفن مخاطب. first_name: نام مخاطب. last_name: نام خانوادگی مخاطب. (پیش‌فرض: خالی) نکته: شماره تلفن می‌تواند با فرمت‌های مختلفی (مانند 09123456789، +989123456789 یا 989123456789) وارد شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_contact( phone_number="09123456789", first_name="علی", last_name="حسینی" ) print(result) delete_contact این متد برای حذف یک مخاطب از دفترچه تلفن به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری مخاطب مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_contact("@Online_User") print(result) reset_contacts این متد برای حذف تمام مخاطبین ذخیره شده از سرور به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.reset_contacts() print(result) get_contacts_updates این متد برای دریافت به‌روزرسانی‌های مربوط به مخاطبین (مانند تغییر نام، عکس پروفایل و ...) به کار می‌رود. پارامتر: state: پارامتر فیلتر برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: زمان فعلی منهای ۱۵۰ ثانیه) مثال: from maxrubika import Messenger with Messenger("mySession") as app: updates = app.get_contacts_updates() print(updates) block_user این متد برای مسدود کردن یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.block_user("@SpamUser") print(result) unblock_user این متد برای رفع مسدودیت یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unblock_user("@SpamUser") print(result) get_blocked_users این متد برای دریافت فهرست کامل کاربران مسدود شده به کار می‌رود. پارامتر: show_user_guids: در صورت True بودن، شناسه (GUID) کاربران به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) مثال: from maxrubika import Messenger with Messenger("mySession") as app: blocked = app.get_blocked_users() print(blocked) unblock_all_users این متد برای رفع مسدودیت تمام کاربران مسدود شده به کار می‌رود. امکان مستثنی کردن برخی کاربران نیز وجود دارد. پارامتر: exclude: یک کاربر یا لیستی از کاربران (GUID یا نام‌کاربری) که نباید از حالت مسدود خارج شوند. (پیش‌فرض: None) مثال‌ها: رفع مسدودیت همه کاربران: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unblock_all_users() print(result) رفع مسدودیت همه به جز یک کاربر خاص: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unblock_all_users(exclude="@ImportantUser") print(result) get_common_groups این متد برای دریافت گروه‌های مشترک با یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: groups = app.get_common_groups("@Online_User") print(groups) delete_user_chat این متد برای حذف تاریخچه چت با یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. نکته: شناسه آخرین پیام حذف‌شده به‌صورت خودکار توسط کتابخانه از آخرین پیام چت استخراج می‌شود و نیازی به پاس دادن دستی آن نیست. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_user_chat("@TestUser") print(result) request_voice_call این متد برای درخواست تماس صوتی با یک کاربر به کار می‌رود. پارامترها: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. library_versions: لیست نسخه‌های کتابخانه پشتیبانی شده. (پیش‌فرض: ['2.7.7', '2.4.4']) max_layer: حداکثر لایه پروتکل. (پیش‌فرض: 92) min_layer: حداقل لایه پروتکل. (پیش‌فرض: 65) sip_version: نسخه SIP. (پیش‌فرض: 1) support_call_out: پشتیبانی از تماس خروجی. (پیش‌فرض: True) مثال: from maxrubika import Messenger with Messenger("mySession") as app: call = app.request_voice_call("@Online_User") print(call) request_video_call این متد برای درخواست تماس تصویری با یک کاربر به کار می‌رود. پارامترها: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. library_versions: لیست نسخه‌های کتابخانه پشتیبانی شده. (پیش‌فرض: ['2.7.7', '2.4.4']) max_layer: حداکثر لایه پروتکل. (پیش‌فرض: 92) min_layer: حداقل لایه پروتکل. (پیش‌فرض: 65) sip_version: نسخه SIP. (پیش‌فرض: 1) support_call_out: پشتیبانی از تماس خروجی. (پیش‌فرض: True) مثال: from maxrubika import Messenger with Messenger("mySession") as app: call = app.request_video_call("@Online_User") print(call) discard_call این متد برای پایان دادن به یک تماس در حال انجام به کار می‌رود. پارامترها: call_id: شناسه تماس. duration: مدت زمان تماس به ثانیه. (پیش‌فرض: 0) reason: دلیل پایان تماس. مقادیر رایج: Missed و Disconnect. (پیش‌فرض: Disconnect) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.discard_call( call_id="call_abc123", duration=120, reason="Disconnect" ) print(result) get_top_users این متد برای دریافت لیست کاربران برتر (Top Users) به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: top = app.get_top_users() print(top) remove_from_top_users این متد برای حذف یک کاربر از لیست کاربران برتر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.remove_from_top_users("@TestUser") print(result) get_saved_music_playlist این متد برای دریافت لیست موسیقی‌های ذخیره شده یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. همچنین می‌توان از مقادیر me، cloud، self یا myself برای دریافت لیست خود استفاده کرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: playlist = app.get_saved_music_playlist("me") print(playlist) get_contacts_stories این متد برای دریافت استوری‌های مخاطبین از صفحه چت به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: stories = app.get_contacts_stories() print(stories) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika اطلاعات و دریافت چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_guid get_my_guid get_info_by_username get_info_by_link get_chat_info get_chats_info get_chats get_chats_updates get_related_chats get_profile_link_items get_chat_ads search_global_chats اطلاعات و دریافت چت get_guid این متد برای دریافت شناسه (GUID) یک کاربر، گروه، کانال یا بات از روی نام‌کاربری یا لینک است. این متد پایه‌ای و پرکاربرد است و بسیاری از متدهای دیگر از آن استفاده می‌کنند. پارامتر: chat: نام‌کاربری، لینک گروه (joing)، لینک کانال (joinc) یا خود GUID. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن. مثال: from maxrubika import Messenger with Messenger("mySession") as app: guid = app.get_guid("@Online_User") print(guid) get_my_guid این متد برای دریافت شناسه (GUID) اکانت خود کاربر استفاده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: my_guid = app.get_my_guid() print(my_guid) get_info_by_username این متد برای دریافت اطلاعات اولیه یک چت (کاربر، بات یا کانال) از طریق نام‌کاربری است. پارامتر: username: نام‌کاربری مورد نظر. (حداقل ۳ و حداکثر ۳۲ کاراکتر، فقط حروف انگلیسی، اعداد و زیرخط) نکته: نام‌کاربری نمی‌تواند با عدد یا زیرخط شروع شود یا به زیرخط ختم شود و باید حداقل شامل یک حرف باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_info_by_username("Online_User") print(info) get_info_by_link این متد برای دریافت پیش‌نمایش اطلاعات گروه یا کانال از طریق لینک دعوت است. پارامتر: link: لینک دعوت. باید با https://rubika.ir/joing/ یا https://rubika.ir/joinc/ شروع شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_info_by_link("https://rubika.ir/joing/ABC123") print(info) get_chat_info این متد جامع برای دریافت اطلاعات کامل یک چت (کاربر، گروه، کانال، بات یا سرویس) است. با تشخیص خودکار نوع چت، متد مناسب را فراخوانی می‌کند. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. نکته: این متد هوشمند است و بر اساس ورودی، به صورت خودکار از متدهای get_user_info، get_bot_info، get_channel_info، get_group_info یا get_service_info استفاده می‌کند. مثال‌ها: دریافت اطلاعات کاربر: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_chat_info("@Online_User") print(info) دریافت اطلاعات گروه از لینک: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_chat_info("https://rubika.ir/joing/ABC123") print(info) get_chats_info این متد برای دریافت اطلاعات چند چت به صورت هم‌زمان با استفاده از GUID آنها است. پارامتر: chats: یک GUID یا لیستی از GUIDهای چت‌ها. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_chats_info(["u0abc123...", "g0xyz789...", "c0def456..."]) print(info) get_chats این متد برای دریافت لیست تمام چت‌های حساب کاربری است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: show_chat_guids: در صورت True بودن، GUID چت‌ها در خروجی نمایش داده می‌شود. (پیش‌فرض: False) auto_start_id: در صورت True بودن، تمام صفحات به صورت خودکار دریافت می‌شوند. در صورت False بودن، فقط یک صفحه با start_id دریافت می‌شود. (پیش‌فرض: True) start_id: شناسه شروع برای صفحه‌بندی. فقط زمانی استفاده می‌شود که auto_start_id=False باشد. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: chats = app.get_chats() print(chats) get_chats_updates این متد برای دریافت به‌روزرسانی‌های چت‌ها (مانند پیام‌های جدید، تغییرات و...) است. پارامتر: state: وضعیت زمانی برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) مثال: from maxrubika import Messenger with Messenger("mySession") as app: updates = app.get_chats_updates() print(updates) get_related_chats این متد برای دریافت چت‌های مرتبط با یک چت خاص (مانند گروه‌ها و کانال‌های مرتبط) است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: related = app.get_related_chats("g0abc123...") print(related) get_profile_link_items این متد برای دریافت آیتم‌های لینک پروفایل یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: items = app.get_profile_link_items("u0abc123...") print(items) get_chat_ads این متد برای دریافت اطلاعات تبلیغاتی چت‌ها است. پارامتر: state: وضعیت زمانی برای فیلتر. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) مثال: from maxrubika import Messenger with Messenger("mySession") as app: ads = app.get_chat_ads() print(ads) search_global_chats این متد برای جستجوی سراسری در میان چت‌ها (کاربران، کانال‌ها و...) بر اساس متن است. پارامترها: text: متن مورد جستجو. filter_type: فیلتر نتایج بر اساس نوع. مقادیر قابل قبول: User، Channel، Bot یا لیستی از آن‌ها. (پیش‌فرض: None) start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال‌ها: جستجوی ساده: from maxrubika import Messenger with Messenger("mySession") as app: results = app.search_global_chats("برنامه‌نویس") print(results) جستجو با فیلتر نوع: from maxrubika import Messenger with Messenger("mySession") as app: results = app.search_global_chats( "برنامه‌نویس", filter_type=["Channel", "Bot"] ) print(results) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika مدیریت چت و لینک دعوت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents join_chat leave_chat check_join create_join_link edit_join_link revoke_join_link get_join_links get_join_requests accept_join_request reject_join_request accept_all_join_requests مدیریت چت و لینک دعوت join_chat این متد برای عضویت در یک چت (گروه یا کانال) است. به صورت خودکار نوع چت را تشخیص داده و متد مناسب را فراخوانی می‌کند. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.join_chat("https://rubika.ir/joing/ABC123") print(result) leave_chat این متد برای خروج از یک چت (گروه یا کانال) است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.leave_chat("g0abc123...") print(result) check_join این متد برای بررسی عضویت یک کاربر یا بات در یک گروه یا کانال است. مقدار بازگشتی True یا False است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری کاربر یا بات مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: is_member = app.check_join("g0abc123...", member="@Online_User") print(is_member) create_join_link این متد برای ایجاد لینک دعوت برای یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. expire_time: مدت زمان اعتبار لینک به ثانیه. (پیش‌فرض: None - بدون انقضا) request_needed: نیاز به تأیید درخواست عضویت. (پیش‌فرض: False) title: عنوان سفارشی برای لینک دعوت. (پیش‌فرض: None) usage_limit: حداکثر تعداد استفاده از لینک. (پیش‌فرض: 0 - نامحدود) مثال: from maxrubika import Messenger with Messenger("mySession") as app: link = app.create_join_link( "g0abc123...", request_needed=True, title="لینک ویژه", usage_limit=10 ) print(link) edit_join_link این متد برای ویرایش یک لینک دعوت موجود در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. join_link: لینک دعوتی که باید ویرایش شود. title: عنوان جدید لینک دعوت. (اختیاری) expire_time: مدت زمان اعتبار جدید لینک به ثانیه. (اختیاری) request_needed: نیاز به تأیید درخواست عضویت. (اختیاری) usage_limit: حداکثر تعداد استفاده جدید از لینک. (اختیاری) نکته: حداقل یکی از پارامترهای title، expire_time، request_needed یا usage_limit باید ارائه شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_join_link( "g0abc123...", join_link="https://rubika.ir/joing/ABC123", title="لینک جدید", usage_limit=20 ) print(result) revoke_join_link این متد برای لغو (باطل کردن) یک لینک دعوت در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. join_link: لینک دعوتی که باید لغو شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.revoke_join_link( "g0abc123...", join_link="https://rubika.ir/joing/ABC123" ) print(result) get_join_links این متد برای دریافت لیست لینک‌های دعوت یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. creator: GUID یا نام‌کاربری سازنده لینک برای فیلتر. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: links = app.get_join_links("g0abc123...") print(links) get_join_requests این متد برای دریافت لیست درخواست‌های عضویت در یک گروه یا کانال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_user_guids: نمایش GUID کاربران در خروجی. (پیش‌فرض: False) مثال: from maxrubika import Messenger with Messenger("mySession") as app: requests = app.get_join_requests("g0abc123...") print(requests) accept_join_request این متد برای پذیرفتن یک درخواست عضویت در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. user: GUID یا نام‌کاربری کاربر درخواست‌دهنده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.accept_join_request("g0abc123...", user="@NewUser") print(result) reject_join_request این متد برای رد کردن یک درخواست عضویت در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. user: GUID یا نام‌کاربری کاربر درخواست‌دهنده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.reject_join_request("g0abc123...", user="@SpamUser") print(result) accept_all_join_requests این متد برای پذیرفتن تمام درخواست‌های عضویت در یک گروه یا کانال به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری کاربرانی که نباید پذیرفته شوند. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.accept_all_join_requests("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika اعضا و ادمین‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents add_members ban_member ban_members unban_member unban_members unban_all_members get_banned_members clear_black_list set_admin unset_admin member_is_admin change_owner accept_ownership_request reject_ownership_request cancel_change_owner get_pending_owner اعضا و ادمین‌ها add_members این متد برای افزودن یک یا چند عضو به گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: یک GUID/نام‌کاربری یا لیستی از GUID/نام‌کاربری اعضا. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_members( "g0abc123...", members=["@User1", "@User2", "u0xyz789..."] ) print(result) ban_member این متد برای مسدود کردن یک عضو از گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.ban_member("g0abc123...", member="@SpamUser") print(result) ban_members این متد برای مسدود کردن چند عضو به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: لیستی از GUID یا نام‌کاربری اعضا. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.ban_members("g0abc123...", members=["@User1", "@User2"]) print(result) unban_member این متد برای رفع مسدودیت یک عضو از گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unban_member("g0abc123...", member="@SpamUser") print(result) unban_members این متد برای رفع مسدودیت چند عضو به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: لیستی از GUID یا نام‌کاربری اعضا. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unban_members("g0abc123...", members=["@User1", "@User2"]) print(result) unban_all_members این متد برای رفع مسدودیت تمام اعضای مسدود شده یک گروه یا کانال به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری اعضایی که نباید رفع مسدود شوند. (پیش‌فرض: None) خروجی: یک شیء Data شامل status، total_banned، excluded و unbanned. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unban_all_members("g0abc123...") print(result) get_banned_members این متد برای دریافت لیست اعضای مسدود شده یک گروه یا کانال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_member_guids: نمایش GUID اعضا در خروجی. (پیش‌فرض: False) خروجی: یک شیء Data شامل members، total، chat_guid و (در صورت show_member_guids=True) member_guids. مثال: from maxrubika import Messenger with Messenger("mySession") as app: banned = app.get_banned_members("g0abc123...") print(banned) clear_black_list این متد برای پاک‌سازی لیست سیاه (رفع مسدودیت تمام اعضا) در یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری اعضایی که نباید رفع مسدود شوند. (پیش‌فرض: None) خروجی: یک شیء Data شامل status، total_banned، excluded و unbanned. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.clear_black_list("g0abc123...") print(result) set_admin این متد برای تنظیم یک عضو به عنوان ادمین در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. access: لیست دسترسی‌های مجاز، یک دسترسی تکی، یا 'All'/'all' برای اعطای همه دسترسی‌ها. گروه: SetAdmin, BanMember, ChangeInfo, PinMessages, SetJoinLink, SetMemberAccess, DeleteGlobalAllMessages کانال: ChangeInfo, DeleteGlobalAllMessages, PinMessages, SetAdmin, ViewAdmins, SetJoinLink, AddMember, ViewMembers, SendMessages, EditAllMessages custom_title: عنوان سفارشی برای ادمین (فقط گروه). (پیش‌فرض: خالی) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_admin( "g0abc123...", member="@NewAdmin", access=["BanMember", "PinMessages", "ChangeInfo"], custom_title="مدیر ارشد" ) print(result) unset_admin این متد برای حذف ادمینی یک عضو در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unset_admin("g0abc123...", member="@OldAdmin") print(result) member_is_admin این متد برای بررسی ادمین بودن یک عضو در گروه یا کانال است. مقدار بازگشتی True یا False است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. مثال: from maxrubika import Messenger with Messenger("mySession") as app: is_admin = app.member_is_admin("g0abc123...", member="@TestUser") print(is_admin) change_owner این متد برای درخواست انتقال مالکیت یک چت (گروه یا کانال) به کاربر دیگر است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. new_owner: GUID یا نام‌کاربری مالک جدید. فقط کاربران (u0) مجاز هستند؛ بات‌ها قابل قبول نیستند. نکته: فقط مالک فعلی می‌تواند این درخواست را ارسال کند. مالک جدید باید درخواست را بپذیرد. این عملیات غیرقابل بازگشت است. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.change_owner("g0abc123...", new_owner="@NewOwner") print(result) accept_ownership_request این متد برای پذیرفتن درخواست انتقال مالکیت یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.accept_ownership_request("g0abc123...") print(result) reject_ownership_request این متد برای رد کردن درخواست انتقال مالکیت یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.reject_ownership_request("g0abc123...") print(result) cancel_change_owner این متد برای لغو درخواست انتقال مالکیت توسط مالک فعلی است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.cancel_change_owner("g0abc123...") print(result) get_pending_owner این متد برای دریافت اطلاعات مالک در انتظار (کسی که درخواست انتقال مالکیت برایش ارسال شده) است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: pending = app.get_pending_owner("g0abc123...") print(pending) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents mute_chat unmute_chat pin_chat unpin_chat pin_chat_in_folder unpin_chat_in_folder archive_chat unarchive_chat set_chat_protected_content set_chat_auto_delete delete_chat_history set_ask_spam upload_avatar get_avatars delete_avatar delete_all_avatars تنظیمات چت mute_chat این متد برای بی‌صدا کردن (Mute) یک چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. duration: مدت زمان بی‌صدا کردن به ثانیه (حداقل ۱۸۰۰ ثانیه / ۳۰ دقیقه) یا timedelta. (پیش‌فرض: None - بی‌صدای دائمی) مثال‌ها: بی‌صدای دائمی: from maxrubika import Messenger with Messenger("mySession") as app: result = app.mute_chat("g0abc123...") print(result) بی‌صدا برای ۲ ساعت: from datetime import timedelta from maxrubika import Messenger with Messenger("mySession") as app: result = app.mute_chat("g0abc123...", duration=timedelta(hours=2)) print(result) unmute_chat این متد برای لغو بی‌صدا کردن (Unmute) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unmute_chat("g0abc123...") print(result) pin_chat این متد برای سنجاق کردن (Pin) یک چت در بالای لیست چت‌ها است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.pin_chat("u0abc123...") print(result) unpin_chat این متد برای برداشتن سنجاق (Unpin) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unpin_chat("u0abc123...") print(result) pin_chat_in_folder این متد برای سنجاق کردن یک چت در یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.pin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) unpin_chat_in_folder این متد برای برداشتن سنجاق یک چت از یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unpin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) archive_chat این متد برای آرشیو کردن یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.archive_chat("u0abc123...") print(result) unarchive_chat این متد برای خارج کردن یک چت از آرشیو است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unarchive_chat("u0abc123...") print(result) set_chat_protected_content این متد برای تنظیم محتوای محافظت‌شده (جلوگیری از اسکرین‌شات و ذخیره) در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. enabled: True برای فعال‌سازی، False برای غیرفعال‌سازی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_chat_protected_content("g0abc123...", enabled=True) print(result) set_chat_auto_delete این متد برای تنظیم حذف خودکار پیام‌ها در گروه یا کانال است. پارامترها: chat: یک GUID/لینک/نام‌کاربری یا لیستی از آن‌ها. auto_delete: مدت زمان حذف خودکار. مقادیر قابل قبول: عدد: ۱ تا ۳۶۵ (روز) رشته: 1m تا 60m، 1h تا 24h، 1d تا 365d، 1w تا 52w، 1y، off کلمات: day, week, month, year, never, disabled مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_chat_auto_delete("g0abc123...", auto_delete="7d") print(result) delete_chat_history این متد برای حذف تاریخچه چت تا آخرین پیام است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت (کاربر یا گروه). برای کانال‌ها قابل استفاده نیست. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_chat_history("u0abc123...") print(result) set_ask_spam این متد برای انجام عملیات روی یک درخواست اسپم معلق است. پارامترها: chat: GUID، لینک یا نام‌کاربری کاربر، گروه یا کانال. action: عملیات مورد نظر: برای کاربر (u0): AddToContact، BlockUser، Cancel. برای گروه/کانال (g0/c0): ReportAndLeave. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_ask_spam("u0abc123...", action="BlockUser") print(result) upload_avatar این متد برای آپلود تصویر پروفایل (آواتار) برای یک چت (خود، گروه یا کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. main_image: مسیر فایل یا داده‌های بایتی تصویر اصلی. thumbnail_image: مسیر فایل یا داده‌های بایتی تصویر بندانگشتی. (پیش‌فرض: None - استفاده از تصویر اصلی) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.upload_avatar( "me", main_image="/path/to/avatar.jpg" ) print(result) get_avatars این متد برای دریافت لیست آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: avatars = app.get_avatars("g0abc123...") print(avatars) delete_avatar این متد برای حذف یک آواتار خاص از چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. avatar_id: شناسه آواتار مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_avatar("me", avatar_id="avatar_123") print(result) delete_all_avatars این متد برای حذف تمام آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_all_avatars("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ویس چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_chat_voice_chat start_voice_chat join_voice_chat leave_voice_chat play_voice_chat discard_voice_chat get_voice_chat_participants get_voice_chat_updates send_voice_chat_activity set_voice_chat_setting set_voice_chat_state ویس چت get_chat_voice_chat این متد برای دریافت اطلاعات ویس چت فعال یک گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: voice = app.get_chat_voice_chat("g0abc123...") print(voice) start_voice_chat این متد برای شروع یک ویس چت در گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.start_voice_chat("g0abc123...") print(result) join_voice_chat این متد برای پیوستن به ویس چت فعال یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. sdp_offer_data: داده‌های SDP offer. (پیش‌فرض: None - استفاده از پیش‌فرض) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.join_voice_chat("g0abc123...") print(result) leave_voice_chat این متد برای خروج از ویس چت فعال یک گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.leave_voice_chat("g0abc123...") print(result) play_voice_chat این متد برای پخش فایل صوتی در ویس چت است. نیاز به نصب کتابخانه aiortc دارد. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. media: مسیر فایل صوتی برای پخش. نکته: نصب پیش‌نیاز: pip install aiortc خروجی: یک شیء VoiceChatConnection که متدهای stop()، pause() و resume() دارد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: connection = app.play_voice_chat("g0abc123...", media="/path/to/audio.mp3") # برای توقف: connection.stop() # برای توقف موقت: connection.pause() # برای ادامه: connection.resume() discard_voice_chat این متد برای پایان دادن به ویس چت فعال یک گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.discard_voice_chat("g0abc123...") print(result) get_voice_chat_participants این متد برای دریافت لیست شرکت‌کنندگان ویس چت فعال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_user_guids: نمایش GUID کاربران در خروجی. (پیش‌فرض: False) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: participants = app.get_voice_chat_participants("g0abc123...") print(participants) get_voice_chat_updates این متد برای دریافت به‌روزرسانی‌های ویس چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. state: وضعیت زمانی برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: updates = app.get_voice_chat_updates("g0abc123...") print(updates) send_voice_chat_activity این متد برای ارسال فعالیت در ویس چت (مانند در حال صحبت بودن) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. activity: نوع فعالیت. (فقط Speaking، پیش‌فرض: Speaking) participant_chat_guid: GUID شرکت‌کننده. (پیش‌فرض: خود کاربر) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_voice_chat_activity("g0abc123...") print(result) set_voice_chat_setting این متد برای تنظیمات ویس چت (عنوان و وضعیت بی‌صدای اعضای جدید) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. title: عنوان جدید ویس چت. (پیش‌فرض: None) join_muted: آیا اعضای جدید بی‌صدا وارد شوند؟ (فقط گروه، پیش‌فرض: None) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_voice_chat_setting( "g0abc123...", title="ویس چت عمومی", join_muted=True ) print(result) set_voice_chat_state این متد برای تنظیم وضعیت ویس چت (Mute/Unmute/درخواست صحبت) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. action: عملیات. مقادیر: Mute، Unmute، RequestSpeak، CancelRequestSpeak. (پیش‌فرض: Unmute) participant_chat_guid: GUID شرکت‌کننده. (پیش‌فرض: خود کاربر) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_voice_chat_state("g0abc123...", action="Mute") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ابزارهای چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents send_chat_activity click_keypad_button get_all_drafts clear_chat_draft clear_all_drafts seen_chats set_chat_use_time report_chat click_chat_ads dont_show_chat_ads report_chat_ads view_chat_ads download_profile_picture ابزارهای چت send_chat_activity این متد برای ارسال وضعیت فعالیت در چت (در حال تایپ، ضبط یا آپلود) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کاربر. activity: نوع فعالیت. مقادیر قابل قبول: Typing، Recording، Uploading. (پیش‌فرض: Typing) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_chat_activity("u0abc123...", activity="Typing") print(result) click_keypad_button این متد برای کلیک روی دکمه‌های کیپاد یک بات است. پارامترها: chat: GUID یا نام‌کاربری بات. button_id: شناسه دکمه. نکته: چت باید یک بات (b0) باشد. متد ابتدا اطلاعات کیپاد بات را دریافت می‌کند و سپس دکمه مورد نظر را پیدا و کلیک می‌کند. اگر دکمه‌ای با آن شناسه وجود نداشته باشد، خطا برمی‌گردد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.click_keypad_button("@MyBot", button_id="100") print(result) get_all_drafts این متد برای دریافت تمام پیش‌نویس‌های ذخیره شده پیام‌ها است. مثال: from maxrubika import Messenger with Messenger("mySession") as app: drafts = app.get_all_drafts() print(drafts) clear_chat_draft این متد برای پاک کردن پیش‌نویس یک چت خاص است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.clear_chat_draft("u0abc123...") print(result) clear_all_drafts این متد برای پاک کردن تمام پیش‌نویس‌ها است. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.clear_all_drafts() print(result) seen_chats این متد برای علامت‌گذاری چند چت به عنوان دیده‌شده است. پارامتر: seen_list: دیکشنری شامل GUID چت‌ها و آخرین شناسه پیام دیده‌شده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.seen_chats({ "u0abc123...": "123456", "g0xyz789...": "789012" }) print(result) set_chat_use_time این متد برای ارسال زمان استفاده از چت به سرور است. این کار به سرور کمک می‌کند رفتار طبیعی کاربر را تشخیص دهد. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. use_time: زمان سپری‌شده در چت به ثانیه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_chat_use_time("u0abc123...", use_time=60) print(result) report_chat این متد برای گزارش یک چت (کاربر، گروه، کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. report_type: نوع گزارش. می‌تواند: عدد بین ۱۰۰ تا ۱۰۶ نام رشته‌ای (بدون حساسیت به حروف بزرگ/کوچک): Other، Violence، Spam، Porn، ChildAbuse، Copyright، Fraud description: توضیحات گزارش. الزامی وقتی report_type برابر ۱۰۰ (Other) باشد. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.report_chat( "u0abc123...", report_type="Other", description="ارسال تصویر حاوی الفاظ نامناسب" ) print(result) click_chat_ads این متد برای ثبت کلیک روی یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.click_chat_ads("ads_123") print(result) dont_show_chat_ads این متد برای ثبت درخواست «نمایش نده» روی یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.dont_show_chat_ads("ads_123") print(result) report_chat_ads این متد برای ثبت گزارش روی یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.report_chat_ads("ads_123") print(result) view_chat_ads این متد برای ثبت بازدید یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.view_chat_ads("ads_123") print(result) download_profile_picture این متد برای دانلود تصویر پروفایل یک کاربر، گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. file_id: شناسه فایل برای دانلود مستقیم. (پیش‌فرض: None) access_hash_rec: هش دسترسی فایل. (پیش‌فرض: None) dc_id: شناسه دیتاسنتر. (پیش‌فرض: None) save_as: مسیر دایرکتوری موجود برای ذخیره فایل. True برای ذخیره در مسیر فعلی، str برای مسیر دلخواه (باید از قبل وجود داشته باشد)، None برای بازگرداندن بایت. (پیش‌فرض: None) save_all: دانلود تمام آواتارها به جای آخرین مورد. (پیش‌فرض: False) نکته: اگر هیچ عکس پروفایلی وجود نداشته باشد، bytes() خالی بازگردانده می‌شود. مثال‌ها: دریافت آخرین عکس پروفایل به صورت بایت: from maxrubika import Messenger with Messenger("mySession") as app: image_bytes = app.download_profile_picture("@Online_User") print(len(image_bytes)) ذخیره در مسیر دلخواه: from maxrubika import Messenger with Messenger("mySession") as app: result = app.download_profile_picture("@Online_User", save_as="/path/to/folder") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ارسال پیام و مدیا Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents send_message send_image send_video send_video_message send_gif send_voice send_music send_file send_sticker send_poll send_quiz send_location send_live send_message_api_call send_rubino_post send_rubino_story send_rubino_product send_now_scheduled_message send_contact ارسال پیام و مدیا send_message این متد اصلی و پایه برای ارسال هر نوع پیام (متن، فایل، مدیا و...) به یک چت است. تمام متدهای ارسال دیگر مانند send_image، send_video و... در نهایت از این متد استفاده می‌کنند. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. اگر ورودی این پارامتر برابر با me باشد، پیام به پیام‌های ذخیره شده ارسال خواهد شد. text: متن پیام. (پیش‌فرض: None) reply_to_message_id: شناسه پیامی که می‌خواهید به آن ریپلای بزنید. (پیش‌فرض: None) via_bot: شناسه (GUID) یا نام‌کاربری بات برای ارسال از طریق آن. (پیش‌فرض: None) metadata: متادیتای اضافی برای قالب‌بندی متن. schedule_time: زمان‌بندی ارسال پیام. می‌تواند Unix timestamp، timedelta یا datetime باشد. schedule_type: نوع زمان‌بندی. Default یا WhenOnline (فقط برای چت کاربر). نکات: برای ارسال زمان‌بندی شده، schedule_time باید در آینده باشد. schedule_type='WhenOnline' تنها برای چت‌های کاربر قابل استفاده است. مثال‌ها: ارسال پیام متنی ساده: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_message("@Online_User", text="سلام! چطوری؟") print(result) ارسال پیام با ریپلای: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_message( "u0abc123...", text="پاسخ شما", reply_to_message_id="123456" ) print(result) ارسال پیام زمان‌بندی شده: from datetime import timedelta from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_message( "https://rubika.ir/joing/GROUP123", text="این پیام ۱ ساعت دیگر ارسال می‌شود", schedule_time=timedelta(hours=1) ) print(result) send_image این متد برای ارسال تصویر به یک چت است. این متد از send_message با type='Image' استفاده می‌کند. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. image: مسیر فایل تصویر یا داده‌های بایتی. text: متن همراه تصویر. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) is_spoil: علامت‌گذاری به عنوان اسپویلر. (پیش‌فرض: False) via_bot: ارسال از طریق بات. (پیش‌فرض: None) thumb: تصویر بندانگشتی. (پیش‌فرض: None) width: عرض سفارشی. (پیش‌فرض: None - تشخیص خودکار) height: ارتفاع سفارشی. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های تصویر به صورت base64. (به جای image) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_image( "https://rubika.ir/joinc/CHANNEL123", image="photo.jpg", text="عکس من" ) print(result) send_video این متد برای ارسال ویدئو به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. video: مسیر فایل ویدئو یا داده‌های بایتی. text: متن همراه ویدئو. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) is_spoil: علامت‌گذاری به عنوان اسپویلر. (پیش‌فرض: False) via_bot: ارسال از طریق بات. (پیش‌فرض: None) thumb: تصویر بندانگشتی. (پیش‌فرض: None) width: عرض سفارشی. (پیش‌فرض: None - تشخیص خودکار) height: ارتفاع سفارشی. (پیش‌فرض: None - تشخیص خودکار) time: مدت زمان ویدئو به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های ویدئو به صورت base64. (به جای video) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_video( "u0abc123...", video="video.mp4", text="ویدئوی من" ) print(result) send_video_message این متد برای ارسال پیام ویدئویی (ویدئوی گرد) به یک چت است. پارامترها: مشابه send_video (به جای video از video_message استفاده می‌شود). مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_video_message( "https://rubika.ir/joing/GROUP123", video_message="round_video.mp4" ) print(result) send_gif این متد برای ارسال گیف به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. gif: مسیر فایل گیف یا داده‌های بایتی. text: متن همراه گیف. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) thumb: تصویر بندانگشتی. (پیش‌فرض: None) width: عرض سفارشی. (پیش‌فرض: None - تشخیص خودکار) height: ارتفاع سفارشی. (پیش‌فرض: None - تشخیص خودکار) time: مدت زمان گیف به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های گیف به صورت base64. (به جای gif) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_gif( "@Online_User", gif="animation.mp4", text="گیف بامزه" ) print(result) send_voice این متد برای ارسال پیام صوتی (ویس) به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. voice: مسیر فایل صوتی یا داده‌های بایتی. text: متن همراه ویس. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) time: مدت زمان ویس به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های ویس به صورت base64. (به جای voice) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_voice( "https://rubika.ir/joing/GROUP123", voice="voice.mp3" ) print(result) send_music این متد برای ارسال فایل موسیقی به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. music: مسیر فایل موسیقی یا داده‌های بایتی. text: متن همراه موسیقی. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) performer: نام هنرمند. (پیش‌فرض: None - تشخیص خودکار) time: مدت زمان آهنگ به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های موسیقی به صورت base64. (به جای music) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_music( "me", music="song.mp3", performer="خواننده مورد علاقه" ) print(result) send_file این متد برای ارسال فایل (عمومی) به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. file: مسیر فایل یا داده‌های بایتی. text: متن همراه فایل. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های فایل به صورت base64. (به جای file) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_file( "Online_User", file="document.pdf", text="فایل مورد نظر" ) print(result) send_sticker این متد برای ارسال استیکر به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. emoji_character: ایموجی مرتبط با استیکر. sticker_id: شناسه استیکر. sticker_set_id: شناسه مجموعه استیکر. file: دیکشنری داده‌های فایل استیکر. w_h_ratio: نسبت عرض به ارتفاع. (پیش‌فرض: 1.0) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_sticker( "https://rubika.ir/joing/GROUP123", emoji_character="😊", sticker_id="sticker_123", sticker_set_id="set_123", file={"file_id": "abc", "dc_id": 1, "access_hash_rec": "hash", "mime": "image/webp", "file_name": "sticker.webp", "size": 1234} ) print(result) send_poll این متد برای ایجاد و ارسال نظرسنجی به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. question: سوال نظرسنجی. (حداکثر ۲۵۵ کاراکتر) options: لیست گزینه‌ها. (بین ۲ تا ۱۰ گزینه، هر کدام حداکثر ۱۰۰ کاراکتر) is_anonymous: ناشناس بودن رای‌ها. (پیش‌فرض: True) multiple_answers: امکان انتخاب چند گزینه. (پیش‌فرض: False) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_poll( "https://rubika.ir/joing/GROUP123", question="رنگ مورد علاقه شما چیست؟", options=["قرمز", "آبی", "سبز", "زرد"], is_anonymous=False, multiple_answers=True ) print(result) send_quiz این متد برای ایجاد و ارسال آزمون (نظرسنجی با پاسخ صحیح) به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. question: سوال آزمون. (حداکثر ۲۵۵ کاراکتر) options: لیست گزینه‌ها. (بین ۲ تا ۱۰ گزینه) correct_option: ایندکس (عدد) یا متن گزینه صحیح. hint: راهنمایی برای پاسخ صحیح. (حداکثر ۲۰۰ کاراکتر، پیش‌فرض: None) is_anonymous: ناشناس بودن پاسخ‌ها. (پیش‌فرض: True) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_quiz( "https://rubika.ir/joinc/CHANNEL123", question="پایتخت ایران کدام است؟", options=["تهران", "اصفهان", "شیراز", "تبریز"], correct_option="تهران", hint="بزرگترین شهر ایران" ) print(result) send_location این متد برای ارسال موقعیت مکانی به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. latitude: عرض جغرافیایی. (عددی بین ۹۰- تا ۹۰) longitude: طول جغرافیایی. (عددی بین ۱۸۰- تا ۱۸۰) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_location( "@Online_User", latitude=35.6892, longitude=51.3890 ) print(result) send_live این متد برای ارسال پخش زنده به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. title: عنوان پخش زنده. (پیش‌فرض: Live stream) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) thumb: تصویر بندانگشتی. می‌تواند Base64، مسیر فایل، URL یا bytes باشد. (پیش‌فرض: None - تصویر پیش‌فرض) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_live( "@TheMAXRubika", title="پخش زنده تستی" ) print(result) send_message_api_call این متد برای ارسال پاسخ API Call به دکمه‌های اینلاین یک پیام است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام حاوی دکمه اینلاین. button_id: شناسه دکمه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_message_api_call( chat="@RubiGuardBot", message_id="1499338519906784", button_id="101" ) print(result) send_rubino_post این متد برای ارسال یک پست روبینو به چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. post_id: شناسه پست. post_profile_id: شناسه پروفایل پست. is_mute: ارسال بی‌صدا بدون اعلان. (پیش‌فرض: False) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_rubino_post( "@Online_User", post_id="post_123", post_profile_id="profile_123" ) print(result) send_rubino_story این متد برای ارسال پاسخ یا پیام مستقیم به استوری روبینو است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. story_id: شناسه استوری. story_profile_id: شناسه پروفایل استوری. reply_text: متن پاسخ. (پیش‌فرض: خالی) type: نوع ارسال. Reply یا Direct. (پیش‌فرض: Reply) is_mute: ارسال بی‌صدا بدون اعلان. (پیش‌فرض: False) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_rubino_story( "u0abc123...", story_id="story_123", story_profile_id="profile_123", reply_text="استوری قشنگی بود!" ) print(result) send_rubino_product این متد برای ارسال یک محصول روبینو به چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. store_id: شناسه فروشگاه. product_id: شناسه محصول. product_varieties: لیست تنوع‌های محصول. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_rubino_product( chat="@Online_User", store_id="store_123", product_id="product_456", product_varieties=[{"id": "var_1", "price": 100000}] ) print(result) send_now_scheduled_message این متد برای ارسال فوری یک پیام زمان‌بندی شده (قبل از موعد مقرر) است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام زمان‌بندی شده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_now_scheduled_message( "@Online_User", message_id="123456" ) print(result) send_contact این متد برای ارسال مخاطب به یک چت است. پارامترها: chat: شناسه (GUID) یا نام‌کاربری کاربر یا بات مقصد. فقط چت خصوصی (u0 یا b0) مجاز است. phone_number: شماره تلفن مخاطب. user: شناسه (GUID) یا نام‌کاربری کاربر مخاطب. باید u0 باشد. first_name: نام مخاطب. last_name: نام خانوادگی مخاطب. (پیش‌فرض: خالی) vcard: رشته vCard سفارشی. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_contact( "u0abc123...", phone_number="09123456789", user="@Online_User", first_name="علی", last_name="حسینی" ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika دریافت و جستجوی پیام Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_message_info get_messages get_all_messages get_first_message get_first_messages get_last_message get_last_messages get_messages_by_id get_messages_interval get_messages_updates get_chat_messages search_messages search_chat_messages search_global_messages get_message_url get_scheduled_messages get_pinned_messages get_messages_reactions دریافت و جستجوی پیام get_message_info این متد برای دریافت اطلاعات کامل یک پیام خاص به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: info = app.get_message_info("@Online_User", message_id="12345678900") print(info) get_messages این متد برای دریافت پیام‌های یک چت با قابلیت فیلتر بر اساس نوع پیام یا فرستنده است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. types: نوع یا لیستی از انواع پیام برای فیلتر. انواع قابل قبول: text, image, video, video_message, voice, music, file, gif live, location, poll, contact, event, edited, forwarded sticker, me, bots, users همچنین می‌توانید GUID یا نام‌کاربری یک عضو را برای فیلتر پیام‌های او وارد کنید. نکات: فیلتر contact تنها در چت‌های خصوصی قابل استفاده است. در کانال‌ها (c0) نمی‌توان بر اساس member_guids (GUID اعضا) فیلتر کرد. مثال‌ها: دریافت تمام پیام‌ها: from maxrubika import Messenger with Messenger("mySession") as app: messages = app.get_messages("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD") print(messages) دریافت فقط تصاویر و ویدیوها: from maxrubika import Messenger with Messenger("mySession") as app: images = app.get_messages("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", types=["image", "video"]) print(images) دریافت پیام‌های یک کاربر خاص: from maxrubika import Messenger with Messenger("mySession") as app: user_msgs = app.get_messages("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", types="u0xyz789...") print(user_msgs) get_all_messages این متد برای دریافت تمام پیام‌های یک چت از ابتدا تا انتها است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. show_message_ids: در صورت True بودن، شناسه پیام‌ها در خروجی نمایش داده می‌شود. (پیش‌فرض: False) نکته: این متد ممکن است برای چت‌های با پیام‌های زیاد زمان‌بر باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: all_msgs = app.get_all_messages("u0abc123...") print(all_msgs) get_first_message این متد برای دریافت اولین پیام یک چت است. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: first = app.get_first_message("@MyGroup") print(first) get_first_messages این متد برای دریافت اولین پیام‌های یک چت تا سقف مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. limit: حداکثر تعداد پیام. (حداکثر ۱۰۰، پیش‌فرض: ۱۰۰) مثال: from maxrubika import Messenger with Messenger("mySession") as app: first_msgs = app.get_first_messages("@MyGroup", limit=50) print(first_msgs) get_last_message این متد برای دریافت آخرین پیام یک چت است. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: last = app.get_last_message("Cipher") print(last) get_last_messages این متد برای دریافت آخرین پیام‌های یک چت تا سقف مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. limit: حداکثر تعداد پیام. (حداکثر ۵۰۰، پیش‌فرض: ۱۰۰) مثال: from maxrubika import Messenger with Messenger("mySession") as app: last_msgs = app.get_last_messages("Cipher", limit=20) print(last_msgs) get_messages_by_id این متد برای دریافت پیام‌ها با شناسه‌های مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_ids: یک شناسه یا لیستی از شناسه‌های پیام. مثال: from maxrubika import Messenger with Messenger("mySession") as app: msgs = app.get_messages_by_id("https://rubika.ir/joing/CHAT123", message_ids=["12345678099", "45612378900", "12288762148"]) print(msgs) get_messages_interval این متد برای دریافت بازه‌ای از پیام‌ها حول یک پیام میانی است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. middle_message_id: شناسه پیام میانی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: interval = app.get_messages_interval("u0abc123...", middle_message_id="14523674102") print(interval) get_messages_updates این متد برای دریافت به‌روزرسانی‌های پیام‌های یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. state: وضعیت زمانی برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) مثال: from maxrubika import Messenger with Messenger("mySession") as app: updates = app.get_messages_updates("Undefined") print(updates) get_chat_messages این متد برای دریافت پیام‌های چت با قابلیت فیلتر و صفحه‌بندی است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. max_id: حداکثر شناسه پیام برای شروع صفحه‌بندی. (پیش‌فرض: None) sort: جهت مرتب‌سازی. FromMax یا FromMin. (پیش‌فرض: FromMin) filter_type: فیلتر بر اساس نوع. مقادیر: Voice, File, Music, Gif, Media, Link. (پیش‌فرض: None) limit: حداکثر تعداد پیام. (پیش‌فرض: None - دریافت همه) مثال‌ها: دریافت پیام‌ها از جدیدترین: from maxrubika import Messenger with Messenger("mySession") as app: msgs = app.get_chat_messages("u0abc123...", sort="FromMax", limit=50) print(msgs) دریافت فقط فایل‌ها: from maxrubika import Messenger with Messenger("mySession") as app: files = app.get_chat_messages("@MyChannel", filter_type="File") print(files) search_messages این متد برای جستجوی پیام‌ها بر اساس متن در یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. text: متن مورد جستجو. مثال: from maxrubika import Messenger with Messenger("mySession") as app: results = app.search_messages("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", text="سلام") print(results) search_chat_messages این متد برای جستجوی پیام‌ها در چت با استفاده از API سرور است. از هشتگ نیز پشتیبانی می‌کند. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. search_text: متن مورد جستجو. اگر با # شروع شود، جستجو بر اساس هشتگ انجام می‌شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: results = app.search_chat_messages("u0abc123...", search_text="#مهم") print(results) search_global_messages این متد برای جستجوی سراسری پیام‌ها در تمام چت‌ها است. از هشتگ نیز پشتیبانی می‌کند. پارامترها: search_text: متن یا هشتگ مورد جستجو. start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: results = app.search_global_messages("#مهم") print(results) get_message_url این متد برای دریافت لینک قابل اشتراک‌گذاری یک پیام است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. مثال: from maxrubika import Messenger with Messenger("mySession") as app: url = app.get_message_url("@Online_User", message_id="12345674187") print(url) get_scheduled_messages این متد برای دریافت پیام‌های زمان‌بندی شده یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: scheduled = app.get_scheduled_messages("@CodeYaran") print(scheduled) get_pinned_messages این متد برای دریافت پیام‌های پین‌شده یک چت است. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: pinned = app.get_pinned_messages("@MyGroup") print(pinned) get_messages_reactions این متد برای دریافت ری‌اکشن‌های پیام‌های یک چت در یک بازه مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. min_id: حداقل شناسه پیام (کران پایین). max_id: حداکثر شناسه پیام (کران بالا). مثال: from maxrubika import Messenger with Messenger("mySession") as app: reactions = app.get_messages_reactions("u0abc123...", min_id="100", max_id="200") print(reactions) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika عملیات روی پیام‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents edit_message delete_messages delete_all_messages delete_my_messages auto_delete_message forward_messages pin_message unpin_message unpin_all_messages add_reaction remove_reaction report_message mark_as_read mark_as_seen click_message_url click_inline_button عملیات روی پیام‌ها edit_message این متد برای ویرایش متن یک پیام ارسال‌شده به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام مورد نظر. text: متن جدید جایگزین. metadata: متادیتای قالب‌بندی متن (Bold، Italic و...). (پیش‌فرض: None - تشخیص خودکار) نکته: در صورت عدم ارسال metadata، کتابخانه به صورت خودکار متادیتا را از متن استخراج می‌کند. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_message( "@Online_User", message_id="12345678090", text="متن ویرایش شده جدید" ) print(result) delete_messages این متد برای حذف یک یا چند پیام از یک چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_ids: یک شناسه یا لیستی از شناسه‌های پیام برای حذف. type: نوع حذف. Global (حذف برای همه)، Local (حذف فقط برای خود)، Scheduled (حذف پیام زمان‌بندی شده). (پیش‌فرض: Global) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_messages( "https://rubika.ir/joing/ABC123", message_ids=["123", "456", "789"] ) print(result) delete_all_messages این متد برای حذف تمام پیام‌های یک چت (به جز پیام ایجاد گروه/کانال) به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. exclude_message_ids: شناسه پیام‌هایی که نباید حذف شوند. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_all_messages("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD") print(result) delete_my_messages این متد برای حذف تمام پیام‌های خودتان در یک چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. exclude_message_ids: شناسه پیام‌هایی که نباید حذف شوند. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_my_messages("@MyGroup") print(result) auto_delete_message این متد برای حذف خودکار یک پیام پس از مدت زمان مشخص به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. time: مدت زمان تأخیر تا حذف (به ثانیه). مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.auto_delete_message( "u0abc123...", message_id="12345674103", time=60 ) print(result) forward_messages این متد برای فوروارد (هدایت) یک یا چند پیام از یک چت به چت دیگر به کار می‌رود. پارامترها: from_chat: شناسه (GUID)، لینک یا نام‌کاربری چت مبدأ. message_ids: شناسه پیام‌ها برای فوروارد. to_chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. hide_author: مخفی کردن فرستنده اصلی. (پیش‌فرض: False) is_mute: فوروارد بی‌صدا بدون اعلان. (پیش‌فرض: False) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.forward_messages( from_chat="@SourceUser", message_ids=["123", "456"], to_chat="https://rubika.ir/joing/DEST123" ) print(result) pin_message این متد برای سنجاق کردن (پین) یک پیام در چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.pin_message("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", message_id=147503987410) print(result) unpin_message این متد برای برداشتن سنجاق (آنپین) یک پیام در چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unpin_message("https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", message_id=12345636971) print(result) unpin_all_messages این متد برای برداشتن سنجاق تمام پیام‌های پین شده در یک چت به کار می‌رود. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.unpin_all_messages("@MyChannel") print(result) add_reaction این متد برای افزودن ری‌اکشن به یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. reaction_id: شناسه ری‌اکشن. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_reaction( "@Online_User", message_id="123456", reaction_id=1 ) print(result) remove_reaction این متد برای حذف ری‌اکشن از یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. reaction_id: شناسه ری‌اکشن. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.remove_reaction( "https://rubika.ir/joing/GROUP123", message_id="123456", reaction_id=1 ) print(result) report_message این متد برای گزارش یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. report_type: نوع گزارش. می‌تواند: عدد بین ۱۰۰ تا ۱۰۶ نام رشته‌ای (بدون حساسیت به حروف بزرگ/کوچک): Other، Violence، Spam، Porn، ChildAbuse، Copyright، Fraud description: توضیحات اضافی. الزامی وقتی report_type برابر ۱۰۰ (Other) باشد. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.report_message( "@Spammer", message_id="123456", report_type="Other", description="پیام اسپم" ) print(result) mark_as_read این متد برای علامت‌گذاری یک چت به عنوان خوانده‌شده (با دیدن آخرین پیام) به کار می‌رود. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.mark_as_read("u0abc123...") print(result) mark_as_seen این متد برای علامت‌گذاری یک پیام خاص به عنوان دیده‌شده به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. (پیش‌فرض: None - آخرین پیام) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.mark_as_seen("@MyFriend", message_id="123456") print(result) click_message_url این متد برای شبیه‌سازی کلیک روی یک لینک داخل پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. link_url: آدرس لینک. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.click_message_url( "https://rubika.ir/joing/CHAT123", message_id="123456", link_url="https://example.com" ) print(result) click_inline_button این متد برای شبیه‌سازی کلیک روی دکمه اینلاین (شیشه‌ای) یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام حاوی دکمه اینلاین. button_id: شناسه دکمه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.click_inline_button( "@MyBot", message_id="1499338519906784", button_id="b0SPm00c8gb83b689ac2eeffe16ec7db" ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ابزارهای پیام Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents transcribe_voice get_poll_status get_poll_option_voters vote_poll stop_poll retract_poll request_send_file ابزارهای پیام transcribe_voice این متد برای تبدیل صوت به متن (پیاده‌سازی متن پیام صوتی) به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام صوتی. نکته: این متد ابتدا درخواست تبدیل را ارسال کرده، سپس نتیجه نهایی را دریافت و بازمی‌گرداند. مثال: from maxrubika import Messenger with Messenger("mySession") as app: text = app.transcribe_voice("u0abc123...", message_id="123456") print(text) get_poll_status این متد برای دریافت وضعیت یک نظرسنجی به کار می‌رود. پارامتر: poll_id: شناسه نظرسنجی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: status = app.get_poll_status("poll_123") print(status) get_poll_option_voters این متد برای دریافت رأی‌دهندگان یک گزینه خاص از نظرسنجی به کار می‌رود. پارامترها: poll_id: شناسه نظرسنجی. selection_index: ایندکس گزینه مورد نظر. start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: voters = app.get_poll_option_voters("poll_123", selection_index=0) print(voters) vote_poll این متد برای رأی دادن به یک گزینه نظرسنجی به کار می‌رود. پارامترها: poll_id: شناسه نظرسنجی. selection_index: ایندکس گزینه مورد نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.vote_poll("poll_123", selection_index=0) print(result) stop_poll این متد برای متوقف کردن یک نظرسنجی به کار می‌رود. پارامتر: poll_id: شناسه نظرسنجی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.stop_poll("poll_123") print(result) retract_poll این متد برای بازپس‌گیری رای در یک نظرسنجی به کار می‌رود. پارامتر: poll_id: شناسه نظرسنجی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.retract_poll("poll_123") print(result) request_send_file این متد برای درخواست ارسال یک فایل (دریافت URL آپلود) به کار می‌رود. این اولین گام در فرایند آپلود فایل است. پارامترها: file_name: نام فایل. size: اندازه فایل (به بایت). mime: نوع MIME فایل. (پیش‌فرض: None - تشخیص از روی پسوند فایل) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.request_send_file( file_name="document.pdf", size=1024000 ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_privacy_setting get_notification_setting set_notification set_setting edit_show_last_online edit_show_phone_number edit_show_profile_photo edit_show_birthday edit_can_join_chat_by edit_can_called_by auto_delete_account update_my_name update_my_username update_my_bio update_my_birthday update_my_profile get_two_passcode_status set_two_step_verification check_two_step_passcode turn_off_two_step abort_two_step_setup change_password request_forget_password request_recovery_email verify_recovery_email login_disable_two_step login_two_step_forget_password request_change_phone_number verify_change_phone_number get_my_sessions get_unconfirmed_sessions confirm_unconfirmed_session deny_unconfirmed_session terminate_session terminate_other_sessions register_device logout delete_account get_folders get_suggested_folders add_folder delete_folder reorder_folder add_saved_music_playlist add_saved_music_track set_saved_music_playlist delete_saved_music_playlist upgrade_to_api6 تنظیمات get_privacy_setting این متد برای دریافت تنظیمات حریم خصوصی فعلی کاربر به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: privacy = app.get_privacy_setting() print(privacy) get_notification_setting این متد برای دریافت تنظیمات اعلان‌های فعلی حساب کاربری به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: notifications = app.get_notification_setting() print(notifications) set_notification این متد برای به‌روزرسانی تنظیمات اعلان‌ها به کار می‌رود. پارامترها: user_notification: فعال/غیرفعال کردن اعلان کاربران. user_message_preview: نمایش/عدم نمایش پیش‌نمایش پیام کاربران. group_notification: فعال/غیرفعال کردن اعلان گروه‌ها. group_message_preview: نمایش/عدم نمایش پیش‌نمایش پیام گروه‌ها. channel_notification: فعال/غیرفعال کردن اعلان کانال‌ها. channel_message_preview: نمایش/عدم نمایش پیش‌نمایش پیام کانال‌ها. in_app_sound: فعال/غیرفعال کردن صدای درون برنامه. in_app_preview: فعال/غیرفعال کردن پیش‌نمایش درون برنامه. new_contacts: فعال/غیرفعال کردن اعلان مخاطبین جدید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_notification( user_notification=True, group_notification=False, in_app_sound=True ) print(result) set_setting این متد برای تنظیم حریم خصوصی و تنظیمات حذف خودکار به کار می‌رود. پارامترهای حریم خصوصی (مقادیر قابل قبول: Everybody، MyContacts، Nobody): show_my_last_online: چه کسانی آخرین بازدید شما را ببینند. show_my_phone_number: چه کسانی شماره تلفن شما را ببینند. show_my_profile_photo: چه کسانی عکس پروفایل شما را ببینند. link_forward_message: چه کسانی لینک پیام‌های شما را فوروارد کنند. can_join_chat_by: چه کسانی بتوانند از طریق لینک به چت شما ملحق شوند. show_my_birth_date: چه کسانی تاریخ تولد شما را ببینند. can_called_by: چه کسانی بتوانند با شما تماس بگیرند. پارامترهای استثنا (exceptions): هر کدام می‌توانند یک دیکشنری با کلیدهای include_users و exclude_users باشند. نکته: قوانین استثناها: - برای Everybody فقط exclude_users مجاز است. - برای Nobody فقط include_users مجاز است. - برای MyContacts هر دو مجاز هستند. - برای پاک کردن استثناها، {'exclude_users': []} بفرستید. پارامترهای حذف خودکار: auto_delete_messages: مدت زمان حذف خودکار پیام‌ها. مقادیر قابل قبول: Off (غیرفعال) عدد (۱ تا ۳۶۵ روز) رشته‌هایی مثل 1d، 7d، 30d، 1w، 1m، 1y کلمات کلیدی: never، disabled، day، week، month، year inactive_account_delete: حذف حساب پس از چند ماه عدم فعالیت. (مقادیر: 3، 6، 12، 24) مثال‌ها: تنظیم آخرین بازدید فقط برای مخاطبین: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_setting(show_my_last_online="MyContacts") print(result) تنظیم با استثنا: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_setting( show_my_last_online="Nobody", show_my_last_online_exceptions={ "include_users": ["u0abc123..."] } ) print(result) edit_show_last_online این متد میانبری برای تنظیم نمایش آخرین بازدید است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها (include_users و exclude_users). مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_show_last_online("MyContacts") print(result) edit_show_phone_number این متد میانبری برای تنظیم نمایش شماره تلفن است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_show_phone_number("Nobody") print(result) edit_show_profile_photo این متد میانبری برای تنظیم نمایش عکس پروفایل است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_show_profile_photo("MyContacts") print(result) edit_show_birthday این متد میانبری برای تنظیم نمایش تاریخ تولد است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_show_birthday("Nobody") print(result) edit_can_join_chat_by این متد میانبری برای تنظیم امکان ملحق شدن از طریق لینک است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_can_join_chat_by("MyContacts") print(result) edit_can_called_by این متد میانبری برای تنظیم امکان تماس گرفتن با شما است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.edit_can_called_by("Nobody") print(result) auto_delete_account این متد برای تنظیم حذف خودکار حساب پس از مدت مشخصی عدم فعالیت به کار می‌رود. پارامتر: setting: تعداد ماه‌ها. مقادیر قابل قبول: 3، 6، 12، 24 یا رشته‌هایی مثل "3m"، "6m"، "12m"، "24m". مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.auto_delete_account(6) print(result) update_my_name این متد برای به‌روزرسانی نام و نام خانوادگی کاربر به کار می‌رود. پارامترها: first_name: نام جدید. (حداکثر ۳۰ کاراکتر) last_name: نام خانوادگی جدید. (حداکثر ۵۰ کاراکتر) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.update_my_name(first_name="علی", last_name="حسینی") print(result) update_my_username این متد برای به‌روزرسانی نام‌کاربری کاربر به کار می‌رود. پارامتر: username: نام‌کاربری جدید. (حداقل ۷ و حداکثر ۳۲ کاراکتر، فقط حروف انگلیسی، اعداد و زیرخط) نکته: نام‌کاربری نمی‌تواند با عدد یا زیرخط شروع شود یا به زیرخط ختم شود و باید حداقل شامل یک حرف باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.update_my_username("new_username") print(result) update_my_bio این متد برای به‌روزرسانی بیوگرافی کاربر به کار می‌رود. پارامتر: bio: متن بیوگرافی جدید. (حداکثر ۱۵۰ کاراکتر) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.update_my_bio("این بیوگرافی من است.") print(result) update_my_birthday این متد برای به‌روزرسانی تاریخ تولد کاربر به کار می‌رود. پارامتر: birthday: تاریخ تولد با فرمت YYYY-MM-DD یا یک شیء datetime. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.update_my_birthday("2000-05-20") print(result) update_my_profile این متد برای به‌روزرسانی هم‌زمان چند بخش از پروفایل به کار می‌رود. پارامترها: first_name: نام جدید. last_name: نام خانوادگی جدید. bio: بیوگرافی جدید. birthday: تاریخ تولد با فرمت YYYY-MM-DD. location: اطلاعات موقعیت مکانی شامل: longitude: طول جغرافیایی latitude: عرض جغرافیایی map_view: دیکشنری شامل tile_side_count، tile_urls، x_loc، y_loc مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.update_my_profile( first_name="علی", bio="برنامه‌نویس پایتون" ) print(result) get_two_passcode_status این متد برای دریافت وضعیت تأیید دو مرحله‌ای حساب به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: status = app.get_two_passcode_status() print(status) set_two_step_verification این متد برای تنظیم تأیید دو مرحله‌ای به کار می‌رود. پارامترها: password: رمز عبور فعلی. hint: راهنمایی برای یادآوری رمز. (پیش‌فرض: None) recovery_email: ایمیل بازیابی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_two_step_verification( password="current_password", hint="رمز من" ) print(result) check_two_step_passcode این متد برای بررسی صحت رمز تأیید دو مرحله‌ای به کار می‌رود. پارامتر: password: رمز تأیید دو مرحله‌ای. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.check_two_step_passcode("my_password") print(result) turn_off_two_step این متد برای غیرفعال کردن تأیید دو مرحله‌ای به کار می‌رود. پارامتر: password: رمز تأیید دو مرحله‌ای فعلی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.turn_off_two_step("my_password") print(result) abort_two_step_setup این متد برای لغو فرایند راه‌اندازی تأیید دو مرحله‌ای به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.abort_two_step_setup() print(result) change_password این متد برای تغییر رمز عبور حساب به کار می‌رود. پارامترها: password: رمز عبور فعلی. new_password: رمز عبور جدید. new_hint: راهنمایی جدید برای رمز. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.change_password( password="old_pass", new_password="new_pass", new_hint="راهنمایی جدید" ) print(result) request_forget_password این متد برای درخواست بازنشانی رمز عبور فراموش‌شده به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.request_forget_password() print(result) request_recovery_email این متد برای درخواست ارسال کد بازیابی به ایمیل بازیابی به کار می‌رود. پارامترها: password: رمز عبور فعلی. recovery_email: ایمیل بازیابی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.request_recovery_email( password="my_password", recovery_email="example@email.com" ) print(result) verify_recovery_email این متد برای تأیید کد ارسال‌شده به ایمیل بازیابی به کار می‌رود. پارامترها: password: رمز عبور فعلی. code: کد تأیید دریافتی در ایمیل. (می‌تواند رشته یا عدد باشد) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.verify_recovery_email( password="my_password", code="123456" ) print(result) login_disable_two_step این متد برای غیرفعال کردن تأیید دو مرحله‌ای در فرایند ورود به حساب به کار می‌رود. پارامترها: phone_number: شماره تلفن مرتبط با حساب. email_code: کد تأیید ارسال‌شده به ایمیل. forget_password_code_hash: هش کد بازیابی رمز عبور. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.login_disable_two_step( phone_number="09123456789", email_code="123456", forget_password_code_hash="hash_here" ) print(result) login_two_step_forget_password این متد برای شروع فرایند بازیابی رمز تأیید دو مرحله‌ای فراموش‌شده به کار می‌رود. پارامتر: phone_number: شماره تلفن مرتبط با حساب. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.login_two_step_forget_password("09123456789") print(result) request_change_phone_number این متد برای درخواست تغییر شماره تلفن حساب به کار می‌رود. پارامتر: new_phone_number: شماره تلفن جدید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.request_change_phone_number("09123456789") print(result) verify_change_phone_number این متد برای تأیید تغییر شماره تلفن با کد دریافتی به کار می‌رود. پارامترها: code: کد تأیید ارسال شده. hash: هش دریافتی از متد request_change_phone_number. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.verify_change_phone_number( code="12345", hash="hash_from_request" ) print(result) get_my_sessions این متد برای دریافت اطلاعات نشست‌های فعال حساب کاربری به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: sessions = app.get_my_sessions() print(sessions) get_unconfirmed_sessions این متد برای دریافت نشست‌های تأیید نشده (در انتظار تأیید) حساب کاربری به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: pending = app.get_unconfirmed_sessions() print(pending) confirm_unconfirmed_session این متد برای تأیید یک نشست در انتظار به کار می‌رود. پارامتر: unconfirmed_session_key: کلید نشست تأیید نشده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.confirm_unconfirmed_session("session_key_123") print(result) deny_unconfirmed_session این متد برای رد یک نشست در انتظار به کار می‌رود. پارامتر: unconfirmed_session_key: کلید نشست تأیید نشده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.deny_unconfirmed_session("session_key_123") print(result) terminate_session این متد برای پایان دادن به یک نشست خاص به کار می‌رود. پارامتر: session_key: کلید نشست. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.terminate_session("session_key_123") print(result) terminate_other_sessions این متد برای پایان دادن به تمام نشست‌های دیگر (به جز نشست فعلی) به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.terminate_other_sessions() print(result) register_device این متد برای ثبت دستگاه فعلی در سرور به کار می‌رود. پارامتر: device_model: نام مدل دستگاه سفارشی. (پیش‌فرض: None - تشخیص خودکار) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.register_device() print(result) logout این متد برای خروج از نشست فعلی به کار می‌رود. پارامترها: confirm: در صورت True بودن، قبل از خروج از کاربر تأیید گرفته می‌شود (y/n). در صورت False بودن، بدون پرسش خارج می‌شود. (پیش‌فرض: True) توجه: در حالت confirm=True، برای تکمیل عملیات خروج باید حرف y را در کنسول وارد نمایید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.logout() print(result) # خروج بدون تأیید result = app.logout(confirm=False) print(result) delete_account این متد برای درخواست حذف دائمی حساب به کار می‌رود. توجه: پس از اجرا، یک پیامک تأیید حاوی لینک حذف حساب به شماره شما ارسال خواهد شد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_account() print(result) get_folders این متد برای دریافت لیست پوشه‌ها (Folders) به کار می‌رود. پارامتر: last_state: آخرین وضعیت برای دریافت پوشه‌ها. (پیش‌فرض: زمان فعلی منهای ۱۵۰ ثانیه) مثال: from maxrubika import Messenger with Messenger("mySession") as app: folders = app.get_folders() print(folders) get_suggested_folders این متد برای دریافت پوشه‌های پیشنهادی کاربر به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: suggested = app.get_suggested_folders() print(suggested) add_folder این متد برای افزودن یک پوشه جدید برای سازمان‌دهی چت‌ها به کار می‌رود. پارامترها: name: نام پوشه. include_chats: چت‌هایی که در پوشه قرار گیرند (GUID، لینک یا نام‌کاربری). exclude_chats: چت‌هایی که از پوشه مستثنی شوند. include_chat_types: انواع چت برای شمول (مانند Contacts، Users، Groups، Channels، Bots، Services). exclude_chat_types: انواع چت برای استثنا (مانند Mute، Read، Archive). is_add_to_top: افزودن پوشه به بالای لیست. (پیش‌فرض: True) suggestion_folder_id: شناسه پوشه پیشنهادی. folder_id: شناسه پوشه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_folder( name="دوستان", include_chats=["@User1", "@User2"] ) print(result) delete_folder این متد برای حذف یک پوشه به کار می‌رود. پارامتر: folder_id: شناسه پوشه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_folder("folder_id_123") print(result) reorder_folder این متد برای تغییر ترتیب پوشه‌ها به کار می‌رود. پارامتر: folder_ids: یک شناسه یا لیستی از شناسه‌های پوشه‌ها به ترتیب جدید. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.reorder_folder(["id3", "id1", "id2"]) print(result) add_saved_music_playlist این متد برای افزودن آهنگ به لیست موسیقی ذخیره شده در پروفایل به کار می‌رود. پارامترها: files: یک مسیر فایل یا لیستی از مسیرهای فایل‌های موسیقی. file_inlines: لیست دیکشنری‌های file_inline از پیش آپلود شده. time: مدت زمان سفارشی به ثانیه. (در صورت عدم ارسال، تشخیص خودکار) performer: نام خواننده سفارشی. (در صورت عدم ارسال، تشخیص خودکار) file_name: نام فایل سفارشی. (در صورت عدم ارسال، از نام اصلی فایل استفاده می‌شود) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_saved_music_playlist( files=["song1.mp3", "song2.mp3"] ) print(result) add_saved_music_track این متد برای افزودن یک آهنگ تکی به لیست موسیقی ذخیره شده در پروفایل به کار می‌رود. پارامترها: track: مسیر فایل موسیقی یا bytes خام. file_inline: دیکشنری file_inline از پیش آپلود شده. time: مدت زمان سفارشی به ثانیه. (در صورت عدم ارسال، تشخیص خودکار) performer: نام خواننده سفارشی. (در صورت عدم ارسال، تشخیص خودکار) file_name: نام فایل سفارشی. نکته: باید یا track یا file_inline ارسال شود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_saved_music_track("song.mp3") print(result) set_saved_music_playlist این متد برای جایگزینی کامل لیست موسیقی ذخیره شده در پروفایل به کار می‌رود. پارامترها: files: یک مسیر فایل یا لیستی از مسیرهای فایل‌های موسیقی. file_inlines: لیست دیکشنری‌های file_inline از پیش آپلود شده. time: مدت زمان سفارشی به ثانیه. (در صورت عدم ارسال، تشخیص خودکار) performer: نام خواننده سفارشی. (در صورت عدم ارسال، تشخیص خودکار) file_name: نام فایل سفارشی. (در صورت عدم ارسال، از نام اصلی فایل استفاده می‌شود) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_saved_music_playlist( files=["song1.mp3", "song2.mp3"] ) print(result) delete_saved_music_playlist این متد برای حذف آهنگ‌ها از لیست موسیقی ذخیره شده به کار می‌رود. پارامتر: position: موقعیت آهنگ برای حذف. اگر None باشد، تمام آهنگ‌ها حذف می‌شوند. (پیش‌فرض: None) مثال‌ها: حذف یک آهنگ خاص: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_saved_music_playlist(position=1) print(result) حذف تمام آهنگ‌ها: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_saved_music_playlist() print(result) upgrade_to_api6 این متد برای ارتقاء از API نسخه ۵ به نسخه ۶ با تنظیم کلید عمومی RSA به کار می‌رود. پارامترها: save_as: در صورت True بودن، auth و private_key در فایل JSON ذخیره می‌شود. (پیش‌فرض: True) file_name: نام فایل سفارشی برای ذخیره. (پیش‌فرض: maxrubika_{auth[:10]}) نکته: این متد فقط با api_version = 5 کار می‌کند. مثال: from maxrubika import Messenger with Messenger(auth = "ahkjbsawthnh...", api_version=5) as app: result = app.upgrade_to_api6() print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika سایر متدها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents متدهای اصلی و راه‌اندازی connect start send_code sign_in run disconnect close get_string_session متدهای دریافت به‌روزرسانی get_updates متدهای درخواست request متدهای فایل upload_file download_file متدهای کمکی get_time get_available_reactions get_location_view set_current_live_location get_wallpapers reset_wallpapers get_link_from_app_url get_wallet_transaction_message متدهای استیکر get_sticker_setting get_my_sticker_sets get_my_archived_sticker_sets get_sticker_set_by_id get_stickers_by_set_ids get_stickers_by_emoji search_stickers get_trend_sticker_sets add_sticker_set delete_sticker_set archive_sticker_set reorder_sticker_sets متدهای گیف get_my_gif_set add_to_my_gif_set delete_my_gif_set delete_all_my_gif_set متدهای پخش زنده get_live_status get_live_comments get_live_play_url add_live_comment report_live متدهای بازخورد feedback_voice_transcription سایر متدها متدهای اصلی و راه‌اندازی connect برقراری ارتباط با API روبیکا. یک نمونه Api ایجاد می‌کند و اطلاعات نشست ذخیره شده (auth, guid, private_key, user_agent) را در صورت وجود بارگذاری می‌کند. خروجی: Messenger: نمونه کلاینت با اتصال فعال. مثال: from maxrubika import Messenger with Messenger("mySession") as app: app.connect() start شروع کلاینت، مدیریت احراز هویت و ثبت‌نام. پارامترها: phone_number (str, optional): شماره تلفن برای ثبت‌نام. خروجی: Messenger: نمونه کلاینت مقداردهی‌شده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: app.start("+989123456789") send_code ارسال کد تأیید به یک شماره تلفن. پارامترها: phone_number (str): شماره تلفن مقصد. pass_key (str, optional): رمز عبور حساب (در صورت وجود). مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.send_code("+989123456789") print(result) sign_in ورود به حساب با استفاده از کد تأیید. پارامترها: phone_number (str): شماره تلفن. phone_code (str): کد تأیید. phone_code_hash (str): هش کد تأیید. public_key (str): کلید عمومی کلاینت. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.sign_in( phone_number="+989123456789", phone_code="12345", phone_code_hash="hash_here", public_key="public_key_here" ) print(result) run شروع کلاینت و گوش دادن به به‌روزرسانی‌ها. اطمینان از برقراری اتصال، سپس اجرای اختیاری یک coroutine قبل از ورود به حلقه به‌روزرسانی. هم در محیط‌های sync و هم async کار می‌کند. پارامترها: coroutine (Coroutine, optional): Coroutine اختیاری برای اجرا قبل از گوش دادن به به‌روزرسانی‌ها. خروجی: None: در حالت عادی تا زمانی که متوقف نشود، اجرا می‌شود. مثال sync: from maxrubika import Messenger with Messenger("mySession") as app: app.run() مثال async: from maxrubika import Messenger async with Messenger("mySession") as app: await app.run() disconnect قطع ارتباط با سرور روبیکا (نسخه sync). این متد در واقع متد close را در پس‌زمینه فراخوانی می‌کند. مثال: from maxrubika import Messenger with Messenger("mySession") as app: app.start() # ... انجام عملیات ... app.disconnect() close بستن اتصال به سرور (نسخه async). این متد معادل async متد disconnect است. نکته: برای قطع ارتباط در محیط async از این متد استفاده کنید. برای محیط sync از disconnect استفاده کنید. مثال: from maxrubika import Messenger async with Messenger("mySession") as app: await app.close() get_string_session خروجی گرفتن از نشست فعلی به صورت یک StringSession رمزنگاری‌شده. پارامترها: password (str, optional): رمز اختیاری برای رمزنگاری. در صورت ارائه، StringSession فقط با همین رمز باز می‌شود. خروجی: str: StringSession رمزنگاری‌شده که می‌توان بعداً با Messenger(string_session=..., password=...) استفاده کرد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: string_session = app.get_string_session() print(string_session) متدهای دریافت به‌روزرسانی get_updates دریافت به‌روزرسانی‌ها از WebSocket روبیکا. مثال: from maxrubika import Messenger with Messenger("mySession") as app: # این متد به صورت نامحدود اجرا می‌شود و به‌روزرسانی‌ها را دریافت می‌کند app.get_updates() متدهای درخواست request ساخت و ارسال درخواست به API روبیکا. پارامترها: method (str): نام متد API (مانند 'sendMessage', 'getUserInfo'). input (dict, optional): داده‌های ورودی برای متد. tmp_session (bool): استفاده از نشست موقت به جای auth (پیش‌فرض: False). در صورت True بودن، اگر کلاینت متصل نباشد، خودکار متصل می‌شود. encrypt (bool): رمزگذاری داده‌های درخواست (پیش‌فرض: True). خروجی: Data or None: پاسخ API. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.request( method="getUserInfo", input={"user_guid": "u0abc123..."} ) print(result) متدهای فایل upload_file آپلود فایل به روبیکا. پارامترها: file (str or bytes or None): مسیر فایل، bytes، یا URL برای آپلود. base64_data (str, optional): داده‌های فایل به صورت base64. mime (str, optional): نوع MIME فایل. file_name (str, optional): نام فایل. chunk (int, optional): اندازه هر بخش به بایت (پیش‌فرض: 1MB). callback (callable, optional): تابع پیشرفت آپلود (total_size, uploaded_bytes). نکته: باید یا file یا base64_data ارسال شود. خروجی: متادیتای فایل آپلود شده شامل mime, size, dc_id, file_id, file_name, access_hash_rec. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.upload_file( file="file.jpg", mime="image/jpeg", file_name="my_image.jpg" ) print(result) download_file دانلود فایل از سرورهای روبیکا با استفاده از شناسه فایل و access hash. پارامترها: file_inline: دیکشنری حاوی اطلاعات فایل (dc_id, file_id, access_hash_rec, size, file_name). dc_id (int, optional): شناسه دیتاسنتر (در صورت عدم ارسال file_inline). file_id (int, optional): شناسه یکتای فایل. access_hash (str, optional): هش دسترسی مرتبط با فایل. size (int, optional): اندازه کل فایل به بایت. chunk (int, optional): اندازه هر بخش دانلود (پیش‌فرض: 131072). callback (callable, optional): تابع پیشرفت دانلود (total_size, downloaded_size). gather (bool, optional): دانلود بخش‌ها به صورت موازی (پیش‌فرض: False). save_as (str or bool, optional): مسیر دایرکتوری یا True برای دایرکتوری جاری. اگر None باشد، بایت‌ها را برمی‌گرداند. file_name (str, optional): نام سفارشی فایل. as_base64 (bool, optional): بازگرداندن فایل به صورت base64 (پیش‌فرض: False). خروجی: bytes, str, or Data: محتوای فایل (bytes)، رشته base64 یا Data (زمانی که save_as استفاده می‌شود). مثال‌ها: دانلود با file_inline: from maxrubika import Messenger with Messenger("mySession") as app: result = app.download_file( file_inline={"dc_id": 1, "file_id": 123456, "access_hash_rec": "hash_example", "size": 1024000}, save_as=True, file_name="my_file.jpg" ) print(result) دانلود با پارامترهای جداگانه و دریافت bytes: from maxrubika import Messenger with Messenger("mySession") as app: result = app.download_file( dc_id=1, file_id=123456, access_hash="hash_example", size=1024000 ) print(result) متدهای کمکی get_time این متد برای دریافت زمان فعلی سرور به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: time = app.get_time() print(time) get_available_reactions این متد برای دریافت لیست ری‌اکشن‌های قابل استفاده در چت‌ها به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: reactions = app.get_available_reactions() print(reactions) get_location_view این متد برای دریافت نقشه یک موقعیت جغرافیایی به کار می‌رود. پارامترها: latitude: عرض جغرافیایی. (عددی بین ۹۰- تا ۹۰) longitude: طول جغرافیایی. (عددی بین ۱۸۰- تا ۱۸۰) مثال: from maxrubika import Messenger with Messenger("mySession") as app: view = app.get_location_view(latitude=35.6892, longitude=51.3890) print(view) set_current_live_location این متد برای تنظیم موقعیت زنده فعلی به کار می‌رود. پارامترها: longitude: طول جغرافیایی. latitude: عرض جغرافیایی. tile_side_count: تعداد تایل‌ها در هر ضلع. tile_urls: لیست URLهای تایل‌های نقشه. x_loc: موقعیت X روی نقشه. y_loc: موقعیت Y روی نقشه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.set_current_live_location( longitude=51.3890, latitude=35.6892, tile_side_count=1, tile_urls=["https://..."], x_loc=0.5, y_loc=0.5 ) print(result) get_wallpapers این متد برای دریافت تنظیمات فعلی تصویر پس‌زمینه چت به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: wallpapers = app.get_wallpapers() print(wallpapers) reset_wallpapers این متد برای بازنشانی تمام تصاویر پس‌زمینه چت‌ها به حالت پیش‌فرض به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.reset_wallpapers() print(result) get_link_from_app_url این متد برای دریافت لینک مستقیم از یک URL اپلیکیشن به کار می‌رود. پارامتر: url: URL اپلیکیشن برای استخراج لینک. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.get_link_from_app_url("https://...") print(result) get_wallet_transaction_message این متد برای دریافت پیام مرتبط با یک تراکنش کیف پول به کار می‌رود. پارامترها: transfer_id: شناسه تراکنش کیف پول. access_transfer: هش دسترسی تراکنش. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.get_wallet_transaction_message( transfer_id="transfer_123", access_transfer="access_hash_here" ) print(result) متدهای استیکر get_sticker_setting این متد برای دریافت تنظیمات استیکر کاربر فعلی به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: settings = app.get_sticker_setting() print(settings) get_my_sticker_sets این متد برای دریافت مجموعه استیکرهای متعلق به کاربر به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: stickers = app.get_my_sticker_sets() print(stickers) get_my_archived_sticker_sets این متد برای دریافت مجموعه استیکرهای آرشیو شده کاربر به کار می‌رود. پارامتر: start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: archived = app.get_my_archived_sticker_sets() print(archived) get_sticker_set_by_id این متد برای دریافت یک مجموعه استیکر با شناسه آن به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: sticker_set = app.get_sticker_set_by_id("sticker_set_id_123") print(sticker_set) get_stickers_by_set_ids این متد برای دریافت استیکرها با شناسه مجموعه‌های آن‌ها به کار می‌رود. پارامتر: sticker_set_ids: یک شناسه یا لیستی از شناسه‌های مجموعه استیکر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: stickers = app.get_stickers_by_set_ids(["id1", "id2", "id3"]) print(stickers) get_stickers_by_emoji این متد برای دریافت استیکرها بر اساس ایموجی به کار می‌رود. پارامترها: emoji: کاراکتر ایموجی. suggest_by: نوع پیشنهاد. (پیش‌فرض: All) مثال: from maxrubika import Messenger with Messenger("mySession") as app: stickers = app.get_stickers_by_emoji("😊") print(stickers) search_stickers این متد برای جستجوی استیکرها به کار می‌رود. پارامترها: search_text: متن جستجو. (پیش‌فرض: خالی) start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: results = app.search_stickers(search_text="سلام") print(results) get_trend_sticker_sets این متد برای دریافت مجموعه استیکرهای پرطرفدار به کار می‌رود. پارامتر: start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Messenger with Messenger("mySession") as app: trending = app.get_trend_sticker_sets() print(trending) add_sticker_set این متد برای افزودن یک مجموعه استیکر به مجموعه‌های کاربر به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_sticker_set("sticker_set_id_123") print(result) delete_sticker_set این متد برای حذف یک مجموعه استیکر از مجموعه‌های کاربر به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_sticker_set("sticker_set_id_123") print(result) archive_sticker_set این متد برای آرشیو کردن یک مجموعه استیکر به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.archive_sticker_set("sticker_set_id_123") print(result) reorder_sticker_sets این متد برای تغییر ترتیب مجموعه استیکرها در مجموعه کاربر به کار می‌رود. پارامتر: ordered_sticker_set_ids: یک شناسه یا لیستی از شناسه‌های مجموعه استیکر به ترتیب دلخواه. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.reorder_sticker_sets(["id3", "id1", "id2"]) print(result) متدهای گیف get_my_gif_set این متد برای دریافت مجموعه گیف‌های شخصی کاربر به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: gifs = app.get_my_gif_set() print(gifs) add_to_my_gif_set این متد برای افزودن یک گیف به مجموعه گیف‌های شخصی کاربر به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت حاوی گیف. message_id: شناسه پیام گیف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_to_my_gif_set("g0abc123...", message_id="123456") print(result) delete_my_gif_set این متد برای حذف یک گیف از مجموعه گیف‌های شخصی کاربر به کار می‌رود. پارامتر: file_id: شناسه فایل گیف. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_my_gif_set("file_id_123") print(result) delete_all_my_gif_set این متد برای حذف تمام گیف‌ها از مجموعه گیف‌های شخصی کاربر به کار می‌رود. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.delete_all_my_gif_set() print(result) متدهای پخش زنده get_live_status این متد برای دریافت وضعیت یک پخش زنده به کار می‌رود. پارامترها: live_id: شناسه پخش زنده. access_token: توکن دسترسی دریافت‌شده از پاسخ send_live. مثال: from maxrubika import Messenger with Messenger("mySession") as app: status = app.get_live_status(live_id="live_123", access_token="token_abc") print(status) get_live_comments این متد برای دریافت نظرات یک پخش زنده به کار می‌رود. پارامترها: live_id: شناسه پخش زنده. access_token: توکن دسترسی. مثال: from maxrubika import Messenger with Messenger("mySession") as app: comments = app.get_live_comments(live_id="live_123", access_token="token_abc") print(comments) get_live_play_url این متد برای دریافت URL پخش یک لایو به کار می‌رود. پارامترها: access_token: توکن دسترسی. live_id: شناسه پخش زنده. مثال: from maxrubika import Messenger with Messenger("mySession") as app: url = app.get_live_play_url(access_token="token_abc", live_id="live_123") print(url) add_live_comment این متد برای افزودن نظر به یک پخش زنده به کار می‌رود. پارامترها: access_token: توکن دسترسی. live_id: شناسه پخش زنده. comment: متن نظر. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.add_live_comment( access_token="token_abc", live_id="live_123", comment="نظر تستی" ) print(result) report_live این متد برای گزارش یک پخش زنده به کار می‌رود. پارامترها: live_id: شناسه پخش زنده برای گزارش. report_type: دلیل گزارش. می‌تواند: عدد بین ۱۰۰ تا ۱۰۶ نام رشته‌ای (بدون حساسیت به حروف بزرگ/کوچک): Other، Violence، Spam، Porn، ChildAbuse، Copyright، Fraud description: توضیحات گزارش. الزامی وقتی report_type برابر ۱۰۰ (Other) باشد. مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.report_live( live_id="live_123", report_type="Spam" ) print(result) متدهای بازخورد feedback_voice_transcription این متد برای ارسال بازخورد برای تبدیل صوت به متن به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام صوتی. feedback_type: نوع بازخورد. مقادیر قابل قبول: OK یا Incorrect. feedback_text: متن بازخورد. (اختیاری - در صورت عدم ارسال، از متن تبدیل‌شده استفاده می‌شود) مثال: from maxrubika import Messenger with Messenger("mySession") as app: result = app.feedback_voice_transcription( chat="u0abc123...", message_id="123456", feedback_type="OK" ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika دکوراتورها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents @app.on_new_message(*filters) @app.on_edit_message(*filters) @app.on_delete_message(*filters) @app.on_draft_message(*filters) @app.on_scheduled_message(*filters) @app.on_message(*filters) @app.on_add_reaction(*filters) @app.on_remove_reaction(*filters) @app.on_chat_updates(*filters) @app.on_call_signal(*filters) @app.on_call_update(*filters) @app.on_unconfirmed_session() @app.on_show_activities(*filters) @app.on_show_notifications(*filters) @app.on_remove_notifications(*filters) @app.on_voice_chat_participant(*filters) @app.on_voice_chat_update(*filters) دکوراتورها @app.on_new_message(*filters) فقط پیام‌های جدید را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_new_message() async def handler(event): print(f"پیام جدید: {event.text}") app.run() @app.on_edit_message(*filters) فقط پیام‌های ویرایش شده را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_edit_message() async def handler(event): print(f"پیام ویرایش شد: {event.text}") app.run() @app.on_delete_message(*filters) فقط پیام‌های حذف شده را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_delete_message() async def handler(event): print(f"پیام حذف شد: {event.message_id}") app.run() @app.on_draft_message(*filters) فقط پیام‌های بایگانی شده را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_draft_message() async def handler(event): print(f"پیش‌نویس پیام") app.run() @app.on_scheduled_message(*filters) فقط پیام‌های زمان‌بندی شده را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_scheduled_message() async def handler(event): print(f"پیام زمان‌بندی شده") app.run() @app.on_message(*filters) همه نوع پیام (جدید، ویرایش شده، حذف شده) را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_message() async def handler(event): print(f"پیام: {event.text}") app.run() @app.on_add_reaction(*filters) فقط آپدیت مربوط به اضافه شدن ری‌اکشن به پیام را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_add_reaction() async def handler(event): print(f"ری‌اکشن اضافه شد: {event.reactions}") app.run() @app.on_remove_reaction(*filters) فقط آپدیت مربوط به حذف شدن ری‌اکشن از پیام را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_remove_reaction() async def handler(event): print(f"ری‌اکشن حذف شد") app.run() @app.on_chat_updates(*filters) فقط آپدیت‌های چت را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_chat_updates() async def handler(event): print(f"بروزرسانی چت") app.run() @app.on_call_signal(*filters) فقط سیگنال مربوط به تماس صوتی و تصویری را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_call_signal() async def handler(event): print(f"سیگنال تماس") app.run() @app.on_call_update(*filters) فقط آپدیت مربوط به تماس صوتی و تصویری را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_call_update() async def handler(event): print(f"بروزرسانی تماس") app.run() @app.on_unconfirmed_session() فقط نشست‌های تایید نشده را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_unconfirmed_session() async def handler(event): print(f"نشست تأیید نشده") app.run() @app.on_show_activities(*filters) فقط اکشن‌های کاربران را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_show_activities() async def handler(event): print(f"فعالیت: {event.activity}") app.run() @app.on_show_notifications(*filters) فقط اعلانات را نمایش می‌دهد. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_show_notifications() async def handler(event): print(f"اعلان جدید") app.run() @app.on_remove_notifications(*filters) فقط اعلانات را حذف می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_remove_notifications() async def handler(event): print(f"اعلان حذف شد") app.run() @app.on_voice_chat_participant(*filters) فقط آپدیت مربوط به شرکت‌کنندگان در گفتگوی صوتی را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_voice_chat_participant() async def handler(event): print(f"تغییر شرکت‌کننده ویس چت") app.run() @app.on_voice_chat_update(*filters) فقط آپدیت مربوط به گفتگوی صوتی را دریافت می‌کند. مثال: from maxrubika import Messenger app = Messenger("mySession") @app.on_voice_chat_update() async def handler(event): print(f"بروزرسانی ویس چت") app.run() بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika فیلترها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents فیلترهای نوع رویداد فیلترهای چت و کاربر فیلترهای فایل و مدیا فیلترهای رویداد سیستمی فیلترهای ریپلای و فوروارد فیلترهای متن فیلترهای متادیتا و ری‌اکشن مثال‌های ترکیبی فیلترها فیلترها با & (AND)، | (OR) و ~ (NOT) ترکیب می‌شوند. # AND - پیام کاربر خاص در گروه @client.on_new_message(FromUser("u0abc...") & ChatType("group")) # OR - گروه یا کانال @client.on_new_message(ChatType("group") | ChatType("channel")) # NOT - هر چیزی غیر از خودم @client.on_new_message(~IsMe()) فیلترهای نوع رویداد فیلتر توضیح IsMessage() پیام جدید IsEdited() پیام ویرایش شده IsDeleted() پیام پاک شده فیلترهای چت و کاربر فیلتر توضیح مثال ChatType("user") نوع چت ChatType("group") ChatType("bot") فقط بات ChatType("bot") ChatType("service") فقط سرویس ChatType("service") ChatType(["group", "channel"]) چند نوع FromChat("id") چت خاص (GUID، نام‌کاربری یا لینک) FromChat("g0abc...") FromChat(["id1", "id2"]) چند چت FromUser("id") کاربر خاص FromUser("@Online_User") FromUser(["id1", "id2"]) چند کاربر FromBot("id") بات خاص FromBot("@MyBot") FromBot(["id1", "id2"]) چند بات FromActivity("id") فعالیت از کاربر خاص FromActivity("u0abc...") FromActivity(["id1", "id2"]) فعالیت از چند کاربر IsMe() پیام‌های خود کاربر فیلترهای فایل و مدیا فیلتر توضیح IsText() فقط پیام متنی (بدون فایل) IsImage() تصویر IsVideo() ویدئو (غیر گرد) IsVideoMessage() پیام ویدئویی (ویدئوی گرد) IsVoice() پیام صوتی (ویس) IsMusic() فایل موسیقی IsGif() گیف IsSticker() استیکر IsFile() فایل/سند IsContact() مخاطب IsLocation() موقعیت مکانی IsPoll() نظرسنجی IsLive() پخش زنده فیلترهای رویداد سیستمی فیلتر توضیح مثال IsEvent() هر رویداد سیستمی EventType("type") نوع خاص رویداد EventType("AddedGroupMembers") انواع رویداد: RemoveGroupMembers, AddedGroupMembers, PinnedMessageUpdated, TitleUpdate, PhotoUpdate, RemovePhoto, SetAutoDelete, JoinedGroupByLink, LeaveGroup, JoinedGroupByRequest, CreateGroupVoiceChat, StopGroupVoiceChat, GroupCreated, ChannelCreated فیلترهای ریپلای و فوروارد فیلتر توضیح IsReply() پیام ریپلای شده IsForwarded() هر نوع فوروارد ForwardedFromUser() فوروارد از کاربر ForwardedFromChannel() فوروارد از کانال ForwardedFromBot() فوروارد از بات ForwardedNoLink() فوروارد با هویت مخفی فیلترهای متن فیلتر توضیح مثال Text("pattern") متن شامل الگو باشد Text("سلام") TextMatch("pattern") مانند Text + ذخیره match TextMatch(r"اسم (\w+)") Command("name") دستور با / شروع شود Command("start") Command() هر دستوری Command(["start", "help"]) چند دستور Command("help", prefixes=["/", "!"]) با پیشوند دلخواه فیلترهای متادیتا و ری‌اکشن فیلتر توضیح مثال HasMetadata() پیام فرمت‌دار (Bold, Italic) MetadataType("Bold") نوع خاص MetadataType(["Bold", "Italic"]) HasReaction() پیام دارای ری‌اکشن مثال‌های ترکیبی # فقط تصاویر در گروه @client.on_new_message(IsImage() & ChatType("group")) async def group_images(event): await event.reply("تصویر در گروه دریافت شد!") # پیام متنی از کاربر خاص که ریپلای نباشد @client.on_new_message(FromUser("@Online_User") & IsText() & ~IsReply()) async def text_from_user(event): print(f"پیام: {event.text}") # دستور start یا help @client.on_new_message(Command(["start", "help"])) async def commands(event): await event.reply("در خدمتم!") # دستور با پیشوند دلخواه (مثلاً !help) @client.on_new_message(Command("help", prefixes=["/", "!"])) async def custom_prefix(event): await event.reply("دستور با پیشوند دلخواه!") # تشخیص نام با TextMatch @client.on_new_message(TextMatch(r"اسم من (\w+) هست")) async def name_catcher(event): name = event.pattern_match.group(1) await event.reply(f"سلام {name}!") # رویداد افزودن عضو به گروه @client.on_message(EventType("AddedGroupMembers")) async def new_member(event): print("کاربر جدید اضافه شد!") # پیام فوروارد شده از کانال @client.on_new_message(IsForwarded() & ForwardedFromChannel()) async def forwarded_from_channel(event): print("فوروارد از کانال") # چند کاربر خاص @client.on_new_message(FromUser(["u0abc...", "u0xyz..."])) async def multiple_users(event): print(f"پیام از یکی از کاربران خاص: {event.text}") # پیام از بات یا سرویس @client.on_new_message(ChatType(["bot", "service"])) async def bot_or_service(event): print("پیام از بات یا سرویس") بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika پراپرتی‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents اطلاعات پایه اطلاعات چت فایل و مدیا تشخیص نوع محتوا واکنش‌ها فوروارد اطلاعات بات متادیتا و رویداد متدهای کمکی (Helper Methods) متدهای ریپلای تخصصی متدهای مدیریتی پراپرتی‌ها همه هندلرها یک شیء event دریافت می‌کنند با پراپرتی‌های زیر: اطلاعات پایه پراپرتی توضیح نوع event.action نوع اکشن رویداد New, Edit, Delete event.type نوع رویداد str event.text متن پیام یا کپشن str event.message کل دیتای پیام Data event.message_id آیدی پیام str event.message_type نوع پیام Text, FileInline, Event, Sticker و... event.timestamp زمان رویداد (تایم‌استمپ) str event.original_data دیتای خام API dict event.author_guid آیدی فرستنده str event.author_type نوع فرستنده str event.author_title نام نمایشی فرستنده str event.is_mine پیام خودت؟ bool event.is_me پیام خودت؟ (بر اساس GUID) bool event.is_edited ویرایش شده؟ bool event.is_reply ریپلای؟ bool event.reply_to_message_id آیدی پیام ریپلای‌شده str یا None event.updated_parameters لیست پارامترهای آپدیت‌شده list event.pattern_match match آبجکت از فیلتر TextMatch Match یا None اطلاعات چت پراپرتی توضیح نوع event.chat_guid آیدی چت (object_guid) str event.chat_type نوع چت User, Group, Channel, ... event.is_group گروه؟ bool event.is_channel کانال؟ bool event.is_pv پیوی؟ bool event.is_bot بات؟ bool event.is_service سرویس؟ bool event.guid_type(chat_guid) نوع هر GUID (User, Group, Channel, Bot, Service) str فایل و مدیا پراپرتی توضیح نوع event.file_inline دیتای فایل (Data) Data یا None event.file_inline_raw دیتای فایل (dict خام) dict یا None event.file_type نوع فایل Image, Video, Voice, Music, Gif, File و... event.file_id آیدی فایل str event.file_name نام فایل str event.file_size سایز (بایت) int event.file_dc_id آیدی دیتاسنتر str event.file_access_hash هش دسترسی str event.file_width عرض (عکس/ویدیو) int event.file_height ارتفاع (عکس/ویدیو) int event.file_duration مدت (صوت/ویدیو) int event.file_mime MIME type str event.thumb_inline تصویر بندانگشتی str event.music_performer نام خواننده str event.is_round ویدیو دایره‌ای؟ bool تشخیص نوع محتوا پراپرتی توضیح event.is_text متن ساده؟ event.is_file_inline فایل اینلاین؟ (FileInline / FileInlineCaption) event.is_event رویداد سیستمی؟ event.is_image عکس؟ event.is_video ویدیو؟ event.is_video_message ویدیو دایره‌ای؟ event.is_voice ویس؟ event.is_music موزیک؟ event.is_gif گیف؟ event.is_file فایل (سند)؟ event.is_contact مخاطب؟ event.is_location موقعیت مکانی؟ event.is_poll نظرسنجی؟ event.is_live لایو؟ event.is_sticker استیکر؟ event.sticker دیتای استیکر (Data) event.sticker_raw دیتای استیکر (dict خام) واکنش‌ها پراپرتی توضیح نوع event.has_reaction واکنش دارد؟ bool event.reactions دیتای واکنش‌ها dict یا None فوروارد پراپرتی توضیح نوع event.is_forward فوروارد شده؟ bool event.forwarded_from اطلاعات فوروارد dict یا None event.forwarded_no_link فوروارد با هدایت بسته dict یا None event.forward_type_from نوع مبدأ User, Channel, Bot event.is_forwarded_from_user از کاربر؟ bool event.is_forwarded_from_channel از کانال؟ bool event.is_forwarded_from_bot از بات؟ bool event.is_forwarded_no_link هدایت بسته؟ bool اطلاعات بات پراپرتی توضیح نوع event.via_bot GUID باتی که پیام از طریقش فرستاده شده str یا None event.is_via_bot از طریق بات ارسال شده؟ bool متادیتا و رویداد پراپرتی توضیح نوع event.has_metadata فرمت‌دار؟ bool event.metadata دیتای متادیتا dict یا None event.metadata_types لیست نوع‌های متادیتا list event.event_data دیتای رویداد سیستمی dict یا None event.event_type نوع رویداد سیستمی AddedGroupMembers, PinnedMessageUpdated و... event.user_activity_guid شناسه کاربر در رویداد اکتیویتی str متدهای کمکی (Helper Methods) متد توضیح await event.reply("متن") ریپلای سریع await event.edit("متن جدید") ادیت پیام await event.delete() حذف پیام await event.copy() کپی در همان چت await event.copy("chat_guid") کپی به چت دیگر await event.forward() فوروارد در همان چت await event.forward("chat_guid") فوروارد به چت دیگر await event.pin() پین کردن پیام await event.unpin() آنپین کردن پیام await event.seen() علامت‌گذاری به‌عنوان دیده‌شده await event.add_reaction(id) افزودن واکنش await event.remove_reaction(id) حذف واکنش await event.download() دانلود فایل پیام await event.send_activity("Typing") ارسال اکتیویتی (Typing/Uploading/Recording) متدهای ریپلای تخصصی متد توضیح await event.reply_image() ریپلای عکس await event.reply_video() ریپلای ویدیو await event.reply_video_message() ریپلای ویدیو دایره‌ای await event.reply_gif() ریپلای گیف await event.reply_music() ریپلای موزیک await event.reply_voice() ریپلای ویس await event.reply_file() ریپلای فایل await event.reply_contact() ریپلای مخاطب await event.reply_location() ریپلای موقعیت مکانی await event.reply_poll() ریپلای نظرسنجی await event.reply_quiz() ریپلای کوییز متدهای مدیریتی متد توضیح await event.get_author() اطلاعات فرستنده await event.get_chat() اطلاعات چت await event.ban_member() بن کردن عضو await event.unban_member() آنبن کردن عضو await event.member_is_admin() آیا ادمین است؟ await event.block_user() بلاک کاربر await event.unblock_user() آنبلاک کاربر await event.mute_chat() بی‌صدا کردن چت await event.unmute_chat() لغو بی‌صدا await event.archive_chat() آرشیو چت await event.unarchive_chat() لغو آرشیو await event.delete_user_chat() حذف چت کاربر بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika مثال‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents ساخت سشن (Session) گرفتن همه چت‌ها ترکیب بات و سلف‌بات - دریافت لینک پست پروفایل دو تایی (Dual Avatar) نمایش چت اکشن فیک بررسی عضویت کاربر (Check Join) ساعت زنده در عنوان گروه ساعت زنده در عنوان کانال مثال‌ها ساخت سشن (Session) from maxrubika import Messenger with Messenger("mySession") as app: pass گرفتن همه چت‌ها from maxrubika import Messenger with Messenger("mySession") as app: chats = app.get_chats() print(chats) ترکیب بات و سلف‌بات - دریافت لینک پست import re from maxrubika import Bot, Messenger from maxrubika.bot.filters import Text bot = Bot("Token") # توکن بات خود را اینجا وارد کنید. app = Messenger("mySession") # سشن اکانت خود را اینجا وارد کنید. app.start() @bot.on_message(Text(re.compile(r'https://rubika\.ir/\w+/[A-Z]+', re.IGNORECASE))) async def get_post(bot, event): link = event.text.strip() try: result = await app.get_channel_post_by_link(link) ask_spam_link = result.ask_spam_link if ask_spam_link: await event.reply(f"**لینک پست مورد نظر آماده شد:\n\n>**{ask_spam_link}") else: await event.reply("**خطایی رخ داد.**") except Exception as e: print(e) await event.reply(f"**لطفاً لینک معتبر وارد شود.**") bot.run() پروفایل دو تایی (Dual Avatar) from maxrubika import Messenger with Messenger("mySession") as app: # نام سشن خود را اینجا وارد کنید image1 = "IMG_20260711_083318_110.jpg" # عکس دور image2 = "IMG_20260711_000458.jpg" # عکس نزدیک target = "me" # برای گروه یا کانال، لینک یا شناسه آن را وارد کنید result = app.upload_avatar(target, image2, image1) print(result) نمایش چت اکشن فیک from maxrubika import Messenger from maxrubika.client.filters import IsMe app= Messenger("mySession") # نام سشن اکانت خود را اینجا وارد کنید activity = "Typing" # نوع فعالیت را اینجا وارد کنید، می‌توانید کلمه Recording برای ضبط پیام صوتی یا Uploading را برای ارسال فایل، وارد کنید @app.on_new_message(~IsMe()) async def i(event): await event.send_activity(activity) app.run() بررسی عضویت کاربر (Check Join) from maxrubika import Messenger with Messenger("mySession") as app: target = "Link" # شناسه، لینک یا آیدی کانال/گروه member = "@Online_User" # شناسه یا نام‌کاربری کاربر result = app.check_join(target, member) print(result) ساعت زنده در عنوان گروه import asyncio, pytz from datetime import datetime, timedelta from maxrubika import Messenger SESSION = "mySession" # نام سشن اکانت خود اینجا وارد شود CHAT_LINK = "" # لینک گروه خود اینجا وارد شود SHOW_SECONDS = True # اگر می‌خواهید ثانیه نمایش داده نشود، False وارد کنید IRAN_TZ = pytz.timezone("Asia/Tehran") def now_iran() -> datetime: return datetime.now(IRAN_TZ) async def main(): async with Messenger(SESSION) as app: chat_guid = await app.get_guid(CHAT_LINK) info = await app.get_group_info(chat_guid) name = info.group_title try: await app.edit_group_info(chat_guid, event_messages=False) print("✅ پیام‌های شیشه‌ای غیرفعال شد.") except Exception as e: print(f"⚠️ خطا در غیرفعال کردن پیام شیشه‌ای: {e}") print(f"⏳ ساعت زنده روی اسم گروه '{name}' فعال شد...") while True: current_time = now_iran() if SHOW_SECONDS: time_str = current_time.strftime("%H:%M:%S") new_title = f"{name} | {time_str}" try: await app.edit_group_title(chat_guid, new_title) except Exception as e: print(f"❌ خطا در تغییر نام گروه: {e}") await asyncio.sleep(1) else: time_str = current_time.strftime("%H:%M") new_title = f"{name} | {time_str}" try: await app.edit_group_title(chat_guid, new_title) except Exception as e: print(f"❌ خطا در تغییر نام گروه: {e}") next_minute = (current_time + timedelta(minutes=1)).replace(second=0, microsecond=0) await asyncio.sleep((next_minute - current_time).total_seconds()) asyncio.run(main()) ساعت زنده در عنوان کانال import asyncio, pytz from datetime import datetime, timedelta from maxrubika import Messenger SESSION = "mySession" # نام سشن اکانت خود اینجا وارد شود CHAT_LINK = "" # لینک کانال خود اینجا وارد شود IRAN_TZ = pytz.timezone("Asia/Tehran") def now_iran() -> datetime: return datetime.now(IRAN_TZ) async def main(): async with Messenger(SESSION) as app: chat_guid = await app.get_guid(CHAT_LINK) info = await app.get_channel_info(chat_guid) name = info.channel.channel_title print(f"⏳ ساعت زنده روی اسم کانال '{name}' فعال شد...") while True: current_time = now_iran() time_str = current_time.strftime("%H:%M") new_title = f"{name} | {time_str}" try: result = await app.edit_channel_title(chat_guid, new_title) msg_id = result.message_id await app.delete_messages(chat_guid, [msg_id]) except Exception as e: print(f"❌ خطا در تغییر نام کانال: {e}") next_minute = (current_time + timedelta(minutes=1)).replace(second=0, microsecond=0) await asyncio.sleep((next_minute - current_time).total_seconds()) asyncio.run(main()) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika توضیحات بیشتر Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents راهنمای شناسه‌های گفتگو (GUID) نکته: راهنمای فایل سشن (Session) فایل سشن چیست؟ مزایای استفاده از فایل سشن: راهنمای استرینگ سشن (StringSession) و امنیت آن مزایای StringSession: ساخت StringSession از سشن فعلی: استفاده از StringSession برای ساخت کلاینت: پارامتر مربوط به متد get_string_session: نکات مهم: راهنمای متادیتا در متن پیام نمونه‌های ترکیبی پیشرفته راهنمای ایجاد کلاینت (Messenger) روش‌های احراز هویت نکات: نحوه اتصال و قطع اتصال روش اول: استفاده از Context Manager حالت Sync: حالت Async: روش دوم: صدا زدن متد start و disconnect یا close حالت Sync: حالت Async: نکته مهم: مثال: استفاده از دکوراتور (بدون نیاز به قطع دستی) راهنمای ورودی‌های متدها (Input Methods) انعطاف‌پذیری در شناسایی مخاطبان و گروه‌ها ویژگی‌های کلیدی: ⚠️ نکته مهم درباره ورودی‌های لینک و یوزرنیم مثال‌های عملی نکات مهم: توضیحات بیشتر راهنمای شناسه‌های گفتگو (GUID) شناسه‌های گفتگو در پلتفرم روبیکا از قاعده‌ی مشخصی پیروی می‌کنند که آگاهی از آن برای عملکرد صحیح کتابخانه ضروری است: نوع گفتگو پیشوند طول مثال کاربر u0 ۳۲ کاراکتر u0Hzgbk0ac24729c1d1a5d55c26ac3ef بات b0 ۳۲ کاراکتر b0Hzgbk0ac24729c1d1a5d55c29ac5ag گروه g0 ۳۲ کاراکتر g0G3R190567fa33c5f5ee7d399a104e8 کانال c0 ۳۲ کاراکتر c0Hzgbk0ac24729c1d1a5d55c26ac3ef سرویس s0 ۳۲ کاراکتر s0abcdefghijklmnopqrstuvwxyz12 نکته: شناسه گفتگو (GUID) با Chat ID که مختص سرور بات است متفاوت می‌باشد: GUID: شناسه عمومی و یکتا برای تمام بخش‌های روبیکا. Chat ID: مختص سرور بات است و برای ارتباط با API بات استفاده می‌شود. راهنمای فایل سشن (Session) فایل سشن چیست؟ فایل نشست (Session) یک فایل است که کتابخانه پس از اولین ورود موفق (شماره تلفن و کد تأیید) ایجاد می‌کند. این فایل شامل اطلاعات احراز هویت شماست و در دفعات بعدی، دیگر نیازی به وارد کردن مجدد شماره و کد نخواهید داشت. مزایای استفاده از فایل سشن: عدم نیاز به ورود مجدد - پس از اولین بار، نیازی به وارد کردن شماره و کد نیست. سرعت بالا - اتصال سریع‌تر به سرور. امنیت - اطلاعات به صورت رمزنگاری شده ذخیره می‌شوند. سازگاری با سایر کتابخانه‌ها - فایل‌های نشست کتابخانه‌های دیگر (مانند rubpy و pyrubi) نیز قابل استفاده هستند. راهنمای استرینگ سشن (StringSession) و امنیت آن فایل سشن معمولی (Session) اطلاعات احراز هویت شما را در یک فایل روی دیسک ذخیره می‌کند. اما در برخی محیط‌ها (مثل سرورهای ابری، محیط‌های Docker یا اجرای ربات در جاهایی که دسترسی به فایل‌سیستم محدود است) نمی‌توانید به راحتی فایل سشن را نگه دارید. StringSession یک راهکار جایگزین برای ذخیره و انتقال سشن است. به جای ذخیره در فایل، سشن به صورت یک رشته رمزنگاری‌شده در می‌آید و می‌توانید آن را در متغیرهای محیطی، فایل‌های تنظیمات یا هر جای دیگری نگه دارید. مزایای StringSession: عدم وابستگی به فایل‌سیستم: می‌توانید سشن را در متغیرهای محیطی (Environment Variables) ذخیره کنید. مناسب برای Heroku، Docker، Railway و... . رمزنگاری با رمز عبور: می‌توانید StringSession را با یک رمز عبور محافظت کنید. حتی اگر رشته لو برود، بدون رمز عبور قابل استفاده نیست. انتقال آسان: می‌توانید StringSession را بین سیستم‌ها یا سرورهای مختلف کپی کنید. امنیت بیشتر: اطلاعات حساس به‌صورت رمزنگاری‌شده ذخیره می‌شوند. اولویت بر فایل سشن: اگر هم session و هم string_session را بدهید، string_session استفاده می‌شود. ساخت StringSession از سشن فعلی: با استفاده از متد get_string_session() می‌توانید سشن فعلی خود را به یک رشته رمزنگاری‌شده تبدیل کنید: from maxrubika import Messenger with Messenger("mySession") as app: # بدون رمز عبور print(app.get_string_session()) # با رمز عبور (امن‌تر) print(app.get_string_session(password="my_secret_password") استفاده از StringSession برای ساخت کلاینت: from maxrubika import Messenger # بدون رمز عبور with Messenger(string_session="ENCRYPTED_STRING") as app: print(app.get_me()) # با رمز عبور with Messenger(string_session="ENCRYPTED_STRING", password="my_secret_password") as app: print(app.get_me()) پارامتر مربوط به متد get_string_session: پارامتر نوع پیش‌فرض توضیح password str None رمز عبور برای رمزگشایی string_session (در صورت استفاده). نکات مهم: اولویت string_session: اگر هم session و هم string_session را بدهید، string_session استفاده می‌شود. رمز عبور را نگه دارید: اگر StringSession را با رمز عبور بسازید، حتماً رمز را جای امنی نگه دارید. بدون آن، StringSession قابل بازیابی نیست. مخصوص API v6: استفاده از string_session فقط در api_version=6 پشتیبانی می‌شود. سازگاری: StringSession ساخته‌شده با کتابخانه MAXRubika فقط در همین کتابخانه قابل استفاده است. مدیریت خطا: اگر StringSession نامعتبر باشد یا رمز عبور اشتباه باشد، خطای SessionError برگردانده می‌شود. راهنمای متادیتا در متن پیام برای غنی‌سازی متن پیام‌ها و ایجاد قالب‌بندی پیشرفته، می‌توانید از متادیتاهای زیر استفاده کنید. هر متادیتا با علامت‌های مشخصی در ابتدا و انتهای عبارت اعمال می‌شود: نوع قالب‌بندی علامت‌ها مثال برجسته (Bold) ** **سلام دوست عزیز!** کج (Italic) __ __این یک جمله تست است.__ اسپویل (Spoiler) || ||متن اسپویل شده|| نقل قول (Quote) > (فقط ابتدا) > سلام! زیرخط (Underline) -- --تست-- خط‌خورده (Strikethrough) ~~ ~~عالی و قوی~~ مونو (Monospace) ` `بی‌نظیر` بلاک کد (Code Block) ``` ``` کد ``` هایپرلینک [متن](لینک) [کلیک کنید](https://example.com) منشن (Mention) [متن](sender_id) [مدیر](u0...) نمونه‌های ترکیبی پیشرفته مثال ۱ - ترکیب چند متادیتا: > __سلام__ [کاربر عزیز](u0) --به کتابخانه‌ی-- **MAXRubika** ||خوش آمدید||! مثال ۲ - متادیتای تودرتو: > ||__**این یک جمله از کتابخانه --MAXRubika-- است.**__|| توجه: حداکثر تعداد متادیتا در هر پیام ۳۰ مورد است و می‌توانید از ترکیب‌های مختلف به‌صورت همزمان استفاده کنید. برای اعمال متادیتا بر روی پیام، می‌بایست علامت‌ها را اول و آخر جمله قرار دهید، اگر در اول و آخر متن قرار دهید، متادیتا اعمال نمی‌شود. (به جز علامت های بلاک کد) راهنمای ایجاد کلاینت (Messenger) برای ایجاد یک نمونه از کلاینت MAXRubika، می‌توانید از پارامترهای زیر استفاده کنید: پارامتر توضیح نوع پیش‌فرض session نام یا مسیر فایل نشست (فقط api_version=6) str None string_session نشست به صورت رشته (اولویت بر session) str None password رمز عبور برای رمزگشایی string_session str None auth کلید احراز هویت str None private_key کلید خصوصی RSA (فقط api_version=6) str یا bytes None timeout مدت زمان انتظار برای درخواست (ثانیه) int/float 30 proxy آدرس پروکسی str None logger نمونه Logger logging.Logger None platform پلتفرم کلاینت web, pwa, android, rubx, rubikids, rubino pwa api_version نسخه API 5 یا 6 6 max_retries حداکثر تعداد تلاش مجدد int 5 stop_on_first_match توقف پس از اولین تطابق هندلر bool False continue_on_error ادامه تلاش سایر پلتفرم‌ها در صورت خطای auth bool True show_welcome نمایش پیام خوش‌آمدگویی bool True روش‌های احراز هویت روش ۱: استفاده از نشست (Session) - مخصوص API v6 from maxrubika import Messenger with Messenger("mySession") as app: # کد شما pass روش ۲: استفاده از String Session - مخصوص API v6 from maxrubika import Messenger with Messenger(string_session="ENCRYPTED_STRING", password="my_pass") as app: # کد شما pass روش ۳: استفاده از Auth و Private Key - مخصوص API v6 from maxrubika import Messenger with Messenger( auth="abcdefghijklmnopqrstuvwxyz12", private_key="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" ) as app: # کد شما pass روش ۴: استفاده از Auth - مخصوص API v5 from maxrubika import Messenger with Messenger( auth="abcdefghijklmnopqrstuvwxyz12", api_version=5 ) as app: # کد شما pass نکات: در API v6 باید session یا string_session یا هر دو auth و private_key ارائه شود. در API v5 فقط auth نیاز است و private_key پشتیبانی نمی‌شود. مقدار auth باید دقیقاً ۳۲ حرف کوچک انگلیسی باشد. continue_on_error در صورت True بودن، در صورت خطا دادن، پلتفرم‌های دیگر را امتحان می‌کند. Messenger در واقع نسخهٔ جدیدتر و جایگزین Client است. استفاده از Client منقضی شده است. نحوه اتصال و قطع اتصال برای برقراری و قطع اتصال در کتابخانه MAXRubika، دو روش اصلی وجود دارد که بسته به نوع استفاده (Sync یا Async) و نیاز پروژه، می‌توانید یکی را انتخاب کنید. روش اول: استفاده از Context Manager در این روش نیازی به صدا زدن متد اضافه‌ای برای قطع اتصال نیست؛ کافی است از with (در حالت Sync) یا async with (در حالت Async) استفاده کنید. اتصال به‌صورت خودکار برقرار می‌شود و در پایان بلوک، به‌درستی بسته خواهد شد. حالت Sync: from maxrubika import Messenger with Messenger("mySession") as app: me = app.get_me() print(me) همچنین می‌توانید ابتدا شیء را بسازید و سپس از with استفاده کنید: from maxrubika import Messenger app = Messenger("mySession") with app: me = app.get_me() print(me) حالت Async: import asyncio from maxrubika import Messenger async def main(): async with Messenger("mySession") as app: me = await app.get_me() print(me) asyncio.run(main()) یا ساخت جداگانه‌ی شیء و سپس استفاده از async with: import asyncio from maxrubika import Messenger async def main(): app = Messenger("mySession") async with app: me = await app.get_me() print(me) asyncio.run(main()) روش دوم: صدا زدن متد start و disconnect یا close در این روش، خودتان به‌صورت دستی اتصال را برقرار می‌کنید (با متد start) و در انتهای عملیات، با صدا زدن متد مناسب (disconnect در Sync و close در Async)، اتصال را می‌بندید. حالت Sync: from maxrubika import Messenger app = Messenger("mySession") app.start() # برقراری اتصال me = app.get_me() print(me) app.disconnect() # قطع اتصال در پایان عملیات حالت Async: import asyncio from maxrubika import Messenger async def main(): app = Messenger("mySession") await app.start() # برقراری اتصال me = await app.get_me() print(me) await app.close() # قطع اتصال در پایان عملیات asyncio.run(main()) نکته مهم: استفاده از این روش‌ها فقط زمانی لازم است که بخواهید یک عملیات موقت با کتابخانه انجام دهید (مثلاً دریافت اطلاعات یک‌باره‌ی یک شیء). اگر از دکوراتورها استفاده می‌کنید و وب‌سوکت را فعال کرده‌اید، نیازی به صدا زدن disconnect یا close یا استفاده از Context Manager نیست؛ زیرا کتابخانه خودش مدیریت اتصال را در طول اجرا به عهده دارد. مثال: استفاده از دکوراتور (بدون نیاز به قطع دستی) from maxrubika import Messenger from maxrubika.client.filters import Command app = Messenger("mySession") @app.on_new_message(Command("start")) async def start(event): await event.reply("سلام، پیام شما دریافت شد.") app.run() در این حالت، کتابخانه به‌طور خودکار اتصال را در طول اجرای ربات مدیریت می‌کند و نیازی به فراخوانی متدهای disconnect یا close نخواهد بود. راهنمای ورودی‌های متدها (Input Methods) انعطاف‌پذیری در شناسایی مخاطبان و گروه‌ها تمامی متدهای کتابخانه MAXRubika که با گروه‌ها، کانال‌ها، گفتگوهای خصوصی یا هر نوع چت دیگری سروکار دارند، از سه روش مختلف برای شناسایی هدف پشتیبانی می‌کنند: روش ورودی فرمت مثال GUID شناسه یکتا با پیشوند g0, c0, u0, b0 g0G3R190567fa33c5f5ee7d399a104e8 یوزرنیم نام کاربری با یا بدون @ @MyChannel یا MyChannel لینک دعوت لینک عضویت در گروه/کانال https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD ویژگی‌های کلیدی: پشتیبانی از @: در هنگام استفاده از یوزرنیم، وجود یا عدم وجود علامت @ در ابتدا تفاوتی ندارد و کتابخانه به‌صورت خودکار آن را تشخیص می‌دهد. تشخیص هوشمند: کتابخانه به‌صورت خودکار نوع ورودی را تشخیص داده و پردازش مناسب را انجام می‌دهد. سازگاری کامل: تمامی متدهایی که شامل پارامترهای chat، group، channel هستند، از این قابلیت پشتیبانی می‌کنند. ⚠️ نکته مهم درباره ورودی‌های لینک و یوزرنیم اگر برای ورودی چت از لینک یا یوزرنیم استفاده می‌کنید، بهتر است این روش را فقط در متدهایی به‌کار ببرید که تعداد دفعات فراخوانی آن‌ها کم است. اما اگر قرار است یک متد را بارها یا داخل حلقه فراخوانی کنید، توصیه می‌شود ابتدا با استفاده از get_guid شناسه را یک‌بار دریافت کرده و سپس همان مقدار را به متدهای بعدی ارسال کنید. دلیل: وقتی لینک یا یوزرنیم ارسال می‌کنید، کتابخانه ابتدا یک درخواست برای تبدیل آن به guid ارسال می‌کند و سپس درخواست اصلی متد را اجرا می‌کند. در نتیجه هر بار فراخوانی عملاً دو درخواست به API ارسال می‌شود. عواقب تکرار این روند: - افزایش غیرضروری تعداد درخواست‌ها به API - کاهش عملکرد (Performance) برنامه - افزایش احتمال رسیدن به محدودیت نرخ درخواست (Rate Limit) مثال غیربهینه: from maxrubika import Messenger with Messenger("mySession") as app: for _ in range(5): app.get_chat_info("@YaserDev") مثال بهینه: from maxrubika import Messenger with Messenger("mySession") as app: guid = app.get_guid("@YaserDev") for _ in range(5): app.get_chat_info(guid) مثال‌های عملی مثال ۱ - افزودن اعضا به گروه با روش‌های مختلف: from maxrubika import Messenger with Messenger("mySession") as app: try: result = app.add_members( chat="g0abc123...", # یا لینک دعوت members=["@User1", "User2", "u0xyz789..."] # ترکیب یوزرنیم و GUID ) print(result) except Exception as e: print(f"خطا: {e}") مثال ۲ - تنظیم ادمین با استفاده از لینک دعوت و یوزرنیم: from maxrubika import Messenger with Messenger("mySession") as app: try: result = app.set_admin( chat="https://rubika.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", # لینک دعوت member="@NewAdmin", # یوزرنیم با @ access=["BanMember", "PinMessages", "ChangeInfo"], custom_title="مدیر ارشد" ) print(result) except Exception as e: print(f"خطا: {e}") مثال ۳ - ارسال پیام به کانال با GUID و یوزرنیم: from maxrubika import Messenger with Messenger("mySession") as app: try: app.send_message( chat="c0Hzgbk0ac24729c1d1a5d85c26ac3ef", text="**پیام تستی**" ) app.send_message( chat="MyChannel", text="__پیام دوم__" ) except Exception as e: print(f"خطا: {e}") نکات مهم: در تمامی متدها، پارامتر مربوط به شناسایی چت (chat, group, channel) از هر سه روش ورودی پشتیبانی می‌کند. در پارامترهای مربوط به اعضا (members, member, user) نیز می‌توانید از GUID یا یوزرنیم استفاده کنید. در صورت نامعتبر بودن ورودی، کتابخانه خطای مناسب را نمایش می‌دهد. بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika بات‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_bot_info get_inline_bots get_service_info start_bot stop_bot delete_bot_chat delete_service_chat بات‌ها get_bot_info این متد برای دریافت اطلاعات یک بات به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. همچنین می‌توانید مستقیماً GUID بات (که با b0 شروع می‌شود) را نیز پاس دهید. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_bot_info("@ShowInfoBot") print(info) get_inline_bots این متد برای دریافت اطلاعات یک یا چند بات اینلاین به کار می‌رود. پارامتر: bots: یک بات یا لیستی از بات‌ها (شناسه GUID یا نام‌کاربری). نکته: اگر یک رشته پاس دهید، کتابخانه به‌صورت خودکار آن را در یک لیست قرار می‌دهد. مثال: from maxrubika import Shad with Shad("mySession") as app: # یک بات info = app.get_inline_bots("@ShowInfoBot") print(info) # چند بات infos = app.get_inline_bots(["@ShowInfoBot", "@TestBot"]) print(infos) get_service_info این متد برای دریافت اطلاعات یک سرویس به کار می‌رود. پارامتر: service: شناسه (GUID) سرویس مورد نظر. باید با s0 شروع شده و مجموعاً ۳۲ کاراکتر باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_service_info("s0abcdefghijklmnopqrstuvwxyz12") print(info) start_bot این متد برای ارسال دستور /start به یک بات و راه‌اندازی آن به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.start_bot("@TestBot") print(result) stop_bot این متد برای متوقف کردن یک بات به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.stop_bot("@TestBot") print(result) delete_bot_chat این متد برای حذف تاریخچه چت با یک بات به کار می‌رود. پارامتر: bot: شناسه (GUID) یا نام‌کاربری بات مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_bot_chat("@TestBot") print(result) delete_service_chat این متد برای حذف تاریخچه چت با یک سرویس به کار می‌رود. پارامتر: service: شناسه (GUID) سرویس مورد نظر. باید با s0 شروع شده و مجموعاً ۳۲ کاراکتر باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_service_chat("s0abcdefghijklmnopqrstuvwxyz12") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika کانال‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents check_channel_username create_channel delete_channel edit_channel_info edit_channel_title get_channel_admin_access get_channel_admins get_channel_info get_channel_link get_channel_members get_channel_post_by_link get_channel_seen_count get_channel_statistics join_channel leave_channel seen_channel_messages set_channel_link set_channel_type update_channel_username کانال‌ها check_channel_username این متد برای بررسی وضعیت یک نام‌کاربری به کار می‌رود. با استفاده از آن می‌توان تعیین کرد که نام‌کاربری مورد نظر آزاد است یا پیش‌تر ثبت شده است. پارامتر: username: نام‌کاربری مورد نظر برای بررسی. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: check = app.check_channel_username("@Undefined") print(check) create_channel این متد برای ایجاد یک کانال جدید به کار می‌رود. پارامترها: title: عنوان کانال. (حداکثر ۶۰ کاراکتر، نمی‌تواند خالی باشد) members: لیست اعضای اولیه کانال. نام‌کاربری و GUID هر دو قابل قبول هستند. فقط کاربران (u0) و بات‌ها (b0) مجاز هستند. (پیش‌فرض: None) channel_type: نوع کانال. مقادیر قابل قبول: Public یا Private. (پیش‌فرض: Public) description: متن بیوگرافی کانال. (حداکثر ۳۰۰ کاراکتر، پیش‌فرض: None) avatar: تصویر آواتار کانال. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) thumbnail_avatar: تصویر بندانگشتی آواتار کانال. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. نکته: اگر فقط avatar داده شود، بندانگشتی از همان تصویر گرفته می‌شود. اگر هیچ‌کدام داده نشود، آواتاری تنظیم نمی‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.create_channel( title="کانال تست", members=["Online_User", "@ShowInfoBot", "@Cipher", "ir_maxware", "u0HryBf03dbfba68374497983bc850a0"], channel_type="Public", description="این یک کانال تست است.", avatar="avatar.jpg" ) print(action) delete_channel این متد برای حذف یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. confirm: در صورت True بودن، قبل از حذف از کاربر تأیید گرفته می‌شود (y/n). در صورت False بودن، بدون پرسش حذف می‌شود. (پیش‌فرض: True) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. توجه: در حالت confirm=True، برای تکمیل عملیات حذف باید حرف y را در کنسول وارد نمایید. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.delete_channel("c0CyVlK0cae995e5b46031170a358a4e") print(action) # حذف بدون تأیید action = app.delete_channel("c0CyVlK0cae995e5b46031170a358a4e", confirm=False) print(action) edit_channel_info این متد برای ویرایش تنظیمات یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. title: عنوان جدید کانال. (حداکثر ۶۰ کاراکتر، نمی‌تواند خالی باشد) description: بیوگرافی جدید کانال. (حداکثر ۳۰۰ کاراکتر) username: نام‌کاربری جدید کانال. (حداقل ۷ و حداکثر ۳۲ کاراکتر) channel_type: نوع کانال (Public یا Private). sign_messages: تعیین می‌کند که نام نویسندگان زیر پیام‌های کانال نمایش داده شود یا خیر. is_restricted_content: تعیین می‌کند که امکان اسکرین‌شات یا ذخیره محتوای کانال برای اعضا محدود شود یا خیر. reactions: تنظیمات ری‌اکشن. مقادیر قابل قبول: All (فعال‌سازی همه)، Disable (غیرفعال‌سازی همه)، یا لیستی از اعداد (فعال‌سازی ری‌اکشن‌های خاص). نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.edit_channel_info( channel="https://rubika.ir/joinc/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", title="کانال من", username="infoChannel1234", channel_type="Public", description="درباره‌ی من.", reactions=[1, 2, 3, 5, 7, 9, 12, 20], sign_messages=True ) print(action) edit_channel_title این متد برای ویرایش عنوان یک کانال به کار می‌رود. این متد میانبری برای edit_channel_info با پارامتر title است. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. title: عنوان جدید کانال. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.edit_channel_title("@TheProgrammer", "new title") print(action) get_channel_admin_access این متد برای دریافت سطح دسترسی‌های یک ادمین در کانال هدف به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. admin: نام‌کاربری یا شناسه (GUID) ادمین مورد نظر. نکات: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. تنها در صورتی می‌توانید دسترسی‌های یک ادمین را مشاهده کنید که شما او را ادمین کرده باشید یا مالک کانال باشید؛ در غیر این صورت با خطا مواجه خواهید شد. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.get_channel_admin_access("@TheProgrammer", "@Online_User") print(action) get_channel_admins این متد برای دریافت فهرست کامل ادمین‌های یک کانال به کار می‌رود. این متد به صورت خودکار تمام صفحات را پیمایش می‌کند و همه ادمین‌ها را بازمی‌گرداند. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. show_admin_guids: در صورت True بودن، شناسه (GUID) ادمین‌ها نیز به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.get_channel_admins("CodeYaran") print(action) get_channel_info این متد برای دریافت اطلاعات یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.get_channel_info("MEH2RAB") print(action) get_channel_link این متد برای دریافت لینک خصوصی یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: action = app.get_channel_link("c0G3R19035f77574adc0127ab97c999c") print(action) get_channel_members این متد برای دریافت فهرست اعضای یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. search_text: عبارت مورد نظر برای جستجو در میان اعضا، مانند نام‌کاربری. (پیش‌فرض: None) start_id: شناسه شروع برای دریافت صفحه‌بندی‌شده اعضا. (پیش‌فرض: None) نکات: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. به دلیل محدودیت‌های سرور روبیکا، این متد فقط 100 عضو آخر را نمایش می‌دهد. مثال‌ها: نمایش اعضای کانال: from maxrubika import Shad with Shad("mySession") as app: action = app.get_channel_members("c0G3R19035f77574adc0127ab97c999c") print(action) جستجوی یک کاربر خاص: from maxrubika import Shad with Shad("mySession") as app: action = app.get_channel_members("PythonChannel", search_text="@ir_MAXWare") print(action) get_channel_post_by_link این متد برای دریافت اطلاعات یک پیام کانال از طریق لینک آن پیام به کار می‌رود. خروجی شامل اطلاعات کانال، متن پیام و زمان ارسال است. پارامتر: url: لینک پیام کانال. نکته: فرمت معتبر لینک پیام کانال به صورت زیر است: https://rubika.ir/RubiFAQ/BICEGHDGFBGJHCCD مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_channel_post_by_link("https://rubika.ir/RubiFAQ/BICEGHDGFBGJHCCD") print(info) get_channel_seen_count این متد برای دریافت آمار بازدید بازه‌ای از پیام‌های یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. min_id: شناسه (message_id) پیام آغازین بازه. max_id: شناسه (message_id) پیام پایانی بازه. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.get_channel_seen_count("CodeYaran", 157896351047, 189720063713) print(result) get_channel_statistics این متد برای دریافت تمام آمارهای یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: stats = app.get_channel_statistics("CodeYaran") print(stats) join_channel این متد برای عضویت در یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.join_channel("@TheComputeriha") print(result) leave_channel این متد برای خروج از یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.leave_channel("@Rubika") print(result) seen_channel_messages این متد برای علامت‌گذاری بازه‌ای از پیام‌های یک کانال به عنوان دیده‌شده به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. min_id: شناسه (message_id) پیام آغازین بازه. max_id: شناسه (message_id) پیام پایانی بازه. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.seen_channel_messages("@PythonChannel", 11231014101, 52415414554) print(result) set_channel_link این متد برای تنظیم لینک خصوصی یک کانال به کار می‌رود. پارامتر: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_channel_link("@PC_and_Mobile") print(result) set_channel_type این متد برای تغییر نوع کانال (عمومی یا خصوصی) به کار می‌رود. این متد میانبری برای edit_channel_info با پارامتر channel_type است. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. channel_type: نوع کانال. مقادیر قابل قبول: Public یا Private. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_channel_type("@Undefined", channel_type="Private") print(result) update_channel_username این متد برای به‌روزرسانی نام‌کاربری یک کانال به کار می‌رود. پارامترها: channel: لینک، نام‌کاربری یا شناسه (GUID) کانال هدف. username: نام‌کاربری جدید. (حداقل ۷ و حداکثر ۳۲ کاراکتر، فقط حروف انگلیسی، اعداد و زیرخط) نکات: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. نام‌کاربری نمی‌تواند با عدد یا زیرخط شروع شود یا به زیرخط ختم شود و باید حداقل شامل یک حرف باشد. اگر username رشته خالی باشد، نام‌کاربری کانال حذف می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.update_channel_username("TheProgrammer", username="TheProgrammer2") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika گروه‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_group_info get_group_link set_group_link get_group_online_count create_group delete_group join_group leave_group edit_group_info edit_group_title edit_group_timer edit_slow_mode get_group_admins get_group_admin_access get_group_default_access set_group_default_access lock_group unlock_group get_group_members get_group_mention_list get_unread_mentions get_group_message_read_participants گروه‌ها get_group_info این متد برای دریافت اطلاعات یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. نکته: شناسه گروه باید با g0 شروع شده و ۳۲ کاراکتر باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_group_info("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(info) get_group_link این متد برای دریافت لینک خصوصی یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Shad with Shad("mySession") as app: link = app.get_group_link("g0G3R19035f77574adc0127ab97c999c") print(link) set_group_link این متد برای تنظیم لینک خصوصی یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_group_link("g0G3R19035f77574adc0127ab97c999c") print(result) get_group_online_count این متد برای دریافت تعداد اعضای آنلاین یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Shad with Shad("mySession") as app: count = app.get_group_online_count("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(count) create_group این متد برای ایجاد یک گروه جدید به کار می‌رود. پارامترها: title: عنوان گروه. (حداکثر ۶۰ کاراکتر، نمی‌تواند خالی باشد) members: یک عضو یا لیستی از اعضا (GUID یا نام‌کاربری). حداقل یک عضو الزامی است. فقط کاربران (u0) و بات‌ها (b0) مجاز هستند. description: متن توضیحات گروه. (حداکثر ۳۰۰ کاراکتر، پیش‌فرض: None) avatar: تصویر آواتار گروه. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) thumbnail_avatar: تصویر بندانگشتی آواتار گروه. مسیر فایل، رشته یا bytes. (پیش‌فرض: None) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن؛ کتابخانه هر دو حالت را می‌پذیرد. نکته: اگر فقط avatar داده شود، بندانگشتی از همان تصویر گرفته می‌شود. اگر هیچ‌کدام داده نشود، آواتاری تنظیم نمی‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.create_group( title="گروه تست", members=["Online_User", "@ShowInfoBot", "u0HryBf03dbfba68374497983bc850a0"], description="این یک گروه تست است.", avatar="avatar.jpg" ) print(result) delete_group این متد برای حذف یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. confirm: در صورت True بودن، قبل از حذف از کاربر تأیید گرفته می‌شود (y/n). در صورت False بودن، بدون پرسش حذف می‌شود. (پیش‌فرض: True) توجه: در حالت confirm=True، برای تکمیل عملیات حذف باید حرف y را در کنسول وارد نمایید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_group("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(result) # حذف بدون تأیید result = app.delete_group("g0CyVlK0cae995e5b46031170a358a4e", confirm=False) print(result) join_group این متد برای عضویت در یک گروه از طریق لینک دعوت به کار می‌رود. پارامتر: group: لینک دعوت گروه. باید با https://shad.ir/joing/ شروع شود. نکته: این متد فقط لینک دعوت را می‌پذیرد؛ نه GUID و نه نام‌کاربری. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.join_group("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(result) leave_group این متد برای خروج از یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.leave_group("g0CyVlK0cae995e5b46031170a358a4e") print(result) edit_group_info این متد برای ویرایش تنظیمات یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. title: عنوان جدید گروه. (حداکثر ۶۰ کاراکتر) description: توضیحات جدید گروه. (حداکثر ۳۰۰ کاراکتر) slow_mode: تنظیم حالت آهسته (محدودیت زمانی بین پیام‌ها). event_messages: فعال یا غیرفعال کردن پیام‌های رویدادی (ورود/خروج اعضا). is_restricted_content: محدود کردن محتوا (جلوگیری از اسکرین‌شات و ذخیره فایل). reactions: تنظیمات ری‌اکشن. مقادیر قابل قبول: All، Disable، یا لیستی از اعداد. chat_history_for_new_members: نمایش تاریخچه چت برای اعضای جدید. مقادیر: Visible یا Hidden. restricted_period: محدودیت زمانی برای ارسال پیام. لیستی از دیکشنری‌ها شامل days_of_week، from_time و to_time. نکته: برای restricted_period قوانین زیر اعمال می‌شود: - روزهای مجاز: Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday - فرمت زمان: HH:MM (۲۴ ساعته) - بازه‌ها می‌توانند از نیمه‌شب عبور کنند (مثلاً 22:00 تا 04:00) مثال‌ها: ویرایش عنوان و توضیحات: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_group_info( group="g0G3R19035f77574adc0127ab97c999c", title="گروه جدید", description="توضیحات جدید گروه" ) print(result) تنظیم ری‌اکشن‌های خاص: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_group_info( group="g0G3R19035f77574adc0127ab97c999c", reactions=[1, 2, 6, 7, 8, 23, 44] ) print(result) تنظیم محدودیت زمانی: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_group_info( group="g0G3R19035f77574adc0127ab97c999c", restricted_period=[{ "days_of_week": ["Saturday", "Sunday"], "from_time": "00:00", "to_time": "06:00" }] ) print(result) edit_group_title این متد برای ویرایش عنوان یک گروه به کار می‌رود. این متد میانبری برای edit_group_info با پارامتر title است. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. title: عنوان جدید گروه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_group_title("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", "عنوان جدید") print(result) edit_group_timer این متد برای تنظیم Slow Mode (حالت آهسته) یک گروه به کار می‌رود. این متد میانبری برای edit_group_info با پارامتر slow_mode است. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. timer: مقدار Slow Mode جدید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_group_timer("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", "30") print(result) edit_slow_mode این متد نیز برای تنظیم Slow Mode یک گروه به کار می‌رود و عملکردی مشابه edit_group_timer دارد. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. slow_mode: مقدار Slow Mode جدید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_slow_mode("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", "60") print(result) get_group_admins این متد برای دریافت فهرست کامل ادمین‌های یک گروه به کار می‌رود. این متد به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. show_admin_guids: در صورت True بودن، شناسه (GUID) ادمین‌ها به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) مثال: from maxrubika import Shad with Shad("mySession") as app: admins = app.get_group_admins("g0G3R19035f37574adc0127ab97c999c") print(admins) get_group_admin_access این متد برای دریافت سطح دسترسی‌های یک ادمین خاص در گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. admin: شناسه (GUID) یا نام‌کاربری ادمین مورد نظر. فقط کاربران (u0) و بات‌ها (b0) مجاز هستند. نکته: تنها در صورتی می‌توانید دسترسی‌های یک ادمین را مشاهده کنید که خودتان ادمین یا مالک گروه باشید. مثال: from maxrubika import Shad with Shad("mySession") as app: access = app.get_group_admin_access("g0G3R19035f77574adc0127ab97c999c", "@Online_User") print(access) get_group_default_access این متد برای دریافت دسترسی‌های پیش‌فرض اعضای یک گروه به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. مثال: from maxrubika import Shad with Shad("mySession") as app: access = app.get_group_default_access("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD") print(access) set_group_default_access این متد برای تنظیم دسترسی‌های پیش‌فرض اعضای یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. access: لیستی از دسترسی‌های مجاز. مقادیر قابل قبول: ViewMembers: مشاهده اعضا ViewAdmins: مشاهده ادمین‌ها SendMessages: ارسال پیام AddMember: افزودن عضو [] (لیست خالی): غیرفعال کردن تمام دسترسی‌ها مثال‌ها: فقط اجازه ارسال پیام: from maxrubika import Shad with Shad("mySession") as app: result = app.set_group_default_access( "https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDSD", ["SendMessages"] ) print(result) بستن کامل گروه: from maxrubika import Shad with Shad("mySession") as app: result = app.set_group_default_access( "g0G3R19035f77574adc0127ab97c999c", [] ) print(result) lock_group این متد برای قفل کردن گروه با غیرفعال کردن دسترسی ارسال پیام به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. نکته: اگر گروه از قبل قفل باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.lock_group("g0G3R19035f77574adc0127ab97c999c") print(result) unlock_group این متد برای باز کردن قفل گروه با فعال‌سازی مجدد دسترسی ارسال پیام به کار می‌رود. پارامتر: group: شناسه (GUID) یا لینک گروه هدف. نکته: اگر گروه از قبل باز باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unlock_group("g0G3R19035f77574adc0127ab97c999c") print(result) get_group_members این متد برای دریافت فهرست اعضای یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. search_text: عبارت مورد نظر برای جستجو در میان اعضا. (پیش‌فرض: None) start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال‌ها: دریافت اعضای گروه: from maxrubika import Shad with Shad("mySession") as app: members = app.get_group_members("g0G3R19035f77574adc0127ab97c999c") print(members) جستجوی یک کاربر خاص: from maxrubika import Shad with Shad("mySession") as app: members = app.get_group_members("g0G3R19035f77574adc0127ab97c999c", search_text="@Online_User") print(members) get_group_mention_list این متد برای دریافت لیست منشن‌های یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. search_mention: عبارت جستجو برای فیلتر منشن‌ها. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: mentions = app.get_group_mention_list("g0G3R19035f77574adc0127ab97c999c") print(mentions) get_unread_mentions این متد برای دریافت منشن‌های خوانده‌نشده در یک گروه به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. max_id: حداکثر شناسه پیام. min_id: حداقل شناسه پیام. sort: ترتیب مرتب‌سازی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: mentions = app.get_unread_mentions( "g0G3R19035f77574adc0127ab97c999c", max_id="1000", min_id="1" ) print(mentions) get_group_message_read_participants این متد برای دریافت فهرست اعضایی که یک پیام خاص را در گروه خوانده‌اند به کار می‌رود. پارامترها: group: شناسه (GUID) یا لینک گروه هدف. message_id: شناسه پیام مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: participants = app.get_group_message_read_participants( "g0G3R19035f77574adc0127ab97c999c", message_id="123456" ) print(participants) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika کاربران Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_me get_user_info check_user_username get_last_online get_contacts_last_online get_contacts add_contact delete_contact reset_contacts get_contacts_updates block_user unblock_user get_blocked_users unblock_all_users get_common_groups delete_user_chat request_voice_call request_video_call discard_call get_top_users remove_from_top_users get_saved_music_playlist get_contacts_stories کاربران get_me این متد برای دریافت اطلاعات کاربر احراز هویت شده (خودتان) به کار می‌رود. اطلاعات بازگشتی شامل داده‌های کاربر به همراه اطلاعات احراز هویت می‌باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: me = app.get_me() print(me) get_user_info این متد برای دریافت اطلاعات یک کاربر خاص به کار می‌رود. در صورت فراخوانی بدون پارامتر، اطلاعات کاربر فعلی بازگردانده می‌شود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. (پیش‌فرض: None - اطلاعات خود کاربر) نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_user_info("@Online_User") print(info) check_user_username این متد برای بررسی وضعیت یک نام‌کاربری به کار می‌رود. با استفاده از آن می‌توان تعیین کرد که نام‌کاربری مورد نظر آزاد است یا پیش‌تر ثبت شده است. پارامتر: username: نام‌کاربری مورد نظر برای بررسی. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن. مثال: from maxrubika import Shad with Shad("mySession") as app: check = app.check_user_username("@Undefined") print(check) get_last_online این متد برای دریافت آخرین وضعیت آنلاین بودن یک کاربر به کار می‌رود. خروجی شامل نوع آنلاین بودن (دقیق یا تقریبی) و زمان مربوطه است. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: online = app.get_last_online("@Online_User") print(online) get_contacts_last_online این متد برای دریافت آخرین وضعیت آنلاین بودن چند کاربر به صورت هم‌زمان به کار می‌رود. پارامتر: users: یک کاربر یا لیستی از کاربران (GUID یا نام‌کاربری). مثال: from maxrubika import Shad with Shad("mySession") as app: online = app.get_contacts_last_online(["@User1", "@User2", "u0abc123..."]) print(online) get_contacts این متد برای دریافت فهرست کامل مخاطبان ذخیره شده به کار می‌رود. پارامتر: show_user_guids: در صورت True بودن، شناسه (GUID) کاربران به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) مثال: from maxrubika import Shad with Shad("mySession") as app: contacts = app.get_contacts() print(contacts) add_contact این متد برای افزودن یک مخاطب جدید به دفترچه تلفن به کار می‌رود. پارامترها: phone_number: شماره تلفن مخاطب. first_name: نام مخاطب. last_name: نام خانوادگی مخاطب. (پیش‌فرض: خالی) نکته: شماره تلفن می‌تواند با فرمت‌های مختلفی (مانند 09123456789، +989123456789 یا 989123456789) وارد شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_contact( phone_number="09123456789", first_name="علی", last_name="حسینی" ) print(result) delete_contact این متد برای حذف یک مخاطب از دفترچه تلفن به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری مخاطب مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_contact("@Online_User") print(result) reset_contacts این متد برای حذف تمام مخاطبین ذخیره شده از سرور به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reset_contacts() print(result) get_contacts_updates این متد برای دریافت به‌روزرسانی‌های مربوط به مخاطبین (مانند تغییر نام، عکس پروفایل و ...) به کار می‌رود. پارامتر: state: پارامتر فیلتر برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: زمان فعلی منهای ۱۵۰ ثانیه) مثال: from maxrubika import Shad with Shad("mySession") as app: updates = app.get_contacts_updates() print(updates) block_user این متد برای مسدود کردن یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.block_user("@SpamUser") print(result) unblock_user این متد برای رفع مسدودیت یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unblock_user("@SpamUser") print(result) get_blocked_users این متد برای دریافت فهرست کامل کاربران مسدود شده به کار می‌رود. پارامتر: show_user_guids: در صورت True بودن، شناسه (GUID) کاربران به صورت جداگانه در خروجی نمایش داده می‌شود. (پیش‌فرض: False) مثال: from maxrubika import Shad with Shad("mySession") as app: blocked = app.get_blocked_users() print(blocked) unblock_all_users این متد برای رفع مسدودیت تمام کاربران مسدود شده به کار می‌رود. امکان مستثنی کردن برخی کاربران نیز وجود دارد. پارامتر: exclude: یک کاربر یا لیستی از کاربران (GUID یا نام‌کاربری) که نباید از حالت مسدود خارج شوند. (پیش‌فرض: None) مثال‌ها: رفع مسدودیت همه کاربران: from maxrubika import Shad with Shad("mySession") as app: result = app.unblock_all_users() print(result) رفع مسدودیت همه به جز یک کاربر خاص: from maxrubika import Shad with Shad("mySession") as app: result = app.unblock_all_users(exclude="@ImportantUser") print(result) get_common_groups این متد برای دریافت گروه‌های مشترک با یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: groups = app.get_common_groups("@Online_User") print(groups) delete_user_chat این متد برای حذف تاریخچه چت با یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. نکته: شناسه آخرین پیام حذف‌شده به‌صورت خودکار توسط کتابخانه از آخرین پیام چت استخراج می‌شود و نیازی به پاس دادن دستی آن نیست. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_user_chat("@TestUser") print(result) request_voice_call این متد برای درخواست تماس صوتی با یک کاربر به کار می‌رود. پارامترها: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. library_versions: لیست نسخه‌های کتابخانه پشتیبانی شده. (پیش‌فرض: ['2.7.7', '2.4.4']) max_layer: حداکثر لایه پروتکل. (پیش‌فرض: 92) min_layer: حداقل لایه پروتکل. (پیش‌فرض: 65) sip_version: نسخه SIP. (پیش‌فرض: 1) support_call_out: پشتیبانی از تماس خروجی. (پیش‌فرض: True) مثال: from maxrubika import Shad with Shad("mySession") as app: call = app.request_voice_call("@Online_User") print(call) request_video_call این متد برای درخواست تماس تصویری با یک کاربر به کار می‌رود. پارامترها: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. library_versions: لیست نسخه‌های کتابخانه پشتیبانی شده. (پیش‌فرض: ['2.7.7', '2.4.4']) max_layer: حداکثر لایه پروتکل. (پیش‌فرض: 92) min_layer: حداقل لایه پروتکل. (پیش‌فرض: 65) sip_version: نسخه SIP. (پیش‌فرض: 1) support_call_out: پشتیبانی از تماس خروجی. (پیش‌فرض: True) مثال: from maxrubika import Shad with Shad("mySession") as app: call = app.request_video_call("@Online_User") print(call) discard_call این متد برای پایان دادن به یک تماس در حال انجام به کار می‌رود. پارامترها: call_id: شناسه تماس. duration: مدت زمان تماس به ثانیه. (پیش‌فرض: 0) reason: دلیل پایان تماس. مقادیر رایج: Missed و Disconnect. (پیش‌فرض: Disconnect) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.discard_call( call_id="call_abc123", duration=120, reason="Disconnect" ) print(result) get_top_users این متد برای دریافت لیست کاربران برتر (Top Users) به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: top = app.get_top_users() print(top) remove_from_top_users این متد برای حذف یک کاربر از لیست کاربران برتر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.remove_from_top_users("@TestUser") print(result) get_saved_music_playlist این متد برای دریافت لیست موسیقی‌های ذخیره شده یک کاربر به کار می‌رود. پارامتر: user: شناسه (GUID) یا نام‌کاربری کاربر مورد نظر. همچنین می‌توان از مقادیر me، cloud، self یا myself برای دریافت لیست خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: playlist = app.get_saved_music_playlist("me") print(playlist) get_contacts_stories این متد برای دریافت استوری‌های مخاطبین از صفحه چت به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: stories = app.get_contacts_stories() print(stories) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika اطلاعات و دریافت چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_guid get_my_guid get_info_by_username get_info_by_link get_chat_info get_chats_info get_chats get_chats_updates get_related_chats get_profile_link_items get_chat_ads search_global_chats اطلاعات و دریافت چت get_guid این متد برای دریافت شناسه (GUID) یک کاربر، گروه، کانال یا بات از روی نام‌کاربری یا لینک است. این متد پایه‌ای و پرکاربرد است و بسیاری از متدهای دیگر از آن استفاده می‌کنند. پارامتر: chat: نام‌کاربری، لینک گروه (joing)، لینک کانال (joinc) یا خود GUID. نکته: تفاوتی ندارد که نام‌کاربری با @ نوشته شود یا بدون آن. مثال: from maxrubika import Shad with Shad("mySession") as app: guid = app.get_guid("@Online_User") print(guid) get_my_guid این متد برای دریافت شناسه (GUID) اکانت خود کاربر استفاده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: my_guid = app.get_my_guid() print(my_guid) get_info_by_username این متد برای دریافت اطلاعات اولیه یک چت (کاربر، بات یا کانال) از طریق نام‌کاربری است. پارامتر: username: نام‌کاربری مورد نظر. (حداقل ۳ و حداکثر ۳۲ کاراکتر، فقط حروف انگلیسی، اعداد و زیرخط) نکته: نام‌کاربری نمی‌تواند با عدد یا زیرخط شروع شود یا به زیرخط ختم شود و باید حداقل شامل یک حرف باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_info_by_username("Online_User") print(info) get_info_by_link این متد برای دریافت پیش‌نمایش اطلاعات گروه یا کانال از طریق لینک دعوت است. پارامتر: link: لینک دعوت. باید با https://shad.ir/joing/ یا https://shad.ir/joinc/ شروع شود. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_info_by_link("https://shad.ir/joing/ABC123") print(info) get_chat_info این متد جامع برای دریافت اطلاعات کامل یک چت (کاربر، گروه، کانال، بات یا سرویس) است. با تشخیص خودکار نوع چت، متد مناسب را فراخوانی می‌کند. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. نکته: این متد هوشمند است و بر اساس ورودی، به صورت خودکار از متدهای get_user_info، get_bot_info، get_channel_info، get_group_info یا get_service_info استفاده می‌کند. مثال‌ها: دریافت اطلاعات کاربر: from maxrubika import Shad with Shad("mySession") as app: info = app.get_chat_info("@Online_User") print(info) دریافت اطلاعات گروه از لینک: from maxrubika import Shad with Shad("mySession") as app: info = app.get_chat_info("https://shad.ir/joing/ABC123") print(info) get_chats_info این متد برای دریافت اطلاعات چند چت به صورت هم‌زمان با استفاده از GUID آنها است. پارامتر: chats: یک GUID یا لیستی از GUIDهای چت‌ها. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_chats_info(["u0abc123...", "g0xyz789...", "c0def456..."]) print(info) get_chats این متد برای دریافت لیست تمام چت‌های حساب کاربری است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: show_chat_guids: در صورت True بودن، GUID چت‌ها در خروجی نمایش داده می‌شود. (پیش‌فرض: False) auto_start_id: در صورت True بودن، تمام صفحات به صورت خودکار دریافت می‌شوند. در صورت False بودن، فقط یک صفحه با start_id دریافت می‌شود. (پیش‌فرض: True) start_id: شناسه شروع برای صفحه‌بندی. فقط زمانی استفاده می‌شود که auto_start_id=False باشد. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: chats = app.get_chats() print(chats) get_chats_updates این متد برای دریافت به‌روزرسانی‌های چت‌ها (مانند پیام‌های جدید، تغییرات و...) است. پارامتر: state: وضعیت زمانی برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) مثال: from maxrubika import Shad with Shad("mySession") as app: updates = app.get_chats_updates() print(updates) get_related_chats این متد برای دریافت چت‌های مرتبط با یک چت خاص (مانند گروه‌ها و کانال‌های مرتبط) است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: related = app.get_related_chats("g0abc123...") print(related) get_profile_link_items این متد برای دریافت آیتم‌های لینک پروفایل یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: items = app.get_profile_link_items("u0abc123...") print(items) get_chat_ads این متد برای دریافت اطلاعات تبلیغاتی چت‌ها است. پارامتر: state: وضعیت زمانی برای فیلتر. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) مثال: from maxrubika import Shad with Shad("mySession") as app: ads = app.get_chat_ads() print(ads) search_global_chats این متد برای جستجوی سراسری در میان چت‌ها (کاربران، کانال‌ها و...) بر اساس متن است. پارامترها: text: متن مورد جستجو. filter_type: فیلتر نتایج بر اساس نوع. مقادیر قابل قبول: User، Channel، Bot یا لیستی از آن‌ها. (پیش‌فرض: None) start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال‌ها: جستجوی ساده: from maxrubika import Shad with Shad("mySession") as app: results = app.search_global_chats("برنامه‌نویس") print(results) جستجو با فیلتر نوع: from maxrubika import Shad with Shad("mySession") as app: results = app.search_global_chats( "برنامه‌نویس", filter_type=["Channel", "Bot"] ) print(results) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika مدیریت چت و لینک دعوت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents join_chat leave_chat check_join create_join_link edit_join_link revoke_join_link get_join_links get_join_requests accept_join_request reject_join_request accept_all_join_requests مدیریت چت و لینک دعوت join_chat این متد برای عضویت در یک چت (گروه یا کانال) است. به صورت خودکار نوع چت را تشخیص داده و متد مناسب را فراخوانی می‌کند. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.join_chat("https://shad.ir/joing/ABC123") print(result) leave_chat این متد برای خروج از یک چت (گروه یا کانال) است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.leave_chat("g0abc123...") print(result) check_join این متد برای بررسی عضویت یک کاربر یا بات در یک گروه یا کانال است. مقدار بازگشتی True یا False است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری کاربر یا بات مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: is_member = app.check_join("g0abc123...", member="@Online_User") print(is_member) create_join_link این متد برای ایجاد لینک دعوت برای یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. expire_time: مدت زمان اعتبار لینک به ثانیه. (پیش‌فرض: None - بدون انقضا) request_needed: نیاز به تأیید درخواست عضویت. (پیش‌فرض: False) title: عنوان سفارشی برای لینک دعوت. (پیش‌فرض: None) usage_limit: حداکثر تعداد استفاده از لینک. (پیش‌فرض: 0 - نامحدود) مثال: from maxrubika import Shad with Shad("mySession") as app: link = app.create_join_link( "g0abc123...", request_needed=True, title="لینک ویژه", usage_limit=10 ) print(link) edit_join_link این متد برای ویرایش یک لینک دعوت موجود در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. join_link: لینک دعوتی که باید ویرایش شود. title: عنوان جدید لینک دعوت. (اختیاری) expire_time: مدت زمان اعتبار جدید لینک به ثانیه. (اختیاری) request_needed: نیاز به تأیید درخواست عضویت. (اختیاری) usage_limit: حداکثر تعداد استفاده جدید از لینک. (اختیاری) نکته: حداقل یکی از پارامترهای title، expire_time، request_needed یا usage_limit باید ارائه شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_join_link( "g0abc123...", join_link="https://shad.ir/joing/ABC123", title="لینک جدید", usage_limit=20 ) print(result) revoke_join_link این متد برای لغو (باطل کردن) یک لینک دعوت در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. join_link: لینک دعوتی که باید لغو شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.revoke_join_link( "g0abc123...", join_link="https://shad.ir/joing/ABC123" ) print(result) get_join_links این متد برای دریافت لیست لینک‌های دعوت یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. creator: GUID یا نام‌کاربری سازنده لینک برای فیلتر. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: links = app.get_join_links("g0abc123...") print(links) get_join_requests این متد برای دریافت لیست درخواست‌های عضویت در یک گروه یا کانال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_user_guids: نمایش GUID کاربران در خروجی. (پیش‌فرض: False) مثال: from maxrubika import Shad with Shad("mySession") as app: requests = app.get_join_requests("g0abc123...") print(requests) accept_join_request این متد برای پذیرفتن یک درخواست عضویت در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. user: GUID یا نام‌کاربری کاربر درخواست‌دهنده. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.accept_join_request("g0abc123...", user="@NewUser") print(result) reject_join_request این متد برای رد کردن یک درخواست عضویت در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. user: GUID یا نام‌کاربری کاربر درخواست‌دهنده. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reject_join_request("g0abc123...", user="@SpamUser") print(result) accept_all_join_requests این متد برای پذیرفتن تمام درخواست‌های عضویت در یک گروه یا کانال به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری کاربرانی که نباید پذیرفته شوند. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.accept_all_join_requests("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika اعضا و ادمین‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents add_members ban_member ban_members unban_member unban_members unban_all_members get_banned_members clear_black_list set_admin unset_admin member_is_admin change_owner accept_ownership_request reject_ownership_request cancel_change_owner get_pending_owner اعضا و ادمین‌ها add_members این متد برای افزودن یک یا چند عضو به گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: یک GUID/نام‌کاربری یا لیستی از GUID/نام‌کاربری اعضا. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_members( "g0abc123...", members=["@User1", "@User2", "u0xyz789..."] ) print(result) ban_member این متد برای مسدود کردن یک عضو از گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.ban_member("g0abc123...", member="@SpamUser") print(result) ban_members این متد برای مسدود کردن چند عضو به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: لیستی از GUID یا نام‌کاربری اعضا. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.ban_members("g0abc123...", members=["@User1", "@User2"]) print(result) unban_member این متد برای رفع مسدودیت یک عضو از گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unban_member("g0abc123...", member="@SpamUser") print(result) unban_members این متد برای رفع مسدودیت چند عضو به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: لیستی از GUID یا نام‌کاربری اعضا. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unban_members("g0abc123...", members=["@User1", "@User2"]) print(result) unban_all_members این متد برای رفع مسدودیت تمام اعضای مسدود شده یک گروه یا کانال به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری اعضایی که نباید رفع مسدود شوند. (پیش‌فرض: None) خروجی: یک شیء Data شامل status، total_banned، excluded و unbanned. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unban_all_members("g0abc123...") print(result) get_banned_members این متد برای دریافت لیست اعضای مسدود شده یک گروه یا کانال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_member_guids: نمایش GUID اعضا در خروجی. (پیش‌فرض: False) خروجی: یک شیء Data شامل members، total، chat_guid و (در صورت show_member_guids=True) member_guids. مثال: from maxrubika import Shad with Shad("mySession") as app: banned = app.get_banned_members("g0abc123...") print(banned) clear_black_list این متد برای پاک‌سازی لیست سیاه (رفع مسدودیت تمام اعضا) در یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری اعضایی که نباید رفع مسدود شوند. (پیش‌فرض: None) خروجی: یک شیء Data شامل status، total_banned، excluded و unbanned. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.clear_black_list("g0abc123...") print(result) set_admin این متد برای تنظیم یک عضو به عنوان ادمین در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. access: لیست دسترسی‌های مجاز، یک دسترسی تکی، یا 'All'/'all' برای اعطای همه دسترسی‌ها. گروه: SetAdmin, BanMember, ChangeInfo, PinMessages, SetJoinLink, SetMemberAccess, DeleteGlobalAllMessages کانال: ChangeInfo, DeleteGlobalAllMessages, PinMessages, SetAdmin, ViewAdmins, SetJoinLink, AddMember, ViewMembers, SendMessages, EditAllMessages custom_title: عنوان سفارشی برای ادمین (فقط گروه). (پیش‌فرض: خالی) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_admin( "g0abc123...", member="@NewAdmin", access=["BanMember", "PinMessages", "ChangeInfo"], custom_title="مدیر ارشد" ) print(result) unset_admin این متد برای حذف ادمینی یک عضو در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unset_admin("g0abc123...", member="@OldAdmin") print(result) member_is_admin این متد برای بررسی ادمین بودن یک عضو در گروه یا کانال است. مقدار بازگشتی True یا False است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. مثال: from maxrubika import Shad with Shad("mySession") as app: is_admin = app.member_is_admin("g0abc123...", member="@TestUser") print(is_admin) change_owner این متد برای درخواست انتقال مالکیت یک چت (گروه یا کانال) به کاربر دیگر است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. new_owner: GUID یا نام‌کاربری مالک جدید. فقط کاربران (u0) مجاز هستند؛ بات‌ها قابل قبول نیستند. نکته: فقط مالک فعلی می‌تواند این درخواست را ارسال کند. مالک جدید باید درخواست را بپذیرد. این عملیات غیرقابل بازگشت است. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.change_owner("g0abc123...", new_owner="@NewOwner") print(result) accept_ownership_request این متد برای پذیرفتن درخواست انتقال مالکیت یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.accept_ownership_request("g0abc123...") print(result) reject_ownership_request این متد برای رد کردن درخواست انتقال مالکیت یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reject_ownership_request("g0abc123...") print(result) cancel_change_owner این متد برای لغو درخواست انتقال مالکیت توسط مالک فعلی است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.cancel_change_owner("g0abc123...") print(result) get_pending_owner این متد برای دریافت اطلاعات مالک در انتظار (کسی که درخواست انتقال مالکیت برایش ارسال شده) است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: pending = app.get_pending_owner("g0abc123...") print(pending) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents mute_chat unmute_chat pin_chat unpin_chat pin_chat_in_folder unpin_chat_in_folder archive_chat unarchive_chat set_chat_protected_content set_chat_auto_delete delete_chat_history set_ask_spam upload_avatar get_avatars delete_avatar delete_all_avatars تنظیمات چت mute_chat این متد برای بی‌صدا کردن (Mute) یک چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. duration: مدت زمان بی‌صدا کردن به ثانیه (حداقل ۱۸۰۰ ثانیه / ۳۰ دقیقه) یا timedelta. (پیش‌فرض: None - بی‌صدای دائمی) مثال‌ها: بی‌صدای دائمی: from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...") print(result) بی‌صدا برای ۲ ساعت: from datetime import timedelta from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...", duration=timedelta(hours=2)) print(result) unmute_chat این متد برای لغو بی‌صدا کردن (Unmute) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unmute_chat("g0abc123...") print(result) pin_chat این متد برای سنجاق کردن (Pin) یک چت در بالای لیست چت‌ها است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat("u0abc123...") print(result) unpin_chat این متد برای برداشتن سنجاق (Unpin) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat("u0abc123...") print(result) pin_chat_in_folder این متد برای سنجاق کردن یک چت در یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) unpin_chat_in_folder این متد برای برداشتن سنجاق یک چت از یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) archive_chat این متد برای آرشیو کردن یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.archive_chat("u0abc123...") print(result) unarchive_chat این متد برای خارج کردن یک چت از آرشیو است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unarchive_chat("u0abc123...") print(result) set_chat_protected_content این متد برای تنظیم محتوای محافظت‌شده (جلوگیری از اسکرین‌شات و ذخیره) در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. enabled: True برای فعال‌سازی، False برای غیرفعال‌سازی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_protected_content("g0abc123...", enabled=True) print(result) set_chat_auto_delete این متد برای تنظیم حذف خودکار پیام‌ها در گروه یا کانال است. پارامترها: chat: یک GUID/لینک/نام‌کاربری یا لیستی از آن‌ها. auto_delete: مدت زمان حذف خودکار. مقادیر قابل قبول: عدد: ۱ تا ۳۶۵ (روز) رشته: 1m تا 60m، 1h تا 24h، 1d تا 365d، 1w تا 52w، 1y، off کلمات: day, week, month, year, never, disabled مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_auto_delete("g0abc123...", auto_delete="7d") print(result) delete_chat_history این متد برای حذف تاریخچه چت تا آخرین پیام است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت (کاربر یا گروه). برای کانال‌ها قابل استفاده نیست. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_chat_history("u0abc123...") print(result) set_ask_spam این متد برای انجام عملیات روی یک درخواست اسپم معلق است. پارامترها: chat: GUID، لینک یا نام‌کاربری کاربر، گروه یا کانال. action: عملیات مورد نظر: برای کاربر (u0): AddToContact، BlockUser، Cancel. برای گروه/کانال (g0/c0): ReportAndLeave. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_ask_spam("u0abc123...", action="BlockUser") print(result) upload_avatar این متد برای آپلود تصویر پروفایل (آواتار) برای یک چت (خود، گروه یا کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. main_image: مسیر فایل یا داده‌های بایتی تصویر اصلی. thumbnail_image: مسیر فایل یا داده‌های بایتی تصویر بندانگشتی. (پیش‌فرض: None - استفاده از تصویر اصلی) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.upload_avatar( "me", main_image="/path/to/avatar.jpg" ) print(result) get_avatars این متد برای دریافت لیست آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: avatars = app.get_avatars("g0abc123...") print(avatars) delete_avatar این متد برای حذف یک آواتار خاص از چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. avatar_id: شناسه آواتار مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_avatar("me", avatar_id="avatar_123") print(result) delete_all_avatars این متد برای حذف تمام آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_all_avatars("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika اعضا و ادمین‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents add_members ban_member ban_members unban_member unban_members unban_all_members get_banned_members clear_black_list set_admin unset_admin member_is_admin change_owner accept_ownership_request reject_ownership_request cancel_change_owner get_pending_owner اعضا و ادمین‌ها add_members این متد برای افزودن یک یا چند عضو به گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: یک GUID/نام‌کاربری یا لیستی از GUID/نام‌کاربری اعضا. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_members( "g0abc123...", members=["@User1", "@User2", "u0xyz789..."] ) print(result) ban_member این متد برای مسدود کردن یک عضو از گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.ban_member("g0abc123...", member="@SpamUser") print(result) ban_members این متد برای مسدود کردن چند عضو به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: لیستی از GUID یا نام‌کاربری اعضا. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.ban_members("g0abc123...", members=["@User1", "@User2"]) print(result) unban_member این متد برای رفع مسدودیت یک عضو از گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unban_member("g0abc123...", member="@SpamUser") print(result) unban_members این متد برای رفع مسدودیت چند عضو به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. members: لیستی از GUID یا نام‌کاربری اعضا. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unban_members("g0abc123...", members=["@User1", "@User2"]) print(result) unban_all_members این متد برای رفع مسدودیت تمام اعضای مسدود شده یک گروه یا کانال به صورت یکجا است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری اعضایی که نباید رفع مسدود شوند. (پیش‌فرض: None) خروجی: یک شیء Data شامل status، total_banned، excluded و unbanned. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unban_all_members("g0abc123...") print(result) get_banned_members این متد برای دریافت لیست اعضای مسدود شده یک گروه یا کانال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_member_guids: نمایش GUID اعضا در خروجی. (پیش‌فرض: False) خروجی: یک شیء Data شامل members، total، chat_guid و (در صورت show_member_guids=True) member_guids. مثال: from maxrubika import Shad with Shad("mySession") as app: banned = app.get_banned_members("g0abc123...") print(banned) clear_black_list این متد برای پاک‌سازی لیست سیاه (رفع مسدودیت تمام اعضا) در یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. exclude: GUID یا نام‌کاربری اعضایی که نباید رفع مسدود شوند. (پیش‌فرض: None) خروجی: یک شیء Data شامل status، total_banned، excluded و unbanned. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.clear_black_list("g0abc123...") print(result) set_admin این متد برای تنظیم یک عضو به عنوان ادمین در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. access: لیست دسترسی‌های مجاز، یک دسترسی تکی، یا 'All'/'all' برای اعطای همه دسترسی‌ها. گروه: SetAdmin, BanMember, ChangeInfo, PinMessages, SetJoinLink, SetMemberAccess, DeleteGlobalAllMessages کانال: ChangeInfo, DeleteGlobalAllMessages, PinMessages, SetAdmin, ViewAdmins, SetJoinLink, AddMember, ViewMembers, SendMessages, EditAllMessages custom_title: عنوان سفارشی برای ادمین (فقط گروه). (پیش‌فرض: خالی) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_admin( "g0abc123...", member="@NewAdmin", access=["BanMember", "PinMessages", "ChangeInfo"], custom_title="مدیر ارشد" ) print(result) unset_admin این متد برای حذف ادمینی یک عضو در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unset_admin("g0abc123...", member="@OldAdmin") print(result) member_is_admin این متد برای بررسی ادمین بودن یک عضو در گروه یا کانال است. مقدار بازگشتی True یا False است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. member: GUID یا نام‌کاربری عضو. مثال: from maxrubika import Shad with Shad("mySession") as app: is_admin = app.member_is_admin("g0abc123...", member="@TestUser") print(is_admin) change_owner این متد برای درخواست انتقال مالکیت یک چت (گروه یا کانال) به کاربر دیگر است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. new_owner: GUID یا نام‌کاربری مالک جدید. فقط کاربران (u0) مجاز هستند؛ بات‌ها قابل قبول نیستند. نکته: فقط مالک فعلی می‌تواند این درخواست را ارسال کند. مالک جدید باید درخواست را بپذیرد. این عملیات غیرقابل بازگشت است. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.change_owner("g0abc123...", new_owner="@NewOwner") print(result) accept_ownership_request این متد برای پذیرفتن درخواست انتقال مالکیت یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.accept_ownership_request("g0abc123...") print(result) reject_ownership_request این متد برای رد کردن درخواست انتقال مالکیت یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reject_ownership_request("g0abc123...") print(result) cancel_change_owner این متد برای لغو درخواست انتقال مالکیت توسط مالک فعلی است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.cancel_change_owner("g0abc123...") print(result) get_pending_owner این متد برای دریافت اطلاعات مالک در انتظار (کسی که درخواست انتقال مالکیت برایش ارسال شده) است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: pending = app.get_pending_owner("g0abc123...") print(pending) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents mute_chat unmute_chat pin_chat unpin_chat pin_chat_in_folder unpin_chat_in_folder archive_chat unarchive_chat set_chat_protected_content set_chat_auto_delete delete_chat_history set_ask_spam upload_avatar get_avatars delete_avatar delete_all_avatars تنظیمات چت mute_chat این متد برای بی‌صدا کردن (Mute) یک چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. duration: مدت زمان بی‌صدا کردن به ثانیه (حداقل ۱۸۰۰ ثانیه / ۳۰ دقیقه) یا timedelta. (پیش‌فرض: None - بی‌صدای دائمی) مثال‌ها: بی‌صدای دائمی: from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...") print(result) بی‌صدا برای ۲ ساعت: from datetime import timedelta from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...", duration=timedelta(hours=2)) print(result) unmute_chat این متد برای لغو بی‌صدا کردن (Unmute) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unmute_chat("g0abc123...") print(result) pin_chat این متد برای سنجاق کردن (Pin) یک چت در بالای لیست چت‌ها است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat("u0abc123...") print(result) unpin_chat این متد برای برداشتن سنجاق (Unpin) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat("u0abc123...") print(result) pin_chat_in_folder این متد برای سنجاق کردن یک چت در یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) unpin_chat_in_folder این متد برای برداشتن سنجاق یک چت از یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) archive_chat این متد برای آرشیو کردن یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.archive_chat("u0abc123...") print(result) unarchive_chat این متد برای خارج کردن یک چت از آرشیو است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unarchive_chat("u0abc123...") print(result) set_chat_protected_content این متد برای تنظیم محتوای محافظت‌شده (جلوگیری از اسکرین‌شات و ذخیره) در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. enabled: True برای فعال‌سازی، False برای غیرفعال‌سازی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_protected_content("g0abc123...", enabled=True) print(result) set_chat_auto_delete این متد برای تنظیم حذف خودکار پیام‌ها در گروه یا کانال است. پارامترها: chat: یک GUID/لینک/نام‌کاربری یا لیستی از آن‌ها. auto_delete: مدت زمان حذف خودکار. مقادیر قابل قبول: عدد: ۱ تا ۳۶۵ (روز) رشته: 1m تا 60m، 1h تا 24h، 1d تا 365d، 1w تا 52w، 1y، off کلمات: day, week, month, year, never, disabled مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_auto_delete("g0abc123...", auto_delete="7d") print(result) delete_chat_history این متد برای حذف تاریخچه چت تا آخرین پیام است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت (کاربر یا گروه). برای کانال‌ها قابل استفاده نیست. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_chat_history("u0abc123...") print(result) set_ask_spam این متد برای انجام عملیات روی یک درخواست اسپم معلق است. پارامترها: chat: GUID، لینک یا نام‌کاربری کاربر، گروه یا کانال. action: عملیات مورد نظر: برای کاربر (u0): AddToContact، BlockUser، Cancel. برای گروه/کانال (g0/c0): ReportAndLeave. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_ask_spam("u0abc123...", action="BlockUser") print(result) upload_avatar این متد برای آپلود تصویر پروفایل (آواتار) برای یک چت (خود، گروه یا کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. main_image: مسیر فایل یا داده‌های بایتی تصویر اصلی. thumbnail_image: مسیر فایل یا داده‌های بایتی تصویر بندانگشتی. (پیش‌فرض: None - استفاده از تصویر اصلی) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.upload_avatar( "me", main_image="/path/to/avatar.jpg" ) print(result) get_avatars این متد برای دریافت لیست آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: avatars = app.get_avatars("g0abc123...") print(avatars) delete_avatar این متد برای حذف یک آواتار خاص از چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. avatar_id: شناسه آواتار مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_avatar("me", avatar_id="avatar_123") print(result) delete_all_avatars این متد برای حذف تمام آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_all_avatars("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents mute_chat unmute_chat pin_chat unpin_chat pin_chat_in_folder unpin_chat_in_folder archive_chat unarchive_chat set_chat_protected_content set_chat_auto_delete delete_chat_history set_ask_spam upload_avatar get_avatars delete_avatar delete_all_avatars تنظیمات چت mute_chat این متد برای بی‌صدا کردن (Mute) یک چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. duration: مدت زمان بی‌صدا کردن به ثانیه (حداقل ۱۸۰۰ ثانیه / ۳۰ دقیقه) یا timedelta. (پیش‌فرض: None - بی‌صدای دائمی) مثال‌ها: بی‌صدای دائمی: from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...") print(result) بی‌صدا برای ۲ ساعت: from datetime import timedelta from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...", duration=timedelta(hours=2)) print(result) unmute_chat این متد برای لغو بی‌صدا کردن (Unmute) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unmute_chat("g0abc123...") print(result) pin_chat این متد برای سنجاق کردن (Pin) یک چت در بالای لیست چت‌ها است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat("u0abc123...") print(result) unpin_chat این متد برای برداشتن سنجاق (Unpin) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat("u0abc123...") print(result) pin_chat_in_folder این متد برای سنجاق کردن یک چت در یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) unpin_chat_in_folder این متد برای برداشتن سنجاق یک چت از یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) archive_chat این متد برای آرشیو کردن یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.archive_chat("u0abc123...") print(result) unarchive_chat این متد برای خارج کردن یک چت از آرشیو است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unarchive_chat("u0abc123...") print(result) set_chat_protected_content این متد برای تنظیم محتوای محافظت‌شده (جلوگیری از اسکرین‌شات و ذخیره) در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. enabled: True برای فعال‌سازی، False برای غیرفعال‌سازی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_protected_content("g0abc123...", enabled=True) print(result) set_chat_auto_delete این متد برای تنظیم حذف خودکار پیام‌ها در گروه یا کانال است. پارامترها: chat: یک GUID/لینک/نام‌کاربری یا لیستی از آن‌ها. auto_delete: مدت زمان حذف خودکار. مقادیر قابل قبول: عدد: ۱ تا ۳۶۵ (روز) رشته: 1m تا 60m، 1h تا 24h، 1d تا 365d، 1w تا 52w، 1y، off کلمات: day, week, month, year, never, disabled مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_auto_delete("g0abc123...", auto_delete="7d") print(result) delete_chat_history این متد برای حذف تاریخچه چت تا آخرین پیام است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت (کاربر یا گروه). برای کانال‌ها قابل استفاده نیست. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_chat_history("u0abc123...") print(result) set_ask_spam این متد برای انجام عملیات روی یک درخواست اسپم معلق است. پارامترها: chat: GUID، لینک یا نام‌کاربری کاربر، گروه یا کانال. action: عملیات مورد نظر: برای کاربر (u0): AddToContact، BlockUser، Cancel. برای گروه/کانال (g0/c0): ReportAndLeave. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_ask_spam("u0abc123...", action="BlockUser") print(result) upload_avatar این متد برای آپلود تصویر پروفایل (آواتار) برای یک چت (خود، گروه یا کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. main_image: مسیر فایل یا داده‌های بایتی تصویر اصلی. thumbnail_image: مسیر فایل یا داده‌های بایتی تصویر بندانگشتی. (پیش‌فرض: None - استفاده از تصویر اصلی) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.upload_avatar( "me", main_image="/path/to/avatar.jpg" ) print(result) get_avatars این متد برای دریافت لیست آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: avatars = app.get_avatars("g0abc123...") print(avatars) delete_avatar این متد برای حذف یک آواتار خاص از چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. avatar_id: شناسه آواتار مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_avatar("me", avatar_id="avatar_123") print(result) delete_all_avatars این متد برای حذف تمام آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_all_avatars("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents mute_chat unmute_chat pin_chat unpin_chat pin_chat_in_folder unpin_chat_in_folder archive_chat unarchive_chat set_chat_protected_content set_chat_auto_delete delete_chat_history set_ask_spam upload_avatar get_avatars delete_avatar delete_all_avatars تنظیمات چت mute_chat این متد برای بی‌صدا کردن (Mute) یک چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. duration: مدت زمان بی‌صدا کردن به ثانیه (حداقل ۱۸۰۰ ثانیه / ۳۰ دقیقه) یا timedelta. (پیش‌فرض: None - بی‌صدای دائمی) مثال‌ها: بی‌صدای دائمی: from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...") print(result) بی‌صدا برای ۲ ساعت: from datetime import timedelta from maxrubika import Shad with Shad("mySession") as app: result = app.mute_chat("g0abc123...", duration=timedelta(hours=2)) print(result) unmute_chat این متد برای لغو بی‌صدا کردن (Unmute) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unmute_chat("g0abc123...") print(result) pin_chat این متد برای سنجاق کردن (Pin) یک چت در بالای لیست چت‌ها است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat("u0abc123...") print(result) unpin_chat این متد برای برداشتن سنجاق (Unpin) یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat("u0abc123...") print(result) pin_chat_in_folder این متد برای سنجاق کردن یک چت در یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) unpin_chat_in_folder این متد برای برداشتن سنجاق یک چت از یک پوشه خاص است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_chat_in_folder("u0abc123...", folder_id="folder_123") print(result) archive_chat این متد برای آرشیو کردن یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.archive_chat("u0abc123...") print(result) unarchive_chat این متد برای خارج کردن یک چت از آرشیو است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unarchive_chat("u0abc123...") print(result) set_chat_protected_content این متد برای تنظیم محتوای محافظت‌شده (جلوگیری از اسکرین‌شات و ذخیره) در گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. enabled: True برای فعال‌سازی، False برای غیرفعال‌سازی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_protected_content("g0abc123...", enabled=True) print(result) set_chat_auto_delete این متد برای تنظیم حذف خودکار پیام‌ها در گروه یا کانال است. پارامترها: chat: یک GUID/لینک/نام‌کاربری یا لیستی از آن‌ها. auto_delete: مدت زمان حذف خودکار. مقادیر قابل قبول: عدد: ۱ تا ۳۶۵ (روز) رشته: 1m تا 60m، 1h تا 24h، 1d تا 365d، 1w تا 52w، 1y، off کلمات: day, week, month, year, never, disabled مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_auto_delete("g0abc123...", auto_delete="7d") print(result) delete_chat_history این متد برای حذف تاریخچه چت تا آخرین پیام است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت (کاربر یا گروه). برای کانال‌ها قابل استفاده نیست. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_chat_history("u0abc123...") print(result) set_ask_spam این متد برای انجام عملیات روی یک درخواست اسپم معلق است. پارامترها: chat: GUID، لینک یا نام‌کاربری کاربر، گروه یا کانال. action: عملیات مورد نظر: برای کاربر (u0): AddToContact، BlockUser، Cancel. برای گروه/کانال (g0/c0): ReportAndLeave. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_ask_spam("u0abc123...", action="BlockUser") print(result) upload_avatar این متد برای آپلود تصویر پروفایل (آواتار) برای یک چت (خود، گروه یا کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. main_image: مسیر فایل یا داده‌های بایتی تصویر اصلی. thumbnail_image: مسیر فایل یا داده‌های بایتی تصویر بندانگشتی. (پیش‌فرض: None - استفاده از تصویر اصلی) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.upload_avatar( "me", main_image="/path/to/avatar.jpg" ) print(result) get_avatars این متد برای دریافت لیست آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: avatars = app.get_avatars("g0abc123...") print(avatars) delete_avatar این متد برای حذف یک آواتار خاص از چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. avatar_id: شناسه آواتار مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_avatar("me", avatar_id="avatar_123") print(result) delete_all_avatars این متد برای حذف تمام آواتارهای یک چت است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. همچنین می‌توان از me، cloud، self یا myself برای پروفایل خود استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_all_avatars("g0abc123...") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ویس چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_chat_voice_chat start_voice_chat join_voice_chat leave_voice_chat play_voice_chat discard_voice_chat get_voice_chat_participants get_voice_chat_updates send_voice_chat_activity set_voice_chat_setting set_voice_chat_state ویس چت get_chat_voice_chat این متد برای دریافت اطلاعات ویس چت فعال یک گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: voice = app.get_chat_voice_chat("g0abc123...") print(voice) start_voice_chat این متد برای شروع یک ویس چت در گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.start_voice_chat("g0abc123...") print(result) join_voice_chat این متد برای پیوستن به ویس چت فعال یک گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. sdp_offer_data: داده‌های SDP offer. (پیش‌فرض: None - استفاده از پیش‌فرض) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.join_voice_chat("g0abc123...") print(result) leave_voice_chat این متد برای خروج از ویس چت فعال یک گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.leave_voice_chat("g0abc123...") print(result) play_voice_chat این متد برای پخش فایل صوتی در ویس چت است. نیاز به نصب کتابخانه aiortc دارد. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. media: مسیر فایل صوتی برای پخش. نکته: نصب پیش‌نیاز: pip install aiortc خروجی: یک شیء VoiceChatConnection که متدهای stop()، pause() و resume() دارد. مثال: from maxrubika import Shad with Shad("mySession") as app: connection = app.play_voice_chat("g0abc123...", media="/path/to/audio.mp3") # برای توقف: connection.stop() # برای توقف موقت: connection.pause() # برای ادامه: connection.resume() discard_voice_chat این متد برای پایان دادن به ویس چت فعال یک گروه یا کانال است. پارامتر: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.discard_voice_chat("g0abc123...") print(result) get_voice_chat_participants این متد برای دریافت لیست شرکت‌کنندگان ویس چت فعال است. به صورت خودکار تمام صفحات را پیمایش می‌کند. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. show_user_guids: نمایش GUID کاربران در خروجی. (پیش‌فرض: False) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: participants = app.get_voice_chat_participants("g0abc123...") print(participants) get_voice_chat_updates این متد برای دریافت به‌روزرسانی‌های ویس چت است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. state: وضعیت زمانی برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: updates = app.get_voice_chat_updates("g0abc123...") print(updates) send_voice_chat_activity این متد برای ارسال فعالیت در ویس چت (مانند در حال صحبت بودن) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. activity: نوع فعالیت. (فقط Speaking، پیش‌فرض: Speaking) participant_chat_guid: GUID شرکت‌کننده. (پیش‌فرض: خود کاربر) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_voice_chat_activity("g0abc123...") print(result) set_voice_chat_setting این متد برای تنظیمات ویس چت (عنوان و وضعیت بی‌صدای اعضای جدید) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. title: عنوان جدید ویس چت. (پیش‌فرض: None) join_muted: آیا اعضای جدید بی‌صدا وارد شوند؟ (فقط گروه، پیش‌فرض: None) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_voice_chat_setting( "g0abc123...", title="ویس چت عمومی", join_muted=True ) print(result) set_voice_chat_state این متد برای تنظیم وضعیت ویس چت (Mute/Unmute/درخواست صحبت) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کانال. action: عملیات. مقادیر: Mute، Unmute، RequestSpeak، CancelRequestSpeak. (پیش‌فرض: Unmute) participant_chat_guid: GUID شرکت‌کننده. (پیش‌فرض: خود کاربر) نکته: اگر ویس چت فعالی وجود نداشته باشد، پیام مناسبی بازگردانده می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_voice_chat_state("g0abc123...", action="Mute") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ابزارهای چت Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents send_chat_activity click_keypad_button get_all_drafts clear_chat_draft clear_all_drafts seen_chats set_chat_use_time report_chat click_chat_ads dont_show_chat_ads report_chat_ads view_chat_ads download_profile_picture ابزارهای چت send_chat_activity این متد برای ارسال وضعیت فعالیت در چت (در حال تایپ، ضبط یا آپلود) است. پارامترها: chat: GUID، لینک یا نام‌کاربری گروه یا کاربر. activity: نوع فعالیت. مقادیر قابل قبول: Typing، Recording، Uploading. (پیش‌فرض: Typing) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_chat_activity("u0abc123...", activity="Typing") print(result) click_keypad_button این متد برای کلیک روی دکمه‌های کیپاد یک بات است. پارامترها: chat: GUID یا نام‌کاربری بات. button_id: شناسه دکمه. نکته: چت باید یک بات (b0) باشد. متد ابتدا اطلاعات کیپاد بات را دریافت می‌کند و سپس دکمه مورد نظر را پیدا و کلیک می‌کند. اگر دکمه‌ای با آن شناسه وجود نداشته باشد، خطا برمی‌گردد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.click_keypad_button("@MyBot", button_id="100") print(result) get_all_drafts این متد برای دریافت تمام پیش‌نویس‌های ذخیره شده پیام‌ها است. مثال: from maxrubika import Shad with Shad("mySession") as app: drafts = app.get_all_drafts() print(drafts) clear_chat_draft این متد برای پاک کردن پیش‌نویس یک چت خاص است. پارامتر: chat: GUID، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.clear_chat_draft("u0abc123...") print(result) clear_all_drafts این متد برای پاک کردن تمام پیش‌نویس‌ها است. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.clear_all_drafts() print(result) seen_chats این متد برای علامت‌گذاری چند چت به عنوان دیده‌شده است. پارامتر: seen_list: دیکشنری شامل GUID چت‌ها و آخرین شناسه پیام دیده‌شده. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.seen_chats({ "u0abc123...": "123456", "g0xyz789...": "789012" }) print(result) set_chat_use_time این متد برای ارسال زمان استفاده از چت به سرور است. این کار به سرور کمک می‌کند رفتار طبیعی کاربر را تشخیص دهد. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. use_time: زمان سپری‌شده در چت به ثانیه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_chat_use_time("u0abc123...", use_time=60) print(result) report_chat این متد برای گزارش یک چت (کاربر، گروه، کانال) است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. report_type: نوع گزارش. می‌تواند: عدد بین ۱۰۰ تا ۱۰۶ نام رشته‌ای (بدون حساسیت به حروف بزرگ/کوچک): Other، Violence، Spam، Porn، ChildAbuse، Copyright، Fraud description: توضیحات گزارش. الزامی وقتی report_type برابر ۱۰۰ (Other) باشد. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.report_chat( "u0abc123...", report_type="Other", description="ارسال تصویر حاوی الفاظ نامناسب" ) print(result) click_chat_ads این متد برای ثبت کلیک روی یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.click_chat_ads("ads_123") print(result) dont_show_chat_ads این متد برای ثبت درخواست «نمایش نده» روی یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.dont_show_chat_ads("ads_123") print(result) report_chat_ads این متد برای ثبت گزارش روی یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.report_chat_ads("ads_123") print(result) view_chat_ads این متد برای ثبت بازدید یک تبلیغ چت است. مقدار chat_ads_id از متد get_chat_ads به دست می‌آید. پارامتر: chat_ads_id: شناسه تبلیغ چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.view_chat_ads("ads_123") print(result) download_profile_picture این متد برای دانلود تصویر پروفایل یک کاربر، گروه یا کانال است. پارامترها: chat: GUID، لینک یا نام‌کاربری چت. file_id: شناسه فایل برای دانلود مستقیم. (پیش‌فرض: None) access_hash_rec: هش دسترسی فایل. (پیش‌فرض: None) dc_id: شناسه دیتاسنتر. (پیش‌فرض: None) save_as: مسیر دایرکتوری موجود برای ذخیره فایل. True برای ذخیره در مسیر فعلی، str برای مسیر دلخواه (باید از قبل وجود داشته باشد)، None برای بازگرداندن بایت. (پیش‌فرض: None) save_all: دانلود تمام آواتارها به جای آخرین مورد. (پیش‌فرض: False) نکته: اگر هیچ عکس پروفایلی وجود نداشته باشد، bytes() خالی بازگردانده می‌شود. مثال‌ها: دریافت آخرین عکس پروفایل به صورت بایت: from maxrubika import Shad with Shad("mySession") as app: image_bytes = app.download_profile_picture("@Online_User") print(len(image_bytes)) ذخیره در مسیر دلخواه: from maxrubika import Shad with Shad("mySession") as app: result = app.download_profile_picture("@Online_User", save_as="/path/to/folder") print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ارسال پیام و مدیا Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents send_message send_image send_video send_video_message send_gif send_voice send_music send_file send_sticker send_poll send_quiz send_location send_live send_message_api_call send_now_scheduled_message send_contact ارسال پیام و مدیا send_message این متد اصلی و پایه برای ارسال هر نوع پیام (متن، فایل، مدیا و...) به یک چت است. تمام متدهای ارسال دیگر مانند send_image، send_video و... در نهایت از این متد استفاده می‌کنند. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. اگر ورودی این پارامتر برابر با me باشد، پیام به پیام‌های ذخیره شده ارسال خواهد شد. text: متن پیام. (پیش‌فرض: None) reply_to_message_id: شناسه پیامی که می‌خواهید به آن ریپلای بزنید. (پیش‌فرض: None) via_bot: شناسه (GUID) یا نام‌کاربری بات برای ارسال از طریق آن. (پیش‌فرض: None) metadata: متادیتای اضافی برای قالب‌بندی متن. schedule_time: زمان‌بندی ارسال پیام. می‌تواند Unix timestamp، timedelta یا datetime باشد. schedule_type: نوع زمان‌بندی. Default یا WhenOnline (فقط برای چت کاربر). نکات: برای ارسال زمان‌بندی شده، schedule_time باید در آینده باشد. schedule_type='WhenOnline' تنها برای چت‌های کاربر قابل استفاده است. مثال‌ها: ارسال پیام متنی ساده: from maxrubika import Shad with Shad("mySession") as app: result = app.send_message("@Online_User", text="سلام! چطوری؟") print(result) ارسال پیام با ریپلای: from maxrubika import Shad with Shad("mySession") as app: result = app.send_message( "u0abc123...", text="پاسخ شما", reply_to_message_id="123456" ) print(result) ارسال پیام زمان‌بندی شده: from datetime import timedelta from maxrubika import Shad with Shad("mySession") as app: result = app.send_message( "https://shad.ir/joing/GROUP123", text="این پیام ۱ ساعت دیگر ارسال می‌شود", schedule_time=timedelta(hours=1) ) print(result) send_image این متد برای ارسال تصویر به یک چت است. این متد از send_message با type='Image' استفاده می‌کند. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. image: مسیر فایل تصویر یا داده‌های بایتی. text: متن همراه تصویر. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) is_spoil: علامت‌گذاری به عنوان اسپویلر. (پیش‌فرض: False) via_bot: ارسال از طریق بات. (پیش‌فرض: None) thumb: تصویر بندانگشتی. (پیش‌فرض: None) width: عرض سفارشی. (پیش‌فرض: None - تشخیص خودکار) height: ارتفاع سفارشی. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های تصویر به صورت base64. (به جای image) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_image( "https://shad.ir/joinc/CHANNEL123", image="photo.jpg", text="عکس من" ) print(result) send_video این متد برای ارسال ویدئو به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. video: مسیر فایل ویدئو یا داده‌های بایتی. text: متن همراه ویدئو. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) is_spoil: علامت‌گذاری به عنوان اسپویلر. (پیش‌فرض: False) via_bot: ارسال از طریق بات. (پیش‌فرض: None) thumb: تصویر بندانگشتی. (پیش‌فرض: None) width: عرض سفارشی. (پیش‌فرض: None - تشخیص خودکار) height: ارتفاع سفارشی. (پیش‌فرض: None - تشخیص خودکار) time: مدت زمان ویدئو به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های ویدئو به صورت base64. (به جای video) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_video( "u0abc123...", video="video.mp4", text="ویدئوی من" ) print(result) send_video_message این متد برای ارسال پیام ویدئویی (ویدئوی گرد) به یک چت است. پارامترها: مشابه send_video (به جای video از video_message استفاده می‌شود). مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_video_message( "https://shad.ir/joing/GROUP123", video_message="round_video.mp4" ) print(result) send_gif این متد برای ارسال گیف به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. gif: مسیر فایل گیف یا داده‌های بایتی. text: متن همراه گیف. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) thumb: تصویر بندانگشتی. (پیش‌فرض: None) width: عرض سفارشی. (پیش‌فرض: None - تشخیص خودکار) height: ارتفاع سفارشی. (پیش‌فرض: None - تشخیص خودکار) time: مدت زمان گیف به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های گیف به صورت base64. (به جای gif) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_gif( "@Online_User", gif="animation.mp4", text="گیف بامزه" ) print(result) send_voice این متد برای ارسال پیام صوتی (ویس) به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. voice: مسیر فایل صوتی یا داده‌های بایتی. text: متن همراه ویس. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) time: مدت زمان ویس به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های ویس به صورت base64. (به جای voice) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_voice( "https://shad.ir/joing/GROUP123", voice="voice.mp3" ) print(result) send_music این متد برای ارسال فایل موسیقی به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. music: مسیر فایل موسیقی یا داده‌های بایتی. text: متن همراه موسیقی. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) performer: نام هنرمند. (پیش‌فرض: None - تشخیص خودکار) time: مدت زمان آهنگ به ثانیه. (پیش‌فرض: None - تشخیص خودکار) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های موسیقی به صورت base64. (به جای music) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_music( "me", music="song.mp3", performer="خواننده مورد علاقه" ) print(result) send_file این متد برای ارسال فایل (عمومی) به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. file: مسیر فایل یا داده‌های بایتی. text: متن همراه فایل. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. base64: داده‌های فایل به صورت base64. (به جای file) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_file( "Online_User", file="document.pdf", text="فایل مورد نظر" ) print(result) send_sticker این متد برای ارسال استیکر به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. emoji_character: ایموجی مرتبط با استیکر. sticker_id: شناسه استیکر. sticker_set_id: شناسه مجموعه استیکر. file: دیکشنری داده‌های فایل استیکر. w_h_ratio: نسبت عرض به ارتفاع. (پیش‌فرض: 1.0) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) via_bot: ارسال از طریق بات. (پیش‌فرض: None) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_sticker( "https://shad.ir/joing/GROUP123", emoji_character="😊", sticker_id="sticker_123", sticker_set_id="set_123", file={"file_id": "abc", "dc_id": 1, "access_hash_rec": "hash", "mime": "image/webp", "file_name": "sticker.webp", "size": 1234} ) print(result) send_poll این متد برای ایجاد و ارسال نظرسنجی به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. question: سوال نظرسنجی. (حداکثر ۲۵۵ کاراکتر) options: لیست گزینه‌ها. (بین ۲ تا ۱۰ گزینه، هر کدام حداکثر ۱۰۰ کاراکتر) is_anonymous: ناشناس بودن رای‌ها. (پیش‌فرض: True) multiple_answers: امکان انتخاب چند گزینه. (پیش‌فرض: False) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_poll( "https://shad.ir/joing/GROUP123", question="رنگ مورد علاقه شما چیست؟", options=["قرمز", "آبی", "سبز", "زرد"], is_anonymous=False, multiple_answers=True ) print(result) send_quiz این متد برای ایجاد و ارسال آزمون (نظرسنجی با پاسخ صحیح) به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. question: سوال آزمون. (حداکثر ۲۵۵ کاراکتر) options: لیست گزینه‌ها. (بین ۲ تا ۱۰ گزینه) correct_option: ایندکس (عدد) یا متن گزینه صحیح. hint: راهنمایی برای پاسخ صحیح. (حداکثر ۲۰۰ کاراکتر، پیش‌فرض: None) is_anonymous: ناشناس بودن پاسخ‌ها. (پیش‌فرض: True) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_quiz( "https://shad.ir/joinc/CHANNEL123", question="پایتخت ایران کدام است؟", options=["تهران", "اصفهان", "شیراز", "تبریز"], correct_option="تهران", hint="بزرگترین شهر ایران" ) print(result) send_location این متد برای ارسال موقعیت مکانی به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. latitude: عرض جغرافیایی. (عددی بین ۹۰- تا ۹۰) longitude: طول جغرافیایی. (عددی بین ۱۸۰- تا ۱۸۰) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_location( "@Online_User", latitude=35.6892, longitude=51.3890 ) print(result) send_live این متد برای ارسال پخش زنده به یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. title: عنوان پخش زنده. (پیش‌فرض: Live stream) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) thumb: تصویر بندانگشتی. می‌تواند Base64، مسیر فایل، URL یا bytes باشد. (پیش‌فرض: None - تصویر پیش‌فرض) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_live( "@TheMAXShad", title="پخش زنده تستی" ) print(result) send_message_api_call این متد برای ارسال پاسخ API Call به دکمه‌های اینلاین یک پیام است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام حاوی دکمه اینلاین. button_id: شناسه دکمه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_message_api_call( chat="@RubiGuardBot", message_id="1499338519906784", button_id="101" ) print(result) send_now_scheduled_message این متد برای ارسال فوری یک پیام زمان‌بندی شده (قبل از موعد مقرر) است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام زمان‌بندی شده. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_now_scheduled_message( "@Online_User", message_id="123456" ) print(result) send_contact این متد برای ارسال مخاطب به یک چت است. پارامترها: chat: شناسه (GUID) یا نام‌کاربری کاربر یا بات مقصد. فقط چت خصوصی (u0 یا b0) مجاز است. phone_number: شماره تلفن مخاطب. user: شناسه (GUID) یا نام‌کاربری کاربر مخاطب. باید u0 باشد. first_name: نام مخاطب. last_name: نام خانوادگی مخاطب. (پیش‌فرض: خالی) vcard: رشته vCard سفارشی. (پیش‌فرض: None) reply_to_message_id: شناسه پیام برای ریپلای. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_contact( "u0abc123...", phone_number="09123456789", user="@Online_User", first_name="علی", last_name="حسینی" ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika دریافت و جستجوی پیام Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_message_info get_messages get_all_messages get_first_message get_first_messages get_last_message get_last_messages get_messages_by_id get_messages_interval get_messages_updates get_chat_messages search_messages search_chat_messages search_global_messages get_message_url get_scheduled_messages get_pinned_messages get_messages_reactions دریافت و جستجوی پیام get_message_info این متد برای دریافت اطلاعات کامل یک پیام خاص به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: info = app.get_message_info("@Online_User", message_id="12345678900") print(info) get_messages این متد برای دریافت پیام‌های یک چت با قابلیت فیلتر بر اساس نوع پیام یا فرستنده است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. types: نوع یا لیستی از انواع پیام برای فیلتر. انواع قابل قبول: text, image, video, video_message, voice, music, file, gif live, location, poll, contact, event, edited, forwarded sticker, me, bots, users همچنین می‌توانید GUID یا نام‌کاربری یک عضو را برای فیلتر پیام‌های او وارد کنید. نکات: فیلتر contact تنها در چت‌های خصوصی قابل استفاده است. در کانال‌ها (c0) نمی‌توان بر اساس member_guids (GUID اعضا) فیلتر کرد. مثال‌ها: دریافت تمام پیام‌ها: from maxrubika import Shad with Shad("mySession") as app: messages = app.get_messages("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD") print(messages) دریافت فقط تصاویر و ویدیوها: from maxrubika import Shad with Shad("mySession") as app: images = app.get_messages("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", types=["image", "video"]) print(images) دریافت پیام‌های یک کاربر خاص: from maxrubika import Shad with Shad("mySession") as app: user_msgs = app.get_messages("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", types="u0xyz789...") print(user_msgs) get_all_messages این متد برای دریافت تمام پیام‌های یک چت از ابتدا تا انتها است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. show_message_ids: در صورت True بودن، شناسه پیام‌ها در خروجی نمایش داده می‌شود. (پیش‌فرض: False) نکته: این متد ممکن است برای چت‌های با پیام‌های زیاد زمان‌بر باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: all_msgs = app.get_all_messages("u0abc123...") print(all_msgs) get_first_message این متد برای دریافت اولین پیام یک چت است. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: first = app.get_first_message("@MyGroup") print(first) get_first_messages این متد برای دریافت اولین پیام‌های یک چت تا سقف مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. limit: حداکثر تعداد پیام. (حداکثر ۱۰۰، پیش‌فرض: ۱۰۰) مثال: from maxrubika import Shad with Shad("mySession") as app: first_msgs = app.get_first_messages("@MyGroup", limit=50) print(first_msgs) get_last_message این متد برای دریافت آخرین پیام یک چت است. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: last = app.get_last_message("Cipher") print(last) get_last_messages این متد برای دریافت آخرین پیام‌های یک چت تا سقف مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. limit: حداکثر تعداد پیام. (حداکثر ۵۰۰، پیش‌فرض: ۱۰۰) مثال: from maxrubika import Shad with Shad("mySession") as app: last_msgs = app.get_last_messages("Cipher", limit=20) print(last_msgs) get_messages_by_id این متد برای دریافت پیام‌ها با شناسه‌های مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_ids: یک شناسه یا لیستی از شناسه‌های پیام. مثال: from maxrubika import Shad with Shad("mySession") as app: msgs = app.get_messages_by_id("https://shad.ir/joing/CHAT123", message_ids=["12345678099", "45612378900", "12288762148"]) print(msgs) get_messages_interval این متد برای دریافت بازه‌ای از پیام‌ها حول یک پیام میانی است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. middle_message_id: شناسه پیام میانی. مثال: from maxrubika import Shad with Shad("mySession") as app: interval = app.get_messages_interval("u0abc123...", middle_message_id="14523674102") print(interval) get_messages_updates این متد برای دریافت به‌روزرسانی‌های پیام‌های یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. state: وضعیت زمانی برای دریافت به‌روزرسانی‌ها. (پیش‌فرض: ۱۵۰ ثانیه قبل از زمان فعلی) مثال: from maxrubika import Shad with Shad("mySession") as app: updates = app.get_messages_updates("Undefined") print(updates) get_chat_messages این متد برای دریافت پیام‌های چت با قابلیت فیلتر و صفحه‌بندی است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. max_id: حداکثر شناسه پیام برای شروع صفحه‌بندی. (پیش‌فرض: None) sort: جهت مرتب‌سازی. FromMax یا FromMin. (پیش‌فرض: FromMin) filter_type: فیلتر بر اساس نوع. مقادیر: Voice, File, Music, Gif, Media, Link. (پیش‌فرض: None) limit: حداکثر تعداد پیام. (پیش‌فرض: None - دریافت همه) مثال‌ها: دریافت پیام‌ها از جدیدترین: from maxrubika import Shad with Shad("mySession") as app: msgs = app.get_chat_messages("u0abc123...", sort="FromMax", limit=50) print(msgs) دریافت فقط فایل‌ها: from maxrubika import Shad with Shad("mySession") as app: files = app.get_chat_messages("@MyChannel", filter_type="File") print(files) search_messages این متد برای جستجوی پیام‌ها بر اساس متن در یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. text: متن مورد جستجو. مثال: from maxrubika import Shad with Shad("mySession") as app: results = app.search_messages("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", text="سلام") print(results) search_chat_messages این متد برای جستجوی پیام‌ها در چت با استفاده از API سرور است. از هشتگ نیز پشتیبانی می‌کند. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. search_text: متن مورد جستجو. اگر با # شروع شود، جستجو بر اساس هشتگ انجام می‌شود. مثال: from maxrubika import Shad with Shad("mySession") as app: results = app.search_chat_messages("u0abc123...", search_text="#مهم") print(results) search_global_messages این متد برای جستجوی سراسری پیام‌ها در تمام چت‌ها است. از هشتگ نیز پشتیبانی می‌کند. پارامترها: search_text: متن یا هشتگ مورد جستجو. start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: results = app.search_global_messages("#مهم") print(results) get_message_url این متد برای دریافت لینک قابل اشتراک‌گذاری یک پیام است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. مثال: from maxrubika import Shad with Shad("mySession") as app: url = app.get_message_url("@Online_User", message_id="12345674187") print(url) get_scheduled_messages این متد برای دریافت پیام‌های زمان‌بندی شده یک چت است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: scheduled = app.get_scheduled_messages("@CodeYaran") print(scheduled) get_pinned_messages این متد برای دریافت پیام‌های پین‌شده یک چت است. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: pinned = app.get_pinned_messages("@MyGroup") print(pinned) get_messages_reactions این متد برای دریافت ری‌اکشن‌های پیام‌های یک چت در یک بازه مشخص است. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. min_id: حداقل شناسه پیام (کران پایین). max_id: حداکثر شناسه پیام (کران بالا). مثال: from maxrubika import Shad with Shad("mySession") as app: reactions = app.get_messages_reactions("u0abc123...", min_id="100", max_id="200") print(reactions) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika عملیات روی پیام‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents edit_message delete_messages delete_all_messages delete_my_messages auto_delete_message forward_messages pin_message unpin_message unpin_all_messages add_reaction remove_reaction report_message mark_as_read mark_as_seen click_message_url click_inline_button عملیات روی پیام‌ها edit_message این متد برای ویرایش متن یک پیام ارسال‌شده به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام مورد نظر. text: متن جدید جایگزین. metadata: متادیتای قالب‌بندی متن (Bold، Italic و...). (پیش‌فرض: None - تشخیص خودکار) نکته: در صورت عدم ارسال metadata، کتابخانه به صورت خودکار متادیتا را از متن استخراج می‌کند. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_message( "@Online_User", message_id="12345678090", text="متن ویرایش شده جدید" ) print(result) delete_messages این متد برای حذف یک یا چند پیام از یک چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_ids: یک شناسه یا لیستی از شناسه‌های پیام برای حذف. type: نوع حذف. Global (حذف برای همه)، Local (حذف فقط برای خود)، Scheduled (حذف پیام زمان‌بندی شده). (پیش‌فرض: Global) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_messages( "https://shad.ir/joing/ABC123", message_ids=["123", "456", "789"] ) print(result) delete_all_messages این متد برای حذف تمام پیام‌های یک چت (به جز پیام ایجاد گروه/کانال) به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. exclude_message_ids: شناسه پیام‌هایی که نباید حذف شوند. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_all_messages("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD") print(result) delete_my_messages این متد برای حذف تمام پیام‌های خودتان در یک چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. exclude_message_ids: شناسه پیام‌هایی که نباید حذف شوند. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_my_messages("@MyGroup") print(result) auto_delete_message این متد برای حذف خودکار یک پیام پس از مدت زمان مشخص به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. time: مدت زمان تأخیر تا حذف (به ثانیه). مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.auto_delete_message( "u0abc123...", message_id="12345674103", time=60 ) print(result) forward_messages این متد برای فوروارد (هدایت) یک یا چند پیام از یک چت به چت دیگر به کار می‌رود. پارامترها: from_chat: شناسه (GUID)، لینک یا نام‌کاربری چت مبدأ. message_ids: شناسه پیام‌ها برای فوروارد. to_chat: شناسه (GUID)، لینک یا نام‌کاربری چت مقصد. hide_author: مخفی کردن فرستنده اصلی. (پیش‌فرض: False) is_mute: فوروارد بی‌صدا بدون اعلان. (پیش‌فرض: False) schedule_time: زمان‌بندی ارسال. schedule_type: نوع زمان‌بندی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.forward_messages( from_chat="@SourceUser", message_ids=["123", "456"], to_chat="https://shad.ir/joing/DEST123" ) print(result) pin_message این متد برای سنجاق کردن (پین) یک پیام در چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.pin_message("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", message_id=147503987410) print(result) unpin_message این متد برای برداشتن سنجاق (آنپین) یک پیام در چت به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_message("https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", message_id=12345636971) print(result) unpin_all_messages این متد برای برداشتن سنجاق تمام پیام‌های پین شده در یک چت به کار می‌رود. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.unpin_all_messages("@MyChannel") print(result) add_reaction این متد برای افزودن ری‌اکشن به یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. reaction_id: شناسه ری‌اکشن. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_reaction( "@Online_User", message_id="123456", reaction_id=1 ) print(result) remove_reaction این متد برای حذف ری‌اکشن از یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. reaction_id: شناسه ری‌اکشن. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.remove_reaction( "https://shad.ir/joing/GROUP123", message_id="123456", reaction_id=1 ) print(result) report_message این متد برای گزارش یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. report_type: نوع گزارش. می‌تواند: عدد بین ۱۰۰ تا ۱۰۶ نام رشته‌ای (بدون حساسیت به حروف بزرگ/کوچک): Other، Violence، Spam، Porn، ChildAbuse، Copyright، Fraud description: توضیحات اضافی. الزامی وقتی report_type برابر ۱۰۰ (Other) باشد. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.report_message( "@Spammer", message_id="123456", report_type="Other", description="پیام اسپم" ) print(result) mark_as_read این متد برای علامت‌گذاری یک چت به عنوان خوانده‌شده (با دیدن آخرین پیام) به کار می‌رود. پارامتر: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.mark_as_read("u0abc123...") print(result) mark_as_seen این متد برای علامت‌گذاری یک پیام خاص به عنوان دیده‌شده به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. (پیش‌فرض: None - آخرین پیام) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.mark_as_seen("@MyFriend", message_id="123456") print(result) click_message_url این متد برای شبیه‌سازی کلیک روی یک لینک داخل پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام. link_url: آدرس لینک. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.click_message_url( "https://shad.ir/joing/CHAT123", message_id="123456", link_url="https://example.com" ) print(result) click_inline_button این متد برای شبیه‌سازی کلیک روی دکمه اینلاین (شیشه‌ای) یک پیام به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت. message_id: شناسه پیام حاوی دکمه اینلاین. button_id: شناسه دکمه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.click_inline_button( "@MyBot", message_id="1499338519906784", button_id="b0SPm00c8gb83b689ac2eeffe16ec7db" ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika ابزارهای پیام Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_poll_status get_poll_option_voters vote_poll stop_poll retract_poll request_send_file ابزارهای پیام get_poll_status این متد برای دریافت وضعیت یک نظرسنجی به کار می‌رود. پارامتر: poll_id: شناسه نظرسنجی. مثال: from maxrubika import Shad with Shad("mySession") as app: status = app.get_poll_status("poll_123") print(status) get_poll_option_voters این متد برای دریافت رأی‌دهندگان یک گزینه خاص از نظرسنجی به کار می‌رود. پارامترها: poll_id: شناسه نظرسنجی. selection_index: ایندکس گزینه مورد نظر. start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: voters = app.get_poll_option_voters("poll_123", selection_index=0) print(voters) vote_poll این متد برای رأی دادن به یک گزینه نظرسنجی به کار می‌رود. پارامترها: poll_id: شناسه نظرسنجی. selection_index: ایندکس گزینه مورد نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.vote_poll("poll_123", selection_index=0) print(result) stop_poll این متد برای متوقف کردن یک نظرسنجی به کار می‌رود. پارامتر: poll_id: شناسه نظرسنجی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.stop_poll("poll_123") print(result) retract_poll این متد برای بازپس‌گیری رای در یک نظرسنجی به کار می‌رود. پارامتر: poll_id: شناسه نظرسنجی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.retract_poll("poll_123") print(result) request_send_file این متد برای درخواست ارسال یک فایل (دریافت URL آپلود) به کار می‌رود. این اولین گام در فرایند آپلود فایل است. پارامترها: file_name: نام فایل. size: اندازه فایل (به بایت). mime: نوع MIME فایل. (پیش‌فرض: None - تشخیص از روی پسوند فایل) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.request_send_file( file_name="document.pdf", size=1024000 ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika تنظیمات Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents get_privacy_setting get_notification_setting set_notification set_setting edit_show_last_online edit_show_phone_number edit_show_profile_photo edit_show_birthday edit_can_join_chat_by edit_can_called_by auto_delete_account update_my_name update_my_username update_my_bio update_my_birthday update_my_profile get_two_passcode_status set_two_step_verification check_two_step_passcode turn_off_two_step abort_two_step_setup change_password request_forget_password request_recovery_email verify_recovery_email login_disable_two_step login_two_step_forget_password request_change_phone_number verify_change_phone_number get_my_sessions get_unconfirmed_sessions confirm_unconfirmed_session deny_unconfirmed_session terminate_session terminate_other_sessions register_device logout delete_account get_folders get_suggested_folders add_folder delete_folder reorder_folder add_saved_music_playlist add_saved_music_track set_saved_music_playlist delete_saved_music_playlist upgrade_to_api6 تنظیمات get_privacy_setting این متد برای دریافت تنظیمات حریم خصوصی فعلی کاربر به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: privacy = app.get_privacy_setting() print(privacy) get_notification_setting این متد برای دریافت تنظیمات اعلان‌های فعلی حساب کاربری به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: notifications = app.get_notification_setting() print(notifications) set_notification این متد برای به‌روزرسانی تنظیمات اعلان‌ها به کار می‌رود. پارامترها: user_notification: فعال/غیرفعال کردن اعلان کاربران. user_message_preview: نمایش/عدم نمایش پیش‌نمایش پیام کاربران. group_notification: فعال/غیرفعال کردن اعلان گروه‌ها. group_message_preview: نمایش/عدم نمایش پیش‌نمایش پیام گروه‌ها. channel_notification: فعال/غیرفعال کردن اعلان کانال‌ها. channel_message_preview: نمایش/عدم نمایش پیش‌نمایش پیام کانال‌ها. in_app_sound: فعال/غیرفعال کردن صدای درون برنامه. in_app_preview: فعال/غیرفعال کردن پیش‌نمایش درون برنامه. new_contacts: فعال/غیرفعال کردن اعلان مخاطبین جدید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_notification( user_notification=True, group_notification=False, in_app_sound=True ) print(result) set_setting این متد برای تنظیم حریم خصوصی و تنظیمات حذف خودکار به کار می‌رود. پارامترهای حریم خصوصی (مقادیر قابل قبول: Everybody، MyContacts، Nobody): show_my_last_online: چه کسانی آخرین بازدید شما را ببینند. show_my_phone_number: چه کسانی شماره تلفن شما را ببینند. show_my_profile_photo: چه کسانی عکس پروفایل شما را ببینند. link_forward_message: چه کسانی لینک پیام‌های شما را فوروارد کنند. can_join_chat_by: چه کسانی بتوانند از طریق لینک به چت شما ملحق شوند. show_my_birth_date: چه کسانی تاریخ تولد شما را ببینند. can_called_by: چه کسانی بتوانند با شما تماس بگیرند. پارامترهای استثنا (exceptions): هر کدام می‌توانند یک دیکشنری با کلیدهای include_users و exclude_users باشند. نکته: قوانین استثناها: - برای Everybody فقط exclude_users مجاز است. - برای Nobody فقط include_users مجاز است. - برای MyContacts هر دو مجاز هستند. - برای پاک کردن استثناها، {'exclude_users': []} بفرستید. پارامترهای حذف خودکار: auto_delete_messages: مدت زمان حذف خودکار پیام‌ها. مقادیر قابل قبول: Off (غیرفعال) عدد (۱ تا ۳۶۵ روز) رشته‌هایی مثل 1d، 7d، 30d، 1w، 1m، 1y کلمات کلیدی: never، disabled، day، week، month، year inactive_account_delete: حذف حساب پس از چند ماه عدم فعالیت. (مقادیر: 3، 6، 12، 24) مثال‌ها: تنظیم آخرین بازدید فقط برای مخاطبین: from maxrubika import Shad with Shad("mySession") as app: result = app.set_setting(show_my_last_online="MyContacts") print(result) تنظیم با استثنا: from maxrubika import Shad with Shad("mySession") as app: result = app.set_setting( show_my_last_online="Nobody", show_my_last_online_exceptions={ "include_users": ["u0abc123..."] } ) print(result) edit_show_last_online این متد میانبری برای تنظیم نمایش آخرین بازدید است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها (include_users و exclude_users). مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_show_last_online("MyContacts") print(result) edit_show_phone_number این متد میانبری برای تنظیم نمایش شماره تلفن است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_show_phone_number("Nobody") print(result) edit_show_profile_photo این متد میانبری برای تنظیم نمایش عکس پروفایل است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_show_profile_photo("MyContacts") print(result) edit_show_birthday این متد میانبری برای تنظیم نمایش تاریخ تولد است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_show_birthday("Nobody") print(result) edit_can_join_chat_by این متد میانبری برای تنظیم امکان ملحق شدن از طریق لینک است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_can_join_chat_by("MyContacts") print(result) edit_can_called_by این متد میانبری برای تنظیم امکان تماس گرفتن با شما است. پارامترها: setting: Everybody، MyContacts یا Nobody. exceptions: دیکشنری استثناها. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.edit_can_called_by("Nobody") print(result) auto_delete_account این متد برای تنظیم حذف خودکار حساب پس از مدت مشخصی عدم فعالیت به کار می‌رود. پارامتر: setting: تعداد ماه‌ها. مقادیر قابل قبول: 3، 6، 12، 24 یا رشته‌هایی مثل "3m"، "6m"، "12m"، "24m". مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.auto_delete_account(6) print(result) update_my_name این متد برای به‌روزرسانی نام و نام خانوادگی کاربر به کار می‌رود. پارامترها: first_name: نام جدید. (حداکثر ۳۰ کاراکتر) last_name: نام خانوادگی جدید. (حداکثر ۵۰ کاراکتر) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.update_my_name(first_name="علی", last_name="حسینی") print(result) update_my_username این متد برای به‌روزرسانی نام‌کاربری کاربر به کار می‌رود. پارامتر: username: نام‌کاربری جدید. (حداقل ۷ و حداکثر ۳۲ کاراکتر، فقط حروف انگلیسی، اعداد و زیرخط) نکته: نام‌کاربری نمی‌تواند با عدد یا زیرخط شروع شود یا به زیرخط ختم شود و باید حداقل شامل یک حرف باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.update_my_username("new_username") print(result) update_my_bio این متد برای به‌روزرسانی بیوگرافی کاربر به کار می‌رود. پارامتر: bio: متن بیوگرافی جدید. (حداکثر ۱۵۰ کاراکتر) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.update_my_bio("این بیوگرافی من است.") print(result) update_my_birthday این متد برای به‌روزرسانی تاریخ تولد کاربر به کار می‌رود. پارامتر: birthday: تاریخ تولد با فرمت YYYY-MM-DD یا یک شیء datetime. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.update_my_birthday("2000-05-20") print(result) update_my_profile این متد برای به‌روزرسانی هم‌زمان چند بخش از پروفایل به کار می‌رود. پارامترها: first_name: نام جدید. last_name: نام خانوادگی جدید. bio: بیوگرافی جدید. birthday: تاریخ تولد با فرمت YYYY-MM-DD. location: اطلاعات موقعیت مکانی شامل: longitude: طول جغرافیایی latitude: عرض جغرافیایی map_view: دیکشنری شامل tile_side_count، tile_urls، x_loc، y_loc مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.update_my_profile( first_name="علی", bio="برنامه‌نویس پایتون" ) print(result) get_two_passcode_status این متد برای دریافت وضعیت تأیید دو مرحله‌ای حساب به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: status = app.get_two_passcode_status() print(status) set_two_step_verification این متد برای تنظیم تأیید دو مرحله‌ای به کار می‌رود. پارامترها: password: رمز عبور فعلی. hint: راهنمایی برای یادآوری رمز. (پیش‌فرض: None) recovery_email: ایمیل بازیابی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_two_step_verification( password="current_password", hint="رمز من" ) print(result) check_two_step_passcode این متد برای بررسی صحت رمز تأیید دو مرحله‌ای به کار می‌رود. پارامتر: password: رمز تأیید دو مرحله‌ای. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.check_two_step_passcode("my_password") print(result) turn_off_two_step این متد برای غیرفعال کردن تأیید دو مرحله‌ای به کار می‌رود. پارامتر: password: رمز تأیید دو مرحله‌ای فعلی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.turn_off_two_step("my_password") print(result) abort_two_step_setup این متد برای لغو فرایند راه‌اندازی تأیید دو مرحله‌ای به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.abort_two_step_setup() print(result) change_password این متد برای تغییر رمز عبور حساب به کار می‌رود. پارامترها: password: رمز عبور فعلی. new_password: رمز عبور جدید. new_hint: راهنمایی جدید برای رمز. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.change_password( password="old_pass", new_password="new_pass", new_hint="راهنمایی جدید" ) print(result) request_forget_password این متد برای درخواست بازنشانی رمز عبور فراموش‌شده به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.request_forget_password() print(result) request_recovery_email این متد برای درخواست ارسال کد بازیابی به ایمیل بازیابی به کار می‌رود. پارامترها: password: رمز عبور فعلی. recovery_email: ایمیل بازیابی. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.request_recovery_email( password="my_password", recovery_email="example@email.com" ) print(result) verify_recovery_email این متد برای تأیید کد ارسال‌شده به ایمیل بازیابی به کار می‌رود. پارامترها: password: رمز عبور فعلی. code: کد تأیید دریافتی در ایمیل. (می‌تواند رشته یا عدد باشد) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.verify_recovery_email( password="my_password", code="123456" ) print(result) login_disable_two_step این متد برای غیرفعال کردن تأیید دو مرحله‌ای در فرایند ورود به حساب به کار می‌رود. پارامترها: phone_number: شماره تلفن مرتبط با حساب. email_code: کد تأیید ارسال‌شده به ایمیل. forget_password_code_hash: هش کد بازیابی رمز عبور. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.login_disable_two_step( phone_number="09123456789", email_code="123456", forget_password_code_hash="hash_here" ) print(result) login_two_step_forget_password این متد برای شروع فرایند بازیابی رمز تأیید دو مرحله‌ای فراموش‌شده به کار می‌رود. پارامتر: phone_number: شماره تلفن مرتبط با حساب. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.login_two_step_forget_password("09123456789") print(result) request_change_phone_number این متد برای درخواست تغییر شماره تلفن حساب به کار می‌رود. پارامتر: new_phone_number: شماره تلفن جدید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.request_change_phone_number("09123456789") print(result) verify_change_phone_number این متد برای تأیید تغییر شماره تلفن با کد دریافتی به کار می‌رود. پارامترها: code: کد تأیید ارسال شده. hash: هش دریافتی از متد request_change_phone_number. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.verify_change_phone_number( code="12345", hash="hash_from_request" ) print(result) get_my_sessions این متد برای دریافت اطلاعات نشست‌های فعال حساب کاربری به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: sessions = app.get_my_sessions() print(sessions) get_unconfirmed_sessions این متد برای دریافت نشست‌های تأیید نشده (در انتظار تأیید) حساب کاربری به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: pending = app.get_unconfirmed_sessions() print(pending) confirm_unconfirmed_session این متد برای تأیید یک نشست در انتظار به کار می‌رود. پارامتر: unconfirmed_session_key: کلید نشست تأیید نشده. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.confirm_unconfirmed_session("session_key_123") print(result) deny_unconfirmed_session این متد برای رد یک نشست در انتظار به کار می‌رود. پارامتر: unconfirmed_session_key: کلید نشست تأیید نشده. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.deny_unconfirmed_session("session_key_123") print(result) terminate_session این متد برای پایان دادن به یک نشست خاص به کار می‌رود. پارامتر: session_key: کلید نشست. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.terminate_session("session_key_123") print(result) terminate_other_sessions این متد برای پایان دادن به تمام نشست‌های دیگر (به جز نشست فعلی) به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.terminate_other_sessions() print(result) register_device این متد برای ثبت دستگاه فعلی در سرور به کار می‌رود. پارامتر: device_model: نام مدل دستگاه سفارشی. (پیش‌فرض: None - تشخیص خودکار) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.register_device() print(result) logout این متد برای خروج از نشست فعلی به کار می‌رود. پارامترها: confirm: در صورت True بودن، قبل از خروج از کاربر تأیید گرفته می‌شود (y/n). در صورت False بودن، بدون پرسش خارج می‌شود. (پیش‌فرض: True) توجه: در حالت confirm=True، برای تکمیل عملیات خروج باید حرف y را در کنسول وارد نمایید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.logout() print(result) # خروج بدون تأیید result = app.logout(confirm=False) print(result) delete_account این متد برای درخواست حذف دائمی حساب به کار می‌رود. توجه: پس از اجرا، یک پیامک تأیید حاوی لینک حذف حساب به شماره شما ارسال خواهد شد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_account() print(result) get_folders این متد برای دریافت لیست پوشه‌ها (Folders) به کار می‌رود. پارامتر: last_state: آخرین وضعیت برای دریافت پوشه‌ها. (پیش‌فرض: زمان فعلی منهای ۱۵۰ ثانیه) مثال: from maxrubika import Shad with Shad("mySession") as app: folders = app.get_folders() print(folders) get_suggested_folders این متد برای دریافت پوشه‌های پیشنهادی کاربر به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: suggested = app.get_suggested_folders() print(suggested) add_folder این متد برای افزودن یک پوشه جدید برای سازمان‌دهی چت‌ها به کار می‌رود. پارامترها: name: نام پوشه. include_chats: چت‌هایی که در پوشه قرار گیرند (GUID، لینک یا نام‌کاربری). exclude_chats: چت‌هایی که از پوشه مستثنی شوند. include_chat_types: انواع چت برای شمول (مانند Contacts، Users، Groups، Channels، Bots، Services). exclude_chat_types: انواع چت برای استثنا (مانند Mute، Read، Archive). is_add_to_top: افزودن پوشه به بالای لیست. (پیش‌فرض: True) suggestion_folder_id: شناسه پوشه پیشنهادی. folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_folder( name="دوستان", include_chats=["@User1", "@User2"] ) print(result) delete_folder این متد برای حذف یک پوشه به کار می‌رود. پارامتر: folder_id: شناسه پوشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_folder("folder_id_123") print(result) reorder_folder این متد برای تغییر ترتیب پوشه‌ها به کار می‌رود. پارامتر: folder_ids: یک شناسه یا لیستی از شناسه‌های پوشه‌ها به ترتیب جدید. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reorder_folder(["id3", "id1", "id2"]) print(result) add_saved_music_playlist این متد برای افزودن آهنگ به لیست موسیقی ذخیره شده در پروفایل به کار می‌رود. پارامترها: files: یک مسیر فایل یا لیستی از مسیرهای فایل‌های موسیقی. file_inlines: لیست دیکشنری‌های file_inline از پیش آپلود شده. time: مدت زمان سفارشی به ثانیه. (در صورت عدم ارسال، تشخیص خودکار) performer: نام خواننده سفارشی. (در صورت عدم ارسال، تشخیص خودکار) file_name: نام فایل سفارشی. (در صورت عدم ارسال، از نام اصلی فایل استفاده می‌شود) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_saved_music_playlist( files=["song1.mp3", "song2.mp3"] ) print(result) add_saved_music_track این متد برای افزودن یک آهنگ تکی به لیست موسیقی ذخیره شده در پروفایل به کار می‌رود. پارامترها: track: مسیر فایل موسیقی یا bytes خام. file_inline: دیکشنری file_inline از پیش آپلود شده. time: مدت زمان سفارشی به ثانیه. (در صورت عدم ارسال، تشخیص خودکار) performer: نام خواننده سفارشی. (در صورت عدم ارسال، تشخیص خودکار) file_name: نام فایل سفارشی. نکته: باید یا track یا file_inline ارسال شود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_saved_music_track("song.mp3") print(result) set_saved_music_playlist این متد برای جایگزینی کامل لیست موسیقی ذخیره شده در پروفایل به کار می‌رود. پارامترها: files: یک مسیر فایل یا لیستی از مسیرهای فایل‌های موسیقی. file_inlines: لیست دیکشنری‌های file_inline از پیش آپلود شده. time: مدت زمان سفارشی به ثانیه. (در صورت عدم ارسال، تشخیص خودکار) performer: نام خواننده سفارشی. (در صورت عدم ارسال، تشخیص خودکار) file_name: نام فایل سفارشی. (در صورت عدم ارسال، از نام اصلی فایل استفاده می‌شود) مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_saved_music_playlist( files=["song1.mp3", "song2.mp3"] ) print(result) delete_saved_music_playlist این متد برای حذف آهنگ‌ها از لیست موسیقی ذخیره شده به کار می‌رود. پارامتر: position: موقعیت آهنگ برای حذف. اگر None باشد، تمام آهنگ‌ها حذف می‌شوند. (پیش‌فرض: None) مثال‌ها: حذف یک آهنگ خاص: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_saved_music_playlist(position=1) print(result) حذف تمام آهنگ‌ها: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_saved_music_playlist() print(result) upgrade_to_api6 این متد برای ارتقاء از API نسخه ۵ به نسخه ۶ با تنظیم کلید عمومی RSA به کار می‌رود. پارامترها: save_as: در صورت True بودن، auth و private_key در فایل JSON ذخیره می‌شود. (پیش‌فرض: True) file_name: نام فایل سفارشی برای ذخیره. (پیش‌فرض: maxrubika_{auth[:10]}) نکته: این متد فقط با api_version = 5 کار می‌کند. مثال: from maxrubika import Shad with Shad(auth = "ahkjbsawthnh...", api_version=5) as app: result = app.upgrade_to_api6() print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika سایر متدها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents متدهای اصلی و راه‌اندازی connect start send_code sign_in run disconnect close get_string_session متدهای دریافت به‌روزرسانی get_updates متدهای درخواست request متدهای فایل upload_file download_file متدهای کمکی get_time get_available_reactions get_location_view set_current_live_location get_wallpapers reset_wallpapers get_link_from_app_url متدهای استیکر get_sticker_setting get_my_sticker_sets get_my_archived_sticker_sets get_sticker_set_by_id get_stickers_by_set_ids get_stickers_by_emoji search_stickers get_trend_sticker_sets add_sticker_set delete_sticker_set archive_sticker_set reorder_sticker_sets متدهای گیف get_my_gif_set add_to_my_gif_set delete_my_gif_set delete_all_my_gif_set متدهای پخش زنده get_live_status get_live_comments get_live_play_url add_live_comment report_live سایر متدها متدهای اصلی و راه‌اندازی connect برقراری ارتباط با API شاد. یک نمونه Api ایجاد می‌کند و اطلاعات نشست ذخیره شده (auth, guid, private_key, user_agent) را در صورت وجود بارگذاری می‌کند. خروجی: Shad: نمونه کلاینت با اتصال فعال. مثال: from maxrubika import Shad with Shad("mySession") as app: app.connect() start شروع کلاینت، مدیریت احراز هویت و ثبت‌نام. پارامترها: phone_number (str, optional): شماره تلفن برای ثبت‌نام. خروجی: Shad: نمونه کلاینت مقداردهی‌شده. مثال: from maxrubika import Shad with Shad("mySession") as app: app.start("+989123456789") send_code ارسال کد تأیید به یک شماره تلفن. پارامترها: phone_number (str): شماره تلفن مقصد. pass_key (str, optional): رمز عبور حساب (در صورت وجود). مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.send_code("+989123456789") print(result) sign_in ورود به حساب با استفاده از کد تأیید. پارامترها: phone_number (str): شماره تلفن. phone_code (str): کد تأیید. phone_code_hash (str): هش کد تأیید. public_key (str): کلید عمومی کلاینت. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.sign_in( phone_number="+989123456789", phone_code="12345", phone_code_hash="hash_here", public_key="public_key_here" ) print(result) run شروع کلاینت و گوش دادن به به‌روزرسانی‌ها. اطمینان از برقراری اتصال، سپس اجرای اختیاری یک coroutine قبل از ورود به حلقه به‌روزرسانی. هم در محیط‌های sync و هم async کار می‌کند. پارامترها: coroutine (Coroutine, optional): Coroutine اختیاری برای اجرا قبل از گوش دادن به به‌روزرسانی‌ها. خروجی: None: در حالت عادی تا زمانی که متوقف نشود، اجرا می‌شود. مثال sync: from maxrubika import Shad with Shad("mySession") as app: app.run() مثال async: from maxrubika import Shad async with Shad("mySession") as app: await app.run() disconnect قطع ارتباط با سرور شاد (نسخه sync). این متد در واقع متد close را در پس‌زمینه فراخوانی می‌کند. مثال: from maxrubika import Shad with Shad("mySession") as app: app.start() # ... انجام عملیات ... app.disconnect() close بستن اتصال به سرور (نسخه async). این متد معادل async متد disconnect است. نکته: برای قطع ارتباط در محیط async از این متد استفاده کنید. برای محیط sync از disconnect استفاده کنید. مثال: from maxrubika import Shad async with Shad("mySession") as app: await app.close() get_string_session خروجی گرفتن از نشست فعلی به صورت یک StringSession رمزنگاری‌شده. پارامترها: password (str, optional): رمز اختیاری برای رمزنگاری. در صورت ارائه، StringSession فقط با همین رمز باز می‌شود. خروجی: str: StringSession رمزنگاری‌شده که می‌توان بعداً با Shad(string_session=..., password=...) استفاده کرد. مثال: from maxrubika import Shad with Shad("mySession") as app: string_session = app.get_string_session() print(string_session) متدهای دریافت به‌روزرسانی get_updates دریافت به‌روزرسانی‌ها از WebSocket شاد. مثال: from maxrubika import Shad with Shad("mySession") as app: # این متد به صورت نامحدود اجرا می‌شود و به‌روزرسانی‌ها را دریافت می‌کند app.get_updates() متدهای درخواست request ساخت و ارسال درخواست به API شاد. پارامترها: method (str): نام متد API (مانند 'sendMessage', 'getUserInfo'). input (dict, optional): داده‌های ورودی برای متد. tmp_session (bool): استفاده از نشست موقت به جای auth (پیش‌فرض: False). در صورت True بودن، اگر کلاینت متصل نباشد، خودکار متصل می‌شود. encrypt (bool): رمزگذاری داده‌های درخواست (پیش‌فرض: True). خروجی: Data or None: پاسخ API. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.request( method="getUserInfo", input={"user_guid": "u0abc123..."} ) print(result) متدهای فایل upload_file آپلود فایل به شاد. پارامترها: file (str or bytes or None): مسیر فایل، bytes، یا URL برای آپلود. base64_data (str, optional): داده‌های فایل به صورت base64. mime (str, optional): نوع MIME فایل. file_name (str, optional): نام فایل. chunk (int, optional): اندازه هر بخش به بایت (پیش‌فرض: 1MB). callback (callable, optional): تابع پیشرفت آپلود (total_size, uploaded_bytes). نکته: باید یا file یا base64_data ارسال شود. خروجی: متادیتای فایل آپلود شده شامل mime, size, dc_id, file_id, file_name, access_hash_rec. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.upload_file( file="file.jpg", mime="image/jpeg", file_name="my_image.jpg" ) print(result) download_file دانلود فایل از سرورهای شاد با استفاده از شناسه فایل و access hash. پارامترها: file_inline: دیکشنری حاوی اطلاعات فایل (dc_id, file_id, access_hash_rec, size, file_name). dc_id (int, optional): شناسه دیتاسنتر (در صورت عدم ارسال file_inline). file_id (int, optional): شناسه یکتای فایل. access_hash (str, optional): هش دسترسی مرتبط با فایل. size (int, optional): اندازه کل فایل به بایت. chunk (int, optional): اندازه هر بخش دانلود (پیش‌فرض: 131072). callback (callable, optional): تابع پیشرفت دانلود (total_size, downloaded_size). gather (bool, optional): دانلود بخش‌ها به صورت موازی (پیش‌فرض: False). save_as (str or bool, optional): مسیر دایرکتوری یا True برای دایرکتوری جاری. اگر None باشد، بایت‌ها را برمی‌گرداند. file_name (str, optional): نام سفارشی فایل. as_base64 (bool, optional): بازگرداندن فایل به صورت base64 (پیش‌فرض: False). خروجی: bytes, str, or Data: محتوای فایل (bytes)، رشته base64 یا Data (زمانی که save_as استفاده می‌شود). مثال‌ها: دانلود با file_inline: from maxrubika import Shad with Shad("mySession") as app: result = app.download_file( file_inline={"dc_id": 1, "file_id": 123456, "access_hash_rec": "hash_example", "size": 1024000}, save_as=True, file_name="my_file.jpg" ) print(result) دانلود با پارامترهای جداگانه و دریافت bytes: from maxrubika import Shad with Shad("mySession") as app: result = app.download_file( dc_id=1, file_id=123456, access_hash="hash_example", size=1024000 ) print(result) متدهای کمکی get_time این متد برای دریافت زمان فعلی سرور به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: time = app.get_time() print(time) get_available_reactions این متد برای دریافت لیست ری‌اکشن‌های قابل استفاده در چت‌ها به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: reactions = app.get_available_reactions() print(reactions) get_location_view این متد برای دریافت نقشه یک موقعیت جغرافیایی به کار می‌رود. پارامترها: latitude: عرض جغرافیایی. (عددی بین ۹۰- تا ۹۰) longitude: طول جغرافیایی. (عددی بین ۱۸۰- تا ۱۸۰) مثال: from maxrubika import Shad with Shad("mySession") as app: view = app.get_location_view(latitude=35.6892, longitude=51.3890) print(view) set_current_live_location این متد برای تنظیم موقعیت زنده فعلی به کار می‌رود. پارامترها: longitude: طول جغرافیایی. latitude: عرض جغرافیایی. tile_side_count: تعداد تایل‌ها در هر ضلع. tile_urls: لیست URLهای تایل‌های نقشه. x_loc: موقعیت X روی نقشه. y_loc: موقعیت Y روی نقشه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.set_current_live_location( longitude=51.3890, latitude=35.6892, tile_side_count=1, tile_urls=["https://..."], x_loc=0.5, y_loc=0.5 ) print(result) get_wallpapers این متد برای دریافت تنظیمات فعلی تصویر پس‌زمینه چت به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: wallpapers = app.get_wallpapers() print(wallpapers) reset_wallpapers این متد برای بازنشانی تمام تصاویر پس‌زمینه چت‌ها به حالت پیش‌فرض به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reset_wallpapers() print(result) get_link_from_app_url این متد برای دریافت لینک مستقیم از یک URL اپلیکیشن به کار می‌رود. پارامتر: url: URL اپلیکیشن برای استخراج لینک. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.get_link_from_app_url("https://...") print(result) متدهای استیکر get_sticker_setting این متد برای دریافت تنظیمات استیکر کاربر فعلی به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: settings = app.get_sticker_setting() print(settings) get_my_sticker_sets این متد برای دریافت مجموعه استیکرهای متعلق به کاربر به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: stickers = app.get_my_sticker_sets() print(stickers) get_my_archived_sticker_sets این متد برای دریافت مجموعه استیکرهای آرشیو شده کاربر به کار می‌رود. پارامتر: start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: archived = app.get_my_archived_sticker_sets() print(archived) get_sticker_set_by_id این متد برای دریافت یک مجموعه استیکر با شناسه آن به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Shad with Shad("mySession") as app: sticker_set = app.get_sticker_set_by_id("sticker_set_id_123") print(sticker_set) get_stickers_by_set_ids این متد برای دریافت استیکرها با شناسه مجموعه‌های آن‌ها به کار می‌رود. پارامتر: sticker_set_ids: یک شناسه یا لیستی از شناسه‌های مجموعه استیکر. مثال: from maxrubika import Shad with Shad("mySession") as app: stickers = app.get_stickers_by_set_ids(["id1", "id2", "id3"]) print(stickers) get_stickers_by_emoji این متد برای دریافت استیکرها بر اساس ایموجی به کار می‌رود. پارامترها: emoji: کاراکتر ایموجی. suggest_by: نوع پیشنهاد. (پیش‌فرض: All) مثال: from maxrubika import Shad with Shad("mySession") as app: stickers = app.get_stickers_by_emoji("😊") print(stickers) search_stickers این متد برای جستجوی استیکرها به کار می‌رود. پارامترها: search_text: متن جستجو. (پیش‌فرض: خالی) start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: results = app.search_stickers(search_text="سلام") print(results) get_trend_sticker_sets این متد برای دریافت مجموعه استیکرهای پرطرفدار به کار می‌رود. پارامتر: start_id: شناسه شروع برای صفحه‌بندی. (پیش‌فرض: None) مثال: from maxrubika import Shad with Shad("mySession") as app: trending = app.get_trend_sticker_sets() print(trending) add_sticker_set این متد برای افزودن یک مجموعه استیکر به مجموعه‌های کاربر به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_sticker_set("sticker_set_id_123") print(result) delete_sticker_set این متد برای حذف یک مجموعه استیکر از مجموعه‌های کاربر به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_sticker_set("sticker_set_id_123") print(result) archive_sticker_set این متد برای آرشیو کردن یک مجموعه استیکر به کار می‌رود. پارامتر: sticker_set_id: شناسه مجموعه استیکر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.archive_sticker_set("sticker_set_id_123") print(result) reorder_sticker_sets این متد برای تغییر ترتیب مجموعه استیکرها در مجموعه کاربر به کار می‌رود. پارامتر: ordered_sticker_set_ids: یک شناسه یا لیستی از شناسه‌های مجموعه استیکر به ترتیب دلخواه. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.reorder_sticker_sets(["id3", "id1", "id2"]) print(result) متدهای گیف get_my_gif_set این متد برای دریافت مجموعه گیف‌های شخصی کاربر به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: gifs = app.get_my_gif_set() print(gifs) add_to_my_gif_set این متد برای افزودن یک گیف به مجموعه گیف‌های شخصی کاربر به کار می‌رود. پارامترها: chat: شناسه (GUID)، لینک یا نام‌کاربری چت حاوی گیف. message_id: شناسه پیام گیف. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_to_my_gif_set("g0abc123...", message_id="123456") print(result) delete_my_gif_set این متد برای حذف یک گیف از مجموعه گیف‌های شخصی کاربر به کار می‌رود. پارامتر: file_id: شناسه فایل گیف. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_my_gif_set("file_id_123") print(result) delete_all_my_gif_set این متد برای حذف تمام گیف‌ها از مجموعه گیف‌های شخصی کاربر به کار می‌رود. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.delete_all_my_gif_set() print(result) متدهای پخش زنده get_live_status این متد برای دریافت وضعیت یک پخش زنده به کار می‌رود. پارامترها: live_id: شناسه پخش زنده. access_token: توکن دسترسی دریافت‌شده از پاسخ send_live. مثال: from maxrubika import Shad with Shad("mySession") as app: status = app.get_live_status(live_id="live_123", access_token="token_abc") print(status) get_live_comments این متد برای دریافت نظرات یک پخش زنده به کار می‌رود. پارامترها: live_id: شناسه پخش زنده. access_token: توکن دسترسی. مثال: from maxrubika import Shad with Shad("mySession") as app: comments = app.get_live_comments(live_id="live_123", access_token="token_abc") print(comments) get_live_play_url این متد برای دریافت URL پخش یک لایو به کار می‌رود. پارامترها: access_token: توکن دسترسی. live_id: شناسه پخش زنده. مثال: from maxrubika import Shad with Shad("mySession") as app: url = app.get_live_play_url(access_token="token_abc", live_id="live_123") print(url) add_live_comment این متد برای افزودن نظر به یک پخش زنده به کار می‌رود. پارامترها: access_token: توکن دسترسی. live_id: شناسه پخش زنده. comment: متن نظر. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.add_live_comment( access_token="token_abc", live_id="live_123", comment="نظر تستی" ) print(result) report_live این متد برای گزارش یک پخش زنده به کار می‌رود. پارامترها: live_id: شناسه پخش زنده برای گزارش. report_type: دلیل گزارش. می‌تواند: عدد بین ۱۰۰ تا ۱۰۶ نام رشته‌ای (بدون حساسیت به حروف بزرگ/کوچک): Other، Violence، Spam، Porn، ChildAbuse، Copyright، Fraud description: توضیحات گزارش. الزامی وقتی report_type برابر ۱۰۰ (Other) باشد. مثال: from maxrubika import Shad with Shad("mySession") as app: result = app.report_live( live_id="live_123", report_type="Spam" ) print(result) بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika دکوراتورها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents @app.on_new_message(*filters) @app.on_edit_message(*filters) @app.on_delete_message(*filters) @app.on_draft_message(*filters) @app.on_scheduled_message(*filters) @app.on_message(*filters) @app.on_add_reaction(*filters) @app.on_remove_reaction(*filters) @app.on_chat_updates(*filters) @app.on_call_signal(*filters) @app.on_call_update(*filters) @app.on_unconfirmed_session() @app.on_show_activities(*filters) @app.on_show_notifications(*filters) @app.on_remove_notifications(*filters) @app.on_voice_chat_participant(*filters) @app.on_voice_chat_update(*filters) دکوراتورها @app.on_new_message(*filters) فقط پیام‌های جدید را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_new_message() async def handler(event): print(f"پیام جدید: {event.text}") app.run() @app.on_edit_message(*filters) فقط پیام‌های ویرایش شده را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_edit_message() async def handler(event): print(f"پیام ویرایش شد: {event.text}") app.run() @app.on_delete_message(*filters) فقط پیام‌های حذف شده را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_delete_message() async def handler(event): print(f"پیام حذف شد: {event.message_id}") app.run() @app.on_draft_message(*filters) فقط پیام‌های بایگانی شده را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_draft_message() async def handler(event): print(f"پیش‌نویس پیام") app.run() @app.on_scheduled_message(*filters) فقط پیام‌های زمان‌بندی شده را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_scheduled_message() async def handler(event): print(f"پیام زمان‌بندی شده") app.run() @app.on_message(*filters) همه نوع پیام (جدید، ویرایش شده، حذف شده) را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_message() async def handler(event): print(f"پیام: {event.text}") app.run() @app.on_add_reaction(*filters) فقط آپدیت مربوط به اضافه شدن ری‌اکشن به پیام را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_add_reaction() async def handler(event): print(f"ری‌اکشن اضافه شد: {event.reactions}") app.run() @app.on_remove_reaction(*filters) فقط آپدیت مربوط به حذف شدن ری‌اکشن از پیام را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_remove_reaction() async def handler(event): print(f"ری‌اکشن حذف شد") app.run() @app.on_chat_updates(*filters) فقط آپدیت‌های چت را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_chat_updates() async def handler(event): print(f"بروزرسانی چت") app.run() @app.on_call_signal(*filters) فقط سیگنال مربوط به تماس صوتی و تصویری را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_call_signal() async def handler(event): print(f"سیگنال تماس") app.run() @app.on_call_update(*filters) فقط آپدیت مربوط به تماس صوتی و تصویری را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_call_update() async def handler(event): print(f"بروزرسانی تماس") app.run() @app.on_unconfirmed_session() فقط نشست‌های تایید نشده را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_unconfirmed_session() async def handler(event): print(f"نشست تأیید نشده") app.run() @app.on_show_activities(*filters) فقط اکشن‌های کاربران را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_show_activities() async def handler(event): print(f"فعالیت: {event.activity}") app.run() @app.on_show_notifications(*filters) فقط اعلانات را نمایش می‌دهد. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_show_notifications() async def handler(event): print(f"اعلان جدید") app.run() @app.on_remove_notifications(*filters) فقط اعلانات را حذف می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_remove_notifications() async def handler(event): print(f"اعلان حذف شد") app.run() @app.on_voice_chat_participant(*filters) فقط آپدیت مربوط به شرکت‌کنندگان در گفتگوی صوتی را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_voice_chat_participant() async def handler(event): print(f"تغییر شرکت‌کننده ویس چت") app.run() @app.on_voice_chat_update(*filters) فقط آپدیت مربوط به گفتگوی صوتی را دریافت می‌کند. مثال: from maxrubika import Shad app = Shad("mySession") @app.on_voice_chat_update() async def handler(event): print(f"بروزرسانی ویس چت") app.run() بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika فیلترها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents فیلترهای نوع رویداد فیلترهای چت و کاربر فیلترهای فایل و مدیا فیلترهای رویداد سیستمی فیلترهای ریپلای و فوروارد فیلترهای متن فیلترهای متادیتا و ری‌اکشن مثال‌های ترکیبی فیلترها فیلترها با & (AND)، | (OR) و ~ (NOT) ترکیب می‌شوند. # AND - پیام کاربر خاص در گروه @client.on_new_message(FromUser("u0abc...") & ChatType("group")) # OR - گروه یا کانال @client.on_new_message(ChatType("group") | ChatType("channel")) # NOT - هر چیزی غیر از خودم @client.on_new_message(~IsMe()) فیلترهای نوع رویداد فیلتر توضیح IsMessage() پیام جدید IsEdited() پیام ویرایش شده IsDeleted() پیام پاک شده فیلترهای چت و کاربر فیلتر توضیح مثال ChatType("user") نوع چت ChatType("group") ChatType("bot") فقط بات ChatType("bot") ChatType("service") فقط سرویس ChatType("service") ChatType(["group", "channel"]) چند نوع FromChat("id") چت خاص (GUID، نام‌کاربری یا لینک) FromChat("g0abc...") FromChat(["id1", "id2"]) چند چت FromUser("id") کاربر خاص FromUser("@Online_User") FromUser(["id1", "id2"]) چند کاربر FromBot("id") بات خاص FromBot("@MyBot") FromBot(["id1", "id2"]) چند بات FromActivity("id") فعالیت از کاربر خاص FromActivity("u0abc...") FromActivity(["id1", "id2"]) فعالیت از چند کاربر IsMe() پیام‌های خود کاربر فیلترهای فایل و مدیا فیلتر توضیح IsText() فقط پیام متنی (بدون فایل) IsImage() تصویر IsVideo() ویدئو (غیر گرد) IsVideoMessage() پیام ویدئویی (ویدئوی گرد) IsVoice() پیام صوتی (ویس) IsMusic() فایل موسیقی IsGif() گیف IsSticker() استیکر IsFile() فایل/سند IsContact() مخاطب IsLocation() موقعیت مکانی IsPoll() نظرسنجی IsLive() پخش زنده فیلترهای رویداد سیستمی فیلتر توضیح مثال IsEvent() هر رویداد سیستمی EventType("type") نوع خاص رویداد EventType("AddedGroupMembers") انواع رویداد: RemoveGroupMembers, AddedGroupMembers, PinnedMessageUpdated, TitleUpdate, PhotoUpdate, RemovePhoto, SetAutoDelete, JoinedGroupByLink, LeaveGroup, JoinedGroupByRequest, CreateGroupVoiceChat, StopGroupVoiceChat, GroupCreated, ChannelCreated فیلترهای ریپلای و فوروارد فیلتر توضیح IsReply() پیام ریپلای شده IsForwarded() هر نوع فوروارد ForwardedFromUser() فوروارد از کاربر ForwardedFromChannel() فوروارد از کانال ForwardedFromBot() فوروارد از بات ForwardedNoLink() فوروارد با هویت مخفی فیلترهای متن فیلتر توضیح مثال Text("pattern") متن شامل الگو باشد Text("سلام") TextMatch("pattern") مانند Text + ذخیره match TextMatch(r"اسم (\w+)") Command("name") دستور با / شروع شود Command("start") Command() هر دستوری Command(["start", "help"]) چند دستور Command("help", prefixes=["/", "!"]) با پیشوند دلخواه فیلترهای متادیتا و ری‌اکشن فیلتر توضیح مثال HasMetadata() پیام فرمت‌دار (Bold, Italic) MetadataType("Bold") نوع خاص MetadataType(["Bold", "Italic"]) HasReaction() پیام دارای ری‌اکشن مثال‌های ترکیبی # فقط تصاویر در گروه @client.on_new_message(IsImage() & ChatType("group")) async def group_images(event): await event.reply("تصویر در گروه دریافت شد!") # پیام متنی از کاربر خاص که ریپلای نباشد @client.on_new_message(FromUser("@Online_User") & IsText() & ~IsReply()) async def text_from_user(event): print(f"پیام: {event.text}") # دستور start یا help @client.on_new_message(Command(["start", "help"])) async def commands(event): await event.reply("در خدمتم!") # دستور با پیشوند دلخواه (مثلاً !help) @client.on_new_message(Command("help", prefixes=["/", "!"])) async def custom_prefix(event): await event.reply("دستور با پیشوند دلخواه!") # تشخیص نام با TextMatch @client.on_new_message(TextMatch(r"اسم من (\w+) هست")) async def name_catcher(event): name = event.pattern_match.group(1) await event.reply(f"سلام {name}!") # رویداد افزودن عضو به گروه @client.on_message(EventType("AddedGroupMembers")) async def new_member(event): print("کاربر جدید اضافه شد!") # پیام فوروارد شده از کانال @client.on_new_message(IsForwarded() & ForwardedFromChannel()) async def forwarded_from_channel(event): print("فوروارد از کانال") # چند کاربر خاص @client.on_new_message(FromUser(["u0abc...", "u0xyz..."])) async def multiple_users(event): print(f"پیام از یکی از کاربران خاص: {event.text}") # پیام از بات یا سرویس @client.on_new_message(ChatType(["bot", "service"])) async def bot_or_service(event): print("پیام از بات یا سرویس") بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika پراپرتی‌ها Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents اطلاعات پایه اطلاعات چت فایل و مدیا تشخیص نوع محتوا واکنش‌ها فوروارد اطلاعات بات متادیتا و رویداد متدهای کمکی (Helper Methods) متدهای ریپلای تخصصی متدهای مدیریتی پراپرتی‌ها همه هندلرها یک شیء event دریافت می‌کنند با پراپرتی‌های زیر: اطلاعات پایه پراپرتی توضیح نوع event.action نوع اکشن رویداد New, Edit, Delete event.type نوع رویداد str event.text متن پیام یا کپشن str event.message کل دیتای پیام Data event.message_id آیدی پیام str event.message_type نوع پیام Text, FileInline, Event, Sticker و... event.timestamp زمان رویداد (تایم‌استمپ) str event.original_data دیتای خام API dict event.author_guid آیدی فرستنده str event.author_type نوع فرستنده str event.author_title نام نمایشی فرستنده str event.is_mine پیام خودت؟ bool event.is_me پیام خودت؟ (بر اساس GUID) bool event.is_edited ویرایش شده؟ bool event.is_reply ریپلای؟ bool event.reply_to_message_id آیدی پیام ریپلای‌شده str یا None event.updated_parameters لیست پارامترهای آپدیت‌شده list event.pattern_match match آبجکت از فیلتر TextMatch Match یا None اطلاعات چت پراپرتی توضیح نوع event.chat_guid آیدی چت (object_guid) str event.chat_type نوع چت User, Group, Channel, ... event.is_group گروه؟ bool event.is_channel کانال؟ bool event.is_pv پیوی؟ bool event.is_bot بات؟ bool event.is_service سرویس؟ bool event.guid_type(chat_guid) نوع هر GUID (User, Group, Channel, Bot, Service) str فایل و مدیا پراپرتی توضیح نوع event.file_inline دیتای فایل (Data) Data یا None event.file_inline_raw دیتای فایل (dict خام) dict یا None event.file_type نوع فایل Image, Video, Voice, Music, Gif, File و... event.file_id آیدی فایل str event.file_name نام فایل str event.file_size سایز (بایت) int event.file_dc_id آیدی دیتاسنتر str event.file_access_hash هش دسترسی str event.file_width عرض (عکس/ویدیو) int event.file_height ارتفاع (عکس/ویدیو) int event.file_duration مدت (صوت/ویدیو) int event.file_mime MIME type str event.thumb_inline تصویر بندانگشتی str event.music_performer نام خواننده str event.is_round ویدیو دایره‌ای؟ bool تشخیص نوع محتوا پراپرتی توضیح event.is_text متن ساده؟ event.is_file_inline فایل اینلاین؟ (FileInline / FileInlineCaption) event.is_event رویداد سیستمی؟ event.is_image عکس؟ event.is_video ویدیو؟ event.is_video_message ویدیو دایره‌ای؟ event.is_voice ویس؟ event.is_music موزیک؟ event.is_gif گیف؟ event.is_file فایل (سند)؟ event.is_contact مخاطب؟ event.is_location موقعیت مکانی؟ event.is_poll نظرسنجی؟ event.is_live لایو؟ event.is_sticker استیکر؟ event.sticker دیتای استیکر (Data) event.sticker_raw دیتای استیکر (dict خام) واکنش‌ها پراپرتی توضیح نوع event.has_reaction واکنش دارد؟ bool event.reactions دیتای واکنش‌ها dict یا None فوروارد پراپرتی توضیح نوع event.is_forward فوروارد شده؟ bool event.forwarded_from اطلاعات فوروارد dict یا None event.forwarded_no_link فوروارد با هدایت بسته dict یا None event.forward_type_from نوع مبدأ User, Channel, Bot event.is_forwarded_from_user از کاربر؟ bool event.is_forwarded_from_channel از کانال؟ bool event.is_forwarded_from_bot از بات؟ bool event.is_forwarded_no_link هدایت بسته؟ bool اطلاعات بات پراپرتی توضیح نوع event.via_bot GUID باتی که پیام از طریقش فرستاده شده str یا None event.is_via_bot از طریق بات ارسال شده؟ bool متادیتا و رویداد پراپرتی توضیح نوع event.has_metadata فرمت‌دار؟ bool event.metadata دیتای متادیتا dict یا None event.metadata_types لیست نوع‌های متادیتا list event.event_data دیتای رویداد سیستمی dict یا None event.event_type نوع رویداد سیستمی AddedGroupMembers, PinnedMessageUpdated و... event.user_activity_guid شناسه کاربر در رویداد اکتیویتی str متدهای کمکی (Helper Methods) متد توضیح await event.reply("متن") ریپلای سریع await event.edit("متن جدید") ادیت پیام await event.delete() حذف پیام await event.copy() کپی در همان چت await event.copy("chat_guid") کپی به چت دیگر await event.forward() فوروارد در همان چت await event.forward("chat_guid") فوروارد به چت دیگر await event.pin() پین کردن پیام await event.unpin() آنپین کردن پیام await event.seen() علامت‌گذاری به‌عنوان دیده‌شده await event.add_reaction(id) افزودن واکنش await event.remove_reaction(id) حذف واکنش await event.download() دانلود فایل پیام await event.send_activity("Typing") ارسال اکتیویتی (Typing/Uploading/Recording) متدهای ریپلای تخصصی متد توضیح await event.reply_image() ریپلای عکس await event.reply_video() ریپلای ویدیو await event.reply_video_message() ریپلای ویدیو دایره‌ای await event.reply_gif() ریپلای گیف await event.reply_music() ریپلای موزیک await event.reply_voice() ریپلای ویس await event.reply_file() ریپلای فایل await event.reply_contact() ریپلای مخاطب await event.reply_location() ریپلای موقعیت مکانی await event.reply_poll() ریپلای نظرسنجی await event.reply_quiz() ریپلای کوییز متدهای مدیریتی متد توضیح await event.get_author() اطلاعات فرستنده await event.get_chat() اطلاعات چت await event.ban_member() بن کردن عضو await event.unban_member() آنبن کردن عضو await event.member_is_admin() آیا ادمین است؟ await event.block_user() بلاک کاربر await event.unblock_user() آنبلاک کاربر await event.mute_chat() بی‌صدا کردن چت await event.unmute_chat() لغو بی‌صدا await event.archive_chat() آرشیو چت await event.unarchive_chat() لغو آرشیو await event.delete_user_chat() حذف چت کاربر بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika توضیحات بیشتر Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents راهنمای شناسه‌های گفتگو (GUID) راهنمای فایل سشن (Session) فایل سشن چیست؟ مزایای استفاده از فایل سشن: راهنمای استرینگ سشن (StringSession) و امنیت آن مزایای StringSession: ساخت StringSession از سشن فعلی: استفاده از StringSession برای ساخت کلاینت: پارامتر مربوط به متد get_string_session: نکات مهم: راهنمای متادیتا در متن پیام نمونه‌های ترکیبی پیشرفته راهنمای ایجاد کلاینت (Shad) روش‌های احراز هویت نکات: نحوه اتصال و قطع اتصال روش اول: استفاده از Context Manager حالت Sync: حالت Async: روش دوم: صدا زدن متد start و disconnect یا close حالت Sync: حالت Async: نکته مهم: مثال: استفاده از دکوراتور (بدون نیاز به قطع دستی) راهنمای ورودی‌های متدها (Input Methods) انعطاف‌پذیری در شناسایی مخاطبان و گروه‌ها ویژگی‌های کلیدی: ⚠️ نکته مهم درباره ورودی‌های لینک و یوزرنیم مثال‌های عملی نکات مهم: توضیحات بیشتر راهنمای شناسه‌های گفتگو (GUID) شناسه‌های گفتگو در پلتفرم شاد از قاعده‌ی مشخصی پیروی می‌کنند که آگاهی از آن برای عملکرد صحیح کتابخانه ضروری است: نوع گفتگو پیشوند طول مثال کاربر u0 ۳۲ کاراکتر u0Hzgbk0ac24729c1d1a5d55c26ac3ef بات b0 ۳۲ کاراکتر b0Hzgbk0ac24729c1d1a5d55c29ac5ag گروه g0 ۳۲ کاراکتر g0G3R190567fa33c5f5ee7d399a104e8 کانال c0 ۳۲ کاراکتر c0Hzgbk0ac24729c1d1a5d55c26ac3ef سرویس s0 ۳۲ کاراکتر s0abcdefghijklmnopqrstuvwxyz12 راهنمای فایل سشن (Session) فایل سشن چیست؟ فایل نشست (Session) یک فایل است که کتابخانه پس از اولین ورود موفق (شماره تلفن و کد تأیید) ایجاد می‌کند. این فایل شامل اطلاعات احراز هویت شماست و در دفعات بعدی، دیگر نیازی به وارد کردن مجدد شماره و کد نخواهید داشت. مزایای استفاده از فایل سشن: عدم نیاز به ورود مجدد - پس از اولین بار، نیازی به وارد کردن شماره و کد نیست. سرعت بالا - اتصال سریع‌تر به سرور. امنیت - اطلاعات به صورت رمزنگاری شده ذخیره می‌شوند. راهنمای استرینگ سشن (StringSession) و امنیت آن فایل سشن معمولی (Session) اطلاعات احراز هویت شما را در یک فایل روی دیسک ذخیره می‌کند. اما در برخی محیط‌ها (مثل سرورهای ابری، محیط‌های Docker یا اجرای ربات در جاهایی که دسترسی به فایل‌سیستم محدود است) نمی‌توانید به راحتی فایل سشن را نگه دارید. StringSession یک راهکار جایگزین برای ذخیره و انتقال سشن است. به جای ذخیره در فایل، سشن به صورت یک رشته رمزنگاری‌شده در می‌آید و می‌توانید آن را در متغیرهای محیطی، فایل‌های تنظیمات یا هر جای دیگری نگه دارید. مزایای StringSession: عدم وابستگی به فایل‌سیستم: می‌توانید سشن را در متغیرهای محیطی (Environment Variables) ذخیره کنید. مناسب برای Heroku، Docker، Railway و... . رمزنگاری با رمز عبور: می‌توانید StringSession را با یک رمز عبور محافظت کنید. حتی اگر رشته لو برود، بدون رمز عبور قابل استفاده نیست. انتقال آسان: می‌توانید StringSession را بین سیستم‌ها یا سرورهای مختلف کپی کنید. امنیت بیشتر: اطلاعات حساس به‌صورت رمزنگاری‌شده ذخیره می‌شوند. اولویت بر فایل سشن: اگر هم session و هم string_session را بدهید، string_session استفاده می‌شود. ساخت StringSession از سشن فعلی: با استفاده از متد get_string_session() می‌توانید سشن فعلی خود را به یک رشته رمزنگاری‌شده تبدیل کنید: from maxrubika import Shad with Shad("mySession") as app: # بدون رمز عبور print(app.get_string_session()) # با رمز عبور (امن‌تر) print(app.get_string_session(password="my_secret_password")) استفاده از StringSession برای ساخت کلاینت: from maxrubika import Shad # بدون رمز عبور with Shad(string_session="ENCRYPTED_STRING") as app: print(app.get_me()) # با رمز عبور with Shad(string_session="ENCRYPTED_STRING", password="my_secret_password") as app: print(app.get_me()) پارامتر مربوط به متد get_string_session: پارامتر نوع پیش‌فرض توضیح password str None رمز عبور برای رمزگشایی string_session (در صورت استفاده). نکات مهم: اولویت string_session: اگر هم session و هم string_session را بدهید، string_session استفاده می‌شود. رمز عبور را نگه دارید: اگر StringSession را با رمز عبور بسازید، حتماً رمز را جای امنی نگه دارید. بدون آن، StringSession قابل بازیابی نیست. مخصوص API v6: استفاده از string_session فقط در api_version=6 پشتیبانی می‌شود. سازگاری: StringSession ساخته‌شده با کتابخانه MAXRubika فقط در همین کتابخانه قابل استفاده است. مدیریت خطا: اگر StringSession نامعتبر باشد یا رمز عبور اشتباه باشد، خطای SessionError برگردانده می‌شود. راهنمای متادیتا در متن پیام برای غنی‌سازی متن پیام‌ها و ایجاد قالب‌بندی پیشرفته، می‌توانید از متادیتاهای زیر استفاده کنید. هر متادیتا با علامت‌های مشخصی در ابتدا و انتهای عبارت اعمال می‌شود: نوع قالب‌بندی علامت‌ها مثال برجسته (Bold) ** **سلام دوست عزیز!** کج (Italic) __ __این یک جمله تست است.__ اسپویل (Spoiler) || ||متن اسپویل شده|| نقل قول (Quote) > (فقط ابتدا) > سلام! زیرخط (Underline) -- --تست-- خط‌خورده (Strikethrough) ~~ ~~عالی و قوی~~ مونو (Monospace) ` `بی‌نظیر` بلاک کد (Code Block) ``` ``` کد ``` هایپرلینک [متن](لینک) [کلیک کنید](https://example.com) منشن (Mention) [متن](sender_id) [مدیر](u0...) نمونه‌های ترکیبی پیشرفته مثال ۱ - ترکیب چند متادیتا: > __سلام__ [کاربر عزیز](u0) --به کتابخانه‌ی-- **MAXRubika** ||خوش آمدید||! مثال ۲ - متادیتای تودرتو: > ||__**این یک جمله از کتابخانه --MAXRubika-- است.**__|| توجه: حداکثر تعداد متادیتا در هر پیام ۳۰ مورد است و می‌توانید از ترکیب‌های مختلف به‌صورت همزمان استفاده کنید. برای اعمال متادیتا بر روی پیام، می‌بایست علامت‌ها را اول و آخر جمله قرار دهید، اگر در اول و آخر متن قرار دهید، متادیتا اعمال نمی‌شود. (به جز علامت های بلاک کد) راهنمای ایجاد کلاینت (Shad) برای ایجاد یک نمونه از کلاینت MAXRubika، می‌توانید از پارامترهای زیر استفاده کنید: پارامتر توضیح نوع پیش‌فرض session نام یا مسیر فایل نشست (فقط api_version=6) str None string_session نشست به صورت رشته (اولویت بر session) str None password رمز عبور برای رمزگشایی string_session str None auth کلید احراز هویت str None private_key کلید خصوصی RSA (فقط api_version=6) str یا bytes None timeout مدت زمان انتظار برای درخواست (ثانیه) int/float 30 proxy آدرس پروکسی str None logger نمونه Logger logging.Logger None platform پلتفرم کلاینت web, android, pwa web api_version نسخه API 5 یا 6 6 max_retries حداکثر تعداد تلاش مجدد int 5 stop_on_first_match توقف پس از اولین تطابق هندلر bool False continue_on_error ادامه تلاش سایر پلتفرم‌ها در صورت خطای auth bool True show_welcome نمایش پیام خوش‌آمدگویی bool True روش‌های احراز هویت روش ۱: استفاده از نشست (Session) - مخصوص API v6 from maxrubika import Shad with Shad("mySession") as app: # کد شما pass روش ۲: استفاده از String Session - مخصوص API v6 from maxrubika import Shad with Shad(string_session="ENCRYPTED_STRING", password="my_pass") as app: # کد شما pass روش ۳: استفاده از Auth و Private Key - مخصوص API v6 from maxrubika import Shad with Shad( auth="abcdefghijklmnopqrstuvwxyz12", private_key="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" ) as app: # کد شما pass روش ۴: استفاده از Auth - مخصوص API v5 from maxrubika import Shad with Shad( auth="abcdefghijklmnopqrstuvwxyz12", api_version=5 ) as app: # کد شما pass نکات: در API v6 باید session یا string_session یا هر دو auth و private_key ارائه شود. در API v5 فقط auth نیاز است و private_key پشتیبانی نمی‌شود. مقدار auth باید دقیقاً ۳۲ حرف کوچک انگلیسی باشد. continue_on_error در صورت True بودن، در صورت خطا دادن، پلتفرم‌های دیگر را امتحان می‌کند. Shad در واقع نسخهٔ جدیدتر و جایگزین Client است. استفاده از Client منقضی شده است. نحوه اتصال و قطع اتصال برای برقراری و قطع اتصال در کتابخانه MAXRubika، دو روش اصلی وجود دارد که بسته به نوع استفاده (Sync یا Async) و نیاز پروژه، می‌توانید یکی را انتخاب کنید. روش اول: استفاده از Context Manager در این روش نیازی به صدا زدن متد اضافه‌ای برای قطع اتصال نیست؛ کافی است از with (در حالت Sync) یا async with (در حالت Async) استفاده کنید. اتصال به‌صورت خودکار برقرار می‌شود و در پایان بلوک، به‌درستی بسته خواهد شد. حالت Sync: from maxrubika import Shad with Shad("mySession") as app: me = app.get_me() print(me) همچنین می‌توانید ابتدا شیء را بسازید و سپس از with استفاده کنید: from maxrubika import Shad app = Shad("mySession") with app: me = app.get_me() print(me) حالت Async: import asyncio from maxrubika import Shad async def main(): async with Shad("mySession") as app: me = await app.get_me() print(me) asyncio.run(main()) یا ساخت جداگانه‌ی شیء و سپس استفاده از async with: import asyncio from maxrubika import Shad async def main(): app = Shad("mySession") async with app: me = await app.get_me() print(me) asyncio.run(main()) روش دوم: صدا زدن متد start و disconnect یا close در این روش، خودتان به‌صورت دستی اتصال را برقرار می‌کنید (با متد start) و در انتهای عملیات، با صدا زدن متد مناسب (disconnect در Sync و close در Async)، اتصال را می‌بندید. حالت Sync: from maxrubika import Shad app = Shad("mySession") app.start() # برقراری اتصال me = app.get_me() print(me) app.disconnect() # قطع اتصال در پایان عملیات حالت Async: import asyncio from maxrubika import Shad async def main(): app = Shad("mySession") await app.start() # برقراری اتصال me = await app.get_me() print(me) await app.close() # قطع اتصال در پایان عملیات asyncio.run(main()) نکته مهم: استفاده از این روش‌ها فقط زمانی لازم است که بخواهید یک عملیات موقت با کتابخانه انجام دهید (مثلاً دریافت اطلاعات یک‌باره‌ی یک شیء). اگر از دکوراتورها استفاده می‌کنید و وب‌سوکت را فعال کرده‌اید، نیازی به صدا زدن disconnect یا close یا استفاده از Context Manager نیست؛ زیرا کتابخانه خودش مدیریت اتصال را در طول اجرا به عهده دارد. مثال: استفاده از دکوراتور (بدون نیاز به قطع دستی) from maxrubika import Shad from maxrubika.client.filters import Command app = Shad("mySession") @app.on_new_message(Command("start")) async def start(event): await event.reply("سلام، پیام شما دریافت شد.") app.run() در این حالت، کتابخانه به‌طور خودکار اتصال را در طول اجرای ربات مدیریت می‌کند و نیازی به فراخوانی متدهای disconnect یا close نخواهد بود. راهنمای ورودی‌های متدها (Input Methods) انعطاف‌پذیری در شناسایی مخاطبان و گروه‌ها تمامی متدهای کتابخانه MAXRubika که با گروه‌ها، کانال‌ها، گفتگوهای خصوصی یا هر نوع چت دیگری سروکار دارند، از سه روش مختلف برای شناسایی هدف پشتیبانی می‌کنند: روش ورودی فرمت مثال GUID شناسه یکتا با پیشوند g0, c0, u0, b0 g0G3R190567fa33c5f5ee7d399a104e8 یوزرنیم نام کاربری با یا بدون @ @MyChannel یا MyChannel لینک دعوت لینک عضویت در گروه/کانال https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD ویژگی‌های کلیدی: پشتیبانی از @: در هنگام استفاده از یوزرنیم، وجود یا عدم وجود علامت @ در ابتدا تفاوتی ندارد و کتابخانه به‌صورت خودکار آن را تشخیص می‌دهد. تشخیص هوشمند: کتابخانه به‌صورت خودکار نوع ورودی را تشخیص داده و پردازش مناسب را انجام می‌دهد. سازگاری کامل: تمامی متدهایی که شامل پارامترهای chat، group، channel هستند، از این قابلیت پشتیبانی می‌کنند. ⚠️ نکته مهم درباره ورودی‌های لینک و یوزرنیم اگر برای ورودی چت از لینک یا یوزرنیم استفاده می‌کنید، بهتر است این روش را فقط در متدهایی به‌کار ببرید که تعداد دفعات فراخوانی آن‌ها کم است. اما اگر قرار است یک متد را بارها یا داخل حلقه فراخوانی کنید، توصیه می‌شود ابتدا با استفاده از get_guid شناسه را یک‌بار دریافت کرده و سپس همان مقدار را به متدهای بعدی ارسال کنید. دلیل: وقتی لینک یا یوزرنیم ارسال می‌کنید، کتابخانه ابتدا یک درخواست برای تبدیل آن به guid ارسال می‌کند و سپس درخواست اصلی متد را اجرا می‌کند. در نتیجه هر بار فراخوانی عملاً دو درخواست به API ارسال می‌شود. عواقب تکرار این روند: - افزایش غیرضروری تعداد درخواست‌ها به API - کاهش عملکرد (Performance) برنامه - افزایش احتمال رسیدن به محدودیت نرخ درخواست (Rate Limit) مثال غیربهینه: from maxrubika import Shad with Shad("mySession") as app: for _ in range(5): app.get_chat_info("@YaserDev") مثال بهینه: from maxrubika import Shad with Shad("mySession") as app: guid = app.get_guid("@YaserDev") for _ in range(5): app.get_chat_info(guid) مثال‌های عملی مثال ۱ - افزودن اعضا به گروه با روش‌های مختلف: from maxrubika import Shad with Shad("mySession") as app: result = app.add_members( chat="g0abc123...", # یا لینک دعوت members=["@User1", "User2", "u0xyz789..."] # ترکیب یوزرنیم و GUID ) print(result) مثال ۲ - تنظیم ادمین با استفاده از لینک دعوت و یوزرنیم: from maxrubika import Shad with Shad("mySession") as app: result = app.set_admin( chat="https://shad.ir/joing/JGDJDBDJ0SRHELBQEBMZQFTPTKWSHDLCD", # لینک دعوت member="@NewAdmin", # یوزرنیم با @ access=["BanMember", "PinMessages", "ChangeInfo"], custom_title="مدیر ارشد" ) print(result) مثال ۳ - ارسال پیام به کانال با GUID و یوزرنیم: from maxrubika import Shad with Shad("mySession") as app: app.send_message( chat="c0Hzgbk0ac24729c1d1a5d85c26ac3ef", text="**پیام تستی**" ) app.send_message( chat="MyChannel", text="__پیام دوم__" ) نکات مهم: در تمامی متدها، پارامتر مربوط به شناسایی چت (chat, group, channel) از هر سه روش ورودی پشتیبانی می‌کند. در پارامترهای مربوط به اعضا (members, member, user) نیز می‌توانید از GUID یا یوزرنیم استفاده کنید. در صورت نامعتبر بودن ورودی، کتابخانه خطای مناسب را نمایش می‌دهد. بازگشت به صفحه قبل Made with Material for MkDocs Skip to content مستندات کتابخانه MAXRubika راهنمای هوش مصنوعی Search مستندات کتابخانه MAXRubika خانه توسعه‌دهندگان کتابخانه راهنمای استفاده از رباتِ روبیکا راهنمای استفاده از حساب کاربریِ روبیکا راهنمای استفاده از حساب کاربریِ شاد راهنمای هوش مصنوعی Table of contents Important For Userbot (Self-Bot / Client) For Bot Rules AI Instructions for Code Generation Important Before generating any code for MAXRubika, you must read the following documentation pages completely and carefully. Do not generate code from memory or assumptions. Use the documentation as the only source of truth. For Userbot (Self-Bot / Client) Messenger Documentation Client Methods Bot Methods Channel Methods Group Methods User Methods Settings Methods Other Methods Chats Chat Info Chat Management Chat Members Chat Settings Voice Chat Chat Utility Messages Send Messages Fetch Messages Message Actions Message Utility Client Decorators Client Filters Client Properties Client Examples Client More For Bot Bot Guide Bot Methods Bot Decorators Bot Filters Bot Properties Bot Plugins Bot More Bot Examples Rules Always check parameters, types, and defaults from the documentation. Always include try/except when calling methods. Use await only where the documentation shows async usage. Never invent method names or parameters. If something is not documented, say it is not documented. After reviewing the documentation, generate clean, accurate, and optimized code based on the user's request. Made with Material for MkDocs