ساخت ربات بله با پایتون - python bale bot

امین شهرابی فراهانی امین شهرابی فراهانی امین شهرابی فراهانی · 1401/12/12 09:40 · خواندن 4 دقیقه

بله یکی از پیام رسان های محبوب ایرانیست که خیلی از افراد دنبال راهی برای ساخت بات برای آن بودند که متاسفانه برای زبان پایتون همچین چیزی وجود نداشت .

اما حدود یک ماه پیش ، پکیج حرفه ای python_bale_bot منتشر شد که مانند پکیج تلگرام ، قابلیت های بسیاری برای ساخت ربات بله دارد . 

در این مقاله ، با پکیج آشنا میشویم و یکسری کارها را بررسی میکنیم.

پیش نیاز ها :

کتابخانه از کد های پیشرفته ای استفاده میکند و به کلاس ها و ... نیاز دارد که باید قبل از آن مقداری پایتون بلد باشید.

نصب :

ما ابتدا برای برنامه نویسی بهتر و راحت تر بازو ها در پایتون، از پکیجی به نام بله بات ، یا نام کامل python-bale-bot آشنا میشویم.

️️ این پکیج به دلیل پشتیبانی آن از asyncio، ایونت های آن ابتدا با async و متد های آن در فانکشن هایی که با async آغاز میشوند، با await شروع میشود.

برای نصب این پکیج به رویه زیر عمل کنید:

در صورتی که پایتون را ندارید، ابتدا آن را از اینجا نصب کنید.

 سی ام دی خود را باز کنید و عبارت pip install python-bale-bot را به صورت کامل و بدون نقص وارد نمایید.

به همین راحتی پکیج مورد نیاز شما برای برنامه نویسی بازو های بله، نصب شد.

قدم بعدی نصب یک IDE است.  برای برنامه نویسی پایتون نیاز به یک محیط برای *ادیت کردن کد های خود* هستید، محیطی هوشمند و پویا که با داشتن کامل کننده های کد به شما در برنامه نویسی کمک کند.

پیشنهاد ما به شما VSCode (Vusial Studio Code) می باشد.

برای نصب این کد ادیتور در ویندوز به رویه زیر عمل کنید.

  1.  وارد [این سایت](https://code.visualstudio.com/) شوید.
  2.  برای دانلود نرم افزار در صفحه دنبال گزینه *Download for Windows* را کلیک کنید.
  3.  تا دانلود شدن نرم افزار صبر کرده، و بعد از آن نرم افزار را ستاپ کنید.

شروع برنامه نویسی :

یک فایل چدید با پسوند .py ایجاد کنید.

بر روی آن کلیک راست کرده و آن را با *VSCode (Visual Stodio Code)* باز کنید.

 ما برای نوشتن یک ربات خام و ابتدایی، در شروع کار، کتابخانه بله را ایمپورت میکنیم.

import bale

حال فایل را با استفاده از پایتون اجرا میکنیم، در صورتی که اروری ملاحضه نکردید یعنی پکیج به صورت کامل نصب شده و مشکلی وجود ندارد. در غیر این صورت و در صورتی که اروری در این بخش دریافت کردید، احتمال دارد پکیج به درستی نصب نشده باشد.

حالا با استفاده از شیء بات (Bot) بخش خام بازو با ایجاد میکنیم و آن را برابر با متغیری دلخواه (برای مثال بات) قرار میدهیم.در این وقت، باید توکن بازو خود را به عنوان اولین و آخرین پارامتر اجباری وارد کنیم.

توکن از ربات بات فادر بله گرفته میشود . @BotFather ، توکن خود را هیچ وقت برای کسی ارسال نکنید !

import bale
bot = bale.Bot(token = "Your Token")

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

import bale
bot = bale.Bot(token = "Your Token")
bot.run()

در اجرای این برنامه تا به اینجای در ظاهر کار اتفاقی رخ نمی دهد. اما فرض کنید میخواهید هنگامی که کاربر پیامی به کاربر داد، بازو جواب وی را با پیامی بدهد.برای این گونه کار ها از ایونت ها استفاده میکنیم.

‌ برای استفاده و تنظیم ایونت ها ما نیاز به متد و context منیجری به نام listen داریم.

️️ این پکیج به دلیل پشتیبانی آن از asyncio، ایونت های آن ابتدا با async و متد های آن در فانکشن هایی که با async آغاز میشوند، با await شروع میشود.

که برای استفاده از آن به شکل زیر عمل میکنیم.

import bale
bot = bale.Bot(token = "Your Token")
@bot.listen("on_message")
async def when_message(message: bale.Message):
     pass
bot.run()

ما در واقع در پارامتر اول دستور listen عنوان کردیم هنگامی که پیام آمد، به فانکشنی به نام when_message کال شود و آبجکت message را به عنوان پارامتر برای آن بفرستد.

برای ریپلای کردن بر روی پیام ارسالی کاربر، از پارامتر داده شده در فانکشن استفاده کرده و از دستور reply آن استفاده میکنیم.

import ba
bot = bale.Bot(token = "Your Token")
@bot.listen("on_message")
async def when_message(message: bale.Message):
     await message.reply(text="Salam!")
bot.run()

حالا اگر مجدد ربات رو اجرا کنید ، هرپیامی که برای ربات ارسال کنید ، به شما جواب میدهد salam.

اگر مشتاق یادگیری بیشتر این کتابخانه شدید ، حتما به دوره برنامه نویسی بله با پایتون سر بزنید چون توسط خود سازنده ی پکیج در حال تکمیل است