event-local
Version:
Event client
84 lines • 3.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("util");
const EventLocal_1 = require("./EventLocal");
var telegram = require("telegram-bot-api");
class Messager {
constructor(t) {
this.t = t;
}
send(chat_id, message) {
this.t.sendMessage({ chat_id: chat_id, text: message });
}
}
exports.Messager = Messager;
class MessagerEmpty extends Messager {
constructor(t) {
super(t);
}
send(chat_id, message) {
this.t.sendEvent("messager.send", JSON.stringify({ chat_id: chat_id, message: message }));
console.log("Телеграмм бот не активирован", chat_id, message);
}
}
exports.MessagerEmpty = MessagerEmpty;
function MessageLocalInit(el) {
if (process.env.TELEGRAM_ENABLE !== "1") {
console.log("[X] Подключение к API телеграма");
return new MessagerEmpty(el);
}
else {
console.log("[*] Подключение к API телеграма");
const api = new telegram({
token: process.env.TELEGRAM_API,
http_proxy: {
host: process.env.TELEGRAM_PROXY_HOST,
port: +process.env.TELEGRAM_PROXY_PORT
},
updates: {
enabled: true,
get_interval: 1000
}
});
api.sendMessage({
chat_id: process.env.TELEGRAM_COMMAND_CHAT_ID,
text: "Запущен сервис с именем " +
process.env.SERVICE_NAME +
" на " +
EventLocal_1.default.localHost +
":" +
process.env.SERVICE_PORT +
"/help"
});
api.on("message", function (message) {
console.log(message);
if (Array.isArray(global.MESSAGE_CHANNEL))
for (let f of global.MESSAGE_CHANNEL) {
if (f.event.test(message.text)) {
let exec = f.event.exec(message.text);
if (util_1.isFunction(f.callback)) {
const result = f.callback(exec[1]);
if (util_1.isString(result)) {
api.sendMessage({ chat_id: message.chat.id, text: result });
}
else if (!result) {
api.sendMessage({
chat_id: message.chat.id,
text: "Сообщение получено"
});
}
else if (util_1.isBoolean(result)) {
api.sendMessage({
chat_id: message.chat.id,
text: result ? "исполнено" : "неудача"
});
}
}
}
}
});
return new Messager(api);
}
}
exports.MessageLocalInit = MessageLocalInit;
//# sourceMappingURL=MessageLocalInit.js.map
;