সব ব্লগ দেখুন
প্রোগ্রামিং8 মিনিট পড়ার সময়12 বার দেখা হয়েছে

পাইথন দিয়ে ফ্রি ডিসকর্ড কমিউনিটি বট বানান: ফ্রিল্যান্সার ও স্টুডেন্ট গ্রুপের জন্য স্টেপ-বাই-স্টেপ গাইড

পাইথন দিয়ে কীভাবে একটি ফ্রি ডিসকর্ড বট তৈরি ও ডিপ্লয় করবেন, তা শিখুন ধাপে ধাপে। বাংলাদেশি ফ্রিল্যান্সার ও স্টুডেন্ট কমিউনিটির জন্য অটো-রোল, ওয়েলকাম মেসেজ, রিমাইন্ডারসহ সম্পূর্ণ গাইড।

NonAcademy Team

NonAcademy Team

২৩ সেপ্টেম্বর, ২০২৬

পাইথন দিয়ে ফ্রি ডিসকর্ড কমিউনিটি বট বানান: ফ্রিল্যান্সার ও স্টুডেন্ট গ্রুপের জন্য স্টেপ-বাই-স্টেপ গাইড

আপনি যদি বাংলাদেশি ফ্রিল্যান্সার বা স্টুডেন্ট গ্রুপের অ্যাডমিন হন, তাহলে নিশ্চয়ই খেয়াল করেছেন—ডিসকর্ডে প্রতিদিন কত শত মেসেজ, কত প্রশ্ন, কত নতুন মেম্বার জয়েন করে। সব ম্যানুয়ালি হ্যান্ডেল করা প্রায় অসম্ভব। কেউ জয়েন করলেই 'ওয়েলকাম' বলতে হবে, রুলস পাঠাতে হবে, নোটিশ দিতে হবে—এত কাজ একা একা করলে দিন শেষে আপনার নিজের পড়াশোনা বা ক্লায়েন্ট ওয়ার্কের সময়ই থাকবে না। এখানেই আসে ডিসকর্ড বটের গুরুত্ব। আর যদি আপনি how to build a Discord bot with Python শিখে ফেলেন, তাহলে শুধু নিজের সার্ভারই অটোমেট করবেন না, বরং এটাকে একটি স্কিল হিসেবে গড়ে তুলতে পারবেন।

এই গাইডে আমরা একদম শুরু থেকে একটি কার্যকর ডিসকর্ড কমিউনিটি বট বানাবো—যা নতুন মেম্বারকে স্বাগত জানাবে, অটো-রোল দেবে, রিমাইন্ডার সেট করবে, এবং ফ্রি হোস্টিংয়ে ডিপ্লয় করা যাবে। কোনো প্রকার পেইড সার্ভার ছাড়াই। চলুন শুরু করি।

ডিসকর্ড বট আসলে কী এবং কেন আপনার দরকার

ডিসকর্ড বট হলো একটি প্রোগ্রাম যা ডিসকর্ড এপিআই-এর সাথে সংযুক্ত হয়ে স্বয়ংক্রিয়ভাবে বিভিন্ন কাজ করে। এটি একটি সাধারণ ইউজারের মতোই সার্ভারে থাকে, কিন্তু মানুষের বদলে কোড দিয়ে চালিত হয়। বাংলাদেশি কমিউনিটির প্রেক্ষাপটে এর ব্যবহার অপরিসীম:

  • ওয়েলকাম মেসেজ: নতুন মেম্বার জয়েন করলেই স্বাগত বার্তা ও গাইডলাইন।
  • অটো-রোল: 'ফ্রিল্যান্সার', 'স্টুডেন্ট', 'ডেভেলপার'—নিজের পছন্দমতো রোল নিতে পারবে।
  • রিমাইন্ডার: ক্লাস, মিটিং, ডেডলাইনের নোটিফিকেশন।
  • মডারেশন: স্প্যাম বা অশ্লীল শব্দ ফিল্টার করা।
  • পোল ও সার্ভে: কমিউনিটি ডিসিশনে সবাই ভোট দিতে পারবে।

