THN ডিসকর্ড বট

প্রকল্পের গিটহাব রিপো

প্রোফাইল

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

দ্য হ্যাকার নিউজ (THN) একটি সাইবারসিকিউরিটি সংবাদ সাইট। এখন, THN হল NOT হ্যাকার নিউজ নয়। “The Hacker News” নামটি “Hacker News” এর সাথে অত্যন্ত সাদৃশ্যপূর্ণ এ নিয়ে কিছু বিবাদ ঘটেছে, যেখানে “Hacker News” একটি খুবই জনপ্রিয় এবং কিংবদন্তি সামাজিক সংবাদ ওয়েবসাইট যা টেক উদ্যোক্তাশীলতায় ফোকাস করে। কিন্তু, একজন হিসেবে যে নিয়মিত The Hacker News ব্যবহার করে, আমি বিশ্বাস করি The Hacker News সাইবারসিকিউরিটি সংবাদ পাওয়ার একটি ভালো উৎস।

এই প্রকল্পে কাজ করার সময়, আমি যে এক চ্যালেঞ্জের সম্মুখীন হলাম তা ছিল THN থেকে সংবাদ বের করে নেওয়ার উপায় খুঁজে পাওয়া। উপলভ্য একমাত্র অপশনগুলো ছিল Twitter API ব্যবহার করা অথবা THN ওয়েব স্ক্র্যাপ করা। আমি কিছু সময় Twitter API কাজ করাতে ব্যয় করেছি কিন্তু শেষে ছেড়ে দিলাম কারণ Twitter তাদের API সেটআপ এবং ব্যবহার করা অনেক কঠিন করে দিয়েছে। তাই আমি পরিবর্তে THN ওয়েব স্ক্র্যাপ করতেই রেজাল্ট করলাম। যেহেতু কোডবেসটি Python-এ লেখা হতে যাচ্ছে, আমি requests এবং beautifulsoup4 ব্যবহার করে ওয়েব স্ক্র্যাপিংটা করেছি।

স্ক্র্যাপার কাজ করলে, পরবর্তী যে কাজটি আমরা নিয়েছি তা ছিল ডিসকর্ড বট। একটি ডিসকর্ড বট তৈরি ও ডিপ্লয় করা খুবই সহজ। তাই আমরা দ্রুত এক দিনেরও কম সময়ে বটটি কাজ করাতে সক্ষম হয়েছিলাম। সেই সময়ের মধ্যে আমরা ডিসকর্ড সার্ভার সেটআপও করেছিলাম।

একটি ফিচার আমরা যোগ করি সেটি ছিল “ফিল্টারস” ফিচার। এই ফিচারটি THN আর্টিকেলগুলোকে ব্লগ অনুযায়ী সাজাবে, যেমন এটা ছিল কি “apple-news”, “google-news”, “linux-news” এবং/অথবা “microsoft-news”। এটি ওই ধরনের নিউজগুলোকে তাদের নিজস্ব চ্যানেলে সাজিয়ে দিত। একটা “all” চ্যানেলও ছিল যেখানে সব আর্টিকেল থাকবে কিন্তু আমরা মনে করেছিলাম এই ফিচারটি ভালো কারণ এটা টাইপগুলোকে কিছুটা সাজিয়ে দিচ্ছিল এবং এটা বানানো তেমন চ্যালেঞ্জিং ছিল না।

এগুলো জেনে, ডিসকর্ড বটটি কীভাবে কাজ করত তার সাধারণ ধারণা হল:

  1. প্রতি 1 ঘন্টা পর পর, এটি THN স্ক্র্যাপ করে এবং একটি আর্টিকেল সম্পর্কে মূল তথ্য বের করে। এই তথ্যগুলোর মধ্যে ছিল: শিরোনাম, বিবরণ, তারিখ, এবং আর্টিকেলের URL।
  2. তারপর বটটি সার্ভারে তার মেসেজ ইতিহাস চেক করে দেখতে যে কোনগুলো আর্টিকেলগুলো তা আগে থেকে স্ক্র্যাপ করেছে এবং কোনগুলো নতুন। এতে বটটি আগে থেকেই পোস্ট করা আর্টিকেলগুলো পুনরায় পোস্ট করে না।
  3. এটি নতুন আর্টিকেলগুলোকে নির্দিষ্ট বিষয়ভিত্তিক ফিল্টার করে, উপরোক্তভাবে ব্যাখ্যা করা অনুযায়ী।
  4. সব আর্টিকেল সংগ্রহ ও ফিল্টার হওয়ার পর, বটটি প্রতিটি আর্টিকেলের URL তার ডিসকর্ড সার্ভারে এবং সংশ্লিষ্ট চ্যানেলগুলোতে পোস্ট করবে।
  5. এই সব কাজ শেষে, বটটি আবার একটি ঘন্টা অপেক্ষা করে একই ধাপগুলো পুনরায় চালিয়ে যেতে।

সামগ্রিকভাবে, ডিসকর্ড বটটি পুরোপুরি Python-এ লেখা হয়েছে এবং নিম্নলিখিত ৩য় পক্ষের প্যাকেজগুলো ব্যবহার করেছে: beautifulsoup4, requests, discord.py, এবং python-dotenv। এছাড়া, ডিসকর্ড বটটি আমার Raspberry Pi 3 B+-এ হোস্ট করা ছিল যা 32 বিট Raspberry Pi OS Lite চালাচ্ছিল। আমরা বটটি এভাবে চালাতাম:

# run the bot in the background
python3 bot.py &

বট এবং সার্ভার সব সেটআপ হয়ে গেলে, আমরা আমাদের প্রকল্পটি সকল বন্ধু ও সহপাঠীদের সাথে শেয়ার করি। এক সপ্তাহের মধ্যে প্রায় ২৫ জন সার্ভারে যোগ দেয়।

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

এই কারণে, আমরা ডিসকর্ড সার্ভারটি বন্ধ করে দেওয়ার সিদ্ধান্ত নিই। এই প্রকল্পটি ফেব্রুয়ারি ২০২২ থেকে মে ২০২২ পর্যন্ত চলেছিল, আনুষ্ঠানিকভাবে ২৫ মে, ২০২২-এ বন্ধ করা হয়। সেই দিন আমরা বটটি বন্ধ করেছি, ডিসকর্ড সার্ভার মুছে দিয়েছি, এই প্রকল্পটির জন্য তৈরি করা ডিসকর্ড বট অ্যাকাউন্টটি মুছে দিয়েছি, এবং কোডটি সম্পূর্ণ ওপেন সোর্স করেছি এই GitHub রেপোজিটরিতে

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