Handling Updates
رسیدگی به آپدیت ها
توی این مقاله رسیدگی به آپدیت های فرستاده شده از طرف بله آموزش داده میشه
آپدیت ها رویدادهایی هستن که توی بله اتفاق میفتن و بله خبرش رو به بات شما میده
مثلا وقتی یک نفر یک پیامی به بات شما بده بله اطلاعات اون پیام رو به شما میده تا بتونید بهش رسیدگی کنید
اونت هندلرهای بلتون به شما کمک میکنن که به آپدیت ها رسیدگی کنید و در ادامه استفاده از اون ها آموزش داده میشه
افزودن اونت هندلر
1
2
3
4
5
6
7
8
from balethon.event_handlers import MessageHandler
def greet(message):
message.reply("Hello")
bot.add_event_handler(MessageHandler(greet))
خب اینجا ما اول اومدیم MessageHandler
رو از بلتون فراخوانی کردیم
چون میخوایم اونت هندلرمون به آپدیت های از نوع پیام رسیدگی کنه
بعد یه فانکشن تعریف کردیم که یه ورودی به نام message میگیره
اون همون پیامیه که باتمون قراره بهش رسیدگی کنه
و بعد کدی که داخل این فانکشن مینویسیم تصمیم میگیره که بات چطوری به این پیام رسیدگی کنه
در آخر هم با bot.add_event_handler
اونت هندلرمون رو اضافه میکنیم
MessageHandler(greet)
رو هم به عنوان ورودی بهش میدیم چون یک اونت هندلر میخوایم که به طوری که توی فانکشن greet
مشخص کردیم به پیام ها رسیدگی کنه
حالا معنی message.reply("Hello")
هم اینه که با یک پیام با متنHello
به message
جواب داده بشه
دکوراتور
یه راه قشنگ تر برای اینکه اونت هندلر اضافه کنیم اینه که از دکوراتور استفاده کنیم
1
2
3
@bot.on_message()
def greet(message):
message.reply("Hello")
برنامه نویسی Asynchronous
طبق معمول بهتره که به صورت Async از بلتون استفاده کنیم
وابسته به کاری که هندلرتون انجام میده ممکنه برنامه نویسی Asynchronous به اپلیکیشن شما بسیار سرعت ببخشته و یا سرعتش هیچ تغییری نکنه
امکانش توی بلتون وجود داره که برنامه نویسی Sync و Async رو با هم ترکیب کنید
هر اونت هندلری که دوست دارید Async باشه رو با async def
تعریف کنید و هر کدوم که دوست دارید Sync باشه رو با def
1
2
3
@bot.on_message()
async def greet(message):
await message.reply("Hello")
کاندیشن ها
کاندیشن ها رو به اونت هندلر میدیم و اون اونت هندلر فقط به آپدیت های خاصی رسیدگی میکنه
برای مثال کاندیشن conditions.private
رو اگر به یه هندلر بدیم اون هندلر فقط به آپدیت هایی که توی پیوی بات به وجود اومدن رسیدگی میکنه
مثلا اگر توی پیویش پیام بدید جواب میده اما توی گروه نه
به این شکل میتونیم conditions.private
رو به یک اونت هندلر که با روش داینامیک اضافه شده بدیم
1
2
3
4
5
6
7
8
9
from balethon import conditions
from balethon.event_handlers import MessageHandler
def greet(message):
message.reply("Hello")
bot.add_event_handler(MessageHandler(greet, conditions.private))
و به این شکل برای یک اونت هندلر که با دکوراتور اضافه شده
1
2
3
4
5
6
from balethon import conditions
@bot.on_message(conditions.private)
def greet(message):
message.reply("Hello")
پست قبلی: Using Services
پست بعدی: Echo Bot