t: options.closetext, callback_data: 'close' }]);
} else {
keyboard.buttons.push([{ text: options.backtext, callback_data: 'back' }, { text: options.closetext, callback_data: 'close' }]);
}
logs('keyboard.buttons = ' + JSON.stringify(keyboard.buttons));
if(typeof keyboard.state === "function"){
keyboard.menutext += '\r\n' + keyboard.state();
}
logs('keyboard 2 = ' + JSON.stringify(keyboard));
sendTo(options.telegram, {
user: user,
text: keyboard.menutext,
editMessageText: {
options: {
chat_id: getState(options.telegram + ".communicate.requestChatId").val,
message_id: getState(options.telegram + ".communicate.requestMessageId").val,
reply_markup: {
inline_keyboard: keyboard.buttons,
}
}
}
});
} else {
close(user);
sendTo(options.telegram, {
user: user,
text: keyboard.menutext,
reply_markup: {
inline_keyboard: [
keyboard.buttons,
[{ text: options.closetext, callback_data: 'close' }]
]
}
});
}
});
}
function getMenu(state, cb){ /*** getMenu ***/
logs('ВЫЗОВ ФУНКЦИИ getMenu(cb)');
var keyboard_ = {
menutext: (menu.icon ? menu.icon + ' ':'') + UnUnique(
menu.name),
state: '',
buttons: []
};
var SubArr = sub.concat([]);
logs('menu.submenu = ' + menu.submenu[2].submenu[1].state);
getObj(menu.submenu, SubArr, keyboard_, function callback(SubMenuObj, keyboard, isfunc){
logs('КОЛБЭК в getMenu - function callback(SubMenuObj, keyboard)');
for (var i = 0; i < SubMenuObj.length; i++) {
var icon;
if(SubMenuObj[i].state && typeof SubMenuObj[i].state !== 'function' && getState(SubMenuObj[i].state).val){
icon = SubMenuObj[i].icons.on;
} else if (SubMenuObj[i].state && typeof SubMenuObj[i].state !== 'function'){
icon = SubMenuObj[i].
icons.off;
} else {
icon = SubMenuObj[i].icon;
}
logs('** SubMenuObj[i] = ' + JSON.stringify(SubMenuObj[i]));
keyboard.buttons.push({
text: icon + ' ' + UnUnique(SubMenuObj[i].name),
callback_data: options.prefix + SubMenuObj[i].name
});
}
cb(keyboard);
});
}
function getObj(SubMenuObj, SubArr, keyboard, cb){ /*** getObj ***/
logs('ВЫЗОВ ФУНКЦИИ getObj(obj, num, keyboard, cb)');
var n;
logs('SubArr.length = ' + SubArr.length);
if(SubArr.length > 0){
keyboard.menutext += ' > ' + (SubMenuObj[SubArr[0]].icon ? SubMenuObj[SubArr[0]].icon + ' ':'') + UnUnique(SubMenuObj[SubArr[0]].name);
n = SubArr.shift();
if(typeof SubMenuObj[n].state == 'function'){
keyboard.state = SubMenuObj[n].state;
}
getObj(SubMenuObj[n].submenu, SubArr, keyboard, cb);
} else {
logs('****** getObj SubArr = ' + JSON.stringify(SubMenuObj[n]));
cb(SubMenuObj, keyboard);
}
}
function getSub(cmd, arr, cb){ /*** getSub ***/
logs('ВЫЗОВ ФУНКЦИИ getSub(cmd, arr, cb)');
cmd = cmd.replace(options.prefix, '');
sub = [];
arr = arr.submenu;
logs('Определяем sub для команды = ' + cmd);
if(arr.length > 0){
for (var i = 0; i < arr.length; i++) {
logs('i=' + i + ', i1=' + i1 + ', i2=' + i2);
if(cmd === arr[i].name.toLowerCase()){
sub[0] = i;
if(arr[i].submenu.length == 0){
return cb(sub, arr[i].state);
} else {
return cb(sub, false);
}
}
var arr1