۲۱ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۸: منوی دستورات (Commands Menu)
به هشتمین بسته آموزشی RubPlus خوش آمدید.
قدم اول: متد منوی دستورات
متد کاربرد
commands() تنظیم منوی / کنار باکس چت
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
if not chat_id.startswith("b0"):
return
if text == "/start":
# تنظیم منوی دستورات
await bot.commands([
{"command": "start", "description": "شروع ربات"},
{"command": "help", "description": "راهنما"},
{"command": "info", "description": "اطلاعات ربات"},
{"command": "ban", "description": "بن کاربر"},
{"command": "unban", "description": "رفع بن"}
])
await bot.send_message(chat_id, "white_check_mark منوی دستورات تنظیم شد.\nحالا روی / کنار باکس چت کلیک کن.")
elif text == "/help":
await bot.send_message(chat_id, "/start - شروع\n/help - راهنما\n/info - اطلاعات")
elif text == "/info":
await bot.send_message(chat_id, "🤖 RubPlus v1.2.1\nساخته شده با عشق")
if name == "__main__":
bot.run()
قدم سوم: توضیح
بعد از اجرا و زدن /start، یک منوی آبی کنار باکس چت ظاهر میشود. با کلیک روی / لیست دستورات را میبینی.
قدم چهارم: اجرا و تست
python commands_bot.py
سپس /start بفرست و روی علامت / کنار باکس چت کلیک کن.
به هشتمین بسته آموزشی RubPlus خوش آمدید.
قدم اول: متد منوی دستورات
متد کاربرد
commands() تنظیم منوی / کنار باکس چت
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
if not chat_id.startswith("b0"):
return
if text == "/start":
# تنظیم منوی دستورات
await bot.commands([
{"command": "start", "description": "شروع ربات"},
{"command": "help", "description": "راهنما"},
{"command": "info", "description": "اطلاعات ربات"},
{"command": "ban", "description": "بن کاربر"},
{"command": "unban", "description": "رفع بن"}
])
await bot.send_message(chat_id, "white_check_mark منوی دستورات تنظیم شد.\nحالا روی / کنار باکس چت کلیک کن.")
elif text == "/help":
await bot.send_message(chat_id, "/start - شروع\n/help - راهنما\n/info - اطلاعات")
elif text == "/info":
await bot.send_message(chat_id, "🤖 RubPlus v1.2.1\nساخته شده با عشق")
if name == "__main__":
bot.run()
قدم سوم: توضیح
بعد از اجرا و زدن /start، یک منوی آبی کنار باکس چت ظاهر میشود. با کلیک روی / لیست دستورات را میبینی.
قدم چهارم: اجرا و تست
python commands_bot.py
سپس /start بفرست و روی علامت / کنار باکس چت کلیک کن.
Please open Rubika to view this post
VIEW IN RUBIKA۲۱ اردیبهشت
۲۱ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۹: حذف خودکار پیام (Auto Delete)
به نهمین بسته آموزشی RubPlus خوش آمدید.
قدم اول: قابلیت Auto Delete
در RubPlus میتوانی تعیین کنی پیام ربات بعد از چند ثانیه خودکار پاک شود.
قدم دوم: کد کامل
python
from rubplus import RubPlus
from rubplus import ReplyKeyboard
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
if not chat_id.startswith("b0"):
return
if text == "/start":
keyboard = ReplyKeyboard(resize=True, one_time=False)
keyboard.row("alarm_clock 5 ثانیه", "alarm_clock 10 ثانیه")
keyboard.row("x بدون حذف", "x بستن")
await bot.send_message(chat_id, "🗑️ تست حذف خودکار:", keyboard=keyboard)
elif text == "alarm_clock 5 ثانیه":
await bot.send_message(chat_id, "این پیام 5 ثانیه بعد پاک میشود", auto_delete=5)
elif text == "alarm_clock 10 ثانیه":
await bot.send_message(chat_id, "این پیام 10 ثانیه بعد پاک میشود", auto_delete=10)
elif text == "x بدون حذف":
await bot.send_message(chat_id, "این پیام پاک نمیشود")
elif text == "x بستن":
await bot.remove_keypad(chat_id)
if name == "__main__":
bot.run()
قدم سوم: توضیح
در متد send_message پارامتر auto_delete را به ثانیه اضافه کن:
python
await bot.send_message(chat_id, "متن", auto_delete=5)
قدم چهارم: اجرا و تست
python autodel_bot.py
سپس /start بفرست و دکمهها را تست کن. منتظر بستههای آموزشی بعدی باشید. rocket
به نهمین بسته آموزشی RubPlus خوش آمدید.
قدم اول: قابلیت Auto Delete
در RubPlus میتوانی تعیین کنی پیام ربات بعد از چند ثانیه خودکار پاک شود.
قدم دوم: کد کامل
python
from rubplus import RubPlus
from rubplus import ReplyKeyboard
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
if not chat_id.startswith("b0"):
return
if text == "/start":
keyboard = ReplyKeyboard(resize=True, one_time=False)
keyboard.row("alarm_clock 5 ثانیه", "alarm_clock 10 ثانیه")
keyboard.row("x بدون حذف", "x بستن")
await bot.send_message(chat_id, "🗑️ تست حذف خودکار:", keyboard=keyboard)
elif text == "alarm_clock 5 ثانیه":
await bot.send_message(chat_id, "این پیام 5 ثانیه بعد پاک میشود", auto_delete=5)
elif text == "alarm_clock 10 ثانیه":
await bot.send_message(chat_id, "این پیام 10 ثانیه بعد پاک میشود", auto_delete=10)
elif text == "x بدون حذف":
await bot.send_message(chat_id, "این پیام پاک نمیشود")
elif text == "x بستن":
await bot.remove_keypad(chat_id)
if name == "__main__":
bot.run()
قدم سوم: توضیح
در متد send_message پارامتر auto_delete را به ثانیه اضافه کن:
python
await bot.send_message(chat_id, "متن", auto_delete=5)
قدم چهارم: اجرا و تست
python autodel_bot.py
سپس /start بفرست و دکمهها را تست کن. منتظر بستههای آموزشی بعدی باشید. rocket
Please open Rubika to view this post
VIEW IN RUBIKA۲۱ اردیبهشت
۲۱ اردیبهشت
Zarrin code اموزش برنامه نویسی
مروری بر متدهای RubPlus
پیام
send_message() - ارسال پیام
delete() - حذف پیام
edit_text() - ویرایش متن
forward() - فوروارد پیام
فایل
photo() - ارسال عکس
video() - ارسال فیلم
audio() - ارسال صدا
document() - ارسال فایل
نظرسنجی و موقعیت
poll() - ارسال نظرسنجی
location() - ارسال موقعیت
contact() - ارسال مخاطب
گروه
ban() - بن کاربر
unban() - رفع بن
اطلاعات
me() - اطلاعات ربات
chat_info() - اطلاعات چت
leave() - خروج از گروه
کیبورد
set_keypad() - تنظیم کیبورد
remove_keypad() - حذف کیبورد
دستورات
commands() - تنظیم منوی /
سایر
auto_delete - حذف خودکار پیام
لینکهای مفید
package نصب: pip install rubplus
octopus گیتهاب: https://github.com/mahdiafsarbeki/rubplus
page_facing_up PyPI: https://pypi.org/project/rubplus
پیام
send_message() - ارسال پیام
delete() - حذف پیام
edit_text() - ویرایش متن
forward() - فوروارد پیام
فایل
photo() - ارسال عکس
video() - ارسال فیلم
audio() - ارسال صدا
document() - ارسال فایل
نظرسنجی و موقعیت
poll() - ارسال نظرسنجی
location() - ارسال موقعیت
contact() - ارسال مخاطب
گروه
ban() - بن کاربر
unban() - رفع بن
اطلاعات
me() - اطلاعات ربات
chat_info() - اطلاعات چت
leave() - خروج از گروه
کیبورد
set_keypad() - تنظیم کیبورد
remove_keypad() - حذف کیبورد
دستورات
commands() - تنظیم منوی /
سایر
auto_delete - حذف خودکار پیام
لینکهای مفید
package نصب: pip install rubplus
octopus گیتهاب: https://github.com/mahdiafsarbeki/rubplus
page_facing_up PyPI: https://pypi.org/project/rubplus
Please open Rubika to view this post
VIEW IN RUBIKA۲۱ اردیبهشت
Zarrin code اموزش برنامه نویسی
#پژواک
#اینلاین
#ارسال_فایل
#ارسال_عکس
#ارسال_موسیقی
#کیبورد
#ارسال_ازمون
#ارسال_لوکیشن
#ارسال_مخاطب
#بن
#ان_بن
#اطلاعات_گروه
#لف_دادن_ربات_از_گپ
#دستورات_ربات
#باکس_دستورات
#حذف_پیام
#حذف_اتومات
#فرمت_متن
#بولد
#ایتالیک
#مونو
#زیرخط
#خط_خورده
#اسپویل
#لینک
#منشن
#وبهوک
#کوییز
#فیلترها
#تشخیص_فوروارد
#تشخیص_ادیت
#تشخیص_فایل
#تشخیص_عکس
#تشخیص_اهنگ
#تشخیص_فیلم
#اینلاین
#ارسال_فایل
#ارسال_عکس
#ارسال_موسیقی
#کیبورد
#ارسال_ازمون
#ارسال_لوکیشن
#ارسال_مخاطب
#بن
#ان_بن
#اطلاعات_گروه
#لف_دادن_ربات_از_گپ
#دستورات_ربات
#باکس_دستورات
#حذف_پیام
#حذف_اتومات
#فرمت_متن
#بولد
#ایتالیک
#مونو
#زیرخط
#خط_خورده
#اسپویل
#لینک
#منشن
#وبهوک
#کوییز
#فیلترها
#تشخیص_فوروارد
#تشخیص_ادیت
#تشخیص_فایل
#تشخیص_عکس
#تشخیص_اهنگ
#تشخیص_فیلم
Please open Rubika to view this post
VIEW IN RUBIKA۲۱ اردیبهشت
۲۴ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۱۰: فرمت متن (Text Formatting)
به دهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور متنهای زیبا و فرمتشده با رباتتان ارسال کنید.
قدم اول: متدهای فرمت متن
RubPlus هشت متد ساده برای فرمت کردن متن دارد:
bold() - متن توپر
italic() - متن کج
mono() - متن تکفاصله
underline() - متن زیرخطدار
strike() - متن خطخورده
spoiler() - متن مخفی (اسپویل)
link() - لینک کلیکشونده
mention() - منشن کاربر (فقط گروه)
قدم دوم: کد کامل
یک فایل جدید به اسم format_bot.py بساز و کد زیر رو توش کپی کن:
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
sender = message.get("sender_id", "")
if not chat_id.startswith("b0"):
return
if text == "/start":
await bot.send_message(chat_id, "🤖 ربات فرمت متن\n\nدستورات:\n/bold - توپر\n/italic - کج\n/mono - تک فاصله\n/underline - زیرخط\n/strike - خط خورده\n/spoiler - اسپویل\n/link - لینک\n/mention - منشن")
elif text == "/bold":
await bot.bold(chat_id, "این متن توپر است")
elif text == "/italic":
await bot.italic(chat_id, "این متن کج است")
elif text == "/mono":
await bot.mono(chat_id, "این متن تک فاصله است")
elif text == "/underline":
await bot.underline(chat_id, "این متن زیرخط دارد")
elif text == "/strike":
await bot.strike(chat_id, "این متن خط خورده است")
elif text == "/spoiler":
await bot.spoiler(chat_id, "این متن مخفی است")
elif text == "/link":
await bot.link(chat_id, "کلیک کن", "https://github.com/mahdiafsarbeki/rubplus")
elif text == "/mention":
if chat_id.startswith("g0"):
await bot.mention(chat_id, f"سلام کاربر", sender)
else:
await bot.send_message(chat_id, "warning️ منشن فقط در گروه کار میکند")
if name == "__main__":
bot.run()
قدم سوم: اجرا و تست
فایل را با دستور زیر اجرا کن:
python format_bot.py
سپس به رباتت /start بفرست و دستورات رو امتحان کن.
به دهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور متنهای زیبا و فرمتشده با رباتتان ارسال کنید.
قدم اول: متدهای فرمت متن
RubPlus هشت متد ساده برای فرمت کردن متن دارد:
bold() - متن توپر
italic() - متن کج
mono() - متن تکفاصله
underline() - متن زیرخطدار
strike() - متن خطخورده
spoiler() - متن مخفی (اسپویل)
link() - لینک کلیکشونده
mention() - منشن کاربر (فقط گروه)
قدم دوم: کد کامل
یک فایل جدید به اسم format_bot.py بساز و کد زیر رو توش کپی کن:
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
sender = message.get("sender_id", "")
if not chat_id.startswith("b0"):
return
if text == "/start":
await bot.send_message(chat_id, "🤖 ربات فرمت متن\n\nدستورات:\n/bold - توپر\n/italic - کج\n/mono - تک فاصله\n/underline - زیرخط\n/strike - خط خورده\n/spoiler - اسپویل\n/link - لینک\n/mention - منشن")
elif text == "/bold":
await bot.bold(chat_id, "این متن توپر است")
elif text == "/italic":
await bot.italic(chat_id, "این متن کج است")
elif text == "/mono":
await bot.mono(chat_id, "این متن تک فاصله است")
elif text == "/underline":
await bot.underline(chat_id, "این متن زیرخط دارد")
elif text == "/strike":
await bot.strike(chat_id, "این متن خط خورده است")
elif text == "/spoiler":
await bot.spoiler(chat_id, "این متن مخفی است")
elif text == "/link":
await bot.link(chat_id, "کلیک کن", "https://github.com/mahdiafsarbeki/rubplus")
elif text == "/mention":
if chat_id.startswith("g0"):
await bot.mention(chat_id, f"سلام کاربر", sender)
else:
await bot.send_message(chat_id, "warning️ منشن فقط در گروه کار میکند")
if name == "__main__":
bot.run()
قدم سوم: اجرا و تست
فایل را با دستور زیر اجرا کن:
python format_bot.py
سپس به رباتت /start بفرست و دستورات رو امتحان کن.
Please open Rubika to view this post
VIEW IN RUBIKA۲۴ اردیبهشت
۲۴ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۱۱: راهاندازی Webhook
به یازدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور ربات را با Webhook راهاندازی کنید.
قدم اول: Webhook چیست؟
Webhook روشی است که روبیکا به جای اینکه ربات مدام درخواست بده (Polling)، خودش پیامها را به سرور شما ارسال میکند. این روش برای رباتهای حرفهای و پرترافیک مناسب است.
قدم دوم: متدهای Webhook
RubPlus چهار متد برای مدیریت Webhook دارد:
set_webhook() - تنظیم آدرس Webhook
delete_webhook() - حذف Webhook
get_webhook_info() - دریافت اطلاعات Webhook
run_webhook() - اجرای ربات با Webhook
قدم سوم: کد کامل (اجرا با Webhook)
یک فایل جدید به اسم webhook_bot.py بساز و کد زیر رو توش کپی کن:
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def echo(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
if chat_id.startswith("b0") and text:
await message["reply"](f"loudspeaker شما گفتید: {text}")
if name == "__main__":
# اجرا با Webhook روی پورت 8000
bot.run_webhook(host="0.0.0.0", port=8000)
قدم چهارم: تنظیم Webhook در روبیکا
برای تنظیم Webhook، فایل زیر را اجرا کن:
python
import asyncio
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
WEBHOOK_URL = "https://your-domain.com/webhook" # آدرس سرور خودت
async def main():
bot = RubPlus(TOKEN)
result = await bot.set_webhook(WEBHOOK_URL)
print(result)
asyncio.run(main())
قدم پنجم: دریافت اطلاعات Webhook
python
import asyncio
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
async def main():
bot = RubPlus(TOKEN)
info = await bot.get_webhook_info()
print(info)
asyncio.run(main())
قدم ششم: حذف Webhook
python
import asyncio
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
async def main():
bot = RubPlus(TOKEN)
result = await bot.delete_webhook()
print(result)
asyncio.run(main())
نکات مهم
آدرس Webhook باید HTTPS باشد
برای تست محلی میتوانید از ngrok استفاده کنید
بعد از تنظیم Webhook، متد run() (Polling) کار نمیکند
برای برگشت به Polling از delete_webhook() استفاده کنید
به یازدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور ربات را با Webhook راهاندازی کنید.
قدم اول: Webhook چیست؟
Webhook روشی است که روبیکا به جای اینکه ربات مدام درخواست بده (Polling)، خودش پیامها را به سرور شما ارسال میکند. این روش برای رباتهای حرفهای و پرترافیک مناسب است.
قدم دوم: متدهای Webhook
RubPlus چهار متد برای مدیریت Webhook دارد:
set_webhook() - تنظیم آدرس Webhook
delete_webhook() - حذف Webhook
get_webhook_info() - دریافت اطلاعات Webhook
run_webhook() - اجرای ربات با Webhook
قدم سوم: کد کامل (اجرا با Webhook)
یک فایل جدید به اسم webhook_bot.py بساز و کد زیر رو توش کپی کن:
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def echo(message):
chat_id = message.get("chat_id", "")
text = message.get("text", "")
if chat_id.startswith("b0") and text:
await message["reply"](f"loudspeaker شما گفتید: {text}")
if name == "__main__":
# اجرا با Webhook روی پورت 8000
bot.run_webhook(host="0.0.0.0", port=8000)
قدم چهارم: تنظیم Webhook در روبیکا
برای تنظیم Webhook، فایل زیر را اجرا کن:
python
import asyncio
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
WEBHOOK_URL = "https://your-domain.com/webhook" # آدرس سرور خودت
async def main():
bot = RubPlus(TOKEN)
result = await bot.set_webhook(WEBHOOK_URL)
print(result)
asyncio.run(main())
قدم پنجم: دریافت اطلاعات Webhook
python
import asyncio
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
async def main():
bot = RubPlus(TOKEN)
info = await bot.get_webhook_info()
print(info)
asyncio.run(main())
قدم ششم: حذف Webhook
python
import asyncio
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
async def main():
bot = RubPlus(TOKEN)
result = await bot.delete_webhook()
print(result)
asyncio.run(main())
نکات مهم
آدرس Webhook باید HTTPS باشد
برای تست محلی میتوانید از ngrok استفاده کنید
بعد از تنظیم Webhook، متد run() (Polling) کار نمیکند
برای برگشت به Polling از delete_webhook() استفاده کنید
Please open Rubika to view this post
VIEW IN RUBIKA۲۴ اردیبهشت
۲۴ اردیبهشت
Zarrin code اموزش برنامه نویسی
جمعبندی نسخه 1.3.0
در این نسخه قابلیتهای زیر اضافه شده است:
art فرمت متن:
bold, italic, mono, underline, strike, spoiler, link, mention
globe_with_meridians Webhook:
set_webhook, delete_webhook, get_webhook_info, run_webhook
فیکس شدن باگ اینلاین
فیکس شدن باگ لاگ
لاگ گیری بهتر
در این نسخه قابلیتهای زیر اضافه شده است:
art فرمت متن:
bold, italic, mono, underline, strike, spoiler, link, mention
globe_with_meridians Webhook:
set_webhook, delete_webhook, get_webhook_info, run_webhook
فیکس شدن باگ اینلاین
فیکس شدن باگ لاگ
لاگ گیری بهتر
Please open Rubika to view this post
VIEW IN RUBIKA۲۴ اردیبهشت
۲۴ اردیبهشت
۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۱۲: فیلترهای پیشرفته (Advanced Filters)
به دوازدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور با فیلترها، پیامهای مختلف رو جداگانه پردازش کنید.
قدم اول: فیلترها چیستند؟
فیلترها به شما اجازه میدن فقط پیامهای خاصی رو پردازش کنید، مثلاً فقط پیامهای متنی در پیوی یا فقط دستورات خاص.
قدم دوم: انواع فیلترها
فیلترکاربرد
text()فقط پیام متنی
private()فقط پیوی
group()فقط گروه
command("start")فقط دستور /start
regex(r"\d+")فقط اعداد
contains("سلام")فقط پیامهای حاوی "سلام"
startswith("؟")فقط پیامهایی که با ؟ شروع میشن
length(5, 20)فقط پیامهایی با طول بین ۵ تا ۲۰
sender("u0...")فقط از یک کاربر خاص
قدم سوم: فیلترهای ترکیبی آماده
فیلترمعادل
private_textprivate() & text()
private_commandprivate() & command
group_textgroup() & text()
start_commandprivate() & command("start")
قدم چهارم: کد کامل
python
from rubplus import RubPlus
from rubplus.filters import private, group, text, command, regex, contains, startswith, length, sender
from rubplus.filters import private_text, private_command, group_text, start_command
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
# ========== فیلتر private_text (پیام متنی در پیوی) ==========
if private_text(message) and msg_text == "/start":
await bot.send(chat_id, "🤖 به ربات خوش آمدید!\n\nدستورات:\n/private - تست پیوی\n/group - تست گروه")
# ========== فیلتر private (فقط پیوی) ==========
elif private(message):
# فقط اعداد
if regex(r"^\d+$")(message):
await bot.send(chat_id, f"1234 عدد {msg_text} رو وارد کردی!")
# فقط پیامهای حاوی سلام
elif contains("سلام")(message):
await bot.send(chat_id, "wave سلام به تو!")
# فقط پیامهایی که با ؟ شروع میشن
elif startswith("؟")(message):
await bot.send(chat_id, "question سوالی داری؟ بپرس!")
# فقط پیامهای با طول مشخص
elif length(10, 50)(message):
await bot.send(chat_id, f"memo پیامت {len(msg_text)} حرف دارد!")
elif msg_text:
await bot.send(chat_id, f"loudspeaker شما گفتید: {msg_text}")
# ========== فیلتر group_text (پیام متنی در گروه) ==========
elif group_text(message):
await bot.send(chat_id, f"busts_in_silhouette [گروه] شما گفتید: {msg_text}")
if name == "main":
bot.run()
قدم پنجم: اجرا و تست
bash
python filter_bot.py
سپس در پیوی و گروه تست کنید:
/start → منوی اصلی
12345 → عدد
سلام چطوری؟ → سلام
؟ چرا اینطور شد؟ → سوال
پیام ۱۰ تا ۵۰ حرفی → طول پیام
به دوازدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور با فیلترها، پیامهای مختلف رو جداگانه پردازش کنید.
قدم اول: فیلترها چیستند؟
فیلترها به شما اجازه میدن فقط پیامهای خاصی رو پردازش کنید، مثلاً فقط پیامهای متنی در پیوی یا فقط دستورات خاص.
قدم دوم: انواع فیلترها
فیلترکاربرد
text()فقط پیام متنی
private()فقط پیوی
group()فقط گروه
command("start")فقط دستور /start
regex(r"\d+")فقط اعداد
contains("سلام")فقط پیامهای حاوی "سلام"
startswith("؟")فقط پیامهایی که با ؟ شروع میشن
length(5, 20)فقط پیامهایی با طول بین ۵ تا ۲۰
sender("u0...")فقط از یک کاربر خاص
قدم سوم: فیلترهای ترکیبی آماده
فیلترمعادل
private_textprivate() & text()
private_commandprivate() & command
group_textgroup() & text()
start_commandprivate() & command("start")
قدم چهارم: کد کامل
python
from rubplus import RubPlus
from rubplus.filters import private, group, text, command, regex, contains, startswith, length, sender
from rubplus.filters import private_text, private_command, group_text, start_command
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
# ========== فیلتر private_text (پیام متنی در پیوی) ==========
if private_text(message) and msg_text == "/start":
await bot.send(chat_id, "🤖 به ربات خوش آمدید!\n\nدستورات:\n/private - تست پیوی\n/group - تست گروه")
# ========== فیلتر private (فقط پیوی) ==========
elif private(message):
# فقط اعداد
if regex(r"^\d+$")(message):
await bot.send(chat_id, f"1234 عدد {msg_text} رو وارد کردی!")
# فقط پیامهای حاوی سلام
elif contains("سلام")(message):
await bot.send(chat_id, "wave سلام به تو!")
# فقط پیامهایی که با ؟ شروع میشن
elif startswith("؟")(message):
await bot.send(chat_id, "question سوالی داری؟ بپرس!")
# فقط پیامهای با طول مشخص
elif length(10, 50)(message):
await bot.send(chat_id, f"memo پیامت {len(msg_text)} حرف دارد!")
elif msg_text:
await bot.send(chat_id, f"loudspeaker شما گفتید: {msg_text}")
# ========== فیلتر group_text (پیام متنی در گروه) ==========
elif group_text(message):
await bot.send(chat_id, f"busts_in_silhouette [گروه] شما گفتید: {msg_text}")
if name == "main":
bot.run()
قدم پنجم: اجرا و تست
bash
python filter_bot.py
سپس در پیوی و گروه تست کنید:
/start → منوی اصلی
12345 → عدد
سلام چطوری؟ → سلام
؟ چرا اینطور شد؟ → سوال
پیام ۱۰ تا ۵۰ حرفی → طول پیام
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۱۳: تشخیص خودکار فایل
به سیزدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور ربات شما فایلهای مختلف را تشخیص بدهد.
قدم اول: تشخیص نوع فایل
ربات میتواند انواع فایل زیر را تشخیص دهد:
نوع فایلشرط تشخیص
عکسmessage.get("photo")
فیلمmessage.get("video")
صداmessage.get("audio")
سند (ZIP, PDF, DOC)message.get("document")
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
if not chat_id.startswith("b0"):
return
# ========== تشخیص فایل سند (ZIP, PDF, DOC) ==========
if message.get("document"):
file_info = message.get("file_info", {})
file_name = file_info.get("file_name", "فایل")
file_size = file_info.get("size", 0)
await bot.send(chat_id, f"page_facing_up فایل سند دریافت شد: {file_name}\npackage حجم: {file_size} bytes")
# ========== تشخیص عکس ==========
elif message.get("photo"):
await bot.send(chat_id, "camera عکس دریافت شد!")
# ========== تشخیص فیلم ==========
elif message.get("video"):
await bot.send(chat_id, "clapper فیلم دریافت شد!")
# ========== تشخیص صدا ==========
elif message.get("audio"):
await bot.send(chat_id, "musical_note فایل صوتی دریافت شد!")
# ========== متن ساده ==========
elif msg_text == "/start":
await bot.send(chat_id, "🤖 ربات تشخیص فایل\n\nیک فایل بفرست تا نوعش رو تشخیص بدم.")
elif msg_text:
await bot.send(chat_id, f"loudspeaker شما گفتید: {msg_text}")
if name == "main":
bot.run()
قدم سوم: فایلهای قابل تشخیص
پسوندتشخیص
.jpg, .jpeg, .pngعکس
.mp4, .avi, .mkvفیلم
.mp3, .ogg, .wavصدا
.zip, .rar, .pdf, .doc, .docxسند
قدم چهارم: اجرا و تست
bash
python file_bot.py
سپس فایلهای مختلف بفرستید و ببینید ربات چه پاسخی میدهد.
به سیزدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور ربات شما فایلهای مختلف را تشخیص بدهد.
قدم اول: تشخیص نوع فایل
ربات میتواند انواع فایل زیر را تشخیص دهد:
نوع فایلشرط تشخیص
عکسmessage.get("photo")
فیلمmessage.get("video")
صداmessage.get("audio")
سند (ZIP, PDF, DOC)message.get("document")
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
if not chat_id.startswith("b0"):
return
# ========== تشخیص فایل سند (ZIP, PDF, DOC) ==========
if message.get("document"):
file_info = message.get("file_info", {})
file_name = file_info.get("file_name", "فایل")
file_size = file_info.get("size", 0)
await bot.send(chat_id, f"page_facing_up فایل سند دریافت شد: {file_name}\npackage حجم: {file_size} bytes")
# ========== تشخیص عکس ==========
elif message.get("photo"):
await bot.send(chat_id, "camera عکس دریافت شد!")
# ========== تشخیص فیلم ==========
elif message.get("video"):
await bot.send(chat_id, "clapper فیلم دریافت شد!")
# ========== تشخیص صدا ==========
elif message.get("audio"):
await bot.send(chat_id, "musical_note فایل صوتی دریافت شد!")
# ========== متن ساده ==========
elif msg_text == "/start":
await bot.send(chat_id, "🤖 ربات تشخیص فایل\n\nیک فایل بفرست تا نوعش رو تشخیص بدم.")
elif msg_text:
await bot.send(chat_id, f"loudspeaker شما گفتید: {msg_text}")
if name == "main":
bot.run()
قدم سوم: فایلهای قابل تشخیص
پسوندتشخیص
.jpg, .jpeg, .pngعکس
.mp4, .avi, .mkvفیلم
.mp3, .ogg, .wavصدا
.zip, .rar, .pdf, .doc, .docxسند
قدم چهارم: اجرا و تست
bash
python file_bot.py
سپس فایلهای مختلف بفرستید و ببینید ربات چه پاسخی میدهد.
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۱۴: تشخیص ویرایش و فوروارد پیام
به چهاردهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور ربات شما ویرایش و فوروارد شدن پیامها را تشخیص بدهد.
قدم اول: رویدادهای جدید
رویداددکوریتورکاربرد
ویرایش پیام@bot.on("edited_message")تشخیص وقتی کاربر پیامش رو ویرایش میکنه
فوروارد پیام@bot.on("forwarded_message")تشخیص وقتی پیامی فوروارد میشه
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
if not chat_id.startswith("b0"):
return
if msg_text == "/start":
await bot.send(chat_id, "🤖 ربات تشخیص ویرایش و فوروارد\n\n"
"memo یک پیام بفرست و بعد ویرایشش کن\n"
"incoming_envelope یک پیام رو فوروارد کن")
# ========== تشخیص ویرایش پیام ==========
@bot.on("edited_message")
async def on_edit(message):
chat_id = message.get("chat_id", "")
new_text = message.get("text", "")
await bot.send(chat_id, f"pencil2️ پیام ویرایش شد!\nمتن جدید: {new_text}")
# ========== تشخیص فوروارد پیام ==========
@bot.on("forwarded_message")
async def on_forward(message):
chat_id = message.get("chat_id", "")
original_sender = message.get("forwarded_from", {}).get("from_sender_id", "نامشخص")
await bot.send(chat_id, f"incoming_envelope یک پیام فوروارد شد!\nفرستنده اصلی: {original_sender}")
if name == "main":
bot.run()
قدم سوم: نکات مهم
نکتهتوضیح
ویرایش فقط در گروهرویداد ویرایش پیام معمولاً فقط در گروهها کار میکند
فوروارد در همه جارویداد فوروارد هم در پیوی هم در گروه کار میکند
نیاز به ادمینبرای دریافت این رویدادها نیازی به ادمین نیست
قدم چهارم: اجرا و تست
bash
python edit_forward_bot.py
سپس:
یک پیام بفرستید و بعد ویرایشش کنید → پیام "pencil2️ پیام ویرایش شد!" میاد
یک پیام رو فوروارد کنید → پیام "incoming_envelope یک پیام فوروارد شد!" میاد
قدم پنجم: دسترسی به اطلاعات فوروارد
python
@bot.on("forwarded_message")
async def on_forward(message):
forwarded_from = message.get("forwarded_from", {})
from_type = forwarded_from.get("type_from") # User, Channel, Bot
from_sender = forwarded_from.get("from_sender_id") # آیدی فرستنده اصلی
original_msg_id = forwarded_from.get("message_id") # آیدی پیام اصلی
await bot.send(chat_id, f"incoming_envelope فوروارد از: {from_type}\nآیدی: {from_sender}")
به چهاردهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور ربات شما ویرایش و فوروارد شدن پیامها را تشخیص بدهد.
قدم اول: رویدادهای جدید
رویداددکوریتورکاربرد
ویرایش پیام@bot.on("edited_message")تشخیص وقتی کاربر پیامش رو ویرایش میکنه
فوروارد پیام@bot.on("forwarded_message")تشخیص وقتی پیامی فوروارد میشه
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
if not chat_id.startswith("b0"):
return
if msg_text == "/start":
await bot.send(chat_id, "🤖 ربات تشخیص ویرایش و فوروارد\n\n"
"memo یک پیام بفرست و بعد ویرایشش کن\n"
"incoming_envelope یک پیام رو فوروارد کن")
# ========== تشخیص ویرایش پیام ==========
@bot.on("edited_message")
async def on_edit(message):
chat_id = message.get("chat_id", "")
new_text = message.get("text", "")
await bot.send(chat_id, f"pencil2️ پیام ویرایش شد!\nمتن جدید: {new_text}")
# ========== تشخیص فوروارد پیام ==========
@bot.on("forwarded_message")
async def on_forward(message):
chat_id = message.get("chat_id", "")
original_sender = message.get("forwarded_from", {}).get("from_sender_id", "نامشخص")
await bot.send(chat_id, f"incoming_envelope یک پیام فوروارد شد!\nفرستنده اصلی: {original_sender}")
if name == "main":
bot.run()
قدم سوم: نکات مهم
نکتهتوضیح
ویرایش فقط در گروهرویداد ویرایش پیام معمولاً فقط در گروهها کار میکند
فوروارد در همه جارویداد فوروارد هم در پیوی هم در گروه کار میکند
نیاز به ادمینبرای دریافت این رویدادها نیازی به ادمین نیست
قدم چهارم: اجرا و تست
bash
python edit_forward_bot.py
سپس:
یک پیام بفرستید و بعد ویرایشش کنید → پیام "pencil2️ پیام ویرایش شد!" میاد
یک پیام رو فوروارد کنید → پیام "incoming_envelope یک پیام فوروارد شد!" میاد
قدم پنجم: دسترسی به اطلاعات فوروارد
python
@bot.on("forwarded_message")
async def on_forward(message):
forwarded_from = message.get("forwarded_from", {})
from_type = forwarded_from.get("type_from") # User, Channel, Bot
from_sender = forwarded_from.get("from_sender_id") # آیدی فرستنده اصلی
original_msg_id = forwarded_from.get("message_id") # آیدی پیام اصلی
await bot.send(chat_id, f"incoming_envelope فوروارد از: {from_type}\nآیدی: {from_sender}")
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
package بسته آموزشی RubPlus - شماره ۱۵: نظرسنجی تستی (Quiz Poll)
به دوازدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور نظرسنجیهای تستی (Quiz) با پاسخ صحیح ارسال کنید.
قدم اول: نظرسنجی تستی چیست؟
نظرسنجی تستی (Quiz) نوعی نظرسنجی است که در آن شما یک گزینه را به عنوان پاسخ صحیح مشخص میکنید. کاربر اگر پاسخ صحیح بزند، سبز میشود و اگر اشتباه بزند، قرمز میشود.
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
# فقط در گروه (نظرسنجی فقط در گروه کار میکند)
if not chat_id.startswith("g0"):
if msg_text == "/quiz":
await bot.send(chat_id, "warning️ دستور /quiz فقط در گروه کار میکند!")
return
if msg_text == "/quiz":
# ارسال نظرسنجی تستی
result = await bot.poll(
chat_id=chat_id,
question="پایتون در چه سالی ساخته شد؟",
options=["1989", "1991", "1995", "2000"],
is_quiz=True,
correct_option_index=1 # 1991 (شمارش از 0 شروع میشود)
)
if result.get("status") == "OK":
await bot.send(chat_id, "white_check_mark نظرسنجی تستی ارسال شد!")
else:
await bot.send(chat_id, f"x خطا: {result}")
elif msg_text == "/start":
await bot.send(chat_id, "🤖 ربات تست Quiz\n\n/quiz - ارسال نظرسنجی تستی")
if name == "main":
bot.run()
قدم سوم: توضیح پارامترها
پارامترتوضیح
is_quiz=Trueفعال کردن حالت تستی
correct_option_index=1مشخص کردن گزینه صحیح (شمارش از ۰)
قدم چهارم: اجرا و تست
bash
python quiz_bot.py
سپس در گروه: /quiz
به دوازدهمین بسته آموزشی RubPlus خوش آمدید. در این قسمت یاد میگیرید چطور نظرسنجیهای تستی (Quiz) با پاسخ صحیح ارسال کنید.
قدم اول: نظرسنجی تستی چیست؟
نظرسنجی تستی (Quiz) نوعی نظرسنجی است که در آن شما یک گزینه را به عنوان پاسخ صحیح مشخص میکنید. کاربر اگر پاسخ صحیح بزند، سبز میشود و اگر اشتباه بزند، قرمز میشود.
قدم دوم: کد کامل
python
from rubplus import RubPlus
TOKEN = "توکن_ربات_خودت_اینجا"
bot = RubPlus(TOKEN)
@bot.on("message")
async def handle(message):
chat_id = message.get("chat_id", "")
msg_text = message.get("text", "")
# فقط در گروه (نظرسنجی فقط در گروه کار میکند)
if not chat_id.startswith("g0"):
if msg_text == "/quiz":
await bot.send(chat_id, "warning️ دستور /quiz فقط در گروه کار میکند!")
return
if msg_text == "/quiz":
# ارسال نظرسنجی تستی
result = await bot.poll(
chat_id=chat_id,
question="پایتون در چه سالی ساخته شد؟",
options=["1989", "1991", "1995", "2000"],
is_quiz=True,
correct_option_index=1 # 1991 (شمارش از 0 شروع میشود)
)
if result.get("status") == "OK":
await bot.send(chat_id, "white_check_mark نظرسنجی تستی ارسال شد!")
else:
await bot.send(chat_id, f"x خطا: {result}")
elif msg_text == "/start":
await bot.send(chat_id, "🤖 ربات تست Quiz\n\n/quiz - ارسال نظرسنجی تستی")
if name == "main":
bot.run()
قدم سوم: توضیح پارامترها
پارامترتوضیح
is_quiz=Trueفعال کردن حالت تستی
correct_option_index=1مشخص کردن گزینه صحیح (شمارش از ۰)
قدم چهارم: اجرا و تست
bash
python quiz_bot.py
سپس در گروه: /quiz
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
جمعبندی نسخه 1.5.0
در این نسخه قابلیتهای زیر اضافه شده است:
1_تشخیص نوع فیلم یا عکس یا اهنگ یا فایل بودن پیام
2_تشخیص ادیت یا فوروارد
3_فیلتر های فوق پیشرفته برای پیوی یا گروه
4_ارسال کوییز
5_فعال کردن حالت تایپ
6_بهینه سازی کتابخونه
در این نسخه قابلیتهای زیر اضافه شده است:
1_تشخیص نوع فیلم یا عکس یا اهنگ یا فایل بودن پیام
2_تشخیص ادیت یا فوروارد
3_فیلتر های فوق پیشرفته برای پیوی یا گروه
4_ارسال کوییز
5_فعال کردن حالت تایپ
6_بهینه سازی کتابخونه
Please open Rubika to view this post
VIEW IN RUBIKA۲۶ اردیبهشت
Zarrin code اموزش برنامه نویسی
#پژواک
#اینلاین
#ارسال_فایل
#ارسال_عکس
#ارسال_موسیقی
#کیبورد
#ارسال_ازمون
#ارسال_لوکیشن
#ارسال_مخاطب
#بن
#ان_بن
#اطلاعات_گروه
#لف_دادن_ربات_از_گپ
#دستورات_ربات
#باکس_دستورات
#حذف_پیام
#حذف_اتومات
#فرمت_متن
#بولد
#ایتالیک
#مونو
#زیرخط
#خط_خورده
#اسپویل
#لینک
#منشن
#وبهوک
#کوییز
#فیلترها
#تشخیص_فوروارد
#تشخیص_ادیت
#تشخیص_فایل
#تشخیص_عکس
#تشخیص_اهنگ
#تشخیص_فیلم
#اینلاین
#ارسال_فایل
#ارسال_عکس
#ارسال_موسیقی
#کیبورد
#ارسال_ازمون
#ارسال_لوکیشن
#ارسال_مخاطب
#بن
#ان_بن
#اطلاعات_گروه
#لف_دادن_ربات_از_گپ
#دستورات_ربات
#باکس_دستورات
#حذف_پیام
#حذف_اتومات
#فرمت_متن
#بولد
#ایتالیک
#مونو
#زیرخط
#خط_خورده
#اسپویل
#لینک
#منشن
#وبهوک
#کوییز
#فیلترها
#تشخیص_فوروارد
#تشخیص_ادیت
#تشخیص_فایل
#تشخیص_عکس
#تشخیص_اهنگ
#تشخیص_فیلم
Please open Rubika to view this post
VIEW IN RUBIKA۲۸ اردیبهشت
Zarrin code اموزش برنامه نویسی
گروه پشتیبانی استودیو زرّین بنیان
https://rubika.ir/joing/BAECCEBGB0JZVRUYZMAHSZZMAUXNTXSM
سایت خدمات دهی و اشنای با استودیوی زرّین بنیان
https://Www.ZarrinBonyan.ir
کتابخانه روبپلاس(RubPlus) برای ربات های روبیکا
@library_RubPlus
آموزش ساخت ربات در روبیکا
@Zarrin_Code
https://rubika.ir/joing/BAECCEBGB0JZVRUYZMAHSZZMAUXNTXSM
سایت خدمات دهی و اشنای با استودیوی زرّین بنیان
https://Www.ZarrinBonyan.ir
کتابخانه روبپلاس(RubPlus) برای ربات های روبیکا
@library_RubPlus
آموزش ساخت ربات در روبیکا
@Zarrin_Code
Please open Rubika to view this post
VIEW IN RUBIKA19دنبال کننده