telegram-cms
Version:
It is a nodejs application to launch a Telegram bot in seconds with primary components.
62 lines (50 loc) • 2.03 kB
JavaScript
//start bot
var start = async function(message){
//collect
var form = Object(message.from);
form.bot = global.robot.username;
var newuser = await fn.userOper.registerId(message.from);
backToMainMenu(message.from.id, newuser);
if(newuser.isAdmin) global.fn.sendMessage(message.from.id, fn.str['youareadmin']);
}
//get user's section
var getsection = function(message){
fn.userOper.checkProfile(message.from.id, (user) => {
global.fn.sendMessage(message.from.id, user.section);
});
}
//register admin
var registerAdmin = function(message){
//console.log('register someone');
var sperate = message.text.split('-');
fn.userOper.addAdminToWaintingList(sperate[1]);
global.fn.sendMessage(message.from.id, fn.str['registeradmin']);
}
//back to mainMenu
var backToMainMenu = async function(userid, user, mess)
{
//console.log('go to main menu');
await fn.getMainMenuItems(user);
var items = global.robot.menuItems;
var texttosend = (mess) ? mess : global.robot.config.firstmessage;
if(texttosend == null) texttosend = global.fn.str['mainMenuMess'];
let keyBoardOption = {'section':fn.str['mainMenu'], 'list':items, "isCompelet": user.isCompelet, "isAdmin": user.isAdmin};
// check custom rowColumns
let customRows = await fn.m['settings'].rowColumns.check(global.fn.str['mainMenu']);
if(customRows) keyBoardOption['customRows'] = customRows;
var remarkup = fn.generateKeyboard(keyBoardOption, false);
global.fn.sendMessage(userid, texttosend, remarkup);
fn.userOper.setSection(userid, fn.str['mainMenu'], false);
// analytic
let page = 'صفحه اصلی';
let label = 'category';
fn.m.analytic.trackPage(userid, page, label);
}
function getUserid(userid)
{
let msg = `🆔 ${userid}`;
global.fn.sendMessage(userid, msg);
}
module.exports = {
start, getsection, registerAdmin, backToMainMenu, getUserid
}