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.