- menu BOT

- verified_by_aportador
This commit is contained in:
paoloar77
2021-12-29 18:26:08 +01:00
parent 665680b531
commit 2d80150e9a
13 changed files with 743 additions and 137 deletions

View File

@@ -12,6 +12,7 @@ const printf = require('util').format;
const { User } = require('../models/user');
const { CalZoom } = require('../models/calzoom');
const { Nave } = require('../models/nave');
const { MyBot } = require('../models/bot');
const shared_consts = require('../tools/shared_nodejs');
const { ListaIngresso } = require('../models/listaingresso');
@@ -70,8 +71,6 @@ const emo = {
MsgBot = {
MIANAVE: ['Nave'],
CIAO: ['ciao', 'ciaoo', 'hola', 'holaa', 'hey', 'salve', 'buongiorno', 'buondi', 'ciao ❤️'],
CI_SEI: ['ci sei', 'c\'è qualcuno', 'c\'è nessuno'],
CHI_SONO_IO: ['chi sono io', 'chi sono'],
@@ -92,7 +91,7 @@ MsgBot = {
SPOSAMI: ['sposami', 'vuoi sposar', 'sei sposat', 'ci sposiamo', 'ti sposo', 'sei sposat', 'mi sposi'],
CHE_TEMPO_FA: ['che tempo'],
NON_TROO_INVITATI: ['non trovo invitati', 'non riesco a trovare invitati'],
PAROLACCE: ['stronz', 'fanculo'],
PAROLACCE: ['stronz', 'fanculo', 'fottiti', 'cagare', 'ammazzat', 'muori', 'cretino', 'stupido'],
COME_SI_CHIAMA: ['come si chiama'],
PROSSIMO_ZOOM: ['prossimo zoom', 'fare lo zoom', 'gli zoom', 'conferenz', 'zoom'],
LAVAGNA: ['lavagna', 'Lavagna', 'LAVAGNA'],
@@ -107,11 +106,9 @@ MsgBot = {
FARE_DOMANDA: ['fare una domanda', 'posso farti una domanda'],
DIVENTERO_RICCA: ['diventerò ricc'],
MA_ALLORA: ['ma allora'],
CHI_E_VISTAR: ['chi è vistar'],
CHI_E_PAOLO: ['chi è paolo'],
};
MsgRisp = {
const MsgRisp = {
CHAT_EMPOWER: 'Entra nella Chat EMPOWER !!!\n' + 'https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g ' + emo.PURPLE_HEART + emo.GIFT_HEART + emo.BLUE_HEART
};
@@ -141,8 +138,6 @@ function getemojibynumber(number) {
}
}
const strNave = "Nave";
const Menu = {
LANG_IT: emoji.get('flag-it') + ' Italiano',
@@ -272,28 +267,6 @@ const MenuNoLogin = {
// it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG]] },
// };
const MenuStandard = {
it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA]] },
};
const MenuPerAdmin = {
it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
es: { menu: [[Menu.es.LAVAGNA, Menu.es.LINK_CONDIVIDERE], [Menu.es.ZOOM, Menu.es.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
fr: { menu: [[Menu.fr.LAVAGNA, Menu.fr.LINK_CONDIVIDERE], [Menu.fr.ZOOM, Menu.fr.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
si: { menu: [[Menu.si.LAVAGNA, Menu.si.LINK_CONDIVIDERE], [Menu.si.ZOOM, Menu.si.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
pt: { menu: [[Menu.pt.LAVAGNA, Menu.pt.LINK_CONDIVIDERE], [Menu.pt.ZOOM, Menu.pt.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
enUs: { menu: [[Menu.enUs.LAVAGNA, Menu.enUs.LINK_CONDIVIDERE], [Menu.enUs.ZOOM, Menu.enUs.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
};
const MenuRedirigi = {
it: { menu: [[Menu.it.NUOVOSITO]] },
es: { menu: [[Menu.it.NUOVOSITO]] },
fr: { menu: [[Menu.it.NUOVOSITO]] },
si: { menu: [[Menu.it.NUOVOSITO]] },
pt: { menu: [[Menu.it.NUOVOSITO]] },
enUs: { menu: [[Menu.it.NUOVOSITO]] },
};
const MenuLang = {
it: { menu: [[Menu.LANG_IT, Menu.LANG_EN], [Menu.LANG_ES, Menu.LANG_FR], [Menu.LANG_SI, Menu.LANG_PT, Menu.it.INDIETRO]] },
};
@@ -308,7 +281,7 @@ const MenuYesNo = {
};
const MenuAdmin = {
it: { menu: [[Menu.MSGSTAFF, Menu.MSGATUTTI, Menu.it.INDIETRO], [Menu.MSG_NO_7_REQ, Menu.MSG_NO_9_REQ, Menu.NESSUN_IMBARCO_7REQ], [Menu.MSGPAOLO, Menu.MSG_TO_NAVE, Menu.MSG_SI_INVITATI_NO_7REQ_INVITATI]] },
it: { menu: [[Menu.MSGSTAFF, Menu.MSGATUTTI, Menu.it.INDIETRO], [Menu.MSGPAOLO]] },
};
const MenuSend = {
@@ -338,6 +311,10 @@ const Status = {
WAITFOR_RISPOSTA: 110,
};
const Cmd = {
VALIDATE_REGISTRATION: 1,
};
const Destin = {
STAFF: 1,
TUTTI: 2,
@@ -348,6 +325,8 @@ const Destin = {
MSG_TO_NAVE: 7,
NESSUN_IMBARCO_7REQ: 8,
PAOLO: 9,
DOMANDA: 10,
RISPOSTA: 11,
};
const StatusMSGALL = {
@@ -367,10 +346,15 @@ const txt = {
MSG_VERIFY_CODE: '1. Ora ritorna sul sito:\n%s\n2. Copia il codice di Autenticazione (di 6 cifre) che troverai scritto in alto\n3. Scrivilo (o incollalo) qui sotto come messaggio:',
MSG_ERR_VERIFY_CODE: 'Codice di Verifica Errato!' + emo.EXCLAMATION_MARK + '\nControlla sul sito %s e riscrivi il nuovo codice di 6 cifre.',
MSG_VERIFY_OK: emoji.get('grinning') + ' Benvenuto %s! Ti sei correttamente verificato con il BOT. ' + '\nSono il tuo assistente virtuale.\n' +
'Continua la guida passo passo tornando sul sito.\n\nQuesta chat ti servirà per vedere velocemente la tua Lavagna e per ricevere Importanti avvisi su come procedere il tuo cammino.\n\nUsa il menu qui sotto per controllare la tua situazione.' + emo.GREEN_HEART,
'Questo Bot ti servirà per vedere velocemente la tua Lavagna e per ricevere Importanti avvisi su come procedere il tuo cammino.\n\nUsa il menu qui sotto per controllare la tua situazione.' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Errore durante il salvataggio sul Server. Riprovare piú tardi',
MSG_EXIT_TELEGRAM: 'L\'account è stato ora scollegato da questo Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s (n. %s)',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s',
MSG_APORTADOR_ASK_CONFIRM: emo.QUESTION_MARK + ' Si vuole confermare di Conoscere "%s ?',
MSG_APORTADOR_CONFIRMED: emo.SUN + ' %s è stato confermato correttamente!',
MSG_APORTADOR_DEST_CONFIRMED: emo.SUN + ' Sei stato Verificato correttamente da %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + ' Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s. Contattalo se lo conosci, oppure trova un altro invitante !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + ' %s Non è stato Verificato !',
MSG_ISCRITTO_CONACREIS: emo.FIRE + ' Si è appena Iscritto al Conacreis "%s"',
MSG_MSG_SENT: emoji.get('envelope') + ' Messaggi Inviati !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messaggi da Inviare',
@@ -480,6 +464,9 @@ const txt_pt = {
const TelegramBot = require('node-telegram-bot-api');
const ADMIN_IDTELEGRAM_TEST = 5022837609; //Perseo
module.exports = {
ADMIN_IDTELEGRAM_SERVER: '12429864', //Paolo
@@ -539,17 +526,42 @@ module.exports = {
NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp, userdest) + aportador;
aportador = NameFrom;
}
text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, index);
text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`);
}
let addtext = "";
let rismsg = null;
if (!!mylocalsconf.user.aportador_solidario) {
addtext = '[Inviato a ' + NameFrom + ']:' + '\n';
await this.sendMsgTelegram(mylocalsconf.idapp, userdest, text);
rismsg = await this.sendMsgTelegram(mylocalsconf.idapp, userdest, text);
}
await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp, addtext + text);
if (phase === this.phase.REGISTRATION) {
// Invia richiesta allo Sponsor
const domanda = printf(getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgyes = printf(getstr(langdest, 'MSG_APORTADOR_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgNo = printf(getstr(langdest, 'MSG_APORTADOR_NOT_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgDestyes = printf(getstr(langdest, 'MSG_APORTADOR_DEST_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgDestNo = printf(getstr(langdest, 'MSG_APORTADOR_DEST_NOT_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const cl = getclTelegByidapp(mylocalsconf.idapp);
if (cl) {
await cl.createIfNotExist(rismsg);
await cl.menumsgDomanda(rismsg, Cmd.VALIDATE_REGISTRATION, Destin.DOMANDA, userdest, '', domanda, msgyes, msgNo, msgDestyes, msgDestNo, mylocalsconf.user.username);
}
}
},
@@ -925,6 +937,15 @@ module.exports = {
return await cl.sendMsg(idtelegram, text, null, MyForm, message_id, chat_id, ripr_menuPrec)
}
},
reloadMenuBot: async function (idapp) {
const cl = getclTelegByidapp(idapp);
if (cl) {
return await cl.updateMenuBot();
}
}
};
@@ -1050,6 +1071,12 @@ class Telegram {
this.bot = bot;
this.token = bot.token;
this.arrUsers = [];
this.pagenow = 1;
this.pageChange = false;
this.menuDb = null;
this.menuSaved = {};
this.lastid = 0
//++
}
async createIfNotExist(msg) {
@@ -1104,10 +1131,13 @@ class Telegram {
let noanswer = false;
let lang = 'it';
const rec = this.getRecInMem(msg);
let myname = '';
if (rec.user) {
myname = rec.user.name + ' ' + rec.user.surname + ' (n.' + rec.user.index + ')';
lang = rec.user.lang;
}
if (rec.statusmsg === Status.WAITFOR_RISPOSTA) {
@@ -1152,8 +1182,13 @@ class Telegram {
rec.msgcodeprec = '';
const menusite = await this.isMenuSite(this.idapp, testo, lang, id);
if (risp === '') {
if (MsgBot.CIAO.includes(testo.replace('!', ''))) {
if (menusite) {
risp = this.getValueMenu(this.idapp, testo, lang);
noanswer = true;
} else if (MsgBot.CIAO.includes(testo.replace('!', ''))) {
risp = 'Ciao ';
if (rec)
if (rec.user)
@@ -1206,7 +1241,7 @@ class Telegram {
} else if (MsgBot.TI_AMO.find((rec) => testo.indexOf(rec) > -1)) {
risp = ' Anche IO! ' + emo.KISS + emo.SMILE_STAR + emo.GIFT_HEART + emo.BLUE_HEART + emo.GREEN_HEART;
} else if (MsgBot.PRINCIPE_AZZURRO.find((rec) => testo.indexOf(rec) > -1)) {
risp = 'Chissà... Forse si!\nAnche se meglio averne un\'altro di scorta, nel caso il Principe non sia disponibile.';
risp = 'Chissà... Forse si!\nAnche se meglio averne un altro di scorta, nel caso il Principe non sia disponibile.';
} else if (MsgBot.AIUTO.find((rec) => testo.indexOf(rec) > -1)) {
risp = 'Clicca qui per entrare nella Chat HELP di Supporto\n' + tools.HELP_CHAT + '\n\nI miei colleghi umani ti aiuteranno a risolvere !';
} else if (MsgBot.SPOSAMI.find((rec) => testo.indexOf(rec) > -1)) {
@@ -1277,13 +1312,13 @@ class Telegram {
if (risp !== '') {
rec.numdomande++;
await tools.snooze(600);
this._inviaMsg(id, '[BOT' + emo.ROBOT_FACE + ' scrive]:\n' + risp, keyboard);
if (!noanswer) {
await tools.snooze(600);
risp = '[BOT' + emo.ROBOT_FACE + ' scrive]:\n' + risp
}
this._inviaMsg(id, risp, keyboard);
let strlog = 'USER [' + myname + ']: ' + testo + '\n';
if (!noanswer) {
strlog += 'BOT: ' + risp + '\n';
}
tools.writelog(strlog);
}
@@ -1367,8 +1402,6 @@ class Telegram {
if (this.isSelMenu(msg, msg.text, 'LAVAGNA') || MsgBot.LAVAGNA.find((rec) => msg.text.indexOf(rec) > -1)) {
await this.menuLavagna(msg);
} else if (msg.text === Menu.MIANAVE || (cmd2 === strNave) || MsgBot.MIANAVE.find((rec) => msg.text.indexOf(rec) > -1)) {
await this.menuNave(msg)
} else if (this.isSelMenu(msg, msg.text, 'ACCEDI')) {
await this.menuAccedi(msg)
} else if (this.isSelMenu(msg, msg.text, 'LINK_CONDIVIDERE')) {
@@ -1728,6 +1761,12 @@ class Telegram {
else if (destin === Destin.A_UTENTE) {
const rec = this.getRecInMem(msg);
return rec.msgall_username_specifico
} else if (destin === Destin.DOMANDA) {
const rec = this.getRecInMem(msg);
return rec.msg_username_domanda
} else if (destin === Destin.RISPOSTA) {
const rec = this.getRecInMem(msg);
return rec.msg_username_risposta
}
}
@@ -1784,6 +1823,23 @@ class Telegram {
}
}
async menumsgDomanda(msg, cmd, dest, username, extraparam, domanda, msgYes, msgNo, destYes, destNo, username_risposta) {
const rec = this.getRecInMem(msg);
if (rec.user) {
rec.msgall_status = StatusMSGALL.CONFIRM;
rec.msgall_achi = dest;
rec.extraparam = extraparam;
rec.cmd_to_set = cmd;
rec.msg_username_domanda = username;
rec.msg_username_risposta = username_risposta;
rec.msgtosent = msgYes;
rec.msgNo = msgNo;
rec.msg_toDest_yes = destYes;
rec.msg_toDest_no = destNo;
return this.ChiediSINO(msg, domanda);
}
}
getlink(qualelink) {
if (qualelink === 'website') {
@@ -1851,17 +1907,13 @@ class Telegram {
}
getRecInMemById(id) {
return this.arrUsers.find((rec) => rec.id === id);
return this.arrUsers.find((rec) => rec.id.toString() === id.toString());
}
getRecByUsername(username) {
return this.arrUsers.find((rec) => rec.username_bo === username);
}
getRecInMemById(id) {
return this.arrUsers.find((rec) => rec.id === id);
}
deleteRecInMem(msg) {
this.arrUsers = this.arrUsers.filter((rec) => rec.id !== this.getchatid(msg));
}
@@ -2000,14 +2052,31 @@ class Telegram {
}
async setCmdToUsername(rec, username, cmd_to_set, valuebool) {
if (cmd_to_set === Cmd.VALIDATE_REGISTRATION) {
return await User.setVerifiedByAportador(rec.user.idapp, username, valuebool);
}
}
async sendMsgToAll(rec, msg, texttosend, destin) {
try {
if ((texttosend.length < 3) && (destin !== Destin.A_UTENTE)) {
// NOTHING
} else {
let usersall = null;
if (destin === Destin.A_UTENTE)
usersall = await User.getUsersTelegALL(rec.user.idapp, rec.msgall_username_specifico);
let myusername = '';
if (destin === Destin.A_UTENTE) {
myusername = rec.msgall_username_specifico;
} else if (destin === Destin.DOMANDA) {
myusername = rec.msg_username_domanda;
} else if (destin === Destin.RISPOSTA) {
myusername = rec.msg_username_risposta;
}
if (myusername)
usersall = await User.getUsersTelegALL(rec.user.idapp, myusername);
else
usersall = await User.getUsersTelegALL(rec.user.idapp);
@@ -2058,6 +2127,10 @@ class Telegram {
invia = utente.username === 'paoloar77';
} else if (destin === Destin.A_UTENTE) {
invia = utente.username === rec.msgall_username_specifico;
} else if (destin === Destin.DOMANDA) {
invia = utente.username === rec.msg_username_domanda;
} else if (destin === Destin.RISPOSTA) {
invia = utente.username === rec.msg_username_risposta;
} else if (destin === Destin.NO_7_REQ) {
invia = !await User.isUserQualified7(this.idapp, utente.username);
} else if (destin === Destin.NO_9_REQ) {
@@ -2150,7 +2223,9 @@ class Telegram {
await this.sendMsg(msg.chat.id, msgris);
msgris = preparatesto;
} else {
msgris = nummsgsent + ' ' + getstr(this.getlang(msg), 'MSG_MSG_SENT');
if (destin !== Destin.DOMANDA && destin !== Destin.RISPOSTA) {
msgris = nummsgsent + ' ' + getstr(this.getlang(msg), 'MSG_MSG_SENT');
}
}
if (destin === Destin.A_UTENTE) {
@@ -2161,8 +2236,10 @@ class Telegram {
await this.sendMsg(msg.chat.id, 'Utente ' + rec.msgall_username_specifico + ' non presente sul BOT !');
}
} else {
tools.writeEventsLog(msgris);
await this.sendMsg(msg.chat.id, msgris);
if (msgris) {
tools.writeEventsLog(msgris);
await this.sendMsg(msg.chat.id, msgris);
}
}
}
rec.start_write_msgall = false;
@@ -2219,7 +2296,24 @@ class Telegram {
// Take msg to send to ALL
await this.sendMsgToAll(rec, msg, rec.msgtosent, rec.msgall_achi)
} else {
this.sendMsg(msg.chat.id, getstr(this.getlang(msg), 'MSG_OPERAZ_ANNULLATA'));
let msgout = rec.msgNo;
if (!msgout)
msgout = getstr(this.getlang(msg), 'MSG_OPERAZ_ANNULLATA');
this.sendMsg(msg.chat.id, msgout);
}
if (rec.msgall_achi === Destin.DOMANDA) {
if (rec.msg_toDest_yes) {
rec.msgall_achi = Destin.RISPOSTA;
if (this.isSelMenu(msg, msg.text, 'SI')) {
const ris = await this.setCmdToUsername(rec, rec.msg_username_risposta, rec.cmd_to_set, true);
if (ris) {
await this.sendMsgToAll(rec, msg, rec.msg_toDest_yes, rec.msgall_achi);
}
} else if (this.isSelMenu(msg, msg.text, 'NO')) {
const ris = await this.setCmdToUsername(rec, rec.msg_username_risposta, rec.cmd_to_set, false);
await this.sendMsgToAll(rec, msg, rec.msg_toDest_no, rec.msgall_achi);
}
}
}
rec.msgall_status = StatusMSGALL.NONE;
normale = false;
@@ -2230,17 +2324,25 @@ class Telegram {
const cmd = rec.msgtosent.toLowerCase();
let achi = this.getDestinStr(msg, rec.msgall_achi, rec);
let domanda = '';
if (cmd === CONTA_SOLO)
domanda = 'Confermi di vedere a quante persone arriverebbe questo messaggio, a ' + achi + ' ?\n' + rec.msgtosent;
else if (cmd === RICEVI_EMAIL)
domanda = 'Confermi di vedere la lista delle email di ' + achi + '?';
else if (cmd === NOME_COGNOME)
domanda = 'Confermi di vedere la lista di persone ' + achi + '?';
else {
if (rec.msgall_achi === Destin.A_UTENTE)
domanda = 'Confermi d\'Iniziare una Chat messaggi con ' + achi + ' ?\n' + rec.msgtosent;
else
domanda = 'Confermi d\'Inviare questo messaggio a ' + achi + ' ?\n' + rec.msgtosent;
if (rec.msgall_domanda) {
domanda = rec.msgall_domanda;
} else {
if (cmd === CONTA_SOLO)
domanda = 'Confermi di vedere a quante persone arriverebbe questo messaggio, a ' +
achi + ' ?\n' + rec.msgtosent;
else if (cmd === RICEVI_EMAIL)
domanda = 'Confermi di vedere la lista delle email di ' + achi +
'?';
else if (cmd === NOME_COGNOME)
domanda = 'Confermi di vedere la lista di persone ' + achi + '?';
else {
if (rec.msgall_achi === Destin.A_UTENTE)
domanda = 'Confermi d\'Iniziare una Chat messaggi con ' + achi +
' ?\n' + rec.msgtosent;
else
domanda = 'Confermi d\'Inviare questo messaggio a ' + achi +
' ?\n' + rec.msgtosent;
}
}
this.ChiediSINO(msg, domanda);
@@ -2326,6 +2428,12 @@ class Telegram {
return !!rec
}
updateMenuBot() {
for (let rec of this.arrUsers) {
rec.datemenu_updated = null;
}
}
addUser(msg) {
const lang = this.getlang(msg);
const code = 100000 + Math.round(Math.random() * 899999);
@@ -2342,12 +2450,20 @@ class Telegram {
retry: 0,
username_bo: '',
msgall_status: StatusMSGALL.NONE,
msgall_domanda: '',
msgall_achi: 0,
msgall_username_specifico: '',
cmd_to_set: 0,
msg_username_domanda: '',
msg_username_risposta: '',
extraparam: '',
msgtosent: '',
msgNo: '',
msg_toDest_yes: '',
msg_toDest_no: '',
msg_wait: false,
lastmenu: null,
datemenu_updated: null,
};
this.arrUsers.push(rec);
@@ -2362,21 +2478,129 @@ class Telegram {
}
async getKeyboard(id, menu, lang) {
let keyb = MenuStandard;
async loadMenuFromDb(idapp, id) {
try {
let load = false;
const check = true;
if (this.idapp === tools.AYNI) {
keyb = MenuRedirigi
}
// Check if you are Admin
const ismanager = await User.isAdminByIdTeleg(this.idapp, id);
if (ismanager && menu !== MenuChat)
keyb = MenuPerAdmin;
if (this.idapp === tools.AYNI) {
keyb = MenuRedirigi
const recuser = this.getRecInMemById(id);
if (recuser) {
if (!recuser.datemenu_updated)
load = true
}
if (check) {
if (!(this.menuSaved[idapp]))
load = true;
}
if (load || !this.menuDb || this.pageChange) {
// Check if you are Admin
const user = await User.UserByIdTelegram(idapp, id);
let isAdmin = user ? user.profile.manage_telegram && user.username === 'paoloar77' : false
const isManager = user ? user.profile.manage_telegram : false
const isVerified = user ? user.profile.teleg_id > 0 && user.verified_email && user.verified_by_aportador : false;
this.menuDb = await MyBot.findAllIdApp(idapp);
let arrlang = {}
let riga = 0;
let arrtemp = [];
let lang = '';
for (const rec of this.menuDb) {
if (rec.active && rec.main && rec.page === this.pagenow
&& ((isAdmin && tools.isBitActive(rec.visibility, shared_consts.VISIB_ONLY_ADMIN))
|| (isManager && tools.isBitActive(rec.visibility, shared_consts.VISIB_ONLY_MANAGER))
|| (isVerified && tools.isBitActive(rec.visibility, shared_consts.VISIB_ONLYIF_LOGGED))
|| (rec.visibility === 0))
) {
lang = rec.lang;
if (!arrlang[rec.lang])
arrlang[rec.lang] = {menu: []}
if (riga !== rec.riga) {
if (arrtemp.length > 0)
arrlang[rec.lang].menu.push(arrtemp);
riga = rec.riga;
arrtemp = []
}
arrtemp.push(rec.label);
}
}
if (arrtemp.length > 0)
arrlang[lang].menu.push(arrtemp);
if (recuser)
recuser.datemenu_updated = new Date();
this.pageChange = false;
this.menuSaved[idapp] = arrlang;
}
return this.menuSaved[idapp];
} catch (e) {
console.log('Err loadMenuFromDb: ' + e);
}
}
async isMenuSite(idapp, testo, lang, id) {
try {
// Check if Reload
const recuser = await this.getRecInMemById(id);
if (recuser) {
if (!recuser.datemenu_updated) {
await this.loadMenuFromDb(this.idapp, id)
}
}
for (const rec of this.menuDb) {
if (rec.idapp === idapp && rec.lang === lang && rec.label.toLowerCase() === testo) {
return true;
}
}
} catch (e) {
return false;
}
return false;
}
getValueMenu(idapp, testo, lang) {
try {
for (const rec of this.menuDb) {
if (rec.idapp === idapp && rec.lang === lang && rec.label.toLowerCase() === testo) {
if (rec.type === shared_consts.BOTTYPE_TEXT) {
return rec.value;
}
if (rec.type === shared_consts.BOTTYPE_PAGE) {
if (tools.isNumber(rec.value)) {
this.pagenow = parseInt(rec.value);
this.pageChange = true;
}
return '';
}
}
}
return '';
} catch (e) {
return '';
}
return '';
}
async getKeyboard(id, menu, lang) {
let keyb = null;
this.lastid = id
if (menu) {
keyb = menu
} else {
keyb = await this.loadMenuFromDb(this.idapp, id);
}
let mykeyb = undefined;
@@ -2405,7 +2629,8 @@ class Telegram {
return 0;
if (process.env.LOCALE === "1") {
id = '12429864';
if (id !== ADMIN_IDTELEGRAM_TEST)
id = '12429864';
}
if (!!msg_id) {
@@ -2461,7 +2686,7 @@ class Telegram {
}
};
}
const res = await this.bot.sendMessage(id, text, form)
return this.bot.sendMessage(id, text, form)
.catch((e) => {
let blocked = false;
if ((e.message.indexOf('Forbidden') > 0) || (e.message.indexOf('chat not found') > 0)) {
@@ -2476,8 +2701,6 @@ class Telegram {
}
return 0;
});
return res;
} catch (e) {
console.error(e);
return 0
@@ -2520,7 +2743,8 @@ class Telegram {
try {
mymenuout = mymenu[lang].menu;
} catch (e) {
mymenuout = mymenu['it'].menu;
if (!!mymenu['it'])
mymenuout = mymenu['it'].menu;
}
return mymenuout;