একটি বট থাকলে অ্যাডমিনের কাজ ৭০% কমে যায়। আপনি চাইলে আমাদের কোর্স-এ পাইথন ও বট ডেভেলপমেন্টের আরও গভীরে যেতে পারেন।

প্রস্তুতি: যা যা লাগবে

শুরু করার আগে নিচের জিনিসগুলো গুছিয়ে নিন:

  • একটি ডিসকর্ড অ্যাকাউন্ট (অবশ্যই)।
  • পাইথন ৩.৮ বা তার উপরের ভার্সন ইনস্টল করা কম্পিউটার।
  • একটি কোড এডিটর (VS Code বা PyCharm)।
  • ইন্টারনেট কানেকশন।
  • একটি ফ্রি হোস্টিং অ্যাকাউন্ট (পরে দেখব)।

পাইথন ইনস্টল আছে কিনা চেক করতে টার্মিনালে লিখুন:

python --version

যদি ভার্সন দেখায়, তাহলে আপনি প্রস্তুত। না থাকলে python.org থেকে ডাউনলোড করে ইনস্টল করুন।

ধাপ ১: ডিসকর্ড ডেভেলপার পোর্টালে বট তৈরি

প্রথমে discord.com/developers/applications এ যান। 'New Application' ক্লিক করে একটি নাম দিন—যেমন 'BD Freelancer Bot'। এরপর বাম দিকের মেনু থেকে 'Bot' সেকশনে যান এবং 'Add Bot' চাপুন।

এখানে একটি গুরুত্বপূর্ণ বিষয়—Token। এটি আপনার বটের পাসওয়ার্ডের মতো। 'Reset Token' ক্লিক করে টোকেন কপি করে নিরাপদ জায়গায় রাখুন। কখনো পাবলিক কোডে বা গিটহাবে আপলোড করবেন না।

এরপর 'Privileged Gateway Intents' সেকশনে গিয়ে SERVER MEMBERS INTENT এবং MESSAGE CONTENT INTENT চালু করুন। এগুলো ছাড়া বট মেম্বার জয়েন ইভেন্ট বা মেসেজ পড়তে পারবে না।

সবশেষে 'OAuth2' → 'URL Generator' এ গিয়ে 'bot' ও 'applications.commands' স্কোপ সিলেক্ট করুন। Permissions-এ 'Administrator' দিয়ে জেনারেট করা লিংক কপি করে আপনার সার্ভারে বট ইনভাইট করুন।

ধাপ ২: পাইথন এনভায়রনমেন্ট সেটআপ

এখন কম্পিউটারে একটি ফোল্ডার তৈরি করুন, যেমন discord-bot। টার্মিনালে সেই ফোল্ডারে গিয়ে ভার্চুয়াল এনভায়রনমেন্ট বানান:

python -m venv venv
source venv/bin/activate  # Windows-এ: venv\Scripts\activate

এরপর প্রয়োজনীয় লাইব্রেরি ইনস্টল করুন। আমরা ব্যবহার করব discord.py, যা সবচেয়ে জনপ্রিয় ও ডকুমেন্টেড লাইব্রেরি:

pip install discord.py python-dotenv

python-dotenv দিয়ে আমরা টোকেনকে একটি .env ফাইলে রাখব, যাতে সোর্স কোডে পাসওয়ার্ড না থাকে।

ধাপ ৩: প্রথম বট স্ক্রিপ্ট লেখা

ফোল্ডারে .env নামে একটি ফাইল বানান:

DISCORD_TOKEN=your_token_here

এবার bot.py ফাইল তৈরি করে নিচের কোড লিখুন:

import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

intents = discord.Intents.default()
intents.members = True
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'{bot.user} হিসেবে লগইন হয়েছে!')

@bot.command()
async def hello(ctx):
    await ctx.send(f'হ্যালো {ctx.author.name}! কমিউনিটিতে স্বাগতম।')

bot.run(TOKEN)

এখন টার্মিনালে python bot.py চালান। যদি 'লগইন হয়েছে' মেসেজ দেখেন এবং ডিসকর্ডে !hello লিখলে বট রিপ্লাই দেয়, তাহলে আপনার প্রথম বট সফলভাবে কাজ করছে। অভিনন্দন!

