আপনি যদি ইন্টারনেট রিলে চ্যাটে (আইআরসি) থেকে থাকেন, তাহলে সম্ভাবনা আছে যে আপনি কোন সময়ে একটি বটের সম্মুখীন হয়েছেন। বটগুলি স্বাধীন প্রোগ্রাম বা স্ক্রিপ্ট যা একটি নেটওয়ার্কের সাথে একইভাবে সংযোগ স্থাপন করে যেভাবে মানুষ করবে। তারা ব্যবহারকারী কমান্ড বা এমনকি চ্যাট সাড়া দিতে প্রোগ্রাম করা যেতে পারে। এই গাইডে, আপনি একটি আইআরসি বট তৈরির জন্য আপনার বিকল্পগুলি এবং সেইসাথে স্ক্র্যাচ থেকে কীভাবে তৈরি করবেন তা খুঁজে পেতে পারেন।
ধাপ
2 এর পদ্ধতি 1: মূল্যায়ন বিকল্প
ধাপ 1. একটি ক্লায়েন্ট স্ক্রিপ্ট ইনস্টল বিবেচনা করুন।
কখনও কখনও আপনি কেবল একটি সহজ কাজ সম্পন্ন করতে চান এবং এটি একটি স্বাধীন প্রোগ্রাম হতে চান না। সেই ক্ষেত্রে, আপনি একটি IRC ক্লায়েন্টের সাথে একটি স্ক্রিপ্ট সংযুক্ত করতে পারেন। এমআইআরসির সাথে এটি বেশ সাধারণ, যার একটি শক্তিশালী স্ক্রিপ্টিং ইঞ্জিন এবং বিভিন্ন ধরণের উপলব্ধ স্ক্রিপ্ট রয়েছে। এটি সবচেয়ে সহজ বিকল্প এবং যদি আপনার খুব বেশি বা কোন প্রোগ্রামিং অভিজ্ঞতা না থাকে তবে অত্যন্ত সুপারিশ করা হয়। এই গাইডের বাকি অংশের জন্য, নির্দেশাবলী অনুসরণ করার জন্য কম্পিউটার প্রোগ্রামিং এর কিছু জ্ঞান প্রয়োজন।
ধাপ 2. আপনার বটের জন্য একটি পূর্ব-বিদ্যমান কোডবেস বিবেচনা করুন।
অনেকগুলি ওপেন সোর্স এবং ফ্রি প্রোগ্রাম রয়েছে যা আপনাকে আপনার নিজস্ব কাস্টমাইজড বট দ্রুত সেট করতে সহায়তা করতে পারে। এইরকম একটি উদাহরণ হল ডিমড্রপ, প্রাচীনতম আইআরসি বট এখনও রক্ষণাবেক্ষণ করা হচ্ছে।
ধাপ 3. আপনার নিজের বট লেখার কথা বিবেচনা করুন।
উন্নত আইআরসি ব্যবহারকারী এবং ডেভেলপারদের জন্য যারা ইতিমধ্যে একটি প্রোগ্রামিং ভাষা সম্পর্কে তাদের পথ জানেন, এটি একটি দুর্দান্ত বিকল্প। যতদিন আপনি সকেট সাপোর্ট পাবেন ততক্ষণ আপনি যে কোনো ভাষা ব্যবহার করতে পারবেন, কিন্তু জনপ্রিয় ভাষাগুলির মধ্যে রয়েছে পাইথন, লুয়া, পিএইচপি, সি এবং পার্ল। আপনি যদি এর কোনটি না জানেন কিন্তু আপনি অন্য ভাষা জানেন, তাহলে এটি কোন সমস্যা নয়। আপনি সাধারণত যেকোনো ভাষায় ওয়েবে উদাহরণ খুঁজে পেতে পারেন। এই নিবন্ধের জন্য, আমরা পিএইচপি ব্যবহার করে প্রদর্শন করব। পিএইচপি ব্যবহার করার জন্য, আপনার কম্পিউটার বা সার্ভারে পিএইচপি-সিএলআই ইনস্টল করতে হবে।
- PHP php.net থেকে ডাউনলোড করা যায়
- পিএইচপি স্ক্রিপ্টগুলি কমান্ড লাইন থেকে কার্যকর করা যেতে পারে। অতিরিক্ত তথ্য এবং পিএইচপি ব্যবহারে সাহায্যের জন্য, এই পিএইচপি ম্যানুয়াল পৃষ্ঠাটি দেখুন।
2 এর পদ্ধতি 2: আপনার নিজের বট উন্নয়ন
পদক্ষেপ 1. সংযোগের বিবরণ সংগ্রহ করুন।
নেটওয়ার্কে সফলভাবে সংযোগ করার জন্য আপনাকে নিম্নলিখিত তথ্যগুলি পেতে হবে।
-
সার্ভার: IRC- এর সাথে সংযোগ স্থাপনের জন্য ব্যবহৃত সার্ভারের ডোমেইন নাম, যেমন
chat.freenode.net
- বন্দর: বেশিরভাগ ক্ষেত্রে, এটি 6667, কিন্তু যদি আপনি নিশ্চিত না হন তবে আপনার নিজস্ব IRC ক্লায়েন্ট বা নেটওয়ার্কের ওয়েবসাইটটি দেখুন।
- ডাকনাম: আপনার বট ডাক নাম ব্যবহার করা উচিত। মনে রাখবেন কিছু বিশেষ অক্ষর সাধারণত অনুমোদিত নয় (@#! ~)।
-
পরিচয়: ডাকনামের পরে পরিচয় ক্ষেত্রটি উপস্থিত হয় যখন কেউ এই মত WHOIS করে:
ডাকনাম! ident@hostname
- GECOS: এই ক্ষেত্রটি সাধারণত ব্যবহারকারীর আসল নাম বা বটের সাধারণ বিবরণ ধারণ করে কিন্তু আপনি সেখানে যা খুশি রাখতে পারেন।
- চ্যানেল: আপনি সাধারণত আপনার বটকে এক বা একাধিক চ্যানেলে উপস্থিত থাকতে চান। বেশিরভাগ নেটওয়ার্কে, এগুলি '#' এর সাথে উপসর্গযুক্ত কিন্তু এটি অন্য কিছু হতে পারে।
পদক্ষেপ 2. আপনার স্ক্রিপ্টে কনফিগারেশন শুরু করুন।
এটি করার সবচেয়ে প্রাথমিক উপায় হল উপরের কনফিগারেশন নাম অনুসারে কয়েকটি ভেরিয়েবলের নামকরণ করা। আপনি এগুলি একটি কনফিগ ফাইলে সংরক্ষণ করতে পারেন এবং সেগুলি বিশ্লেষণ করতে পারেন, তবে আপাতত আমরা কেবল পরম প্রয়োজনীয়তার সাথে থাকব।
পদক্ষেপ 3. নেটওয়ার্কের সাথে সংযোগ করুন।
এটি করার জন্য, আপনাকে নির্দিষ্ট পোর্টে সার্ভারে একটি সকেট খুলতে হবে। যেকোনো কারণে সংযোগ ব্যর্থ হলে আপনার এই অংশে কিছু ত্রুটি হ্যান্ডলিং কোড যোগ করা উচিত। এই ক্ষেত্রে, পিএইচপি আমাদের ত্রুটি কার্যকরভাবে পরিচালনা করার জন্য কিছু পরিচ্ছন্ন ফাংশন প্রদান করে।
ধাপ 4. আপনার বট নিবন্ধন।
এর অর্থ হল আপনার ডাকনাম, আইডেন্টি এবং GECOS সার্ভারে সরবরাহ করা, নিকসার্ভের সাথে নিবন্ধন করা নয়। এটি করার জন্য, কেবল সার্ভারে NICK এবং USER কমান্ড লিখুন, তারপরে একটি ক্যারেজ রিটার্ন এবং নতুন লাইন। এটি অবশ্যই দেখানো হয়েছে যে আপনি এটি ঠিক করেছেন, কারণ এটি RFC1459 এ নির্দিষ্ট করা হয়েছে, IRC প্রোটোকলের স্পেসিফিকেশন।
মনে রাখবেন যে মাঝের দুটি পরামিতি (এই ক্ষেত্রে, * এবং 8) অবশ্যই নির্দিষ্ট করতে হবে, কিন্তু সেগুলি সার্ভার দ্বারা উপেক্ষা করা হয়। এই দুটি শুধুমাত্র সংযুক্ত সার্ভারের মধ্যে ব্যবহার করা হয়, সরাসরি সংযোগকারী ক্লায়েন্ট দ্বারা নয়।
ধাপ 5. একটি লুপ ব্যবহার করে সকেট থেকে ডেটা আনতে থাকুন।
যদি আপনি একটি লুপ ব্যবহার না করেন, আপনার স্ক্রিপ্ট অবিলম্বে বন্ধ হয়ে যাবে এবং বটটি মূলত অকেজো হবে। সংযুক্ত থাকার জন্য, আপনাকে সার্ভার থেকে ডেটা আনতে হবে, আপনি যে স্ট্রিমে চান তার কোন ইনপুট চেক করুন এবং যদি তা হয় তবে তার প্রতিক্রিয়া জানান। এখানে, আমরা socket_read () ব্যবহার করে ডেটা দখল করছি আমাদের জন্য উপলব্ধ যেকোন ডেটা দখল করতে। যদি থাকে, আমরা লুপে যা আছে তা করতে থাকি। কনসোলে কাঁচা ডেটা আউটপুট করাও সহায়ক হতে পারে যাতে আপনি দেখতে পারেন বটের দৃষ্টিকোণ থেকে কী হচ্ছে।
পদক্ষেপ 6. একটি পিং হ্যান্ডলার লিখুন।
এটা গুরুত্বপূর্ণ. আপনি যদি সময়মতো পিংসের জবাব না দেন, তাহলে সার্ভার আপনাকে সংযোগ বিচ্ছিন্ন করবে। আসুন প্রথমে এটির যত্ন নিই। সার্ভার থেকে পাঠানো হলে পিংগুলি এইরকম দেখাচ্ছে:
পিং: rajaniemi.freenode.net
। সার্ভারের নাম ':' এর পরে রাখতে হবে না, এটি যা চায় তা সরবরাহ করতে পারে। আপনাকে অবশ্যই * পং ব্যবহার না করে সার্ভার যা বলেছে ঠিক তা পুনরাবৃত্তি করতে হবে।
ধাপ 7. আপনার চ্যানেলগুলিতে যোগদান করুন
ঠিক আছে, তাই আমাদের একটি বট আছে যা নেটওয়ার্কের সাথে সংযোগ করে এবং পিংগুলিতে সাড়া দেয়, কিন্তু অন্যথায় কিছুই করে না। লোকেরা আপনার বট দেখতে এবং ব্যবহার করার জন্য, এটি একটি চ্যানেলে থাকা উচিত (অন্যথায় আপনাকে ব্যক্তিগত বার্তাগুলির প্রতিক্রিয়া জানাতে হবে)।
- এটি করার জন্য, আমরা সার্ভার স্ট্যাটাস কোড 376 বা 422 চেক করব। 376 মানে MOTD (দিনের বার্তা) সমাপ্ত। 422 মানে পাঠানোর জন্য কোন MOTD ছিল না। সেই MOTD হল এমন কিছু যা সার্ভার পাঠায় যখন আপনি সংযোগ করেন, কিন্তু এটি একটি ভাল নির্দেশক যখন আমরা চ্যানেলগুলিতে যোগদান শুরু করতে পারি।
- আপনাকে একটি জয়েন কমান্ড দিতে হবে। এই কমান্ডটি কমা দ্বারা পৃথক করা এক বা একাধিক চ্যানেল দ্বারা অনুসরণ করা যেতে পারে।
- লক্ষ্য করুন যে সার্ভার পাঠায় ডেটা সুবিধামত স্পেস দ্বারা সীমাবদ্ধ। এইভাবে আমরা ডেটা বিভক্ত করতে পারি এবং একটি অ্যারে সূচক ব্যবহার করে এটি উল্লেখ করতে পারি।
ধাপ 8. চ্যানেল বার্তাগুলিতে সাড়া দিন।
এখন মজার অংশের জন্য। আপনার বট চ্যানেলে যোগদান করেছে, তাই এখন আপনি যা চান তা ব্যবহার করতে পারেন। আসুন examplemoo নামে একটি উদাহরণ কমান্ড তৈরি করি।
- অফসেটটি লক্ষ্য করুন যেখানে বার্তাগুলি শুরু হয় (এটি উভয় চ্যানেল এবং ব্যক্তিগত বার্তাগুলির জন্য প্রযোজ্য)। এটি সর্বদা একই জায়গায় থাকে।
- আপনি খণ্ডিত ডেটা একসাথে ($ d) একত্রিত করে তাদের মধ্যে স্পেস দিয়ে কমান্ডগুলি পরিচালনা করতে পারেন। এটি এই নিবন্ধের আওতার বাইরে।
- যদি টার্গেট একটি চ্যানেল (যেমন #বটার-টেস্ট) হয়, তাহলে আপনি তার উত্তর দিন। যদি এটি একটি ব্যক্তিগত বার্তা হয়, এই বিটটি আপনার বটের ডাকনাম হবে! তারপরে আপনাকে অবশ্যই প্রেরকের ডাকনাম ব্যবহার করে উত্তর দিতে হবে, আপনার নয় (অন্যথায় আপনি নিজের সাথে কথা বলবেন এবং এটি কেবল বোকা)।
ধাপ 9. আপনার বট প্রসারিত করুন।
আপনি উপরের বাস্তবায়ন ব্যবহার করে অনেক নতুন বৈশিষ্ট্য যোগ করতে পারেন। আইআরসি নেটওয়ার্কে আরও অনেকগুলি কমান্ড জারি করা যেতে পারে, যেমন অপস ম্যানেজ করা, লাথি মারা এবং নিষিদ্ধ করা, বিষয় নির্ধারণ করা, অন্যান্য অনেক বৈশিষ্ট্যের মধ্যে।
পরামর্শ
-
আপনি আপনার বার্তাগুলিকে এইভাবে উপসর্গ করে "/me" কমান্ডের ফলাফল তৈরি করতে পারেন:
- PRIVMSG #চ্যানেল: / 001ACTION পাঠ্য এখানে 1 001।
-
001 মানে ASCII অক্ষর 1 এবং এটিকে দ্বিগুণ উদ্ধৃত পিএইচপি স্ট্রিংয়ে ব্যাখ্যা করা হবে। বিকল্পভাবে, আপনি ব্যবহার করতে পারেন
chr (1)
- স্ট্রিং এর বাইরে।
- একটি বার্তায় "\ 003" (ASCII কোড 3) এর পূর্বে একটি রঙের জন্য একটি সংখ্যা দ্বারা রঙ তৈরি করা যায়। 0 = সাদা, 1 = কালো, 2 = নীল, 3 = সবুজ, 4 = লাল […]। আরো রঙের জন্য mIRC এর পৃষ্ঠা দেখুন।
- সৌজন্যে, আপনার বট অনলাইনে আনার আগে চ্যানেল মালিক এবং আইআরসি অপারেটরদের সম্মতি নিন। সমস্ত নেটওয়ার্ক এবং চ্যানেলের বটগুলির প্রতি একটি স্বাগত নীতি নেই, এমনকি ভাল আচরণও।
- কিছু আইআরসি ডেমন প্রটোকলের স্পেসিফিকেশনের বাইরে গিয়ে অন্যান্য বৈশিষ্ট্য প্রয়োগ করে। আপনি যদি এটি একটি নির্দিষ্ট নেটওয়ার্কের জন্য তৈরি করছেন, আপনি যদি তাদের প্রোটোকল সম্পর্কে জানেন তবে আপনি অবশ্যই সেই বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন। আপনি যদি আপনার বটকে বেশ কয়েকটি নেটওয়ার্কে মোতায়েন করতে চান, তবে এটি আরএফসিতে যা আছে তা রাখার চেষ্টা করুন।