UNPKG

telegram-cms

Version:

It is a nodejs application to launch a Telegram bot in seconds with primary components.

93 lines (81 loc) 3.06 kB
var checkRoute = function(option){ var btnsArr = [ fn.mstr.inbox.lable ]; var result = {} //check text message if(option.text) btnsArr.forEach(btn => { if(option.text === btn) { result.status = true; result.button = btn; result.routting = routting; } }); //check seperate section if(option.speratedSection){ option.speratedSection.forEach(section => { btnsArr.forEach(btn => { if(section === btn){ result.status = true; result.button = btn; result.routting = routting; } }); }); } //return return result; } var alertToAmin = function(newMess) { fn.db.user.find({'isAdmin': true}, 'userid').exec((e, admins) => { //user message inboxMess = 'پیام از طرف ' + '@' + newMess.username + '\n' + 'ــــــــــــــــــــ' + '\n' + newMess.message + '\n' + 'ــــــــــــــــــــ' + '\n' + '⚠️ ' + 'برای ارسال پاسخ لطفا به بخش "صندوق پیام" در بخش مدیریت بروید.' + '\n \n @' + global.robot.username; //send to admins admins.forEach(admin => { global.fn.sendMessage(admin.userid, inboxMess); }); }); } function receiveMessage(message, user) { console.log('send user message to admin'); var userMessage = 'شما از طرف ' + message.from.username + ' یک پیام دریافت کرده اید.' + '\n' + 'ــــــــــــــــــــ' + '\n' + message.text; //time var time = fn.time.gettime(); //save to inbox var newInboxMess = new global.fn.db.inbox({ 'readed' : false, 'messId' : message.message_id, 'date' : time, 'userid' : user.userid, 'username' : user.username, 'message' : message.text }); newInboxMess.save(); alertToAmin(newInboxMess); fn.commands.backToMainMenu(message.from.id, user, fn.str['seccess']); // analytic let eventCategory = 'inbox'; let eventAction = 'receive message'; fn.m.analytic.trackEvent(user.userid, eventCategory, eventAction); } var routting = function(message, speratedSection, user) { var last = speratedSection.length-1; //ask to send massage to admin if (message.text === fn.mstr['inbox'].lable){ console.log('getting message'); fn.userOper.setSection(message.from.id, fn.mstr['inbox'].lable, true); global.fn.sendMessage(message.from.id, fn.mstr['inbox'].getmess, fn.generateKeyboard({section:fn.str['backToMenu']}, true)); } else if(speratedSection[last] === fn.mstr['inbox'].lable) receiveMessage(message, user); } module.exports = { routting, checkRoute }