Post

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

This post is licensed under CC BY 4.0 by the author.