بداية العمل
أولاً ، نقوم بإنشاء دليل حيث سيتم تخزين البوت نفسه.
هنا نقوم بتهيئة npm.
npm init
الوحدات المستخدمة
في التطوير ، سأستخدم TypeScript ومكتبة SlimBot .
لتثبيت SlimBot ، نوصي بما يلي:
npm install slimbot
نقوم أيضًا بإنشاء ملف tsconfig.json لـ TypeScript برمز معين:
{
"compilerOptions": {
"outDir": "./app/",
"target": "ES6"
},
"include": [
"./ts/*"
]
}
كما نرى ، سيتم تخزين جميع ملفات .ts في مجلد ts ، وسيتم تضمين رمز الروبوت المجمّع في مجلد التطبيق. لذلك ، نقوم بإنشاء مجلد ts و app:
mkdir ts app
يبدو مجلدنا الآن كما يلي:
ابدأ الترميز
في مجلد ts ، أنشئ ملف Config.ts بهذا الكود:
const config = {
token: "",
nameBot: "Math Bot",
nameBotShort: "MB"
}
export { config };
نرى الرمز المميز ، ولكنه فارغ ، لأننا لم نستلمه بعد ولم ننشئ البوت نفسه في البرقية. للقيام بذلك ، انتقل إلىBotFather وقم بإنشاء برنامج بوت لذلك.
لقد تلقينا رمزًا مميزًا - 1150111738: AAGs6yfHbDIhgOJVu7LocOqwDYxHrHp2MgM. الآن ضعه في التكوين لدينا.
بمجرد الحصول على التكوين ، الرمز المميز والبوت ، يمكننا إنشاء ملف controller.ts الرئيسي. ستقبل جميع الطلبات. اكتب هذا الرمز في controller.ts:
import { config } from './Config';
import Slimbot from 'slimbot';
const slimbot:Slimbot = new Slimbot(config.token);
slimbot.on('message', (message)=>{
console.log(message);
});
slimbot.startPolling();
إذا قمت بكل شيء بشكل صحيح ، فعندما تكتب رسالة ، يتم إرسالها إلى وحدة التحكم الخاصة بنا في شكل كائن JS:
{
message_id: 1,
from: {
id: 866278523,
is_bot: false,
first_name: 'Andrey',
last_name: 'Pavlov',
username: 'Semi4',
language_code: 'ru'
},
chat: {
id: 866278523,
first_name: 'Andrey',
last_name: 'Pavlov',
username: 'Semi4',
type: 'private'
},
date: 1593329677,
text: '/start',
entities: [ { offset: 0, length: 6, type: 'bot_command' } ]
}
يتم تمثيل الكائن من القيم التالية: من - معلومات من الملف الشخصي الذي تم إرسال الرسالة منه ، الدردشة - المعلومات التي تم من خلالها إرسال الرسالة ، message_id - أي حساب (قراءة رسائل الروبوت) هذه الرسالة ، التاريخ - الوقت بتنسيق UNIX ، النص: نص الرسالة ، و الكيانات - معلومات حول نص الرسالة ، الطول ، الإزاحة ، النوع.
من هنا نستخرج معرف الدردشة والرسالة نفسها. نرسل أيضًا رسالة متطابقة إلى المستخدم:
slimbot.on('message', (message)=>{
const ID = message.chat.id;
let text = message.text;
slimbot.sendMessage(ID, text);
});
تجميع وتشغيل الروبوت ومشاهدتنا.
كل شيء يعمل بشكل مثالي. نحتاج الآن إلى تعليمه التعابير الرياضية ، لذلك يمكنك استخدام تقييم ، ولكنه يجمع الكود ، مما يعني أنه إذا كان المستخدم يعرف js ، فيمكنه الحصول على جميع البيانات باستخدام ، على سبيل المثال ، نظام الملفات. لذلك ، سنستخدم مكتبة الفورمولا.
import formula from 'formula';
const { run } = formula;
وتحديث معالج الرسائل:
slimbot.on('message', (message)=>{
const ID = message.chat.id;
let text = message.text;
slimbot.sendMessage(ID, run(text));
});
دعونا نطلق فويلا! تكتب تعبيرًا رياضيًا للبوت ويجيب.
CBStudio ونسخ 2020