ধাপ ৪: কমিউনিটির জন্য প্রয়োজনীয় ফিচার যোগ করা

ওয়েলকাম মেসেজ ও অটো-রোল

নতুন মেম্বার জয়েন করলেই স্বাগত জানানো এবং একটি ডিফল্ট রোল দেওয়া যাক:

@bot.event
async def on_member_join(member):
    channel = discord.utils.get(member.guild.channels, name='general')
    if channel:
        await channel.send(f'স্বাগতম {member.mention}! আমাদের কমিউনিটিতে আপনার যাত্রা শুভ হোক।')
    role = discord.utils.get(member.guild.roles, name='Member')
    if role:
        await member.add_roles(role)

এখানে খেয়াল রাখুন, সার্ভারে 'general' চ্যানেল এবং 'Member' রোল আগে থেকে থাকতে হবে।

রিঅ্যাকশন রোল

স্টুডেন্ট ও ফ্রিল্যান্সার আলাদা করতে চাইলে রিঅ্যাকশন ভিত্তিক রোল দিতে পারেন:

@bot.event
async def on_raw_reaction_add(payload):
    if payload.emoji.name == '🎓':
        guild = bot.get_guild(payload.guild_id)
        role = discord.utils.get(guild.roles, name='Student')
        member = guild.get_member(payload.user_id)
        if role and member:
            await member.add_roles(role)

এভাবে একটি নির্দিষ্ট মেসেজে 🎓 রিঅ্যাক্ট করলেই ইউজার 'Student' রোল পাবে।

সিম্পল রিমাইন্ডার কমান্ড

ক্লাস বা মিটিংয়ের রিমাইন্ডার সেট করার জন্য একটি কমান্ড:

import asyncio
from datetime import datetime, timedelta

@bot.command()
async def remind(ctx, minutes: int, *, message: str):
    await ctx.send(f'ঠিক আছে! {minutes} মিনিট পর মনে করিয়ে দেব।')
    await asyncio.sleep(minutes * 60)
    await ctx.send(f'{ctx.author.mention} রিমাইন্ডার: {message}')

ব্যবহার: !remind 30 ক্লায়েন্ট মিটিং। ৩০ মিনিট পর বট আপনাকে মেনশন করে মনে করিয়ে দেবে।

ধাপ ৫: ফ্রি হোস্টিং ও ডিপ্লয়মেন্ট

আপনার কম্পিউটার বন্ধ করলে বটও বন্ধ হয়ে যাবে। তাই ২৪/৭ চালু রাখতে ফ্রি হোস্টিং দরকার। কয়েকটি নির্ভরযোগ্য অপশন:

  • Railway: সহজ ডিপ্লয়মেন্ট, মাসে নির্দিষ্ট ফ্রি ক্রেডিট।
  • Render: ফ্রি ওয়েব সার্ভিস, তবে কিছু সময় পর স্লিপ করে।
  • Replit: ছোট বটের জন্য দ্রুত, কিন্তু লম্বা সময় চালু রাখতে সমস্যা।
  • Oracle Cloud Free Tier: স্থায়ী ফ্রি VPS, একটু সেটআপ ঝামেলা।

Railway-তে ডিপ্লয় করতে প্রথমে একটি requirements.txt ফাইল বানান:

discord.py
python-dotenv

এরপর GitHub-এ কোড পুশ করে Railway-তে রিপোজিটরি কানেক্ট করুন। Environment Variables-এ DISCORD_TOKEN যোগ করুন। Railway নিজেই বিল্ড ও রান করে দেবে। মনে রাখবেন, .env ফাইল কখনো গিটহাবে পুশ করবেন না—.gitignore-এ যোগ করুন।

হোস্টিং সংক্রান্ত আরও রিসোর্স পাবেন আমাদের রিসোর্স সেকশনে

ধাপ ৬: বটকে আরও শক্তিশালী করা ও সেরা প্র্যাকটিস

