UNPKG

telegram-cms

Version:

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

139 lines (119 loc) 5.12 kB
var name = 'favorites'; var checkRoute = function(option){ var btnsArr = [ fn.mstr.favorites['name'], fn.mstr.favorites['back'] ]; 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 show = function(userid, newcat){ var mName = fn.mstr.favorites['modulename']; var activationtext = '', moduleOption = fn.getModuleOption(mName, {'create': true}); //defin activation button activationtext = (moduleOption.option.active) ? 'disable' : 'enable'; //defin new category if(newcat) { moduleOption.option.category = newcat; moduleOption.option.buttons = fn.convertObjectToArray(fn.mstr.favorites.btns_user); global.robot.config.moduleOptions[moduleOption.index] = moduleOption.option; //save configuration global.robot.save(); fn.updateBotContent( () => { show(userid); }); } var list = [ fn.mstr['category'].asoption, fn.str.activation[activationtext], fn.str['editOrder'], ], back = fn.str.goToAdmin['back'], remarkup = fn.generateKeyboard({'custom': true, 'grid':true, 'list': list, 'back':back}, false); var detailMess = 'اطلاعات افزونه' + '\n' + 'دسته: ' + moduleOption.option.category + '\n' + 'نام دکمه در منو: ' + moduleOption.option.buttons + '\n' + 'اولویت در منو: ' + moduleOption.option.btn_order + '\n' + 'وضعیت: ' + moduleOption.option.active; global.fn.sendMessage(userid, detailMess, remarkup); fn.userOper.setSection(userid, fn.mstr.favorites['name'], true); } var category = function (message, speratedQuery){ console.log('set categori for favorites'); fn.userOper.setSection(message.from.id, fn.mstr['category'].asoption, true); var back = fn.mstr['favorites']['back']; var list = []; global.robot.category.forEach((element) => { list.push(element.parent + ' - ' + element.name); }); global.fn.sendMessage(message.from.id, fn.mstr.post.edit['category'], fn.generateKeyboard({'custom': true, 'grid':false, 'list': list, 'back':back}, false)); } var routting = function(message, speratedSection){ var mName = fn.mstr.favorites['modulename']; var text = message.text; var last = speratedSection.length-1; //show favorites setting if (text === fn.mstr.favorites['name'] || text === fn.mstr.favorites['back']) show(message.from.id); //active or deactive else if(fn.checkValidMessage(text, [fn.str.activation.enable,fn.str.activation.disable])){ console.log('active deactive favorites'); var key = (text === fn.str.activation.enable) ? true : false; var moduleOption = fn.getModuleOption(mName); global.robot.config.moduleOptions[moduleOption.index].active = key; //save configuration global.robot.save(); fn.updateBotContent( () => { show(message.from.id); }); } //set category else if(text === fn.mstr['category'].asoption) category(message, speratedSection); else if(speratedSection[last] == fn.mstr['category'].asoption){ console.log('get new category for favorites'); var cat = text.split(' - ')[1]; if(fn.m.category.checkInValidCat(cat)) show (message.from.id, cat); else global.fn.sendMessage(message.from.id, fn.str['choosethisItems']); } //change order else if (text === fn.str['editOrder']){ var remarkup = fn.generateKeyboard({'section': fn.mstr.favorites['back']}, true); global.fn.sendMessage(message.from.id, fn.str['editOrderMess'], remarkup); fn.userOper.setSection(message.from.id, fn.str['editOrder'], true); } else if(speratedSection[last] === fn.str['editOrder']){ var order = parseInt(text); if(!typeof order === 'number') global.fn.sendMessage(message.from.id, fn.str['editOrder']); var moduleOption = fn.getModuleOption(fn.mstr.favorites['modulename']); global.robot.config.moduleOptions[moduleOption.index].btn_order = order; //save configuration global.robot.save(); fn.updateBotContent( () => { show(message.from.id) }); } } var user = require('./user'); var query = require('./query'); // events require('./events'); module.exports = { name, checkRoute, routting, user, query }