Post

Balethon Is Extensible

بلتون توسعه پذیر است

تمام سیستم های بلتون به سادگی قابل توسعه دادن هستن

اونت هندلرها

قابلیت ایجاد اونت هندلرهای کاستوم توی بلتون وجود داره

برای مثال فرض کنید میخوایم یک مسیج هندلر داشته باشیم ولی این مسیج هندلر تعداد بارهایی که کلمه «بلتون» داخل متن پیام به کار گرفته شده رو بشماره، اگر تعداد از 2 بار کمتر بود به پیام رسیدگی نکنه و اون تعداد رو هم داخل فانکشن کالبک در اختیار ما بذاره

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from balethon.event_handlers import MessageHandler


class BalethonMessageHandler(MessageHandler):
    def __init__(self, callback, condition=None):
        super().__init__(callback, condition)
        self.balethon_count = 0

    async def check(self):
        if self.balethon_count < 2:
            return False
        return await super().check()

    async def __call__(self, *args, **kwargs):
        return super().__call__(*args, balethon_count=self.balethon_count, **kwargs)

یک کلاس به اسم BalethonMessageHandler ساختیم که از مسیج هندلر ارث بری میکنه چون میخوایم مسیج هندلر مخصوصمون رو داشته باشیم
شما میتونید از هر اونت هندلری که بخواید ارث بری کنید

حالا برای اینکه از هندلر کاستوممون استفاده کنیم

به روش داینامیک:

1
2
3
4
5
async def callback(message, balethon_count):
    ...


bot.add_event_handler(BalethonMessageHandler(callback, condition))


به روش دکوراتور:

1
2
3
@bot.add_event_handler(BalethonMessageHandler, callback, condition)
async def callback(message, balethon_count):
    ...
This post is licensed under CC BY 4.0 by the author.