বেসিক বট হয়ে গেলে কিছু উন্নতি যোগ করতে পারেন:

  • Slash Commands: @bot.tree.command() দিয়ে আধুনিক কমান্ড বানান।
  • Cogs: বড় প্রজেক্টে ফিচার আলাদা ফাইলে ভাগ করুন।
  • Error Handling: on_command_error ইভেন্ট দিয়ে ভুল ধরুন।
  • Logging: ফাইল লগ রাখুন যাতে সমস্যা ডিবাগ করা সহজ হয়।
  • Security: টোকেন কখনো শেয়ার করবেন না, নিয়মিত রোটেট করুন।
মনে রাখবেন, একটি ভালো বট মানে শুধু কোড নয়—কমিউনিটির প্রয়োজন বোঝা। আপনার গ্রুপের মেম্বাররা কী কী সমস্যায় পড়ে, সেটা লক্ষ্য করে ফিচার যোগ করুন।

আপনি চাইলে এই বটকে পোর্টফোলিও প্রজেক্ট হিসেবে ব্যবহার করতে পারেন। ফ্রিল্যান্সিং মার্কেটপ্লেসে 'Discord Bot Developer' হিসেবে কাজ পাওয়ার সম্ভাবনা আছে। আরও স্কিল শিখতে দেখুন আমাদের কোর্সসমূহ এবং ব্লগ

শেষ কথা

পাইথন দিয়ে ডিসকর্ড বট বানানো আসলে যতটা কঠিন মনে হয়, ততটা নয়। একটি টোকেন, কয়েকটি ইভেন্ট, আর একটু ধৈর্য—ব্যস। আজই ছোট একটি বট বানান, আপনার কমিউনিটিতে যোগ করুন, এবং মেম্বারদের ফিডব্যাক নিন। ধীরে ধীরে ফিচার বাড়ান। একসময় দেখবেন, আপনার বানানো বটই আপনার কমিউনিটির প্রাণ। আর যদি গাইডটি কাজে লাগে, আমাদের কমিউনিটিতে জয়েন করে আপনার বটের গল্প শেয়ার করুন।

সাধারণ প্রশ্নোত্তর

পাইথন দিয়ে ডিসকর্ড বট বানাতে কি পেইড সার্ভার লাগে?

না, একদমই না। আপনি নিজের কম্পিউটারে বট চালাতে পারেন এবং ফ্রি হোস্টিং সার্ভিস যেমন Railway, Render বা Oracle Cloud Free Tier ব্যবহার করে ২৪/৭ চালু রাখতে পারেন। শুরুতে কোনো খরচ নেই।

discord.py এবং discord.js-এর মধ্যে কোনটি শিখব?

আপনি যদি পাইথনে স্বচ্ছন্দ হন, তাহলে discord.py দিয়ে শুরু করুন। এটি পড়তে ও লিখতে সহজ। আর জাভাস্ক্রিপ্ট জানলে discord.js ভালো। তবে শেখার জন্য পাইথন দিয়ে শুরু করা নতুনদের জন্য বেশি উপযোগী।

বটের টোকেন কি পাবলিক করা যাবে?

কখনোই না। টোকেন হলো বটের পাসওয়ার্ড। এটি ফাঁস হলে যে কেউ আপনার বট নিয়ন্ত্রণ করতে পারবে। সবসময় .env ফাইলে রাখুন এবং গিটহাবে পুশ করবেন না।

একটি বট দিয়ে একাধিক সার্ভারে কাজ করা যাবে?

হ্যাঁ, একই বট টোকেন দিয়ে অনেক সার্ভারে বট ইনভাইট করা যায়। প্রতিটি সার্ভারে আলাদা কনফিগারেশন রাখতে ডেটাবেস (যেমন SQLite) ব্যবহার করতে পারেন।

বট বানানোর জন্য কতটা পাইথন জানা দরকার?

বেসিক পাইথন—ভেরিয়েবল, ফাংশন, লিস্ট, ডিকশনারি, async/await—জানলেই যথেষ্ট। বাকিটা ডকুমেন্টেশন দেখে শেখা যায়। নিয়মিত প্র্যাকটিস করলে এক সপ্তাহেই আপনি একটি কার্যকর বট বানাতে পারবেন।

শেয়ার করুন:
NonAcademy Team

লেখক

NonAcademy Team