প্রাথমিক ফিচার

আমার ভাইয়ের জন্য বানানো ডিসকর্ড বটের মূল এবং প্রাথমিক রিকয়ারমেন্ট ছিলো শুধু একটি।

সেটি হচ্ছে- ডিসকর্ড সার্ভারের ভয়েস চ্যানেলে কেউ জয়েন বা লিভ করলে বট যেন তার নাম একটি প্রাইভেট টেক্সট চ্যানেলে ম্যাসেজ পাঠায়।

এতটুকু একজন পাইথন দিয়ে বানিয়ে দিয়েছিলো। কিন্তু uptimebot এর ফ্রি টায়ারে পরিবর্তন আনায় সেটা আর কাজ করছিলো না।

বটের ম্যাসেজ,

Omuk has joined General 1 at 09:06:34 PM

Omuk has left General 1 at 11:01:02 PM

সেশন টাইম

discord.js দিয়ে বানানোর পর শুধু এতটুকু আমার যথেষ্ট মনে হচ্ছিলো না, তাই যখন কেউ লিভ নেবে, তখন সে কতক্ষণ ছিলো সেটা দেখানোর জন্য new Map() তৈরি করে সেখানে জয়েন টাইম স্টোর করি, লিভ নেয়ার সময় বর্তমান সময়ের সাথে বিয়োগ করে সেশন টাইম বের করি।

এবার কেউ লিভ নিলে সহজেই জানা যায় যে- সে কতক্ষণ ছিলো।

Omuk has left General 1 at 11:01:02 PM (session time 01:54:27)

CRON

তারপর আরেক ফিচার যুক্ত করতে ইচ্ছা হয়- প্রতিদিন ইংরেজি, বাংলা এবং আরবী তারিখ দেখানো। তার জন্য node-cron moment-hijri date-bengali-revised এই ৩টি প্যাকেজ ইন্সটল করে কোড যুক্ত করি।

যেহেতু বাংলাদেশের হিজরী তারিখ সৌদি আরবের চেয়ে একদিন কম থাকে, তাই বর্তমান সময়ের/তারিখের হিজরী তারিখ না নিয়ে ২৪ ঘণ্টা আগের হিজরী তারিখ নিতে হয়।

স্ল্যাশ কমান্ড

স্ল্যাশ কমান্ডও পরীক্ষামূলকভাবে যুক্ত করলেও সেটা আর বাস্তবায়ন করা হয়নি। কাজ ছিলো, /msg লিখে এন্টার/টাচ দিলে ৩টি ফিল্ড আসবে, কতক্ষণ পর, কাকে, কী ম্যাসেজ দিতে চান। সেই বট নির্দিষ্ট সময়ে প্রাপককে সেই ম্যাসেজ দিয়ে দেবে।

এখন যদি প্রাপক বটকে রিপ্লাই দেয়? সেটার জন্য আরো কোড যুক্ত করতে হয়, ফলে বট তার পাঠানো ম্যাসেজে নির্দিষ্ট সময়ের মধ্যে রিপ্লাই দিলে সেটা গ্রহণ করবে এবং সেন্ডারকে জানিয়ে দেবে।

এবং সবশেষে- একটু ফানি কিছু করতে ইচ্ছে হয়। তাই ডিসকর্ডে আরেকটি টেক্সট চ্যানেল খুলে সেটিতে প্রতি ঘন্টায় একটি করে (পরে দিনে দুইবার) one-liner/dad-jokes পোস্ট করার জন্য cron.schedule করি। এপিআই ব্যবহার করি https://api-ninjas.com/

গিটহাব রিপো লিংক https://github.com/2u841r/vc-watcher-discord-bot