4033 lines
136 KiB
JavaScript
Executable File
4033 lines
136 KiB
JavaScript
Executable File
const tools = require('../tools/general');
|
||
|
||
const appTelegram = [tools.FREEPLANET, tools.RISO];
|
||
|
||
const appTelegram_TEST = [tools.FREEPLANET, tools.ARCADEI, tools.RISO];
|
||
const appTelegram_DEVELOP = [tools.RISO, tools.FREEPLANET];
|
||
|
||
const appTelegramFinti = ['2', tools.CNM, tools.ARCADEI];
|
||
const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET, tools.FREEPLANET];
|
||
|
||
const printf = require('util').format;
|
||
|
||
const {User} = require('../models/user');
|
||
const {MyGroup} = require('../models/mygroup');
|
||
const {Circuit} = require('../models/circuit');
|
||
const {CalZoom} = require('../models/calzoom');
|
||
const {MyBot} = require('../models/bot');
|
||
const shared_consts = require('../tools/shared_nodejs');
|
||
|
||
const sharp = require('sharp');
|
||
|
||
const server_constants = require('../tools/server_constants');
|
||
|
||
// const {ListaIngresso} = require('../models/listaingresso');
|
||
const {MsgTemplate} = require('../models/msg_template');
|
||
|
||
const globalTables = require('../tools/globalTables');
|
||
|
||
const emoji = require('node-emoji');
|
||
|
||
const i18n = require('i18n');
|
||
|
||
let url = process.env.URL || 'https://<PUBLIC-URL>';
|
||
|
||
const Benvenuto = emoji.get('heartbeat') + emoji.get('heartbeat') +
|
||
emoji.get('heartbeat') + ' Benvenuto!';
|
||
|
||
const emo = {
|
||
JOY: emoji.get('joy'),
|
||
JOY2: emoji.get('rolling_on_the_floor_laughing'),
|
||
DANCER: emoji.get('dancer'),
|
||
STARS: emoji.get('stars'),
|
||
FIRE: emoji.get('fire'),
|
||
SUN: emoji.get('sunrise'),
|
||
TV: emoji.get('tv'),
|
||
NEWSPAPER: emoji.get('newspaper'),
|
||
KISS: emoji.get('kiss'),
|
||
PENCIL: emoji.get('pencil2'),
|
||
DREAM: emoji.get('beach_with_umbrella'),
|
||
EYES: emoji.get('eyes'),
|
||
DIZZY: emoji.get('dizzy'),
|
||
ONE_HUNDRED: emoji.get('100'),
|
||
SMILE_STAR: emoji.get('star-struck'),
|
||
LEFT_FACING_FIST: emoji.get('left-facing_fist'),
|
||
CHECK_VERDE: emoji.get('white_check_mark'),
|
||
CHECK_GRIGIA: emoji.get('ballot_box_with_check'),
|
||
CROSS_ROSSA: emoji.get('x'),
|
||
ENVELOPE: emoji.get('envelope'),
|
||
EXCLAMATION_MARK: emoji.get('exclamation'),
|
||
QUESTION_MARK: emoji.get('question'),
|
||
ARROW_RIGHT: emoji.get('arrow_right'),
|
||
INVITATI: emoji.get('man_and_woman_holding_hands'),
|
||
HEART: emoji.get('heart'),
|
||
BLUE_HEART: emoji.get('blue_heart'),
|
||
GREEN_HEART: emoji.get('green_heart'),
|
||
YELLOW_HEART: emoji.get('yellow_heart'),
|
||
PURPLE_HEART: emoji.get('purple_heart'),
|
||
GIFT_HEART: emoji.get('gift_heart'),
|
||
GIFT: emoji.get('gift'),
|
||
ROBOT_FACE: emoji.get('robot_face'),
|
||
ADMIN: emoji.get('information_desk_person'),
|
||
MALE: emoji.get('man-tipping-hand'),
|
||
FEMALE: emoji.get('female-guard'),
|
||
INNOCENT: emoji.get('innocent'),
|
||
CREDIT_CARD: emoji.get('credit_card'),
|
||
PERSON: emoji.get('man-tipping-hand'),
|
||
};
|
||
|
||
MsgBot = {
|
||
OK: ['si', 'ok'],
|
||
CUORE: ['❤️', '💚️', '💜'],
|
||
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'],
|
||
COME_STAI: [
|
||
'tutto bene',
|
||
'come stai',
|
||
'come stai',
|
||
'come va',
|
||
'come butta',
|
||
'come va oggi'],
|
||
COME_TI_CHIAMI: [
|
||
'chi sei',
|
||
'come ti chiami',
|
||
'qual\'è il tuo nome',
|
||
'qual\'e\' il tuo nome',
|
||
'che lavoro fai',
|
||
'di cosa ti occupi'],
|
||
COSA_FAI: ['cosa fai', 'cosa combini', 'che fai'],
|
||
QUANTI_ANNI_HAI: ['quanti anni hai', 'che età hai'],
|
||
SEI_LIBERO_STASERA: [
|
||
'sei libera stasera',
|
||
'sei libero stasera',
|
||
'usciamo insieme',
|
||
'fare l\'amore con me',
|
||
'fare sesso',
|
||
'vuoi scopare',
|
||
'vuoi trombare'],
|
||
MI_TROVI_UN_MOROSO: [
|
||
'trovi un moroso',
|
||
'una morosa',
|
||
'fidanzato',
|
||
'fidanzata',
|
||
'trovi un marito',
|
||
'trovi una moglie'],
|
||
CHAT_EMPOWER: ['chat empower'],
|
||
MASCHIO_FEMMINA: [
|
||
'sei uomo o donna',
|
||
'sei maschio o femmina',
|
||
'sei ragazzo o ragazza',
|
||
'che sesso hai'],
|
||
DAMMI_UN_BACIO: ['dammi un bacio', 'baciami'],
|
||
HAHA: ['hahaha', 'ahah', '😂'],
|
||
MI_AMI: ['mi ami'],
|
||
TI_AMO: ['ti amo', 'ti adoro', 'ti lovvo'],
|
||
PREGO: ['prego', 'Prego ! 💋💋💋'],
|
||
GRAZIE: [
|
||
'grazie ainy',
|
||
'grazie',
|
||
'grazie mille',
|
||
'graziee',
|
||
'grazie ❤',
|
||
'grazie️❤',
|
||
'grazie 😘',
|
||
'grazie😘'],
|
||
PRINCIPE_AZZURRO: ['principe azzurro'],
|
||
COSE_COVID: [
|
||
'cos\'è il covid',
|
||
'cosa è il covid',
|
||
],
|
||
COVID: [
|
||
'covid',
|
||
],
|
||
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'],
|
||
TROVAMI_UN_UOMO_DONNA: [
|
||
'trovami un uomo',
|
||
'trovami una donna',
|
||
'esiste una donna per me',
|
||
'esiste un uomo per me'],
|
||
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'],
|
||
SEI_LIBERO_DI_RESPIRARE: ['sei libero di respirare'],
|
||
SEI_LIBERO: ['sei liber', 'sei sposat', 'sei fidanzat', 'sei single'],
|
||
AIUTO: [
|
||
'help',
|
||
'aiuto',
|
||
'ho bisogno di',
|
||
'ho problemi',
|
||
'non riesco',
|
||
'mi puoi aiutare',
|
||
'mi aiuti',
|
||
'aiutami',
|
||
'posso chiederti',
|
||
'puoi aiutarmi'],
|
||
UOMO: ['uomo', 'maschio'],
|
||
SORPRESA: [
|
||
'noo',
|
||
'davvero',
|
||
'sii',
|
||
'facciamo festa',
|
||
'è qui la festa',
|
||
'festa'],
|
||
UGUALE: ['👍🏻', '✨', '❤🏻', '⭐', '❤', '❤❤', '🤩'],
|
||
SI: ['si', 'yes'],
|
||
NO: ['no', 'noo'],
|
||
DONNA: ['donna', 'femmina'],
|
||
FARE_DOMANDA: ['fare una domanda', 'posso farti una domanda'],
|
||
DIVENTERO_RICCA: ['diventerò ricc'],
|
||
DOVE_VUOI_VIVERE: ['dove vuoi vivere'],
|
||
MA_ALLORA: ['ma allora'],
|
||
};
|
||
|
||
const MsgRisp = {
|
||
CHAT_EMPOWER: 'Entra nella Chat EMPOWER !!!\n' +
|
||
'https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g ' + emo.PURPLE_HEART +
|
||
emo.GIFT_HEART + emo.BLUE_HEART,
|
||
};
|
||
|
||
function getemojibynumber(number) {
|
||
if (number === 0) {
|
||
return emoji.get('zero');
|
||
} else if (number === 1) {
|
||
return emoji.get('one');
|
||
} else if (number === 2) {
|
||
return emoji.get('two');
|
||
} else if (number === 3) {
|
||
return emoji.get('three');
|
||
} else if (number === 4) {
|
||
return emoji.get('four');
|
||
} else if (number === 5) {
|
||
return emoji.get('five');
|
||
} else if (number === 6) {
|
||
return emoji.get('six');
|
||
} else if (number === 7) {
|
||
return emoji.get('seven');
|
||
} else if (number === 8) {
|
||
return emoji.get('height');
|
||
} else if (number === 9) {
|
||
return emoji.get('nine');
|
||
} else {
|
||
return number;
|
||
}
|
||
}
|
||
|
||
const Menu = {
|
||
LANG_IT: emoji.get('flag-it') + ' Italiano',
|
||
LANG_EN: emoji.get('flag-gb') + ' English',
|
||
LANG_ES: emoji.get('flag-es') + ' Español',
|
||
LANG_FR: emoji.get('flag-fr') + ' Français',
|
||
LANG_SI: emoji.get('flag-si') + ' Slovenski',
|
||
LANG_PT: emoji.get('flag-pt') + ' Português',
|
||
LANG: emoji.get('globe_with_meridians') + ' Language',
|
||
CHAT_PERSONALE: emoji.get('female-office-worker') + emoji.get('computer'),
|
||
EXIT_TELEGRAM: 'exittotelegram',
|
||
MSG_TO_USER: 'sendmsgto',
|
||
ADMIN: emoji.get('information_desk_person') + ' Admin',
|
||
AIUTO: '🔮 Help',
|
||
ALTRO: emoji.get('newspaper') + ' Altro',
|
||
SETPICPROFILE: '🖼 SetPicProfile',
|
||
RESETPWD: '🔑 SetResetPwd',
|
||
// MSG_TO_NAVE: emoji.get('incoming_envelope') + 'Msg_to_Navi',
|
||
// MSG_NO_7_REQ: emoji.get('incoming_envelope') + 'No 7 Req.',
|
||
// MSG_NO_9_REQ: emoji.get('incoming_envelope') + 'No 9 Req',
|
||
// NESSUN_IMBARCO_7REQ: emoji.get('incoming_envelope') + 'No Imbarco (7 Req)',
|
||
MSG_SI_INVITATI_NO_7REQ_INVITATI: emoji.get('incoming_envelope') +
|
||
'Inv e NO 7 Req',
|
||
MSGSTAFF: emoji.get('incoming_envelope') + ' Invia a STAFF',
|
||
MSGPAOLO: emoji.get('incoming_envelope') + ' Invia a PAOLO',
|
||
RESTART_SRV: emoji.get('incoming_envelope') + 'Restart-NodeJs',
|
||
REBOOT_SRV: emoji.get('incoming_envelope') + 'Reboot-VPS!',
|
||
EXECSH: emoji.get('incoming_envelope') + 'ExecSH',
|
||
LOG_SRV: '🖥Logserver.sh',
|
||
MSGATUTTI: emoji.get('incoming_envelope') + ' Invia a TUTTI',
|
||
it: {
|
||
ACCEDI: emo.PERSON + ' Accedi',
|
||
LAVAGNA: emoji.get('om_symbol') + ' Lavagna',
|
||
LINK_CONDIVIDERE: emoji.get('link') + ' Link da condividere',
|
||
ZOOM: emoji.get('information_source') + ' Zoom (Conferenze)',
|
||
INFO: emoji.get('information_source') + ' Informazioni',
|
||
ASSISTENZA: emoji.get('open_hands') + ' Le Chat',
|
||
INDIETRO: emoji.get('back') + ' Indietro',
|
||
SI: emoji.get('thumbsup') + ' SI',
|
||
NO: emoji.get('thumbsdown') + ' NO',
|
||
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Esci dalla Conversazione',
|
||
NUOVOSITO: '',
|
||
},
|
||
es: {
|
||
ACCEDI: emo.PERSON + ' Entra',
|
||
LAVAGNA: emoji.get('om_symbol') + ' Tablero',
|
||
LINK_CONDIVIDERE: emoji.get('link') + ' Enlaces para compartir',
|
||
ZOOM: emoji.get('information_source') + ' Zoom (Conferencias)',
|
||
INFO: emoji.get('information_source') + ' Información',
|
||
ASSISTENZA: emoji.get('open_hands') + ' Chats',
|
||
INDIETRO: emoji.get('back') + ' Volver',
|
||
SI: emoji.get('thumbsup') + ' SÍ',
|
||
NO: emoji.get('thumbsdown') + ' NO',
|
||
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Salir de la conversación',
|
||
},
|
||
fr: {
|
||
ACCEDI: emo.PERSON + ' Entrez',
|
||
LAVAGNA: emoji.get('om_symbol') + ' Tableau de bord',
|
||
LINK_CONDIVIDERE: emoji.get('link') + ' Liens à partager',
|
||
ZOOM: emoji.get('information_source') + ' Zoom (Conférences)',
|
||
INFO: emoji.get('information_source') + ' Informations',
|
||
ASSISTENZA: emoji.get('open_hands') + ' Les chats',
|
||
INDIETRO: emoji.get('back') + ' Retour',
|
||
SI: emoji.get('thumbsup') + ' OUI',
|
||
NO: emoji.get('thumbsdown') + ' NON',
|
||
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Quitter la conversation',
|
||
},
|
||
si: {
|
||
ACCEDI: emo.PERSON + ' Prijava',
|
||
LAVAGNA: emoji.get('om_symbol') + ' Tabla',
|
||
LINK_CONDIVIDERE: emoji.get('link') + ' Link za vpis oseb',
|
||
ZOOM: emoji.get('information_source') + ' Zoom (Konference)',
|
||
INFO: emoji.get('information_source') + ' Informacije',
|
||
ASSISTENZA: emoji.get('open_hands') + ' jev klepet',
|
||
INDIETRO: emoji.get('back') + ' Nazaj',
|
||
SI: emoji.get('thumbsup') + ' DA',
|
||
NO: emoji.get('thumbsdown') + ' NE',
|
||
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Zaprite pogovor',
|
||
},
|
||
pt: {
|
||
ACCEDI: emo.PERSON + ' Entre',
|
||
LAVAGNA: emoji.get('om_symbol') + ' Tablero',
|
||
LINK_CONDIVIDERE: emoji.get('link') + ' Links para compartilhar',
|
||
ZOOM: emoji.get('information_source') + ' Zoom (Conferências)',
|
||
INFO: emoji.get('information_source') + ' Informações',
|
||
ASSISTENZA: emoji.get('open_hands') + ' Chats',
|
||
INDIETRO: emoji.get('back') + ' Voltar',
|
||
SI: emoji.get('thumbsup') + ' SIM',
|
||
NO: emoji.get('thumbsdown') + ' NÃO',
|
||
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Sair da Conversa',
|
||
},
|
||
enUs: {
|
||
ACCEDI: emo.PERSON + ' Enter',
|
||
LAVAGNA: emoji.get('om_symbol') + ' DashBoard',
|
||
LINK_CONDIVIDERE: emoji.get('link') + ' Link to Share',
|
||
ZOOM: emoji.get('information_source') + ' Zoom (Conference)',
|
||
INFO: emoji.get('information_source') + ' Info',
|
||
ASSISTENZA: emoji.get('open_hands') + ' Chats',
|
||
INDIETRO: emoji.get('back') + ' Back',
|
||
SI: emoji.get('thumbsup') + ' YES',
|
||
NO: emoji.get('thumbsdown') + ' NO',
|
||
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Exit to the Conversation',
|
||
},
|
||
|
||
};
|
||
|
||
const CONTA_SOLO = 'contasolo';
|
||
const RICEVI_EMAIL = 'riceviemail';
|
||
const NOME_COGNOME = 'nomecognome';
|
||
const CHEDI_SE_IMBARCARTI = 'chiedi_se_imbarcarti';
|
||
|
||
const InlineCmd = {
|
||
VOGLIO_IMBARCARMI: 'w_imb',
|
||
NON_VOGLIO_IMBARCARMI: 'nw_imb',
|
||
};
|
||
|
||
const InlineZoomConferma = {
|
||
CONFERMA_ZOOM_PRESENZA: 'conf_pres',
|
||
NON_CONFERMA_ZOOM_PRESENZA: 'nonconf_pres',
|
||
};
|
||
|
||
const InlineConferma = {
|
||
RISPOSTA_SI: 'r_s',
|
||
RISPOSTA_NO: 'r_n',
|
||
};
|
||
|
||
const SendMsgCmd = [
|
||
CONTA_SOLO,
|
||
RICEVI_EMAIL,
|
||
NOME_COGNOME,
|
||
CHEDI_SE_IMBARCARTI];
|
||
|
||
// const MenuNoLogin = {
|
||
// it: { menu: [[Menu.LANG], [Menu.it.ASSISTENZA]] },
|
||
// es: { menu: [[Menu.LANG], [Menu.es.ASSISTENZA]] },
|
||
// fr: { menu: [[Menu.LANG], [Menu.fr.ASSISTENZA]] },
|
||
// si: { menu: [[Menu.LANG], [Menu.si.ASSISTENZA]] },
|
||
// pt: { menu: [[Menu.LANG], [Menu.pt.ASSISTENZA]] },
|
||
// enUs: { menu: [[Menu.LANG], [Menu.enUs.ASSISTENZA]] },
|
||
// };
|
||
|
||
// const MenuStandard = {
|
||
// it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG]] },
|
||
// };
|
||
|
||
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]],
|
||
},
|
||
};
|
||
|
||
const MenuYesNo = {
|
||
it: {menu: [[Menu.it.SI, Menu.it.NO]]},
|
||
es: {menu: [[Menu.es.SI, Menu.es.NO]]},
|
||
fr: {menu: [[Menu.fr.SI, Menu.fr.NO]]},
|
||
si: {menu: [[Menu.si.SI, Menu.si.NO]]},
|
||
pt: {menu: [[Menu.pt.SI, Menu.pt.NO]]},
|
||
enUs: {menu: [[Menu.enUs.SI, Menu.enUs.NO]]},
|
||
};
|
||
|
||
const MenuAdmin = {
|
||
it: {
|
||
menu: [
|
||
[Menu.RESTART_SRV + ' 6711', Menu.LOG_SRV + ' 6711'],
|
||
[Menu.REBOOT_SRV + ' 6711', Menu.it.INDIETRO]],
|
||
},
|
||
};
|
||
|
||
const MenuSend = {
|
||
it: {
|
||
menu: [
|
||
[CONTA_SOLO, RICEVI_EMAIL, NOME_COGNOME],
|
||
[CHEDI_SE_IMBARCARTI, Menu.it.INDIETRO]],
|
||
},
|
||
};
|
||
|
||
const MenuChat = {
|
||
it: {menu: [[Menu.it.ESCI_DA_CHAT, Menu.it.INDIETRO]]},
|
||
es: {menu: [[Menu.es.ESCI_DA_CHAT, Menu.es.INDIETRO]]},
|
||
fr: {menu: [[Menu.fr.ESCI_DA_CHAT, Menu.fr.INDIETRO]]},
|
||
si: {menu: [[Menu.si.ESCI_DA_CHAT, Menu.si.INDIETRO]]},
|
||
pt: {menu: [[Menu.pt.ESCI_DA_CHAT, Menu.pt.INDIETRO]]},
|
||
enUs: {menu: [[Menu.enUs.ESCI_DA_CHAT, Menu.enUs.INDIETRO]]},
|
||
};
|
||
|
||
const Sex = {
|
||
MALE: 1,
|
||
FEMALE: -1,
|
||
};
|
||
|
||
const Status = {
|
||
EXIT: -5,
|
||
NONE: 0,
|
||
VERIFIED: 1,
|
||
WAITFOR_USERNAME_TELEGRAM: 101,
|
||
WAITFOR_USERNAME_INVITANTE: 104,
|
||
SET_USERNAME_INVITANTE: 105,
|
||
CLICK_LINK_REG: 106,
|
||
WAITFOR_RISPOSTA: 110,
|
||
};
|
||
|
||
const Cmd = {
|
||
VALIDATE_REGISTRATION: 1,
|
||
RICHIESTA_GRUPPO: 2,
|
||
RICHIESTA_CIRCUIT: 3,
|
||
};
|
||
|
||
const Destin = {
|
||
STAFF: 1,
|
||
TUTTI: 2,
|
||
NO_7_REQ: 3,
|
||
NO_9_REQ: 4,
|
||
SI_INVITATI_NO_7REQ_INVITATI: 5,
|
||
A_UTENTE: 6,
|
||
MSG_TO_NAVE: 7,
|
||
NESSUN_IMBARCO_7REQ: 8,
|
||
PAOLO: 9,
|
||
DOMANDA: 10,
|
||
RISPOSTA: 11,
|
||
};
|
||
|
||
const StatusMSGALL = {
|
||
NONE: 0,
|
||
ASK: 1,
|
||
CONFIRM: 2,
|
||
};
|
||
|
||
const txt = {
|
||
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Scegli una voce di menu:' +
|
||
emoji.get('dizzy'),
|
||
MSG_ASK_USERNAME_BO: 'Scrivete nel messaggio l\'username (SENZA SPAZI) o la email con cui vi siete registrati sul sito di %s:',
|
||
MSG_ASK_USERNAME_INVITANTE: 'Incolla (o scrivi) l\'username di chi ti ha invitato su %s (non inserire spazi)',
|
||
MSG_ERRORE_INVITANTE_NOT_FOUND: 'L\'username dell\'invitante appena digitato non sembra essere corretto! Ti ricordo che dev\'essere l\'username con cui si è registrato su RISO',
|
||
MSG_ERRORE_USERNAME: 'Attenzione! Devi inserire solo lo username (40 caratteri massimo)',
|
||
MSG_ERRORE_USERNAME_NOT_FOUND: 'Per Completare la Verifica Telegram BOT, dovete ora scrivere qui sotto nel messaggio l\'Username (senza spazi) OPPURE la email con cui vi siete registrati sul sito',
|
||
MSG_ERRORE_USERNAME_ANNULLA: 'Inserimento Annullato. Riprovare',
|
||
MSG_OPERAZ_ANNULLATA: 'Operazione Annullata',
|
||
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Attenzione! Devi inserire solo il codice a 6 cifre',
|
||
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_SET_PICPROFILE: '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)',
|
||
MSG_RESETPWD: 'Clicca qui per impostare una nuova password per accedere alla APP:',
|
||
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)\nInvitato da %s',
|
||
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione:',
|
||
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:',
|
||
MSG_FRIENDS_NOT_ACCEPTED_CONFIRMED: '🚫 Hai rifiutato la richiesta di Amicizia di %s !',
|
||
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
|
||
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!\n' +
|
||
'Vai sulla App oppure clicca qui per entrare\n👉🏻 %s',
|
||
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
|
||
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
|
||
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + '🚫 %s Non è stato Abilitato !',
|
||
MSG_ISCRITTO_CONACREIS: emo.FIRE + '[%s] Si è appena Iscritto al Conacreis "%s"',
|
||
MSG_ISCRITTO_ARCADEI: emo.FIRE + '[%s] Si è appena Iscritto ad Arcadei "%s"',
|
||
MSG_MSG_SENT: emoji.get('envelope') + ' Messaggi Inviati !',
|
||
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messaggi da Inviare',
|
||
MSG_MSG_INCORSO: emoji.get('envelope') + ' messaggi in corso... Inviati attualmente',
|
||
MSG_SET_USERNAME_TELEGRAM: '[Prima di continuare con la registrazione in RISO.APP]\n' +
|
||
'Segui questi passi per <b>IMPOSTARE UN USERNAME IN TELEGRAM</b>: \n\n' +
|
||
'1. premi sull\'icona con <b>3 linee orizzontali</b>, in alto a sinistra (sull\'iPhone si chiama "Impostazioni").\n' +
|
||
'premi il tasto INDIETRO del cellulare (si chiuderà questa chat).\n\n' +
|
||
'2. Seleziona la voce <b>IMPOSTAZIONI</b> dalla lista.\n\n' +
|
||
'3.Premi su <b>USERNAME</b> nella sezione account.\n\n' +
|
||
'4. Digita un username (o nome utente) qualsiasi a tua scelta, se è già usato aggiungi dei numeri.\n\n' +
|
||
'5. Per confermare premi sull\'icona con la spunta (V) in alto a destra.\n\n' +
|
||
'🏁 6. Infine ritorna su questa chat BOT e scrivi OK nel messaggio. \n\n' +
|
||
' Se non riesci a fare questi passaggi, clicca qui: \n' +
|
||
'👉🏻 https://www.nigiara.it/telegram/come-impostare-uno-username-su-telegram.htm ',
|
||
MSG_SIGNUP: 'Per registrarti su %s:',
|
||
|
||
};
|
||
|
||
const txt_es = {
|
||
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Elija un elemento del menú:' +
|
||
emoji.get('dizzy'),
|
||
MSG_ASK_USERNAME_BO: 'Escriba en el mensaje el nombre de usuario o el correo electrónico con el que se registró en el sitio de %s:',
|
||
MSG_ERRORE_USERNAME: '¡Atención! Debes introducir sólo el nombre de usuario (40 caracteres como máximo)',
|
||
MSG_ERRORE_USERNAME_NOT_FOUND: 'Para completar la verificación del telegrama BOT, ahora debe escribir en el mensaje el nombre de usuario o el correo electrónico con el que se registró en el sitio.:',
|
||
MSG_ERRORE_USERNAME_ANNULLA: 'Inserción cancelada. Inténtalo de nuevo.',
|
||
MSG_OPERAZ_ANNULLATA: 'Operación cancelada',
|
||
MSG_ERRORE_VERIFY_CODE_MAXLEN: '¡Atención! Sólo tienes que introducir el código de 6 dígitos',
|
||
MSG_VERIFY_CODE: '1. Ahora, de vuelta en el sitio web:\n%s\n2. Copie el código de autenticación (6 dígitos) que encontrará escrito en la parte superior de la página\n3. Escríbelo (o pégalo) abajo como un mensaje:',
|
||
MSG_ERR_VERIFY_CODE: 'Código de verificación incorrecto!' +
|
||
emo.EXCLAMATION_MARK +
|
||
'\nComprueba en el sitio %s y reescribe el nuevo código de 6 dígitos.',
|
||
MSG_SET_PICPROFILE: '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)',
|
||
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Error al guardar en el servidor. Inténtalo de nuevo más tarde.',
|
||
MSG_EXIT_TELEGRAM: 'La cuenta ha sido desconectada de Telegram BOT.',
|
||
MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
|
||
' Acaba de registrarse "%s (n. %s)"\n(Invitado de %s)',
|
||
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione:',
|
||
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:',
|
||
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
|
||
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
|
||
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
|
||
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
|
||
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 %s Non è stato Abilitato !',
|
||
MSG_MSG_SENT: emoji.get('envelope') + ' Mensajes enviados !',
|
||
MSG_MSG_TOSENT: emoji.get('envelope') + ' Mensajes a enviar',
|
||
MSG_MSG_INCORSO: emoji.get('envelope') +
|
||
' mensajes en progreso... Enviado actualmente',
|
||
};
|
||
|
||
const txt_fr = {
|
||
MSG_SCEGLI_MENU: emoji.get('dizzy') + 'Choisissez un élément de menu:' +
|
||
emoji.get('dizzy'),
|
||
MSG_ASK_USERNAME_BO: 'Écrivez dans le message l\'username ou l\'e-mail avec lequel vous vous êtes enregistré sur le site de %s: ',
|
||
MSG_ERRORE_USERNAME: 'Attention! Vous devez insérer seulement l’username (40 caractères maximum)',
|
||
MSG_ERRORE_USERNAME_NOT_FOUND: 'Pour Compléter la Vérification Telegram BOT, vous devez maintenant écrire dans le message ci-dessous l\'Username ou l\'adresse e-mail avec lequel vous vous êtes inscrit sur le site: ',
|
||
MSG_ERRORE_USERNAME_ANNULLA: 'Saisie des données Annullée.Essayez à nouveau ',
|
||
MSG_OPERAZ_ANNULLATA: 'Opération Annullée',
|
||
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Attention! Vous devez insérer seulement le code à 6 chiffres',
|
||
MSG_VERIFY_CODE: '1. Ᾱ présent retournez sur le site:\n%s\n2. Copiez le Code d’Authentification (de 6 chiffres) che vous trouverez écrit en haut \n3. Ecrivez-le (ou copiez-le) ci-dessous comme message:',
|
||
MSG_ERR_VERIFY_CODE: ' Code de vérification incorrect!' +
|
||
emo.EXCLAMATION_MARK +
|
||
'\nControllez sur le site %s et réécrivez le nouveau code à 6 chiffres.',
|
||
MSG_SET_PICPROFILE: '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)',
|
||
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Erreur lors de l\'enregistrement sur le serveur. Retentez plus tard',
|
||
MSG_EXIT_TELEGRAM: 'L\'account a été déconnecté de Telegram BOT.',
|
||
MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
|
||
' Vous venez à peine de vous inscrire "%s (n. %s) %s',
|
||
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione:',
|
||
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:',
|
||
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
|
||
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
|
||
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
|
||
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
|
||
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 %s Non è stato Abilitato !',
|
||
MSG_MSG_SENT: emoji.get('envelope') + ' Messages envoyés !',
|
||
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messages à envoyer',
|
||
MSG_MSG_INCORSO: emoji.get('envelope') +
|
||
' messages en cours... Actuellement envoyé',
|
||
};
|
||
|
||
const txt_si = {
|
||
MSG_SCEGLI_MENU: emoji.get('dizzy') + 'Izbirni meni:' + emoji.get('dizzy'),
|
||
MSG_ASK_USERNAME_BO: 'Vpiši svoje uporabniško ime in e-naslov s katerimi si se registriral na spletni strani %s: ',
|
||
MSG_ERRORE_USERNAME: 'Pozor! Vpiši samo uporabniško ime (40 znakov) maksimalno',
|
||
MSG_ERRORE_USERNAME_NOT_FOUND: 'Ponovno preverite telegram BOT Uporabniško ime ali e-poštno sporočilo, s katerim ste registrirali na spletni strani: ',
|
||
MSG_ERRORE_USERNAME_ANNULLA: 'Preklic. Poskusi ponovno ',
|
||
MSG_OPERAZ_ANNULLATA: 'Operacija preklicana',
|
||
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Pozor! Vstavi D mestno kodo',
|
||
MSG_VERIFY_CODE: '1. Vrni se na spletno strani: \n%s\n2. Kopiraj kodo Authenticazione (6 mestno) ki jo najdeš zgoraj zapisano\n3. Napiši (ali prilepi) tu spodaj kot sporočilo: ',
|
||
MSG_ERR_VERIFY_CODE: 'Napačna koda za preverjanje!' + emo.EXCLAMATION_MARK +
|
||
'\nPreveri na strani %s in ponovno napiši 6 mestno kodo.',
|
||
MSG_SET_PICPROFILE: '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)',
|
||
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Napaka strežnika.Poskusi kasneje ',
|
||
MSG_EXIT_TELEGRAM: 'Račun se nahaja v programu Telegram BOT.',
|
||
MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
|
||
'Registracija registracije %s (n. %s)\n(povabil ga %s)',
|
||
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione:',
|
||
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:',
|
||
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
|
||
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
|
||
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
|
||
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
|
||
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 %s Non è stato Abilitato !',
|
||
};
|
||
|
||
const txt_en = {
|
||
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Choose a menu item:' +
|
||
emoji.get('dizzy'),
|
||
MSG_ASK_USERNAME_BO: 'Write in the message the username or email with which you registered on the site of %s:',
|
||
MSG_ERRORE_USERNAME: 'Attention! You must enter only the username (40 characters maximum)',
|
||
MSG_ERRORE_USERNAME_NOT_FOUND: 'To complete the Telegram BOT Verification, you must now write below in the message the Username OR the email with which you registered on the website:',
|
||
MSG_ERRORE_USERNAME_ANNULLA: 'Insertion Cancelled. Try again',
|
||
MSG_OPERAZ_ANNULLATA: 'Operation Cancelled',
|
||
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Attention! You only need to enter the 6-digit code',
|
||
MSG_VERIFY_CODE: '1. Now return to the website: %s\n' +
|
||
'2. Copy the Authentication code (of 6 digits) that you will find written at the top\n' +
|
||
'3. Write it (or paste it) below as a message:',
|
||
MSG_ERR_VERIFY_CODE: 'Incorrect Verification Code!' + emo.EXCLAMATION_MARK +
|
||
'\nCheck on the site %s and rewrite the new 6-digit code.',
|
||
MSG_SET_PICPROFILE: '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)',
|
||
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Error while saving to the Server. Try again later',
|
||
MSG_EXIT_TELEGRAM: 'The account has now been disconnected from this Telegram BOT.',
|
||
MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
|
||
' He/She\'s just registered "%s (n. %s)"\n(Invited from %s)',
|
||
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione:',
|
||
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:',
|
||
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
|
||
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
|
||
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
|
||
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
|
||
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 %s Non è stato Abilitato !',
|
||
MSG_MSG_SENT: emoji.get('envelope') + ' Sent Messages !',
|
||
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messages to Send',
|
||
MSG_MSG_INCORSO: emoji.get('envelope') +
|
||
' messages in progress... Currently sent',
|
||
};
|
||
|
||
const txt_pt = {
|
||
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Escolha um item do menu:' +
|
||
emoji.get('dizzy'),
|
||
MSG_ASK_USERNAME_BO: 'Escreva na mensagem o nome de usuário ou e-mail com o qual se registrou no site de %s:',
|
||
MSG_ERRORE_USERNAME: 'Atenção! Você deve inserir apenas o nome de usuário (40 caracteres no máximo)',
|
||
MSG_ERRORE_USERNAME_NOT_FOUND: 'Para completar a Verificação do Telegrama BOT, você deve agora escrever abaixo na mensagem o Nome de Usuário OU o e-mail com o qual você se registrou no site:',
|
||
MSG_ERRORE_USERNAME_ANNULLA: 'Inserção Cancelada. Tente novamente',
|
||
MSG_OPERAZ_ANNULLATA: 'Operação Cancelada',
|
||
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Atenção! Você só precisa digitar o código de 6 dígitos',
|
||
MSG_VERIFY_CODE: '1. Agora de volta ao site:\n%s\n2. Copie o código de autenticação (6 dígitos) que você encontrará escrito na parte superior da página\n3. Escreva-o (ou cole-o) abaixo como uma mensagem:',
|
||
MSG_ERR_VERIFY_CODE: 'Código de Verificação Incorrecto!' +
|
||
emo.EXCLAMATION_MARK +
|
||
'\nCódigo de Verificação ErradoCheque no local %s e reescreva o novo código de 6 dígitos.',
|
||
MSG_SET_PICPROFILE: '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)',
|
||
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Erro ao salvar no Servidor. Tente novamente mais tarde.',
|
||
MSG_EXIT_TELEGRAM: 'A conta foi agora desconectada deste Telegrama BOT.',
|
||
MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
|
||
' Acabou de se registar "%s (n. %s)"\n(Convidado por %s)',
|
||
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione:',
|
||
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:',
|
||
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
|
||
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
|
||
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
|
||
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
|
||
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
|
||
'🚫 %s Non è stato Abilitato !',
|
||
MSG_MSG_SENT: emoji.get('envelope') + ' Mensagens Enviadas !',
|
||
MSG_MSG_TOSENT: emoji.get('envelope') + ' Mensagens a enviar',
|
||
MSG_MSG_INCORSO: emoji.get('envelope') +
|
||
' mensagens em progresso... Actualmente enviado',
|
||
};
|
||
|
||
const TelegramBot = require('node-telegram-bot-api');
|
||
|
||
const ADMIN_IDTELEGRAM_TEST = 5356627050; // 5022837609; //Surya Arena
|
||
|
||
const MyTelegramBot = {
|
||
|
||
ADMIN_IDTELEGRAM_SERVER: '12429864', //Paolo
|
||
ADMIN_USER_SERVER: 'paoloar77',
|
||
ADMIN_USER_NAME_SERVER: 'Paolo',
|
||
|
||
phase: {
|
||
REGISTRATION: 1,
|
||
ISCRIZIONE_CONACREIS: 2,
|
||
ISCRIZIONE_ARCADEI: 4,
|
||
},
|
||
|
||
getAppTelegram: function() {
|
||
return appTelegram;
|
||
},
|
||
|
||
local_sendMsgTelegramByIdTelegram: async function(idapp, idtelegram, text,
|
||
message_id, chat_id, ripr_menuPrec,
|
||
MyForm = null) {
|
||
|
||
if (!idtelegram)
|
||
return;
|
||
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (cl && idtelegram) {
|
||
|
||
return await cl.sendMsg(idtelegram, text, null, MyForm, message_id,
|
||
chat_id, ripr_menuPrec);
|
||
}
|
||
|
||
},
|
||
|
||
deleteRecInMemByUsername: function(idapp, username_bo) {
|
||
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (cl) {
|
||
cl.arrUsers = cl.arrUsers.filter(
|
||
(rec) => rec.username_bo !== username_bo);
|
||
}
|
||
},
|
||
|
||
getFormDaMostrare: function(idapp, myfunc, myuser) {
|
||
|
||
let FormDaMostrare = null;
|
||
|
||
const cl = getclTelegByidapp(idapp);
|
||
|
||
if (myfunc === shared_consts.CallFunz.ZOOM_GIA_PARTECIPATO) {
|
||
FormDaMostrare = cl.getInlineKeyboard(myuser.lang, [
|
||
{
|
||
text: 'Conferma Presenza Zoom',
|
||
// callback_data: { action: InlineZoomConferma.CONFERMA_ZOOM_PRESENZA, username: myuser.username }
|
||
callback_data: InlineZoomConferma.CONFERMA_ZOOM_PRESENZA + tools.SEP +
|
||
myuser.username,
|
||
},
|
||
{
|
||
text: 'Annulla Presenza Zoom',
|
||
// callback_data: { action: InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA, username: myuser.username }
|
||
callback_data: InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA +
|
||
tools.SEP +
|
||
myuser.username,
|
||
},
|
||
]);
|
||
}
|
||
|
||
return FormDaMostrare;
|
||
},
|
||
|
||
getCiao: function(idapp, username, lang) {
|
||
return tools.gettranslate('CIAO', lang) + ' ' + username + '!\n';
|
||
},
|
||
|
||
notifyToTelegram: async function(phase, mylocalsconf) {
|
||
let userdest = mylocalsconf.user.aportador_solidario;
|
||
let langdest = mylocalsconf.user.lang;
|
||
let NameFrom = `${mylocalsconf.user.name} ${mylocalsconf.user.surname}`;
|
||
if (!mylocalsconf.user.name) {
|
||
NameFrom = `${mylocalsconf.user.username}`;
|
||
}
|
||
const index = mylocalsconf.user.index;
|
||
|
||
let aportador = '';
|
||
if (userdest) {
|
||
aportador = `${userdest}`;
|
||
NameFrom += aportador;
|
||
} else {
|
||
aportador = mylocalsconf.user.aportador_solidario_nome_completo
|
||
? mylocalsconf.user.aportador_solidario_nome_completo
|
||
: mylocalsconf.user.aportador_solidario;
|
||
}
|
||
|
||
let text = '';
|
||
if (phase === this.phase.REGISTRATION) {
|
||
|
||
if (tools.getConfSiteOptionEnabledByIdApp(mylocalsconf.idapp,
|
||
shared_consts.ConfSite.Notif_Reg_Bot_ToManagers)) {
|
||
if (userdest) {
|
||
NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp,
|
||
userdest, true);
|
||
aportador = NameFrom ? NameFrom + ' ' + aportador : aportador;
|
||
}
|
||
const numutenti = await User.getNumUsers(mylocalsconf.idapp);
|
||
let nome = tools.getNomeCognomeEUserNameByUser(mylocalsconf.user);
|
||
text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), nome,
|
||
numutenti, aportador);
|
||
}
|
||
}
|
||
|
||
let addtext = '';
|
||
let rismsg = null;
|
||
|
||
if (text) {
|
||
|
||
await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp,
|
||
addtext + text, false, null, userdest);
|
||
}
|
||
|
||
},
|
||
|
||
notifyIscrizioneToTelegram: async function(phase, mylocalsconf, msg) {
|
||
let langdest = mylocalsconf.iscritto.lang;
|
||
let NameFrom = `${mylocalsconf.iscritto.name} ${mylocalsconf.iscritto.surname}`;
|
||
|
||
let nomeapp = tools.getHostByIdApp(mylocalsconf.idapp);
|
||
|
||
let text = printf(getstr(langdest, msg), NameFrom, nomeapp);
|
||
|
||
let addtext = '';
|
||
|
||
await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp, addtext + text);
|
||
},
|
||
|
||
askConfirmationUser: async function(idapp, myfunc, myuser, userDest = '', groupname = '', groupid = '') {
|
||
|
||
try {
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (!cl)
|
||
return false;
|
||
|
||
const langdest = myuser.lang;
|
||
const telegid = myuser.profile.teleg_id;
|
||
|
||
let keyb = null;
|
||
let domanda = '';
|
||
|
||
const struserinfomsg = tools.getUserInfoMsg(idapp, myuser);
|
||
|
||
if (myfunc === shared_consts.CallFunz.REGISTRATION) {
|
||
|
||
cl.setPhotoProfile(myuser, telegid, false);
|
||
|
||
const rismsg = await MsgTemplate.getMsgByLang(idapp, myuser, shared_consts.TypeMsgTemplate.MSG_BENVENUTO, myuser.lang);
|
||
const rismsg2 = await MsgTemplate.getMsgByLang(idapp, myuser, shared_consts.TypeMsgTemplate.MS_SHARE_LINK, myuser.lang);
|
||
|
||
await cl.sendMsgLog(telegid, rismsg.body);
|
||
await cl.sendMsg(telegid, rismsg2.body);
|
||
|
||
userDest = myuser.aportador_solidario;
|
||
const notask_verif = await User.notAsk_VerifByUsername(idapp, userDest);
|
||
|
||
if (notask_verif) {
|
||
// Non chiedi la verifica Registrazione
|
||
await setVerifiedReg(myuser.idapp, myuser.lang, myuser.username, userDest);
|
||
} else {
|
||
|
||
domanda = getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM') + '<br>' + struserinfomsg;
|
||
|
||
keyb = cl.getInlineKeyboard(myuser.lang, [
|
||
{
|
||
text: '✅ Abilita ' + myuser.username,
|
||
callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + userDest,
|
||
},
|
||
{
|
||
text: '🚫 Rifiuta ' + myuser.username,
|
||
callback_data: InlineConferma.RISPOSTA_NO + myfunc + tools.SEP + myuser.username + tools.SEP + userDest,
|
||
},
|
||
]);
|
||
}
|
||
} else if (myfunc === shared_consts.CallFunz.RICHIESTA_GRUPPO) {
|
||
|
||
domanda = printf(getstr(langdest, 'MSG_ACCEPT_NEWENTRY_INGROUP'), groupname) + '<br>' + struserinfomsg;
|
||
|
||
keyb = cl.getInlineKeyboard(myuser.lang, [
|
||
{
|
||
text: '✅ Accetta ' + myuser.username,
|
||
callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + '' + tools.SEP + groupid,
|
||
},
|
||
{
|
||
text: '🚫 Rifiuta ' + myuser.username,
|
||
callback_data: InlineConferma.RISPOSTA_NO + myfunc + tools.SEP + myuser.username + tools.SEP + '' + tools.SEP + groupid,
|
||
},
|
||
]);
|
||
} else if (myfunc === shared_consts.CallFunz.RICHIESTA_CIRCUIT) {
|
||
|
||
domanda = i18n.__({phrase: 'CIRCUIT_ACCEPT_NEWENTRY', locale: langdest}, groupname) + '<br>' + struserinfomsg;
|
||
|
||
keyb = cl.getInlineKeyboard(myuser.lang, [
|
||
{
|
||
text: '✅ Accetta ' + myuser.username,
|
||
callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + '' + tools.SEP + '' + tools.SEP + groupid,
|
||
},
|
||
{
|
||
text: '🚫 Rifiuta ' + myuser.username,
|
||
callback_data: InlineConferma.RISPOSTA_NO + myfunc + tools.SEP + myuser.username + tools.SEP + '' + tools.SEP + '' + tools.SEP + groupid,
|
||
},
|
||
]);
|
||
}
|
||
|
||
// Invia Msg
|
||
if (domanda) {
|
||
const teleg_id = await User.TelegIdByUsername(idapp, userDest);
|
||
await this.local_sendMsgTelegramByIdTelegram(idapp, teleg_id, domanda, undefined, undefined, true, keyb);
|
||
}
|
||
|
||
} catch (e) {
|
||
console.error('Error askConfirmationUser', e);
|
||
}
|
||
|
||
},
|
||
|
||
askConfirmationUserFriend: async function(idapp, myfunc, myuser, userDest = '', username = '') {
|
||
|
||
try {
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (!cl)
|
||
return false;
|
||
|
||
const {SendNotif} = require('../models/sendnotif');
|
||
|
||
const langdest = myuser.lang;
|
||
|
||
let keyb = null;
|
||
let domanda = '';
|
||
let sendnotif = false;
|
||
let typedir = 0;
|
||
let typeid = 0;
|
||
let paramsObj = {};
|
||
|
||
const struserinfomsg = tools.getUserInfoMsg(idapp, myuser);
|
||
|
||
if (myfunc === shared_consts.CallFunz.RICHIESTA_AMICIZIA) {
|
||
sendnotif = true;
|
||
typedir = shared_consts.TypeNotifs.TYPEDIR_FRIENDS;
|
||
typeid = shared_consts.TypeNotifs.ID_FRIENDS_NEW_REC;
|
||
paramsObj = {usernameDest: userDest};
|
||
|
||
domanda = printf(tools.gettranslate('RICHIESTA_AMICIZIA', langdest), myuser.username) + '<br>' + struserinfomsg;
|
||
|
||
keyb = cl.getInlineKeyboard(myuser.lang, [
|
||
{
|
||
text: '✅👤 Accetta Amicizia',
|
||
callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + userDest + tools.SEP + '',
|
||
},
|
||
{
|
||
text: '🚫👤 Rifiuta Amicizia',
|
||
callback_data: InlineConferma.RISPOSTA_NO + myfunc + tools.SEP + myuser.username + tools.SEP + userDest + tools.SEP + '',
|
||
},
|
||
]);
|
||
}
|
||
|
||
// Invia Msg
|
||
if (domanda) {
|
||
const teleg_id = await User.TelegIdByUsername(idapp, userDest);
|
||
await this.local_sendMsgTelegramByIdTelegram(idapp, teleg_id, domanda, undefined, undefined, true, keyb);
|
||
}
|
||
|
||
if (sendnotif) {
|
||
const req = tools.getReqByPar(idapp, username);
|
||
// CREATE NOTIFICATION IN TABLE SENDNOTIF
|
||
await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, true, typedir, typeid);
|
||
}
|
||
|
||
} catch (e) {
|
||
console.error('Error askConfirmationUser', e);
|
||
}
|
||
|
||
},
|
||
|
||
sendMsgTelegramToTheManagers: async function(
|
||
idapp, text, onlyintofile = false, MyForm = null, nottousername = '') {
|
||
|
||
tools.writeManagersLog(text);
|
||
|
||
if (!onlyintofile) {
|
||
const usersmanagers = await User.getusersManagers(idapp);
|
||
if (usersmanagers) {
|
||
for (const rec of usersmanagers) {
|
||
if (rec.username !== nottousername) {
|
||
await this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id,
|
||
emo.ROBOT_FACE + ': ' + text, undefined, undefined, true,
|
||
MyForm);
|
||
await tools.snooze(100);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
|
||
},
|
||
|
||
sendMsgTelegramToTheManagersAndZoomeri: async function(
|
||
idapp, text, onlyintofile, MyForm = null) {
|
||
|
||
tools.writeManagersLog(text);
|
||
|
||
if (!onlyintofile) {
|
||
// const usersmanagers = await User.getusersManagersAndZoomeri(idapp);
|
||
const usersmanagers = await User.getusersManagers(idapp);
|
||
if (usersmanagers) {
|
||
for (const rec of usersmanagers) {
|
||
await this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id,
|
||
emo.ROBOT_FACE + ': ' + text, undefined, undefined, true, MyForm);
|
||
await tools.snooze(100);
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
|
||
},
|
||
getMsgByTipoMsg: async function(mydata, lang, user, sonosognatore) {
|
||
if (!!mydata.msgextra) {
|
||
return {body: mydata.msgextra, title: ''};
|
||
}
|
||
|
||
let title = '';
|
||
let msg = '';
|
||
|
||
if (mydata.tipomsg === tools.TipoMsg.SEND_LINK_CHAT_DONATORI) {
|
||
if (sonosognatore)
|
||
msg = printf(tools.gettranslate('SEND_LINK_CHAT_SOGNATORE', lang),
|
||
user.name,
|
||
mydata.navemediatore.riga + '.' + mydata.navemediatore.col,
|
||
mydata.msgpar1);
|
||
else
|
||
msg = printf(tools.gettranslate('SEND_LINK_CHAT_DONATORI', lang),
|
||
user.name,
|
||
mydata.navemediatore.riga + '.' + mydata.navemediatore.col,
|
||
mydata.msgpar1);
|
||
} else if (mydata.tipomsg === tools.TipoMsg.SEND_MSG || mydata.tipomsg ===
|
||
tools.TipoMsg.SEND_MSG_SINGOLO) {
|
||
if (!!mydata.username_mitt) {
|
||
msg = '[' + tools.gettranslate('MSG_SEND_FROM', lang) + ' ' +
|
||
mydata.username_mitt + ']:' + tools.ACAPO;
|
||
}
|
||
msg += mydata.msgpar1;
|
||
} else if (mydata.tipomsg >= 1000) {
|
||
const ris = await MsgTemplate.getMsgByLang(user.idapp, user, mydata.tipomsg,
|
||
lang);
|
||
msg = ris.body;
|
||
title = ris.title;
|
||
}
|
||
|
||
const cl = getclTelegByidapp(user.idapp);
|
||
if (cl) {
|
||
msg = tools.convertSpecialTags(rec.user, msg);
|
||
}
|
||
|
||
if (!!mydata.flotta) {
|
||
// SOSTITUISCI LE PAROLE CHIAVI
|
||
if (!!mydata.flotta.date_start)
|
||
msg = msg.replace('{date_start}',
|
||
tools.getstrDateLongTot(new Date(mydata.flotta.date_start),
|
||
user.lang));
|
||
if (!!mydata.flotta.date_close)
|
||
msg = msg.replace('{date_close}',
|
||
tools.getstrDateLongTot(new Date(mydata.flotta.date_close),
|
||
user.lang));
|
||
if (!!mydata.flotta.link_superchat)
|
||
msg = msg.replace('{link_superchat}', mydata.flotta.link_superchat);
|
||
if (!!mydata.flotta.tutor1)
|
||
msg = msg.replace('{tutor1}', mydata.flotta.tutor1);
|
||
if (!!mydata.flotta.tutor2)
|
||
msg = msg.replace('{tutor2}', mydata.flotta.tutor2);
|
||
if (!!mydata.flotta.tutor3)
|
||
msg = msg.replace('{tutor3}', mydata.flotta.tutor3);
|
||
if (!!mydata.flotta.tutorslo)
|
||
msg = msg.replace('{tutorslo}', mydata.flotta.tutorslo);
|
||
if (!!mydata.flotta.sognatore_nomecognome)
|
||
msg = msg.replace('{sognatore}', mydata.flotta.sognatore_nomecognome);
|
||
if (!!mydata.flotta.sognatore_nomecognome)
|
||
msg = msg.replace('{flotta}',
|
||
mydata.flotta.riga + '.' + Math.ceil(mydata.flotta.col_prima / 8) +
|
||
' - ' + mydata.flotta.riga + '.' +
|
||
Math.ceil(mydata.flotta.col_ultima / 8));
|
||
}
|
||
|
||
return {body: msg, title};
|
||
},
|
||
|
||
sendMsgTelegramToTheAdminAllSites: async function(text, senzaintestazione) {
|
||
for (const idapp of this.getAppTelegram()) {
|
||
text = text.replace('{appname}', tools.getNomeAppByIdApp(idapp));
|
||
await this.sendMsgTelegramToTheAdmin(idapp, text, senzaintestazione);
|
||
}
|
||
},
|
||
|
||
sendMsgTelegramToTheAdmin: async function(idapp, text, senzaintestazione) {
|
||
const usersmanagers = await User.getusersManagers(idapp);
|
||
|
||
let intestaz = emo.ROBOT_FACE + '[BOT-ADMIN]' + emo.ADMIN + ': ';
|
||
if (senzaintestazione)
|
||
intestaz = '';
|
||
|
||
if (usersmanagers) {
|
||
for (const rec of usersmanagers) {
|
||
if (User.isAdmin(rec.perm)) {
|
||
this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id,
|
||
intestaz + text, undefined, undefined, true);
|
||
await tools.snooze(300);
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
|
||
},
|
||
|
||
sendMsgTelegramToALL: async function(idapp, text) {
|
||
const usersall = await User.getUsersTelegALL(idapp);
|
||
|
||
if (usersall) {
|
||
for (const rec of usersall) {
|
||
this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id, text);
|
||
await tools.snooze(300);
|
||
}
|
||
}
|
||
|
||
},
|
||
|
||
sendMsgTelegram: async function(
|
||
idapp, username, text, alsotomanagers = false, username_mitt = '') {
|
||
const {User} = require('../models/user');
|
||
|
||
const teleg_id = await User.TelegIdByUsername(idapp, username);
|
||
const cl = getclTelegByidapp(idapp);
|
||
let ris = null;
|
||
if (cl && teleg_id) {
|
||
ris = await cl.sendMsg(teleg_id, text);
|
||
}
|
||
|
||
if (cl && teleg_id) {
|
||
if (alsotomanagers) {
|
||
await this.sendMsgTelegramToTheManagers(idapp, text);
|
||
}
|
||
if (!!username_mitt) {
|
||
const rec = cl.getRecByUsername(username);
|
||
if (rec) {
|
||
rec.msgall_username_specifico = username_mitt;
|
||
}
|
||
}
|
||
}
|
||
|
||
return ris;
|
||
},
|
||
|
||
sendMsgTelegramByIdTelegram: async function(
|
||
idapp, idtelegram, text, message_id, chat_id, ripr_menuPrec,
|
||
MyForm = null) {
|
||
|
||
console.log('sendMsgTelegramByIdTelegram', text);
|
||
|
||
if (!idtelegram)
|
||
return;
|
||
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (cl && idtelegram) {
|
||
let myform = null;
|
||
|
||
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 cl.updateMenuBot();
|
||
}
|
||
|
||
},
|
||
|
||
reloadSites: async function() {
|
||
|
||
tools.loadApps();
|
||
|
||
},
|
||
|
||
sendMsgFromSite: async function(idapp, user, params) {
|
||
|
||
try {
|
||
let ris = {
|
||
numrec: 0,
|
||
nummsgsent: 0,
|
||
};
|
||
|
||
let invia = false;
|
||
let content = '';
|
||
|
||
let tipomsgtempl = 0;
|
||
|
||
params.sendreally = true;
|
||
|
||
if (params.typemsg === shared_consts.TypeMsg.SEND_TO_MYSELF) {
|
||
params.usernameDest = user.username;
|
||
}
|
||
|
||
if (params.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
|
||
tipomsgtempl = shared_consts.TypeMsgTemplate.MS_SHARE_LINK;
|
||
invia = true;
|
||
} else if (params.cmd === shared_consts.MsgTeleg.SHARE_TEXT) {
|
||
invia = !!params.content;
|
||
}
|
||
|
||
if (tipomsgtempl > 0) {
|
||
const rismsg = await MsgTemplate.getMsgByLang(idapp, user, tipomsgtempl, user.lang);
|
||
params.content = rismsg.body;
|
||
params.title = rismsg.title;
|
||
}
|
||
|
||
if (invia) {
|
||
ris = await globalTables.SendMsgToParam(idapp, params);
|
||
}
|
||
|
||
return ris;
|
||
|
||
} catch (e) {
|
||
console.error('sendMsgFromSite', e);
|
||
}
|
||
},
|
||
|
||
sendMsgFromSiteToBotTelegram: async function(idapp, user, params) {
|
||
|
||
if (!params.typesend) {
|
||
params.typesend = shared_consts.TypeSend.TELEGRAM;
|
||
}
|
||
|
||
return this.sendMsgFromSite(idapp, user, params);
|
||
|
||
},
|
||
|
||
};
|
||
|
||
async function sendMsgTelegramToTheAdmin(idapp, text, msg) {
|
||
const usersmanagers = await User.getusersManagers(idapp);
|
||
|
||
const clorig = getclTelegByidapp(idapp);
|
||
const rec = clorig.getRecInMem(msg);
|
||
let username = '';
|
||
if (!!rec) {
|
||
username = rec.username_bo;
|
||
} else {
|
||
username = msg.chat.username;
|
||
}
|
||
|
||
text = emo.ROBOT_FACE + '[BOT-ADMIN]' + emo.ADMIN + ': Da ' +
|
||
msg.chat.first_name + ' ' + msg.chat.last_name + ' [' + username +
|
||
']: \n' + text;
|
||
tools.writeEventsLog(text);
|
||
|
||
if (usersmanagers) {
|
||
for (const rec of usersmanagers) {
|
||
if (User.isAdmin(rec.perm)) {
|
||
const idtelegram = rec.profile.teleg_id;
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (cl && idtelegram) {
|
||
await cl.sendMsg(idtelegram, text);
|
||
}
|
||
await tools.snooze(300);
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
|
||
}
|
||
|
||
async function setVerifiedReg(idapp, lang, usernameorig, usernameDest) {
|
||
try {
|
||
await User.setVerifiedByAportador(idapp, usernameorig, true);
|
||
await User.setFriendsCmd(null, idapp, usernameorig, usernameDest, shared_consts.FRIENDSCMD.SETFRIEND);
|
||
|
||
const msgDest = printf(getstr(lang, 'MSG_APORTADOR_CONFIRMED'),
|
||
`${usernameorig}`, usernameDest);
|
||
await local_sendMsgTelegram(idapp, usernameDest, msgDest);
|
||
} catch (e) {
|
||
console.log('e', e);
|
||
}
|
||
}
|
||
|
||
function getusernameByUser(idapp, msg) {
|
||
let username = '';
|
||
let rec = this.getRecInMem(msg);
|
||
if (!!rec)
|
||
username = rec.username_bo;
|
||
|
||
if (username === '') {
|
||
username = msg.chat.username;
|
||
}
|
||
|
||
return username;
|
||
}
|
||
|
||
async function local_sendMsgTelegramToTheManagers(
|
||
idapp, text, msg, username_bo) {
|
||
const usersmanagers = await User.getusersManagers(idapp);
|
||
|
||
let username = msg.chat.username;
|
||
if (username_bo)
|
||
username = username_bo;
|
||
|
||
text = emo.ROBOT_FACE + ': Da ' + msg.chat.first_name + ' ' +
|
||
msg.chat.last_name + ' (' + username + '): \n' + text;
|
||
tools.writeEventsLog(text);
|
||
|
||
if (usersmanagers) {
|
||
for (const rec of usersmanagers) {
|
||
const idtelegram = rec.profile.teleg_id;
|
||
const cl = getclTelegByidapp(idapp);
|
||
if (cl && idtelegram) {
|
||
await cl.sendMsg(idtelegram, text, undefined, undefined, undefined,
|
||
undefined, true);
|
||
}
|
||
await tools.snooze(100);
|
||
}
|
||
}
|
||
return true;
|
||
|
||
}
|
||
|
||
async function local_sendMsgTelegram(idapp, username, text) {
|
||
|
||
const teleg_id = await User.TelegIdByUsername(idapp, username);
|
||
const cl = getclTelegByidapp(idapp);
|
||
let ris = null;
|
||
if (cl && teleg_id) {
|
||
ris = await cl.sendMsg(teleg_id, text);
|
||
}
|
||
|
||
return ris;
|
||
|
||
}
|
||
|
||
function getstr(lang, key, param1) {
|
||
|
||
let mystr = '';
|
||
|
||
if ((lang === 'si') || (lang === 'sl-si')) {
|
||
try {
|
||
mystr = txt_si[key];
|
||
} catch (e) {
|
||
mystr = '';
|
||
}
|
||
} else if ((lang === 'en') || (lang === 'enUs')) {
|
||
try {
|
||
mystr = txt_en[key];
|
||
} catch (e) {
|
||
mystr = '';
|
||
}
|
||
} else if (lang === 'es') {
|
||
try {
|
||
mystr = txt_es[key];
|
||
} catch (e) {
|
||
mystr = '';
|
||
}
|
||
} else if (lang === 'fr') {
|
||
try {
|
||
mystr = txt_fr[key];
|
||
} catch (e) {
|
||
mystr = '';
|
||
}
|
||
} else if (lang === 'pt') {
|
||
try {
|
||
mystr = txt_pt[key];
|
||
} catch (e) {
|
||
mystr = '';
|
||
}
|
||
}
|
||
|
||
if (!mystr || mystr === '')
|
||
mystr = txt[key];
|
||
|
||
if (!!param1) {
|
||
mystr = printf(mystr, param1);
|
||
}
|
||
|
||
return mystr;
|
||
}
|
||
|
||
class Telegram {
|
||
constructor(idapp, bot) {
|
||
this.idapp = idapp;
|
||
this.bot = bot;
|
||
this.token = bot.token;
|
||
this.arrUsers = [];
|
||
this.lastid = 0;
|
||
//++
|
||
}
|
||
|
||
async createIfNotExist(msg) {
|
||
if (!await this.alreadyExist(msg)) {
|
||
if (await this.insertIntoDB(msg)) {
|
||
let rec = this.getRecInMem(msg);
|
||
if (!!rec) {
|
||
if (rec.user)
|
||
rec.status = Status.VERIFIED;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
async settotheDatabase(msg) {
|
||
|
||
// Check if Present to the DB
|
||
const riscreate = await this.createIfNotExist(msg);
|
||
|
||
if (!riscreate) {
|
||
let rec = this.getRecInMem(msg);
|
||
if (!rec)
|
||
rec = this.addUser(msg);
|
||
|
||
if (rec.user)
|
||
rec.status = Status.VERIFIED;
|
||
}
|
||
|
||
}
|
||
|
||
async start(msg) {
|
||
|
||
// Check if Username Telegram Present
|
||
if (!msg.from.username) {
|
||
return false;
|
||
}
|
||
|
||
await this.settotheDatabase(msg);
|
||
|
||
}
|
||
|
||
geturlfaq() {
|
||
return tools.getHostByIdApp(this.idapp) + '/faq';
|
||
}
|
||
|
||
getstrChatHelp() {
|
||
return 'Clicca qui per entrare nella Chat HELP di Supporto\n' +
|
||
tools.getTelegramSupportChat(this.idapp) +
|
||
'\n\nI miei colleghi umani ti aiuteranno a risolvere !';
|
||
}
|
||
|
||
async IsTesto(msg) {
|
||
|
||
let risp = '';
|
||
const id = msg.chat.id;
|
||
let testo = msg.text.toLowerCase().trim();
|
||
testo = testo.replace('!', '');
|
||
testo = testo.replace('?', '');
|
||
testo = testo.replace('é', 'è');
|
||
let contastiera = false;
|
||
|
||
let noanswer = false;
|
||
|
||
let lang = 'it';
|
||
|
||
const rec = this.getRecInMem(msg);
|
||
let myname = '';
|
||
if (rec.user) {
|
||
myname = rec.user.username;
|
||
lang = rec.user.lang;
|
||
}
|
||
|
||
if (rec.statusmsg === Status.WAITFOR_RISPOSTA) {
|
||
if (rec.msgcodeprec === MsgBot.COME_STAI) {
|
||
risp = 'L\'importante è trovare Serenità dentro di noi' +
|
||
emo.GIFT_HEART +
|
||
'\nNutrirsi di Sole e Viaggiare il più possibile ! ' + emo.DREAM;
|
||
} else if (rec.msgcodeprec === MsgBot.QUANTI_ANNI_HAI) {
|
||
const eta = testo.match(/\d+/g);
|
||
if (!eta) {
|
||
risp = 'Mmmh, non me lo vuoi dire...';
|
||
} else {
|
||
if (eta < 20) {
|
||
risp = 'Woww! Sei molto giovane!';
|
||
} else if ((eta > 20) && (eta < 30)) {
|
||
risp = 'Sei giovane anche tu!';
|
||
} else if ((eta > 30) && (eta < 50)) {
|
||
risp = 'Sono i migliori anni questi !';
|
||
} else if ((eta > 50) && (eta < 60)) {
|
||
risp = 'Complimenti !';
|
||
} else if (eta > 60) {
|
||
risp = 'Però! Ti mantieni in forma!' + emo.SMILE_STAR;
|
||
}
|
||
|
||
risp = 'Ah ' + eta + ' anni !\n' + risp;
|
||
}
|
||
} else if (rec.msgcodeprec === MsgBot.CHAT_EMPOWER) {
|
||
if (!MsgBot.SI.includes(testo)) {
|
||
risp = MsgRisp.CHAT_EMPOWER;
|
||
} else {
|
||
risp = 'Bene ! Allora divertiti conoscendo persone nuove ! ';
|
||
}
|
||
} else if (rec.msgcodeprec === MsgBot.MASCHIO_FEMMINA) {
|
||
if (MsgBot.UOMO.includes(testo)) {
|
||
rec.sex = Sex.MALE;
|
||
risp = 'Ok, sarò il tuo uomo ' + emo.MALE;
|
||
} else {
|
||
rec.sex = Sex.FEMALE;
|
||
risp = 'Ok, sarò la tua donna ' + emo.ADMIN;
|
||
}
|
||
}
|
||
rec.statusmsg = 0;
|
||
}
|
||
|
||
rec.msgcodeprec = '';
|
||
|
||
const menusite = await this.isMenuSite(this.idapp, testo, lang, id);
|
||
|
||
if (rec.status === Status.VERIFIED) {
|
||
if (rec.user) {
|
||
if (rec.user.profile.username_telegram && msg.from.id > 0 && !msg.from.username) {
|
||
rec.user.profile.username_telegram = msg.from.username;
|
||
await User.setUsernameTelegram(this.idapp, rec.user._id,
|
||
msg.from.username || '', msg.from.first_name || '',
|
||
msg.from.last_name || '');
|
||
}
|
||
|
||
if (!rec.user.profile.username_telegram && !!msg.from.username) {
|
||
rec.user.profile.username_telegram = msg.from.username;
|
||
await User.setUsernameTelegram(this.idapp, rec.user._id,
|
||
msg.from.username || '', msg.from.first_name || '',
|
||
msg.from.last_name || '');
|
||
|
||
await this.sendMsgByTemplate('MSG_SET_USERNAME_OK', rec.user);
|
||
|
||
if (rec.user) {
|
||
if (!rec.user.verified_by_aportador) {
|
||
MyTelegramBot.askConfirmationUser(this.idapp, shared_consts.CallFunz.REGISTRATION, rec.user);
|
||
}
|
||
}
|
||
|
||
/*} else {
|
||
if (!rec.user.profile.username_telegram) {
|
||
return this.checkIfUsernameTelegramSet(msg, rec.user);
|
||
}*/
|
||
}
|
||
}
|
||
}
|
||
|
||
if (risp === '') {
|
||
if (menusite) {
|
||
risp = await this.getValueMenu(this.idapp, rec, msg, testo, lang);
|
||
noanswer = true;
|
||
} else if (MsgBot.CIAO.includes(testo.replace('!', ''))) {
|
||
risp = 'Ciao ';
|
||
if (rec)
|
||
if (rec.user)
|
||
risp += rec.user.name;
|
||
|
||
risp += '!';
|
||
} else if (MsgBot.COME_STAI.includes(testo.replace('?', ''))) {
|
||
risp = 'Io Benone Grazie! ' + emoji.get('heartbeat') + ' E tu?';
|
||
rec.statusmsg = Status.WAITFOR_RISPOSTA;
|
||
rec.msgcodeprec = MsgBot.COME_STAI;
|
||
} else if (MsgBot.CHI_SONO_IO.includes(testo.replace('?', ''))) {
|
||
risp = 'Su Telegram ti chiami "' + msg.chat.first_name + ' ' +
|
||
msg.chat.last_name + '"\n';
|
||
|
||
if (!!rec.user) {
|
||
const myrec = await User.getUserShortDataByUsername(this.idapp,
|
||
rec.user.username);
|
||
risp += `\nSul sito ti sei registrato come ${rec.user.username}:\n\n[N. ` +
|
||
rec.user.index + ']: ' + rec.user.name + ' ' + rec.user.surname +
|
||
'\nUsername: ' + rec.user.username + '\n' + 'Email: ' +
|
||
rec.user.email + '\nLang: ' + rec.user.lang + tools.ACAPO;
|
||
risp += 'Num Invitati: ' + myrec.numinvitati + tools.ACAPO;
|
||
risp += 'Num Invitati Attivi: ' + myrec.numinvitatiattivi +
|
||
tools.ACAPO;
|
||
} else {
|
||
risp = 'Ancora non ti sei Attivato sul BOT';
|
||
}
|
||
} else if (MsgBot.CI_SEI.includes(testo.replace('?', ''))) {
|
||
risp = 'Io Si, ci sono !';
|
||
|
||
} else if (MsgBot.QUANTI_ANNI_HAI.includes(testo.replace('?', ''))) {
|
||
risp = 'Io sono abbastanza Giovane ! ' + emo.SMILE_STAR +
|
||
'\nNon posso dirti che età ho. E tu?';
|
||
rec.statusmsg = Status.WAITFOR_RISPOSTA;
|
||
rec.msgcodeprec = MsgBot.QUANTI_ANNI_HAI;
|
||
} else if (MsgBot.DAMMI_UN_BACIO.includes(testo)) {
|
||
risp = emo.KISS;
|
||
} else if (MsgBot.COSA_FAI.includes(testo)) {
|
||
risp = 'Ora sto chattando con te!\nSolitamente sono in attesa di ricevere messaggi ' +
|
||
emo.ENVELOPE;
|
||
} else if (MsgBot.MASCHIO_FEMMINA.includes(testo.replace('?', ''))) {
|
||
risp = 'Cosa vorresti che fossi? Uomo o donna?';
|
||
rec.msgcodeprec = MsgBot.MASCHIO_FEMMINA;
|
||
rec.statusmsg = Status.WAITFOR_RISPOSTA;
|
||
} else if (MsgBot.COME_TI_CHIAMI.includes(testo.replace('?', ''))) {
|
||
risp = 'Io mi chiamo BOT e sono il tuo assistente Virtuale. ' +
|
||
emo.EYES +
|
||
'\nPuoi usare il menu che compare qui sotto per sapere tutto sulle mie funzionalità ' +
|
||
emo.GREEN_HEART;
|
||
contastiera = true;
|
||
} else if (MsgBot.UGUALE.includes(testo)) {
|
||
risp = testo;
|
||
// } else if (MsgBot.CHI_E_VISTAR.includes(testo)) {
|
||
// } else if (MsgBot.CHI_E_PAOLO.includes(testo)) {
|
||
} else if (MsgBot.COME_SI_CHIAMA.includes(testo)) {
|
||
risp = 'Eh non te lo posso dire! ' + emo.JOY;
|
||
} else if (MsgBot.GRAZIE.includes(testo.replace('!', ''))) {
|
||
risp = 'Prego ! ' + emo.KISS + emo.KISS + emo.KISS;
|
||
} else if (MsgBot.PREGO.includes(testo.replace('!', ''))) {
|
||
risp = 'Grazie a te ! ' + emo.KISS + emo.KISS + emo.KISS;
|
||
} else if (MsgBot.MI_AMI.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = ' Tantissimo! ' + emo.KISS + emo.GIFT_HEART + emo.GIFT_HEART +
|
||
emo.GIFT_HEART;
|
||
} 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.';
|
||
} else if (MsgBot.COSE_COVID.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Un \'influenza più "grave", dovuta a paure e a fattori interiori di evoluzione, oltre ad una pulizia del corpo. ';
|
||
} else if (MsgBot.COVID.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Guarda, è meglio che sorvoliamo questo argomento. Anche un robot capisce che è stato realizzato ' +
|
||
'il più grande esperimento dell\'Uomo di ipnosi di massa, riempiendo di bugie i media mondiali, che servono sostanzialmente a controllare i popoli.' +
|
||
'E con questo ti ho detto tutto. :D ';
|
||
} else if (MsgBot.AIUTO.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = this.getstrChatHelp();
|
||
} else if (MsgBot.SPOSAMI.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'No Grazie! Sono per la Libertà a Vita! ' + emo.JOY +
|
||
'\nMa se vuoi possiamo conoscerci meglio!' + emo.DANCER + emo.FIRE;
|
||
} else if (MsgBot.CHE_TEMPO_FA.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Il tempo oggi è Sereno da me! ' + emo.SUN;
|
||
} else if (MsgBot.NON_TROO_INVITATI.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = MsgRisp.CHAT_EMPOWER;
|
||
} else if (MsgBot.SEI_LIBERO.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Io? Sono per la Libertà! ' + emo.JOY +
|
||
'\nMa se vuoi possiamo conoscerci meglio!' + emo.DANCER + emo.FIRE;
|
||
} else if (MsgBot.SEI_LIBERO_DI_RESPIRARE.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Assolutamente Sì ! Respirare è fondamentale per l\'essere umano !' +
|
||
emo.DANCER + emo.FIRE;
|
||
} else if (MsgBot.FARE_DOMANDA.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Dipende ' + emo.SMILE_STAR + '\nProvaci!';
|
||
} else if (MsgBot.DIVENTERO_RICCA.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Mmmmh... Perchè non pensi di Vivere già nell\'Abbondanza ?\nCosa ti manca veramente?\nForse di realizzare che la ricchezza è un sentirlo, non un diventarlo.' +
|
||
emo.GIFT_HEART;
|
||
} else if (MsgBot.MA_ALLORA.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Ma allora cosa?';
|
||
} else if (MsgBot.DOVE_VUOI_VIVERE.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Mah a me piacerebbe vivere al mare, ma anche vicino al verde, in montagna. Sarebbe l\'ideale 😄';
|
||
} else if (MsgBot.TROVAMI_UN_UOMO_DONNA.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Eh non è cosi facile. Ma se t\'impegni a cercare ci riuscirai. Nel frattempo trova la tua strada, fai il tuo percorso interiore, e magari arriva proprio quando meno te l\'aspetti';
|
||
} else if (MsgBot.SEI_LIBERO_STASERA.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Si vabbeh, non è che puoi prendere subito tutta questa confidenza' +
|
||
emo.EXCLAMATION_MARK + emo.SMILE_STAR +
|
||
'\nIntanto inizia ad invitare altre persone a conoscermi, poi ne riparliamo ' +
|
||
emo.GIFT_HEART;
|
||
} else if (MsgBot.MI_TROVI_UN_MOROSO.find(
|
||
(rec) => testo.indexOf(rec) > -1)) {
|
||
risp = emo.SMILE_STAR + emo.SMILE_STAR + emo.SMILE_STAR +
|
||
emo.SMILE_STAR +
|
||
'\nMagari! Così la smetteresti di scrivere a me (ad un BOT Virtuale) e tromberesti di più ' +
|
||
emo.DANCER + emo.DANCER;
|
||
risp += '\n\n' + MsgRisp.CHAT_EMPOWER;
|
||
} else if (MsgBot.SORPRESA.find((rec) => testo.indexOf(rec) > -1) &&
|
||
testo.length < 15) {
|
||
risp = 'Siiiii ! Davvero! ' + emo.DREAM;
|
||
} else if (MsgBot.PAROLACCE.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = 'Da te non me l\'aspettavo proprio !! ' + emo.INNOCENT +
|
||
emo.CROSS_ROSSA;
|
||
} else if (MsgBot.OK.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = '👍🏻';
|
||
} else if (MsgBot.CUORE.find((rec) => testo.indexOf(rec) > -1)) {
|
||
risp = '❤️💚💜';
|
||
} else if (MsgBot.HAHA.find((rec) => testo.indexOf(rec) > -1) && testo.length < 8) {
|
||
risp = emo.JOY + emo.JOY + emo.JOY;
|
||
} else if (testo.length >= 10) {
|
||
noanswer = true;
|
||
let myfaq = this.geturlfaq();
|
||
risp = 'Ciao {username}, Io mi chiamo BOT e sono il tuo assistente Virtuale ' + emo.ROBOT_FACE + emo.JOY2 + '\n' +
|
||
'Usa il menu qui sotto per interagire col BOT\n' +
|
||
'\nPer <strong>AIUTO</strong>, clicca qui:\n👉🏻👉🏻<a href="' + myfaq +
|
||
'">FAQ di AIUTO</a> (risposte alle domande più frequenti)\n\nSe non trovi risposta allora contatta la <a href="' +
|
||
tools.getTelegramSupportChat(this.idapp) + '">Chat di HELP</a>.\nGrazie';
|
||
// risp += '\nClicca qui per entrare nella Chat - HELP di Supporto\n' + 'https://t.me/joinchat/AL2qKE80rxDkgbeMGO-0bw' + '\n\nI miei colleghi umani ti aiuteranno a risolvere !';
|
||
await local_sendMsgTelegramToTheManagers(this.idapp, testo, msg,
|
||
rec.username_bo);
|
||
}
|
||
}
|
||
|
||
risp = tools.convertSpecialTags(rec.user, risp);
|
||
|
||
let keyboard = null;
|
||
|
||
if (contastiera) {
|
||
keyboard = {
|
||
'parse_mode': 'HTML',
|
||
'reply_markup': {
|
||
'resize_keyboard': true,
|
||
'keyboard': await this.getKeyboard(id, undefined, this.getlang(msg)),
|
||
},
|
||
};
|
||
|
||
}
|
||
|
||
if (rec.numdomande > 3 && rec.msgcodeprec === '') {
|
||
// if (rec.user) {
|
||
// const dashboard = await User.getDashboard(this.idapp, rec.user.aportador_solidario, rec.user.username, rec.user.aportador_solidario_name_surname);
|
||
//
|
||
// risp += '\n\nNel frattempo ti ricordo che ';
|
||
// if (dashboard.myself.numinvitati === 1)
|
||
// risp += 'hai solo ' + dashboard.myself.numinvitati + ' invitato!';
|
||
// else if (dashboard.myself.numinvitati === 0)
|
||
// risp += 'ancora non hai portato nessun Invitato! ' + emo.LEFT_FACING_FIST;
|
||
// else if (dashboard.myself.numinvitati > 2)
|
||
// risp += 'hai ' + dashboard.myself.numinvitati + ' invitati !' + emo.STARS;
|
||
//
|
||
// risp += '\n\nSei già entrato nella Chat di EMPOWER?';
|
||
// rec.msgcodeprec = MsgBot.CHAT_EMPOWER;
|
||
// rec.statusmsg = Status.WAITFOR_RISPOSTA;
|
||
// rec.numdomande = 0;
|
||
// }
|
||
}
|
||
|
||
if (risp !== '' && risp !== shared_consts.RIS_OK) {
|
||
rec.numdomande++;
|
||
if (!noanswer) {
|
||
await tools.snooze(300);
|
||
risp = '[BOT' + emo.ROBOT_FACE + ' scrive]:\n' + risp;
|
||
}
|
||
this._inviaMsg(id, risp, keyboard);
|
||
|
||
let strlog = 'USER [' + myname + ']: ' + testo + '\n';
|
||
|
||
tools.writelog(strlog);
|
||
}
|
||
|
||
return risp !== '';
|
||
}
|
||
|
||
async isMenuNotVerified(rec, msg, notlast) {
|
||
if (this.isSelMenu(msg, msg.text, 'ASSISTENZA')) {
|
||
await this.menuAssistenza(msg);
|
||
} else if (msg.text === Menu.LANG_IT) {
|
||
await this.ScegliLang(msg, 'it');
|
||
} else if (msg.text === Menu.LANG_ES) {
|
||
await this.ScegliLang(msg, 'es');
|
||
} else if (msg.text === Menu.LANG_SI) {
|
||
await this.ScegliLang(msg, 'si');
|
||
} else if (msg.text === Menu.LANG_FR) {
|
||
await this.ScegliLang(msg, 'fr');
|
||
} else if (msg.text === Menu.LANG_EN) {
|
||
await this.ScegliLang(msg, 'enUs');
|
||
} else if (msg.text === Menu.LANG_PT) {
|
||
await this.ScegliLang(msg, 'pt');
|
||
} else if (this.isSelMenu(msg, msg.text, 'INFO')) {
|
||
await this.menuInformazioni(msg);
|
||
} else if (msg.text === Menu.LANG) {
|
||
await this.menuLang(msg);
|
||
} else if (this.isSelMenu(msg, msg.text, 'ZOOM') ||
|
||
MsgBot.PROSSIMO_ZOOM.find((rec) => msg.text.indexOf(rec) > -1)) {
|
||
await this.menuZoom(msg);
|
||
} else if (!notlast && await this.IsTesto(msg)) {
|
||
// OK
|
||
} else {
|
||
await this.msgScegliMenu(msg);
|
||
}
|
||
}
|
||
|
||
isSelMenu(msg, menuselect, key) {
|
||
let miomenu = '';
|
||
try {
|
||
let lang = this.getlang(msg);
|
||
miomenu = Menu[lang][key];
|
||
} catch (e) {
|
||
miomenu = Menu['it'][key];
|
||
}
|
||
let trovato = (miomenu === menuselect);
|
||
if (!trovato) {
|
||
try {
|
||
let miomenu2 = Menu['it'][key];
|
||
trovato = (miomenu2 === menuselect);
|
||
} catch (e) {
|
||
|
||
}
|
||
}
|
||
|
||
return trovato;
|
||
}
|
||
|
||
async isMenu(rec, msg, testo, notlast) {
|
||
try {
|
||
if (!msg)
|
||
return;
|
||
|
||
if (testo === undefined)
|
||
return;
|
||
|
||
const arrtext = testo.split(' ');
|
||
let cmd2 = '';
|
||
let cmd1 = arrtext[0];
|
||
if (arrtext.length > 1)
|
||
cmd2 = arrtext[1];
|
||
|
||
let oldusername = rec.msgall_username_specifico;
|
||
|
||
if ((this.isSelMenu(msg, testo, 'ESCI_DA_CHAT')) ||
|
||
(this.isSelMenu(msg, testo, 'INDIETRO'))) {
|
||
rec.msgall_username_specifico = '';
|
||
} else {
|
||
if (rec.msgall_username_specifico !== '') {
|
||
await this.SendMsgToUser(msg, rec, rec.msgall_username_specifico,
|
||
testo);
|
||
return true;
|
||
}
|
||
}
|
||
|
||
if (this.isSelMenu(msg, testo, 'LAVAGNA') ||
|
||
MsgBot.LAVAGNA.find((rec) => testo.indexOf(rec) > -1)) {
|
||
await this.menuLavagna(msg);
|
||
} else if (this.isSelMenu(msg, testo, 'ACCEDI')) {
|
||
await this.menuAccedi(msg);
|
||
} else if (this.isSelMenu(msg, testo, 'LINK_CONDIVIDERE')) {
|
||
await this.menuLinkCondividere(msg);
|
||
} else if (testo === Menu.EXIT_TELEGRAM) {
|
||
await this.menuExitToTelegram(msg);
|
||
} else if (testo === Menu.ADMIN) {
|
||
await this.menuAdmin(msg);
|
||
} else if (testo === Menu.AIUTO) {
|
||
await this.menuAiuto(msg);
|
||
} else if (testo === Menu.LANG) {
|
||
await this.menuLang(msg);
|
||
} else if (testo === Menu.MSGATUTTI) {
|
||
await this.menumsgAll(msg);
|
||
} else if (testo === Menu.MSGSTAFF) {
|
||
await this.menumsgStaff(msg);
|
||
} else if (testo === Menu.MSGPAOLO) {
|
||
await this.menumsgPaolo(msg);
|
||
} else if (cmd1 === Menu.EXECSH) {
|
||
if (rec.user && cmd2) {
|
||
let isAdmin = rec.user ? rec.user.profile.manage_telegram : false;
|
||
if (isAdmin) {
|
||
const ris = await tools.execScript(this.idapp, msg, cmd2, 'Eseguo lo script');
|
||
}
|
||
}
|
||
} else if (cmd1 === Menu.LOG_SRV) {
|
||
if (rec.user) {
|
||
let isAdmin = rec.user ? rec.user.profile.manage_telegram : false;
|
||
if (isAdmin) {
|
||
await this.menuLogSrv(rec, msg, cmd2);
|
||
}
|
||
}
|
||
} else if (cmd1 === Menu.REBOOT_SRV) {
|
||
if (rec.user) {
|
||
let isAdmin = rec.user ? rec.user.profile.manage_telegram : false;
|
||
if (isAdmin) {
|
||
await this.menuRebootSrv(rec, msg, cmd2);
|
||
}
|
||
}
|
||
|
||
} else if (cmd1 === Menu.RESTART_SRV) {
|
||
|
||
if (rec.user) {
|
||
let isAdmin = rec.user ? rec.user.profile.manage_telegram : false;
|
||
if (isAdmin) {
|
||
await this.menuRestartSrv(rec, msg, cmd2);
|
||
}
|
||
}
|
||
// } else if (testo === Menu.MSG_NO_7_REQ) {
|
||
// await this.menumsg_No_7_Req(msg);
|
||
// } else if (testo === Menu.MSG_NO_9_REQ) {
|
||
// await this.menumsg_No_9_Req(msg);
|
||
// } else if (testo === Menu.NESSUN_IMBARCO_7REQ) {
|
||
// await this.menumsgGenerico(msg, Destin.NESSUN_IMBARCO_7REQ);
|
||
// } else if (cmd1 === Menu.MSG_TO_NAVE) {
|
||
// await this.menumsg_to_Nave(msg, cmd2);
|
||
// } else if (testo === Menu.MSG_SI_INVITATI_NO_7REQ_INVITATI) {
|
||
// await this.menumsg_Si_Invitati_No_7Req(msg);
|
||
} else if (cmd1.toLowerCase() === Menu.MSG_TO_USER) {
|
||
await this.menumsg_A_Utente(msg);
|
||
} else if (testo === Menu.SETPICPROFILE) {
|
||
await this.setPhotoProfile(rec.user, msg.from.id);
|
||
} else if (testo === Menu.RESETPWD) {
|
||
await this.setResetPwd(rec, msg);
|
||
} else if (this.isSelMenu(msg, testo, 'INDIETRO') ||
|
||
(testo === Menu.it.INDIETRO)) {
|
||
await this.msgScegliMenu(msg);
|
||
} else if (this.isSelMenu(msg, testo, 'ESCI_DA_CHAT')) {
|
||
await this.sendMsg(msg.chat.id, 'Uscito dalla Chat con ' + oldusername);
|
||
rec.msgall_username_specifico = '';
|
||
} else {
|
||
await this.isMenuNotVerified(rec, msg, notlast);
|
||
}
|
||
} catch (e) {
|
||
console.error('isMenu', e);
|
||
}
|
||
}
|
||
|
||
getsymb(symb, valid, isnum, num, smileif) {
|
||
let str = symb + ': ';
|
||
if (valid)
|
||
str += emo.CHECK_VERDE;
|
||
else
|
||
str += emo.CROSS_ROSSA;
|
||
if (isnum) {
|
||
str += ' ' + getemojibynumber(num);
|
||
if (smileif)
|
||
str += emo.SMILE_STAR;
|
||
}
|
||
|
||
return str + ' ';
|
||
}
|
||
|
||
isdreamset(user) {
|
||
if (user) {
|
||
if (user.profile.my_dream)
|
||
if (user.profile.my_dream.length > 10)
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
ispayment(user) {
|
||
if (user) {
|
||
if (!!user.profile.paymenttypes) {
|
||
/*if (user.profile.paymenttypes.includes('paypal')) {
|
||
if (user.profile.email_paypal) {
|
||
ispaypal = true
|
||
}
|
||
}*/
|
||
|
||
if (!!user.profile)
|
||
if (!!user.profile.paymenttypes) {
|
||
return (user.profile.paymenttypes.length >= 1);
|
||
}
|
||
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
async menuAccedi(msg) {
|
||
let status = this.getstatusInMemory(msg);
|
||
}
|
||
|
||
getlang(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
if (!!rec) {
|
||
if (rec.user) {
|
||
rec.lang = rec.user.lang;
|
||
}
|
||
if (rec.lang !== '' && rec.lang !== undefined)
|
||
return rec.lang;
|
||
else {
|
||
return msg.from.language_code;
|
||
}
|
||
}
|
||
}
|
||
|
||
async getLavagnaByUser(user, msg) {
|
||
|
||
let mystr = '';
|
||
|
||
const dashboard = await User.getDashboard(this.idapp,
|
||
user.aportador_solidario, user.username,
|
||
user.aportador_solidario_name_surname);
|
||
const downline = await User.getDownline(this.idapp,
|
||
user.aportador_solidario, user.username);
|
||
|
||
let numpersone = (downline.downline) ? downline.downline.length : 0;
|
||
let invitati_attivi = dashboard.myself.numinvitatiattivi;
|
||
mystr = '';
|
||
// if (dashboard.aportador) {
|
||
// mystr = emoji.get('seedling') + ` Chi ti ha invitato: ${dashboard.aportador.username} (${dashboard.aportador.name} ${dashboard.aportador.surname})\n`;
|
||
// } else {
|
||
// mystr = 'Chi ti ha invitato: Sei il Primo! ';
|
||
// }
|
||
// mystr += `____________________________________________\n`;
|
||
|
||
let tuttie9 = false;
|
||
|
||
let mystrnave = '';
|
||
|
||
if (user) {
|
||
mystr += tools.get__('BENVENUTO', this.getlang(msg)) + ' ' + user.name +
|
||
' (' + user.username + ') ' + emo.DIZZY + '\n\n';
|
||
|
||
tuttie9 = dashboard.myself.qualified && (numpersone >= 2) &&
|
||
invitati_attivi >= 2;
|
||
|
||
mystrnave = await Nave.getNaveByUser(this.idapp, user.username, user.lang,
|
||
true);
|
||
|
||
if (mystrnave === '' && tuttie9) {
|
||
mystr += tools.gettranslate('NO_PROG', user.lang);
|
||
}
|
||
|
||
if (!!mystrnave) {
|
||
mystr += '✨✨✨' + tools.get__('TUE_NAVI', this.getlang(msg)) + ':\n';
|
||
mystr += mystrnave;
|
||
|
||
} else {
|
||
|
||
if (!tuttie9) {
|
||
mystr += dashboard.myself.qualified ? emo.SMILE_STAR +
|
||
tools.get__('HAI_I_7_REQUISITI', this.getlang(msg)) +
|
||
emo.SMILE_STAR : emo.EXCLAMATION_MARK +
|
||
tools.get__('NON_HAI_I_7_REQUISITI', this.getlang(msg));
|
||
mystr += '\n\n';
|
||
}
|
||
// mystr += tuttie9 ? emo.SMILE_STAR + tools.get__('HAI_I_9_REQUISITI', this.getlang(msg)) + emo.SMILE_STAR : emo.EXCLAMATION_MARK + tools.get__('NON_HAI_I_9_REQUISITI', this.getlang(msg));
|
||
mystr += '\n\n';
|
||
|
||
mystr += tools.get__('INFO_LA_MIA_LAVAGNA', this.getlang(msg));
|
||
|
||
mystr += '\n' + '1. ' + this.getsymb(emo.ENVELOPE, user.verified_email);
|
||
mystr += tools.get__('EMAIL', this.getlang(msg)) + ' ';
|
||
mystr += user.verified_email
|
||
? tools.get__('VERIF', this.getlang(msg))
|
||
: tools.get__('EMAIL_NON_VERIF', this.getlang(msg));
|
||
|
||
mystr += '\n2. ' + this.getsymb(emo.ROBOT_FACE, true) +
|
||
tools.get__('BOT', this.getlang(msg)) + ' ';
|
||
mystr += tools.get__('VERIF', this.getlang(msg));
|
||
|
||
mystr += '\n3. ' + this.getsymb(emo.PENCIL,
|
||
tools.isBitActive(user.profile.saw_and_accepted,
|
||
shared_consts.Accepted.CHECK_READ_GUIDELINES)) +
|
||
tools.get__('LINEE_GUIDA', this.getlang(msg));
|
||
mystr += '\n4. ' + this.getsymb(emo.TV,
|
||
tools.isBitActive(user.profile.saw_and_accepted,
|
||
shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)) +
|
||
tools.get__('VIDEO_INTRO', this.getlang(msg));
|
||
// mystr += '\n5. ' + this.getsymb(emo.EYES, user.profile.saw_zoom_presentation) + tools.get__('ZOOM_PARTECIPATO', this.getlang(msg));
|
||
// mystr += '\n6. ' + this.getsymb(emo.DREAM, this.isdreamset(user)) + tools.get__('SCRITTO_SOGNO', this.getlang(msg));
|
||
mystr += '\n7. ' + this.getsymb(emo.CREDIT_CARD, this.ispayment(user)) +
|
||
tools.get__('PAYMENTS', this.getlang(msg));
|
||
|
||
}
|
||
// } else{
|
||
// mystr += tools.get__('TELEGRAM_NOT_CONNECTED', msg) + ' ' + emoji.get('e-mail');
|
||
}
|
||
|
||
// numpersone = 2;
|
||
|
||
if (!mystrnave) {
|
||
mystr += '\n8. ' +
|
||
this.getsymb(emo.INVITATI, numpersone >= 2, numpersone, numpersone,
|
||
numpersone >= 3) + tools.get__('INVITATI', this.getlang(msg));
|
||
mystr += '\n9. ' +
|
||
this.getsymb(emo.INVITATI, invitati_attivi >= 2, invitati_attivi,
|
||
invitati_attivi, invitati_attivi >= 3) +
|
||
tools.get__('INVITATI_ATTIVI', this.getlang(msg)) + '\n' + '\n';
|
||
|
||
if (numpersone > 0) {
|
||
mystr += tools.get__('INVITATI_LISTA', this.getlang(msg)) + ':\n';
|
||
|
||
let index = 1;
|
||
downline.downline.forEach((user) => {
|
||
mystr += emoji.get('star-struck') + ` ${index}°: `;
|
||
mystr += (user.qualified) ? emo.CHECK_VERDE : emo.CROSS_ROSSA;
|
||
mystr += `${user.name} ${user.surname} (${user.username})\n`;
|
||
index++;
|
||
});
|
||
} else {
|
||
mystr += tools.get__('NESSUN_INVITATO', this.getlang(msg)) +
|
||
tools.ACAPO;
|
||
}
|
||
}
|
||
|
||
// if (dashboard.downnotreg) {
|
||
// if (dashboard.downnotreg.length > 0) {
|
||
// mystr += '\n' + emo.QUESTION_MARK + ' ' + tools.get__('NONREG', msg) + ':' + emo.QUESTION_MARK + '\n';
|
||
// let index = 1;
|
||
// dashboard.downnotreg.forEach((user) => {
|
||
// mystr += ` - ${index}°: ${user.name} ${user.surname} (tel: ${user.cell_complete})\n`;
|
||
// index++;
|
||
// });
|
||
// }
|
||
// }
|
||
|
||
if (tuttie9)
|
||
mystr += '\n' +
|
||
printf(tools.get__('INFO_LAVAGNA_SITO', this.getlang(msg)));
|
||
else
|
||
mystr += '\n' +
|
||
printf(tools.get__('INFO_LAVAGNA_SITO_COMPLETARE', this.getlang(msg)),
|
||
tools.getHostByIdApp(this.idapp));
|
||
|
||
return mystr;
|
||
}
|
||
|
||
async menuLavagna(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
let mystr = '';
|
||
if (rec.user) {
|
||
mystr = await this.getLavagnaByUser(rec.user, msg);
|
||
|
||
}
|
||
if (!!mystr)
|
||
await this.sendMsg(msg.chat.id, mystr);
|
||
}
|
||
|
||
async menuNave(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
let mystr = '';
|
||
if (!rec.user)
|
||
return '';
|
||
|
||
let username_to_check = rec.user.username;
|
||
let arrstringa = msg.text.split(' ');
|
||
|
||
if (!!arrstringa) {
|
||
if (arrstringa.length > 1) {
|
||
let last = arrstringa.slice(-1)[0];
|
||
if (!isNaN(last)) {
|
||
// ind_order_to_check = last;
|
||
}
|
||
}
|
||
}
|
||
|
||
mystr = await Nave.getNaveByUser(this.idapp, username_to_check,
|
||
rec.user.lang, true);
|
||
|
||
if (!!mystr)
|
||
await this.sendMsg(msg.chat.id, mystr);
|
||
}
|
||
|
||
async menuLinkCondividere(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
let mystr = '';
|
||
if (rec.user) {
|
||
mystr += printf(
|
||
tools.get__('INFO_LINK_DA_CONDIVIDERE', this.getlang(msg)),
|
||
tools.getHostByIdApp(this.idapp) + '/signup/' + rec.user.username);
|
||
mystr += tools.ACAPO + tools.ACAPO +
|
||
printf(tools.get__('INFO_LINK_ZOOM', this.getlang(msg)),
|
||
tools.getlinkzoom(null));
|
||
await this.sendMsg(msg.chat.id, mystr);
|
||
}
|
||
}
|
||
|
||
async menuExitToTelegram(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
if (rec.user) {
|
||
await User.SetTelegramIdSuccess(this.idapp, rec.user._id, 0).
|
||
then((recuser) => {
|
||
if (recuser) {
|
||
this.deleteRecInMem(msg);
|
||
this.sendMsg(msg.chat.id,
|
||
getstr(rec.user.lang, 'MSG_EXIT_TELEGRAM'));
|
||
}
|
||
});
|
||
} else {
|
||
this.deleteRecInMem(msg);
|
||
}
|
||
}
|
||
|
||
async menuInformazioni(msg) {
|
||
const mystr = 'Informazioni Aggiuntive: ...';
|
||
await this.sendMsg(msg.chat.id, mystr);
|
||
}
|
||
|
||
async getNextZoom(msg) {
|
||
const listazoom = await CalZoom.findAllIdApp(this.idapp);
|
||
const nextzoom = await CalZoom.getNextZoom(this.idapp);
|
||
|
||
let mystr = '';
|
||
|
||
mystr += emo.STARS + tools.get__('ZOOM_CONFERENCE', this.getlang(msg)) +
|
||
emo.STARS + '\n\n';
|
||
|
||
// let pwd = 'Password: 123123';
|
||
|
||
let index = 1;
|
||
listazoom.forEach((evento) => {
|
||
let iniziata = false;
|
||
if (nextzoom)
|
||
iniziata = (nextzoom._id.toString() === evento._id.toString());
|
||
|
||
let lang = this.getlang(msg);
|
||
|
||
if (iniziata) {
|
||
mystr += emo.CHECK_VERDE + ' ' + tools.get__('ZOOM_INIZIATO', lang) +
|
||
' ' + emo.CHECK_VERDE + '\n';
|
||
}
|
||
|
||
mystr += tools.getflagtelegrambyLang(evento.lang) +
|
||
` ${emo.EYES} ${tools.getstrDateTimeShort(evento.date_start,
|
||
this.getlang(msg))} ${emo.EYES}`;
|
||
mystr += `\n${evento.title}\n(${evento.note})`;
|
||
mystr += `\n${tools.getlinkzoom(evento)}\n\n`;
|
||
if (nextzoom) {
|
||
if (iniziata) {
|
||
mystr += emo.FIRE + tools.get__('CLICCA_ENTRA', this.getlang(msg)) +
|
||
' ' + emo.FIRE + '\n';
|
||
mystr += tools.getlinkzoom(evento) + '\n';
|
||
mystr += '\n';
|
||
//mystr += pwd + '\n\n';
|
||
}
|
||
}
|
||
|
||
index++;
|
||
});
|
||
|
||
if (!nextzoom && index > 1) {
|
||
mystr += '✨✨✨✨✨✨✨✨✨✨✨✨\n' +
|
||
tools.get__('CLICCA_PER_ZOOM', this.getlang(msg)) + '\n' +
|
||
'✨✨✨✨✨✨✨✨✨✨✨✨\n';
|
||
}
|
||
|
||
return mystr;
|
||
}
|
||
|
||
async menuZoom(msg) {
|
||
let mystr = await this.getNextZoom(msg);
|
||
|
||
await this.sendMsg(msg.chat.id, mystr);
|
||
}
|
||
|
||
async menuAiuto(msg) {
|
||
const mystr = this.getstrChatHelp();
|
||
await this.sendMsg(msg.chat.id, mystr);
|
||
}
|
||
|
||
async menuAdmin(msg) {
|
||
const mystr = tools.get__('SCEGLI_VOCE', this.getlang(msg));
|
||
await
|
||
this.sendMsg(msg.chat.id, mystr, MenuAdmin);
|
||
}
|
||
|
||
async menuLang(msg) {
|
||
const mystr = tools.get__('SCEGLI_VOCE', this.getlang(msg));
|
||
await
|
||
this.sendMsg(msg.chat.id, mystr, MenuLang);
|
||
}
|
||
|
||
getDestinStr(msg, destin, rec) {
|
||
if (destin === Destin.TUTTI)
|
||
return 'TUTTI';
|
||
else if (destin === Destin.STAFF)
|
||
return 'STAFF';
|
||
else if (destin === Destin.PAOLO)
|
||
return 'PAOLO';
|
||
else if (destin === Destin.NO_7_REQ)
|
||
return 'No 7 Requisiti';
|
||
else if (destin === Destin.NO_9_REQ)
|
||
return 'No 9 Requisiti';
|
||
else if (destin === Destin.SI_INVITATI_NO_7REQ_INVITATI)
|
||
return '2 Invitati ma NO Requisiti';
|
||
else if (destin === Destin.MSG_TO_NAVE)
|
||
return 'Nave ' + rec.extraparam;
|
||
else if (destin === Destin.NESSUN_IMBARCO_7REQ)
|
||
return 'No Imbarcati (7 Req) ';
|
||
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;
|
||
}
|
||
|
||
}
|
||
|
||
async menumsgAll(msg) {
|
||
await this.menumsgGenerico(msg, Destin.TUTTI);
|
||
}
|
||
|
||
async menumsgStaff(msg) {
|
||
await this.menumsgGenerico(msg, Destin.STAFF);
|
||
}
|
||
|
||
async menumsgPaolo(msg) {
|
||
await this.menumsgGenerico(msg, Destin.PAOLO);
|
||
}
|
||
|
||
nonAbilitato(msg) {
|
||
MyTelegramBot.local_sendMsgTelegramByIdTelegram(this.idapp, msg.chat.id,
|
||
'Utente Non abilitato o codice non valido ad eseguire questa funzione');
|
||
}
|
||
|
||
chisono(rec) {
|
||
if (rec && rec.user) {
|
||
return 'Eseguito da ' + rec.user.username + ': ';
|
||
}
|
||
}
|
||
|
||
async menuRestartSrv(rec, msg, cmd2) {
|
||
if (cmd2 === '6711') {
|
||
await MyTelegramBot.sendMsgTelegramToTheAdminAllSites(this.chisono(rec) + ' ha rilanciato il Server NODE.JS...');
|
||
const ris = await tools.execScript(this.idapp, msg, '~/batch/production_restart_server.sh',
|
||
this.chisono(rec) + ' Restart il Server (Node.Js)');
|
||
} else {
|
||
this.nonAbilitato(msg);
|
||
}
|
||
}
|
||
|
||
async menuLogSrv(rec, msg, cmd2) {
|
||
if (cmd2 === '6711') {
|
||
const ris = await tools.execScript(this.idapp, msg, '~/batch/logserver.sh', this.chisono(rec) + ' Visualizzo il Log del Server...');
|
||
} else {
|
||
this.nonAbilitato(msg);
|
||
}
|
||
}
|
||
|
||
async menuRebootSrv(rec, msg, cmd2) {
|
||
if (cmd2 === '6711') {
|
||
await MyTelegramBot.sendMsgTelegramToTheAdminAllSites(this.chisono(rec) + ' ha effettuato il Reboot del Server! ...');
|
||
const ris = await tools.execScript(this.idapp, msg, '~/batch/esegui_reboot.sh',
|
||
this.chisono(rec) + ' Eseguo il Reboot del Server !...');
|
||
} else {
|
||
this.nonAbilitato(msg);
|
||
}
|
||
}
|
||
|
||
async menumsg_No_7_Req(msg) {
|
||
await this.menumsgGenerico(msg, Destin.NO_7_REQ);
|
||
}
|
||
|
||
async menumsg_No_9_Req(msg) {
|
||
await this.menumsgGenerico(msg, Destin.NO_9_REQ);
|
||
}
|
||
|
||
async menumsg_to_Nave(msg, nave) {
|
||
await this.menumsgGenerico(msg, Destin.MSG_TO_NAVE, undefined, nave);
|
||
}
|
||
|
||
async menumsg_Si_Invitati_No_7Req(msg) {
|
||
await this.menumsgGenerico(msg, Destin.SI_INVITATI_NO_7REQ_INVITATI);
|
||
}
|
||
|
||
async menumsg_A_Utente(msg) {
|
||
const arr = msg.text.split(' ');
|
||
if (!!arr && arr.length > 1) {
|
||
const username = arr[1];
|
||
const rec = this.getRecInMem(msg);
|
||
rec.msg_wait = true;
|
||
await this.SendMsgToUser(msg, rec, username, msg.text);
|
||
}
|
||
}
|
||
|
||
permitSendMsg(user) {
|
||
return User.isAdmin(user.perm);
|
||
}
|
||
|
||
async menumsgGenerico(msg, dest, username, extraparam) {
|
||
const rec = this.getRecInMem(msg);
|
||
if (rec.user) {
|
||
|
||
if (this.permitSendMsg(rec.user)) {
|
||
rec.msgall_status = StatusMSGALL.ASK;
|
||
rec.msgall_achi = dest;
|
||
rec.extraparam = extraparam;
|
||
if (!!username) {
|
||
rec.msgall_username_specifico = username;
|
||
}
|
||
const mystr = 'Scrivi qui un Messaggio da inviare a' + ' [' +
|
||
this.getDestinStr(msg, dest, rec) + ']:';
|
||
await this.sendMsg(msg.chat.id, mystr, MenuSend);
|
||
}
|
||
}
|
||
}
|
||
|
||
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') {
|
||
return '';
|
||
} else if (qualelink === 'biblio') {
|
||
return '';
|
||
} else if (qualelink === 'help') {
|
||
return tools.HELP_CHAT;
|
||
} else if (qualelink === 'faq') {
|
||
return '';
|
||
}
|
||
}
|
||
|
||
async menuAssistenza(msg) {
|
||
|
||
const sito = this.getlink('website');
|
||
const empower = this.getlink('empower');
|
||
const biblio = this.getlink('biblio');
|
||
const faq = this.getlink('faq');
|
||
|
||
let help = '';
|
||
let helpaperta = true;
|
||
/*if (tools.isMonToFri() && tools.isBetweenTwoTime('9:00:00', '19:00:00')) {
|
||
help = '✅ ' + this.getlink('help');
|
||
} else {
|
||
help = "🔴 [ORA CHIUSA - NOW CLOSED]";
|
||
helpaperta = false;
|
||
}*/
|
||
|
||
help = '✅ ' + this.getlink('help');
|
||
|
||
let mytext = '';
|
||
if (this.getlang(msg) === 'it')
|
||
mytext = printf(tools.get__('TESTO_ASSISTENZA', this.getlang(msg)), sito,
|
||
biblio, empower, faq, help);
|
||
else
|
||
mytext = printf(tools.get__('TESTO_ASSISTENZA', this.getlang(msg)), sito,
|
||
biblio, empower, help);
|
||
|
||
let menu = null;
|
||
const rec = this.getRecInMem(msg);
|
||
if (!rec.user) {
|
||
menu = null;
|
||
}
|
||
|
||
await
|
||
this.sendMsg(msg.chat.id, mytext, menu);
|
||
}
|
||
|
||
existInMemory(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
return !!rec;
|
||
}
|
||
|
||
getstatus(rec) {
|
||
if (!!rec)
|
||
return rec.status;
|
||
else
|
||
return Status.NONE;
|
||
}
|
||
|
||
getstatusInMemory(msg) {
|
||
const rec = this.getRecInMem(msg);
|
||
return this.getstatus(rec);
|
||
}
|
||
|
||
getRecInMem(msg) {
|
||
return this.arrUsers.find((rec) => rec.id === this.getchatid(msg));
|
||
}
|
||
|
||
getRecInMemById(id) {
|
||
return this.arrUsers.find((rec) => rec.id.toString() === id.toString());
|
||
}
|
||
|
||
getRecByUsername(username) {
|
||
return this.arrUsers.find((rec) => rec.username_bo === username);
|
||
}
|
||
|
||
setRecByUsername(username, myrec) {
|
||
const ind = this.arrUsers.findIndex((rec) => rec.username_bo === username);
|
||
if (ind >= 0) {
|
||
this.arrUsers[ind] = myrec;
|
||
}
|
||
}
|
||
|
||
deleteRecInMem(msg) {
|
||
this.arrUsers = this.arrUsers.filter(
|
||
(rec) => rec.id !== this.getchatid(msg));
|
||
}
|
||
|
||
async getUser(msg, rec, conmsg) {
|
||
let myid = 0;
|
||
let ok = false;
|
||
let mystruser = tools.getFirstWord(msg.text.trim());
|
||
const user = await User.findByUsername(this.idapp, mystruser, true);
|
||
if (!user) {
|
||
if (conmsg) {
|
||
await this.sendMsg(msg.from.id,
|
||
getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_NOT_FOUND'), null);
|
||
const lang = this.getlang(msg);
|
||
// const textman = msg.chat.first_name + ' ' + msg.chat.last_name + ' sta tentando di autenticarsi con il BOT (lang=' + lang + ') (username che scrive: ' + msg.text + ') ';
|
||
// await local_sendMsgTelegramToTheManagers(this.idapp, textman, msg);
|
||
rec.username_bo = '';
|
||
}
|
||
} else {
|
||
rec.username_bo = user.username;
|
||
myid = user._id;
|
||
ok = true;
|
||
}
|
||
|
||
return {rec, user, myid, ok};
|
||
}
|
||
|
||
async setUsernameBo(msg) {
|
||
|
||
}
|
||
|
||
async askUsernameInvitante(msg) {
|
||
try {
|
||
let rec = this.getRecInMem(msg);
|
||
if (msg.text === undefined || msg.text === 'undefined')
|
||
return false;
|
||
|
||
if (rec) {
|
||
rec.status = Status.SET_USERNAME_INVITANTE;
|
||
await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), 'MSG_ASK_USERNAME_INVITANTE', tools.getNomeAppByIdApp(this.idapp), null));
|
||
|
||
}
|
||
} catch (e) {
|
||
console.error('Error setUsernameBo:', e);
|
||
}
|
||
}
|
||
|
||
async sendMsgByTemplate(title, myuser) {
|
||
|
||
try {
|
||
const msg = await MsgTemplate.getMsgByTitleAndLang(myuser.idapp, title, myuser.lang);
|
||
const mytext = tools.convertSpecialTags(myuser, msg.body);
|
||
return await this.sendMsg(myuser.profile.teleg_id, mytext);
|
||
} catch (e) {
|
||
console.error('ERR sendMsgByTemplate', e);
|
||
}
|
||
}
|
||
|
||
async sendMsgByTemplateByMsgStrutt(title, msg) {
|
||
|
||
try {
|
||
let langcode = 'it';
|
||
let id = 0;
|
||
try {
|
||
langcode = msg.from.language_code;
|
||
id = msg.from.id;
|
||
} catch (e) {
|
||
}
|
||
const mymsg = await MsgTemplate.getMsgByTitleAndLang(tools.RISO, title, langcode);
|
||
const mytext = tools.convertSpecialTags(null, mymsg.body);
|
||
if (id > 0)
|
||
return await this.sendMsg(id, mytext);
|
||
} catch (e) {
|
||
console.error('ERR sendMsgByTemplateByMsgStrutt', e);
|
||
}
|
||
}
|
||
|
||
async sendMsgByTextByMsgStrutt(keytext, msg) {
|
||
|
||
try {
|
||
let langcode = 'it';
|
||
let id = 0;
|
||
try {
|
||
id = msg.from.id;
|
||
langcode = msg.from.language_code;
|
||
} catch (e) {
|
||
}
|
||
const text = getstr(langcode, keytext);
|
||
const mytext = tools.convertSpecialTags(null, text);
|
||
if (id > 0)
|
||
return await this.sendMsg(id, mytext);
|
||
} catch (e) {
|
||
console.error('ERR sendMsgByTextByMsgStrutt', e);
|
||
}
|
||
}
|
||
|
||
async checkIfUsernameTelegramSet(msg) {
|
||
try {
|
||
if (!msg.from.username) {
|
||
await this.sendMsgByTemplateByMsgStrutt('MSG_SET_USERNAME', msg);
|
||
// await this.sendMsgByTextByMsgStrutt('MSG_SET_USERNAME_TELEGRAM', msg);
|
||
return false;
|
||
//await this.sendMsgByTemplate('MSG_SET_USERNAME', myuser);
|
||
}
|
||
return true;
|
||
} catch (e) {
|
||
console.error('e');
|
||
return false;
|
||
}
|
||
}
|
||
|
||
async setUsernameInvitante(msg) {
|
||
try {
|
||
if (!!msg.text) {
|
||
const rec = this.getRecInMem(msg);
|
||
let aportador_solidario = rec.aportador_solidario;
|
||
if (!aportador_solidario) {
|
||
aportador_solidario = msg.text.toString().trim().toLowerCase();
|
||
aportador_solidario = tools.removeAtChar(aportador_solidario);
|
||
let user = await User.getUserShortDataByUsername(this.idapp, aportador_solidario);
|
||
if (!user) {
|
||
// check if is username telegram inserted
|
||
user = await User.getUserShortDataByUsernameTelegram(this.idapp, aportador_solidario);
|
||
}
|
||
if (user)
|
||
rec.aportador_solidario = user.username;
|
||
}
|
||
if (rec.aportador_solidario) {
|
||
|
||
// Link per Registrarsi
|
||
this.asktoRegistrationByLink(msg);
|
||
|
||
} else {
|
||
// rec.status = Status.WAITFOR_USERNAME_INVITANTE;
|
||
rec.status = Status.SET_USERNAME_INVITANTE;
|
||
|
||
const str2 = '\n' + getstr(this.getlang(msg), 'MSG_ASK_USERNAME_INVITANTE', tools.getNomeAppByIdApp(this.idapp));
|
||
|
||
if (msg.from.username)
|
||
console.log(msg.from.username + ' ha digitato: ' + msg.text);
|
||
|
||
await this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_INVITANTE_NOT_FOUND') + str2, null);
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.error('Error setUsernameInvitante', e);
|
||
}
|
||
}
|
||
|
||
async setVerifyCode(msg) {
|
||
try {
|
||
if (!!msg.text) {
|
||
const code = msg.text.toString().trim();
|
||
const rec = this.getRecInMem(msg);
|
||
let user = await User.findByUsername(this.idapp, rec.username_bo, true);
|
||
let telegcode = 0;
|
||
if (user) {
|
||
telegcode = user.profile.teleg_checkcode.toString();
|
||
} else {
|
||
await
|
||
this.sendMsg(msg.from.id,
|
||
getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_NOT_FOUND'),
|
||
null);
|
||
return;
|
||
}
|
||
if (code.length < 7) {
|
||
if (rec) {
|
||
if (code === telegcode) {
|
||
try {
|
||
await User.setUsernameTelegram(this.idapp, user._id,
|
||
msg.from.username || '', msg.from.first_name || '',
|
||
msg.from.last_name || '');
|
||
|
||
} catch (e) {}
|
||
// let ris = await this.getUser(msg, rec, false);
|
||
|
||
rec.status = Status.VERIFIED;
|
||
rec.datemenu_updated = null;
|
||
rec.menuDb = null;
|
||
const recuser = await User.SetTelegramIdSuccess(this.idapp, user._id, msg.from.id);
|
||
if (recuser) {
|
||
console.log(recuser.username, ' SI E\' VERIFICATO CON TELEGRAM !');
|
||
let username = recuser.name;
|
||
|
||
if (!!msg.from.username) {
|
||
await MyTelegramBot.askConfirmationUser(this.idapp, shared_consts.CallFunz.REGISTRATION, recuser);
|
||
} else {
|
||
console.log(' ... MA GLI MANCA L\'USERNAME TELEGRAM !! ');
|
||
}
|
||
|
||
// this.checkIfUsernameTelegramSet(msg, recuser);
|
||
// local_sendMsgTelegramToTheManagers(this.idapp, recuser.name + ' ' + recuser.surname + ' si è Verificato a Telegram BOT! (lang=' + recuser.lang + ')' + emo.STARS, msg);
|
||
} else {
|
||
this.sendMsgLog(msg.from.id, getstr(this.getlang(msg), 'MSG_ERR_UNKNOWN_VERIFY_CODE'));
|
||
}
|
||
|
||
} else {
|
||
if (rec.retry < 2) {
|
||
rec.retry++;
|
||
await
|
||
this.sendMsgLog(msg.from.id,
|
||
printf(getstr(this.getlang(msg), 'MSG_ERR_VERIFY_CODE'),
|
||
tools.getHostByIdApp(this.idapp)));
|
||
} else {
|
||
rec.status = Status.NONE;
|
||
await
|
||
this.sendMsgLog(msg.from.id, getstr(this.getlang(msg),
|
||
'MSG_ERRORE_USERNAME_ANNULLA'));
|
||
this.deleteRecInMem(msg);
|
||
}
|
||
}
|
||
}
|
||
} else if (msg.text.length === 0) {
|
||
if (rec)
|
||
rec.status = Status.NONE;
|
||
await
|
||
this.sendMsgLog(msg.from.id,
|
||
getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_ANNULLA'));
|
||
} else {
|
||
await
|
||
this.sendMsgLog(msg.from.id,
|
||
getstr(this.getlang(msg), 'MSG_ERRORE_VERIFY_CODE_MAXLEN'));
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.error('Error setVerifyCode', e);
|
||
}
|
||
}
|
||
|
||
async sistemaRecDest(rec, msg) {
|
||
let recdest = this.getRecByUsername(rec.msgall_username_specifico);
|
||
if (!recdest) {
|
||
const userdest = await User.findByUsername(this.idapp,
|
||
rec.msgall_username_specifico);
|
||
if (!!userdest) {
|
||
let msgdest = msg;
|
||
msgdest.from.id = userdest.profile.teleg_id;
|
||
await this.createIfNotExist(msgdest);
|
||
recdest = this.getRecByUsername(rec.msgall_username_specifico);
|
||
}
|
||
}
|
||
if (!!recdest) {
|
||
recdest.msgall_username_specifico = rec.username_bo;
|
||
} else {
|
||
rec.msgall_username_specifico = '';
|
||
}
|
||
|
||
return recdest;
|
||
}
|
||
|
||
async setCmdToUsername(rec, username, cmd_to_set, valuebool) {
|
||
if (cmd_to_set === Cmd.VALIDATE_REGISTRATION) {
|
||
return await User.setVerifiedByAportador(rec.user.idapp, username, valuebool);
|
||
} else if (cmd_to_set === Cmd.RICHIESTA_GRUPPO) {
|
||
|
||
}
|
||
}
|
||
|
||
async sendMsgToAll(rec, msg, texttosend, destin) {
|
||
try {
|
||
if ((texttosend.length < 3) && (destin !== Destin.A_UTENTE)) {
|
||
// NOTHING
|
||
} else {
|
||
|
||
let usersall = null;
|
||
|
||
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);
|
||
|
||
let nummsgsent = 0;
|
||
|
||
let textdainviare = '';
|
||
let preparatesto = '';
|
||
let myid = '';
|
||
|
||
if (this.isSelMenu(msg, texttosend, 'ZOOM')) {
|
||
texttosend = await this.getNextZoom(msg);
|
||
}
|
||
|
||
const cmd = texttosend.toLowerCase();
|
||
|
||
if (usersall) {
|
||
if (this.isSelMenu(msg, cmd, 'INDIETRO')) {
|
||
rec.msgall_status = StatusMSGALL.NONE;
|
||
return;
|
||
}
|
||
|
||
tools.writeEventsLog(
|
||
this.getDestinStr(msg, destin, rec) + ':\n' + texttosend);
|
||
|
||
// let chiedisino = false;
|
||
|
||
// TEST usersall = await User.getUsersTelegALL(rec.user.idapp, 'paoloar77');
|
||
|
||
for (const utente of usersall) {
|
||
|
||
let FormDaMostrare = null;
|
||
const lang = utente.lang;
|
||
|
||
if (!utente.deleted && !utente.sospeso) {
|
||
if (this.isSelMenu(msg, texttosend === 'LAVAGNA')) {
|
||
textdainviare = await this.getLavagnaByUser(utente, msg);
|
||
} else if (destin === Destin.A_UTENTE) {
|
||
textdainviare = texttosend;
|
||
} else {
|
||
textdainviare = texttosend;
|
||
}
|
||
|
||
let invia = false;
|
||
if (destin === Destin.STAFF) {
|
||
invia = User.isManager(utente.perm);
|
||
} else if (destin === Destin.TUTTI) {
|
||
invia = true;
|
||
} else if (destin === Destin.PAOLO) {
|
||
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.MSG_TO_NAVE) {
|
||
// invia = !await Nave.findDonatoreByNave(this.idapp, rec.extraparam);
|
||
}
|
||
|
||
// TEST invia = true;
|
||
|
||
if (invia) {
|
||
let inviaveramente = false;
|
||
|
||
if (cmd === RICEVI_EMAIL) {
|
||
preparatesto += utente.email + ', ';
|
||
} else if (cmd === NOME_COGNOME) {
|
||
preparatesto += utente.name + ' ' + utente.surname + '(' +
|
||
utente.username + ')' + '\n';
|
||
} else if (cmd === CONTA_SOLO) {
|
||
// Niente
|
||
} else if (cmd === CHEDI_SE_IMBARCARTI) {
|
||
textdainviare = tools.gettranslate('VUOI_IMBARCARTI', lang);
|
||
|
||
FormDaMostrare = this.getInlineKeyboard(lang, [
|
||
{
|
||
text: Menu[lang].SI,
|
||
callback_data: InlineCmd.VOGLIO_IMBARCARMI + tools.SEP +
|
||
utente.username,
|
||
},
|
||
{
|
||
text: Menu[lang].NO,
|
||
callback_data: InlineCmd.NON_VOGLIO_IMBARCARMI +
|
||
tools.SEP +
|
||
utente.username,
|
||
},
|
||
]);
|
||
inviaveramente = true;
|
||
} else {
|
||
inviaveramente = true;
|
||
}
|
||
|
||
if (inviaveramente) {
|
||
textdainviare = tools.convertSpecialTags(utente, textdainviare);
|
||
|
||
if (destin === Destin.A_UTENTE) {
|
||
await this.sistemaRecDest(rec, msg);
|
||
await this.sendMsg(utente.profile.teleg_id,
|
||
'[' + rec.username_bo + ' ti scrive]:\n' +
|
||
textdainviare, MenuChat);
|
||
} else {
|
||
|
||
// if (chiedisino) {
|
||
// this.ChiediSINO(msg, textdainviare);
|
||
// } else {
|
||
// TEST
|
||
|
||
let telegid = utente.profile.teleg_id;
|
||
// if (process.env.PROD === "0") {
|
||
// telegid = 12429864;
|
||
// }
|
||
await this.sendMsg(telegid, textdainviare, null,
|
||
FormDaMostrare);
|
||
|
||
// break;
|
||
}
|
||
await tools.snooze(100);
|
||
|
||
nummsgsent++;
|
||
}
|
||
|
||
if (!SendMsgCmd.includes(cmd)) {
|
||
if ((nummsgsent % 100) === 0) {
|
||
myid = await this.sendMsg(msg.chat.id, nummsgsent + ' ' +
|
||
getstr(this.getlang(msg), 'MSG_MSG_INCORSO'), null,
|
||
null, myid);
|
||
await tools.snooze(100);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
let msgris = '';
|
||
if (cmd === CONTA_SOLO) {
|
||
msgris = nummsgsent + ' ' +
|
||
getstr(this.getlang(msg), 'MSG_MSG_TOSENT');
|
||
} else if (cmd === NOME_COGNOME) {
|
||
msgris = nummsgsent + ' ' + 'Utenti';
|
||
await this.sendMsg(msg.chat.id, msgris);
|
||
msgris = preparatesto;
|
||
} else if (cmd === RICEVI_EMAIL) {
|
||
msgris = nummsgsent + ' ' + 'Email';
|
||
await this.sendMsg(msg.chat.id, msgris);
|
||
msgris = preparatesto;
|
||
} else {
|
||
if (destin !== Destin.DOMANDA && destin !== Destin.RISPOSTA) {
|
||
msgris = nummsgsent + ' ' +
|
||
getstr(this.getlang(msg), 'MSG_MSG_SENT');
|
||
}
|
||
}
|
||
|
||
if (destin === Destin.A_UTENTE) {
|
||
const recdest = await this.sistemaRecDest(rec);
|
||
if (!!recdest) {
|
||
await this.sendMsg(msg.chat.id,
|
||
'Conversazione Iniziata con ' + rec.msgall_username_specifico +
|
||
' !', MenuChat);
|
||
} else {
|
||
await this.sendMsg(msg.chat.id,
|
||
'Utente ' + rec.msgall_username_specifico +
|
||
' non presente sul BOT !');
|
||
}
|
||
} else {
|
||
if (msgris) {
|
||
tools.writeEventsLog(msgris);
|
||
await this.sendMsg(msg.chat.id, msgris);
|
||
}
|
||
}
|
||
}
|
||
rec.start_write_msgall = false;
|
||
} catch (e) {
|
||
console.error(e.message);
|
||
}
|
||
}
|
||
|
||
selectMenuHelp(msg) {
|
||
return ((this.isSelMenu(msg, msg.text, 'INFO')) ||
|
||
(this.isSelMenu(msg, msg.text, 'ASSISTENZA')));
|
||
}
|
||
|
||
selectMenuLang(msg) {
|
||
return ((msg.text === Menu.LANG) || (msg.text === Menu.LANG_EN) ||
|
||
(msg.text === Menu.LANG_IT) || (msg.text === Menu.LANG_ES)
|
||
|| (msg.text === Menu.LANG_FR) || (msg.text === Menu.LANG_SI) ||
|
||
(msg.text === Menu.LANG_PT));
|
||
}
|
||
|
||
async setInit(msg) {
|
||
let status = this.getstatusInMemory(msg);
|
||
if (status === Status.NONE) {
|
||
await this.start(msg);
|
||
let status = this.getstatusInMemory(msg);
|
||
if (status !== Status.VERIFIED)
|
||
return Status.EXIT;
|
||
} else {
|
||
await this.setUser(msg);
|
||
}
|
||
|
||
return status;
|
||
}
|
||
|
||
async receiveMsg(msg) {
|
||
|
||
// Check if Username Telegram Present
|
||
if (!this.checkIfUsernameTelegramSet(msg)) {
|
||
return;
|
||
}
|
||
|
||
let status = await this.setInit(msg);
|
||
|
||
if (status === Status.EXIT) {
|
||
return;
|
||
}
|
||
|
||
const rec = this.getRecInMem(msg);
|
||
|
||
status = this.getstatus(rec);
|
||
if (status === Status.WAITFOR_USERNAME_TELEGRAM && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) {
|
||
// await this.setUsernameBo(msg);
|
||
await this.settotheDatabase(msg);
|
||
} else if (status === Status.WAITFOR_USERNAME_INVITANTE && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) {
|
||
await this.askUsernameInvitante(msg);
|
||
// await this.settotheDatabase(msg);
|
||
} else if (status === Status.SET_USERNAME_INVITANTE) {
|
||
await this.setUsernameInvitante(msg);
|
||
} else if (status === Status.NONE) {
|
||
await this.start(msg);
|
||
} else if (status === Status.VERIFIED) {
|
||
let normale = true;
|
||
if (rec.msgall_status === StatusMSGALL.CONFIRM) {
|
||
if (this.isSelMenu(msg, msg.text, 'SI')) {
|
||
// Take msg to send to ALL
|
||
await this.sendMsgToAll(rec, msg, rec.msgtosent, rec.msgall_achi);
|
||
} else {
|
||
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;
|
||
} else if (rec.msgall_status === StatusMSGALL.ASK) {
|
||
if (!this.isSelMenu(msg, msg.text, 'INDIETRO')) {
|
||
rec.msgtosent = msg.text;
|
||
rec.msgall_status = StatusMSGALL.CONFIRM;
|
||
const cmd = rec.msgtosent.toLowerCase();
|
||
let achi = this.getDestinStr(msg, rec.msgall_achi, rec);
|
||
let domanda = '';
|
||
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);
|
||
} else {
|
||
rec.msgall_status = StatusMSGALL.NONE;
|
||
await
|
||
this.msgScegliMenu(msg);
|
||
}
|
||
normale = false;
|
||
}
|
||
|
||
if (normale) {
|
||
// Check Menu
|
||
await this.isMenu(rec, msg, msg.text, false);
|
||
}
|
||
} else {
|
||
await this.isMenuNotVerified(rec, msg, false);
|
||
}
|
||
}
|
||
|
||
async asktoRegistrationByLink(msg) {
|
||
|
||
let rec = this.getRecInMem(msg);
|
||
|
||
let visu = false;
|
||
|
||
if (!rec) {
|
||
rec = await this.addUser(msg);
|
||
|
||
visu = true;
|
||
|
||
}
|
||
|
||
if (rec && !rec.username_bo)
|
||
visu = true;
|
||
|
||
if (visu) {
|
||
|
||
const status = this.getstatus(rec);
|
||
if (status === Status.SET_USERNAME_INVITANTE && rec.aportador_solidario) {
|
||
let linkreg = tools.getLinkRegByIdAppAndMsgStrutt(this.idapp, msg, rec);
|
||
|
||
if (process.env.LOCALE === '1') {
|
||
linkreg = 'http://192.168.1.115:8084/signup/' + rec.aportador_solidario + '/' + msg.from.username + '/' + msg.from.id;
|
||
}
|
||
|
||
const keyb = this.getInlineKeyboard(this.getlang(msg), [
|
||
{
|
||
text: '✅ CLICCA QUI ',
|
||
url: linkreg,
|
||
},
|
||
]);
|
||
|
||
// await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), printf(txt.MSG_ASK_USERNAME_BO, tools.getHostByIdApp(this.idapp))));
|
||
await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), 'MSG_SIGNUP', tools.getNomeAppByIdApp(this.idapp)), null, keyb);
|
||
|
||
} else if (status === Status.WAITFOR_USERNAME_INVITANTE) {
|
||
await this.askUsernameInvitante(msg);
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
|
||
}
|
||
|
||
async setUser(msg) {
|
||
let id = this.getchatid(msg);
|
||
|
||
const user = await User.UserByIdTelegram(this.idapp, id);
|
||
let rec = this.getRecInMem(msg);
|
||
if (user && rec) {
|
||
rec.user = user;
|
||
}
|
||
}
|
||
|
||
async setUserbyUsername(username) {
|
||
const user = await User.findByUsername(this.idapp, username);
|
||
let rec = this.arrUsers.find((rec) => rec.username_bo === username);
|
||
if (user && rec) {
|
||
rec.user = user;
|
||
}
|
||
|
||
}
|
||
|
||
getchatid(msg) {
|
||
if (msg.from.is_bot)
|
||
return msg.chat.id;
|
||
else
|
||
return msg.from.id;
|
||
}
|
||
|
||
async alreadyExist(msg) {
|
||
const id = this.getchatid(msg);
|
||
let rec = null;
|
||
try {
|
||
const user = await User.UserByIdTelegram(this.idapp, id);
|
||
let rec = this.getRecInMem(msg);
|
||
if (user && !rec) {
|
||
rec = this.addUser(msg);
|
||
}
|
||
if (rec) {
|
||
rec.user = user;
|
||
if (user)
|
||
rec.username_bo = user.username;
|
||
else
|
||
rec.username_bo = '';
|
||
}
|
||
} catch (e) {
|
||
console.error('Error: ', e);
|
||
}
|
||
return !!rec;
|
||
}
|
||
|
||
updateMenuBot() {
|
||
for (let rec of this.arrUsers) {
|
||
rec.menuDb = null;
|
||
rec.datemenu_updated = null;
|
||
}
|
||
}
|
||
|
||
addUser(msg) {
|
||
const lang = this.getlang(msg);
|
||
const code = 100000 + Math.round(Math.random() * 899999);
|
||
|
||
const rec = {
|
||
id: this.getchatid(msg),
|
||
code,
|
||
lang,
|
||
statusmsg: 0,
|
||
msgcodeprec: '',
|
||
sex: 0,
|
||
numdomande: 0,
|
||
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,
|
||
pageChange: false,
|
||
menuSaved: {},
|
||
pagenow: 1,
|
||
menuDb: null,
|
||
aportador_solidario: '',
|
||
};
|
||
|
||
if (!msg.from.username) {
|
||
rec.status = Status.WAITFOR_USERNAME_TELEGRAM;
|
||
} else {
|
||
rec.status = Status.WAITFOR_USERNAME_INVITANTE;
|
||
}
|
||
|
||
this.arrUsers.push(rec);
|
||
|
||
return rec;
|
||
|
||
}
|
||
|
||
async insertIntoDB(msg) {
|
||
|
||
return this.asktoRegistrationByLink(msg);
|
||
|
||
}
|
||
|
||
menuisVisible(idapp, menu) {
|
||
|
||
}
|
||
|
||
async loadMenuFromDb(idapp, id) {
|
||
try {
|
||
let load = false;
|
||
const check = true;
|
||
|
||
const recuser = this.getRecInMemById(id);
|
||
if (recuser) {
|
||
if (!recuser.datemenu_updated)
|
||
load = true;
|
||
}
|
||
if (check) {
|
||
if (recuser) {
|
||
if (!(recuser.menuSaved[idapp]))
|
||
load = true;
|
||
|
||
if (recuser.menuDb || recuser.pageChange)
|
||
load = true;
|
||
}
|
||
}
|
||
if (load) {
|
||
|
||
// Check if you are Admin
|
||
const user = await User.UserByIdTelegram(idapp, id);
|
||
// let isAdmin = user ? user.profile.manage_telegram && user.username === 'paoloar77' : false;
|
||
let isAdmin = user ? user.profile.manage_telegram : false;
|
||
const isManager = user ? user.profile.manage_telegram : false;
|
||
const isVerified = user ? user.profile.teleg_id > 0 && user.verified_by_aportador : false;
|
||
|
||
recuser.menuDb = await MyBot.findAllIdApp(idapp);
|
||
|
||
let arrlang = {};
|
||
|
||
let riga = 0;
|
||
let arrtemp = [];
|
||
let lang = '';
|
||
|
||
for (const rec of recuser.menuDb) {
|
||
rec.active_mem = false;
|
||
if (rec.active && rec.page === recuser.pagenow
|
||
&& (tools.isBitAttivoESelez(rec.visibility,
|
||
shared_consts.VISIB_ONLY_ADMIN, isAdmin) &&
|
||
tools.isBitAttivoESelez(rec.visibility,
|
||
shared_consts.VISIB_ONLY_MANAGER, isManager) &&
|
||
tools.isBitAttivoESelez(rec.visibility,
|
||
shared_consts.VISIB_ONLYIF_VERIFIED, isVerified))
|
||
) {
|
||
rec.active_mem = true;
|
||
if (true) {
|
||
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();
|
||
|
||
recuser.pageChange = false;
|
||
recuser.menuSaved[idapp] = arrlang;
|
||
}
|
||
return recuser ? recuser.menuSaved[idapp] : null;
|
||
} 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 recuser.menuDb) {
|
||
if (rec.active_mem) {
|
||
if (rec.idapp === idapp && rec.lang === lang &&
|
||
rec.label.toLowerCase() === testo) {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
async getValueMenu(idapp, recuser, msg, testo, lang) {
|
||
try {
|
||
if (recuser) {
|
||
|
||
for (const recdb of recuser.menuDb) {
|
||
if (recdb.active_mem) {
|
||
if (recdb.idapp === idapp && recdb.lang === lang &&
|
||
recdb.label.toLowerCase() === testo) {
|
||
if (recdb.type === shared_consts.BOTTYPE_TEXT) {
|
||
return recdb.value;
|
||
} else if (recdb.type === shared_consts.BOTTYPE_LINK) {
|
||
//++TODO: Link diretto !?
|
||
return recdb.value;
|
||
} else if (recdb.type === shared_consts.BOTTYPE_PAGE) {
|
||
if (tools.isNumber(recdb.value)) {
|
||
recuser.pagenow = parseInt(recdb.value);
|
||
recuser.pageChange = true;
|
||
// this.setRecByUsername(recuser.username, recuser);
|
||
}
|
||
return '';
|
||
} else if (recdb.type === shared_consts.BOTTYPE_MENU) {
|
||
if (recdb.value) {
|
||
this.isMenu(recuser, msg, recdb.value, true);
|
||
return shared_consts.RIS_OK;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return '';
|
||
} catch (e) {
|
||
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;
|
||
if (!!keyb) {
|
||
mykeyb = this.getmenuKey(keyb, lang);
|
||
}
|
||
if (mykeyb === null) {
|
||
mykeyb = [];
|
||
}
|
||
// console.log('mykeyboard', mykeyb);
|
||
return mykeyb;
|
||
}
|
||
|
||
modificaMsg(chatid, idmodif, text) {
|
||
const form = {
|
||
'chat_id': chatid,
|
||
'message_id': idmodif,
|
||
};
|
||
|
||
try {
|
||
return this.bot.editMessageText(text, form);
|
||
} catch (e) {
|
||
console.log('Err Telegram: ' + e);
|
||
}
|
||
|
||
}
|
||
|
||
async _inviaMsg(id, text, form, menu, msg_id, chat_id, ripr_menuPrec, opt) {
|
||
if (!text)
|
||
return 0;
|
||
|
||
if (process.env.LOCALE === '1') {
|
||
if (id !== ADMIN_IDTELEGRAM_TEST)
|
||
id = '12429864';
|
||
}
|
||
|
||
if (!!msg_id) {
|
||
return this.modificaMsg(chat_id, msg_id, text);
|
||
}
|
||
|
||
const recmem = this.getRecInMemById(id);
|
||
|
||
if (!menu) {
|
||
if (recmem) {
|
||
if (recmem.msgall_username_specifico !== '') {
|
||
menu = MenuChat;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (recmem) {
|
||
recmem.lastmenu = menu;
|
||
}
|
||
|
||
if (ripr_menuPrec) {
|
||
if (recmem && !!recmem.lastmenu) {
|
||
menu = recmem.lastmenu;
|
||
}
|
||
}
|
||
|
||
let mylang = 'it';
|
||
|
||
if (!!recmem) {
|
||
mylang = recmem.lang;
|
||
}
|
||
|
||
try {
|
||
console.log('<<< SEND MSG TELEGRAM: >>> ', text.substring(0, 100));
|
||
text = text.replace(/<br>/g, '\n');
|
||
text = text.replace(/<br\/>/g, '\n');
|
||
text = text.replace(/<div>/g, '');
|
||
text = text.replace(/<font/g, '<pre');
|
||
text = text.replace(/<\/font>/g, '</pre>');
|
||
text = text.replace(/<span/g, '<pre');
|
||
text = text.replace(/<\/span>/g, '</pre>');
|
||
text = text.replace(/<p /g, '<pre ');
|
||
text = text.replace(/<\/p>/g, '</pre>');
|
||
text = text.replace(/<\/div>/g, '\n');
|
||
// text = text.replace(/<\/div>/g, '');
|
||
text = text.replace(/ /g, ' ');
|
||
|
||
if (!form) {
|
||
form = {
|
||
'parse_mode': 'HTML',
|
||
'message_id': msg_id,
|
||
'reply_markup': {
|
||
'resize_keyboard': true,
|
||
'keyboard': await this.getKeyboard(id, menu, mylang),
|
||
},
|
||
};
|
||
}
|
||
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)) {
|
||
blocked = true;
|
||
}
|
||
if (!blocked) {
|
||
console.error(e.message);
|
||
}
|
||
if (blocked) {
|
||
User.SetTelegramWasBlocked(this.idapp, id);
|
||
// ++Todo: DA FARE ! local_sendMsgTelegramToTheManagers(this.idapp, addtext + text);
|
||
}
|
||
return 0;
|
||
});
|
||
} catch (e) {
|
||
console.error(e, 'text', text);
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
async SendMsgToUser(msg, rec, username, text) {
|
||
if (rec.msg_wait) {
|
||
await this.menumsgGenerico(msg, Destin.A_UTENTE, username);
|
||
rec.msg_wait = false;
|
||
} else {
|
||
const telegid = await User.TelegIdByUsername(this.idapp, username);
|
||
if (telegid > 0) {
|
||
await this.sistemaRecDest(rec, msg);
|
||
// await this.sendMsg(msg.chat.id, '[Msg inviato a ' + username + ']: ');
|
||
await this.sendMsg(telegid,
|
||
Menu.CHAT_PERSONALE + '[' + rec.username_bo + ' ti scrive]:\n' +
|
||
text, MenuChat);
|
||
} else {
|
||
await this.sendMsg(msg.chat.id, 'Username non valido');
|
||
rec.msgall_username_specifico = '';
|
||
}
|
||
}
|
||
}
|
||
|
||
async sendMsg(id, text, menu, form, msg_id, chat_id, ripr_menuPrec) {
|
||
|
||
if (!id || !text)
|
||
return false;
|
||
try {
|
||
|
||
if (text.length > 4090) {
|
||
let text1 = text.slice(0, 4090);
|
||
let text2 = text.slice(4090, text.length);
|
||
await this._inviaMsg(id, text1, form, menu, msg_id, chat_id,
|
||
ripr_menuPrec);
|
||
return await this._inviaMsg(id, text2, form, menu, msg_id, chat_id,
|
||
ripr_menuPrec);
|
||
} else {
|
||
return await this._inviaMsg(id, text, form, menu, msg_id, chat_id,
|
||
ripr_menuPrec);
|
||
}
|
||
} catch (e) {
|
||
console.error('Error sendMsg', e);
|
||
return null;
|
||
}
|
||
|
||
}
|
||
|
||
async sendMsgLog(id, text, menu, form, msg_id, chat_id, ripr_menuPrec) {
|
||
|
||
const rec = this.getRecInMemById(id);
|
||
const username = rec ? rec.username_bo : '';
|
||
|
||
console.log('Msg inviato a ', username, '(', id, ')', text);
|
||
return await this.sendMsg(id, text, menu, form, msg_id, chat_id, ripr_menuPrec);
|
||
}
|
||
|
||
getmenuKey(mymenu, lang) {
|
||
let mymenuout = null;
|
||
try {
|
||
mymenuout = mymenu[lang].menu;
|
||
} catch (e) {
|
||
if (!!mymenu['it'])
|
||
mymenuout = mymenu['it'].menu;
|
||
}
|
||
|
||
return mymenuout;
|
||
}
|
||
|
||
async setResetPwd(rec, msg) {
|
||
try {
|
||
if (rec.user) {
|
||
const idapp = this.idapp;
|
||
const username = rec.user.username;
|
||
const lang = rec.user.lang;
|
||
|
||
const link = await User.createNewRequestPwdByUsernameAndGetLink(idapp, username);
|
||
if (link) {
|
||
local_sendMsgTelegram(idapp, username, getstr(lang, 'MSG_RESETPWD') + '\n' + link);
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.error('Err', e);
|
||
}
|
||
}
|
||
|
||
async setPhotoProfile(user, telegid, showmsg = true) {
|
||
try {
|
||
if (user) {
|
||
const idapp = this.idapp;
|
||
const bot = this.bot;
|
||
const username = user.username;
|
||
const lang = user.lang;
|
||
const token = this.token;
|
||
const editprofile = tools.getHostByIdApp(idapp, true) + '/editprofile';
|
||
let myfileprofile = tools.getdirByIdApp(idapp, true) +
|
||
server_constants.DIR_UPLOAD + '/profile/' + username + '/';
|
||
let user_profile = bot.getUserProfilePhotos(telegid);
|
||
user_profile.then(function(res) {
|
||
if (res.photos[0]) {
|
||
var file_id = res.photos[0][2].file_id;
|
||
var file = bot.getFile(file_id);
|
||
file.then(function(result) {
|
||
|
||
const file_path = result.file_path;
|
||
const photo_url = 'https://api.telegram.org/file/bot' + token +
|
||
'/' + file_path;
|
||
// console.log('1) photo_url', photo_url);
|
||
let filename = tools.extractFileName(photo_url);
|
||
myfileprofile += filename;
|
||
|
||
const pathfile = tools.extractFilePath(myfileprofile);
|
||
tools.mkdirpath(pathfile);
|
||
|
||
// console.log('2) myfileprofile', pathfile);
|
||
return tools.downloadImage(photo_url, myfileprofile).
|
||
then((ris) => {
|
||
|
||
try {
|
||
let resized_img_small = tools.extractFilePath(myfileprofile) + '/' + server_constants.PREFIX_IMG_SMALL + filename;
|
||
// SMALL
|
||
|
||
// questa opzione 'failOnError' serve per risolvere l'errore (Error: VipsJpeg: Invalid SOS parameters for sequential JPEG
|
||
sharp(myfileprofile, {failOnError: false}).
|
||
resize(64, 64).
|
||
withMetadata().
|
||
toFile(resized_img_small);
|
||
} catch (e) {
|
||
console.error('setPhotoProfile sharp', e);
|
||
}
|
||
|
||
// console.log('3) setPicProfile ris', ris);
|
||
return User.setPicProfile(idapp, username, filename).
|
||
then((ris) => {
|
||
// console.log('4) sendMsg picprofile Copied !');
|
||
if (showmsg) {
|
||
local_sendMsgTelegram(idapp, username, printf(getstr(lang, 'MSG_SET_PICPROFILE'), editprofile));
|
||
}
|
||
});
|
||
// console.log('scaricato');
|
||
}).catch((err) => {
|
||
console.error('Error setPhotoProfile', err);
|
||
});
|
||
|
||
});
|
||
}
|
||
});
|
||
}
|
||
} catch (e) {
|
||
console.error('Error setPhotoProfile', e);
|
||
}
|
||
}
|
||
|
||
getInlineKeyboard(lang, arrrisp1, arrrisp2, arrrisp3) {
|
||
let mykeyb = {
|
||
parse_mode: 'HTML',
|
||
reply_markup: {
|
||
inline_keyboard: [],
|
||
},
|
||
};
|
||
|
||
// text
|
||
// callback_data
|
||
|
||
// url
|
||
|
||
const arrriga1 = [];
|
||
if (!!arrrisp1) {
|
||
for (const ris of arrrisp1) {
|
||
arrriga1.push(ris);
|
||
}
|
||
}
|
||
const arrriga2 = [];
|
||
if (!!arrrisp2) {
|
||
for (const ris of arrrisp2) {
|
||
arrriga2.push(ris);
|
||
}
|
||
}
|
||
const arrriga3 = [];
|
||
if (!!arrrisp3) {
|
||
for (const ris of arrrisp3) {
|
||
arrriga3.push(ris);
|
||
}
|
||
}
|
||
|
||
if (arrriga1.length > 0)
|
||
mykeyb.reply_markup.inline_keyboard.push(arrriga1);
|
||
if (arrriga2.length > 0)
|
||
mykeyb.reply_markup.inline_keyboard.push(arrriga2);
|
||
if (arrriga3.length > 0)
|
||
mykeyb.reply_markup.inline_keyboard.push(arrriga3);
|
||
|
||
return mykeyb;
|
||
}
|
||
|
||
async ChiediSINO(msg, domanda) {
|
||
|
||
const lang = this.getlang(msg);
|
||
|
||
this._inviaMsg(msg.from.id, domanda, {
|
||
'reply_markup': {
|
||
'resize_keyboard': true,
|
||
'one_time_keyboard': true,
|
||
'keyboard': this.getmenuKey(MenuYesNo, lang),
|
||
},
|
||
});
|
||
}
|
||
|
||
async ScegliLang(msg, lang) {
|
||
const rec = this.getRecInMem(msg);
|
||
if (rec) {
|
||
if (rec.user) {
|
||
User.SetLang(this.idapp, rec.user._id, lang);
|
||
rec.user.lang = lang;
|
||
}
|
||
rec.lang = lang;
|
||
|
||
// await this.sendMsg(msg.chat.id, lang);
|
||
|
||
this.msgScegliMenu(msg);
|
||
}
|
||
}
|
||
|
||
async msgScegliMenu(msg) {
|
||
this._inviaMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_SCEGLI_MENU'), {
|
||
'parse_mode': 'HTML',
|
||
'reply_markup': {
|
||
'resize_keyboard': true,
|
||
'keyboard': await this.getKeyboard(msg.from.id, undefined,
|
||
this.getlang(msg)),
|
||
},
|
||
});
|
||
}
|
||
}
|
||
|
||
const arrTelegram = [];
|
||
|
||
function getclTelegBytoken(token) {
|
||
const rec = arrTelegram.find((rec) => rec.cl.token === token);
|
||
if (!!rec)
|
||
return rec.cl;
|
||
else
|
||
return null;
|
||
}
|
||
|
||
function getclTelegByidapp(idapp) {
|
||
// ****************************
|
||
if (appTelegramFinti.includes(idapp)) {
|
||
const ind = appTelegramFinti.indexOf(idapp);
|
||
if (ind >= 0)
|
||
idapp = appTelegramDest[ind]; // Invia
|
||
}
|
||
|
||
const rec = arrTelegram.find((rec) => rec.idapp === idapp);
|
||
if (!!rec)
|
||
return rec.cl;
|
||
else
|
||
return null;
|
||
}
|
||
|
||
//if (!tools.testing() || true) {
|
||
if (true) {
|
||
let arrTeleg = appTelegram;
|
||
if (process.env.NODE_ENV === 'development')
|
||
arrTeleg = appTelegram_DEVELOP;
|
||
else if (process.env.NODE_ENV === 'test')
|
||
arrTeleg = appTelegram_TEST;
|
||
|
||
var internetAvailable = require('internet-available');
|
||
|
||
internetAvailable().then(() => {
|
||
// ..
|
||
console.log('TELEGRAM STARTING.... NODE_ENV:' + process.env.NODE_ENV);
|
||
|
||
for (const idapp of arrTeleg) {
|
||
|
||
try {
|
||
const token = tools.getTelegramKeyByIdApp(idapp);
|
||
const nomebot = tools.getTelegramBotNameByIdApp(idapp);
|
||
|
||
// console.log('idapp', idapp, 'token', token);
|
||
|
||
if (!!token) {
|
||
console.log('*** START BOT ' + nomebot);
|
||
const bot = new TelegramBot(token, {polling: true});
|
||
|
||
if (url === '0') {
|
||
const ngrok = require('ngrok');
|
||
ngrok.connect(port, function onConnect(error, u) {
|
||
if (error) throw error;
|
||
url = u;
|
||
console.log(`Game tunneled at ${url}`);
|
||
});
|
||
}
|
||
|
||
arrTelegram.push({idapp, cl: new Telegram(idapp, bot)});
|
||
|
||
bot.onText(/\/start/, (msg) => {
|
||
const myclTelegram = getclTelegBytoken(bot.token);
|
||
|
||
myclTelegram.start(msg);
|
||
|
||
});
|
||
|
||
// Matches "/echo [whatever]"
|
||
bot.onText(/\/echo (.+)/, (msg, match) => {
|
||
// 'msg' is the received Message from Telegram
|
||
// 'match' is the result of executing the regexp above on the text content
|
||
// of the message
|
||
|
||
const chatId = msg.chat.id;
|
||
const resp = match[1]; // the captured "whatever"
|
||
|
||
// send back the matched "whatever" to the chat
|
||
bot.sendMessage(chatId, resp);
|
||
});
|
||
|
||
// Listen for any kind of message. There are different kinds of
|
||
// messages.
|
||
bot.on('message', (msg) => {
|
||
|
||
const myclTelegram = getclTelegBytoken(bot.token);
|
||
|
||
// const chatId = msg.chat.id;
|
||
|
||
myclTelegram.receiveMsg(msg);
|
||
});
|
||
|
||
// Handle callback queries
|
||
bot.on('callback_query', async (callbackQuery) => {
|
||
// console.log('callback_query', callbackQuery);
|
||
|
||
try {
|
||
const myclTelegram = getclTelegBytoken(bot.token);
|
||
|
||
let dataarr = [];
|
||
let data = {
|
||
action: '',
|
||
username: '',
|
||
userDest: '',
|
||
groupId: 0,
|
||
circuitId: '',
|
||
};
|
||
|
||
const datastr = callbackQuery.data;
|
||
if (!!datastr) {
|
||
dataarr = datastr.split(tools.SEP);
|
||
if (!!dataarr) {
|
||
data = {
|
||
action: dataarr[0],
|
||
username: dataarr[1] ? dataarr[1] : '',
|
||
userDest: dataarr[2] ? dataarr[2] : '',
|
||
groupId: dataarr[3] ? parseInt(dataarr[3]) : '',
|
||
circuitId: dataarr[4] ? dataarr[4] : '',
|
||
};
|
||
}
|
||
}
|
||
const msg = callbackQuery.message;
|
||
const opts = {
|
||
chat_id: msg.chat.id,
|
||
message_id: msg.message_id,
|
||
};
|
||
|
||
const status = await myclTelegram.setInit(msg);
|
||
|
||
const rec = myclTelegram.getRecInMem(msg);
|
||
|
||
const username_action = rec.user ? rec.user.username : '';
|
||
|
||
data.username = await User.getRealUsernameByUsername(idapp, data.username);
|
||
data.userDest = await User.getRealUsernameByUsername(idapp, data.userDest);
|
||
|
||
const user = await User.getUserShortDataByUsername(idapp, data.username);
|
||
const userDest = data.userDest ? await User.getUserShortDataByUsername(idapp, data.userDest) : null;
|
||
|
||
let group = null;
|
||
let circuit = null;
|
||
if (data.groupId) {
|
||
group = await MyGroup.findOne({idapp, _id: data.groupId}).lean();
|
||
}
|
||
if (data.circuitId) {
|
||
circuit = await Circuit.findOne({idapp, _id: data.circuitId}).lean();
|
||
}
|
||
|
||
let cmd = 0;
|
||
|
||
if (!!rec) {
|
||
if (!!user) {
|
||
if (data.action === InlineCmd.VOGLIO_IMBARCARMI) {
|
||
// Controlla se è qualificato!
|
||
const mydata = tools.AddDate(user.date_reg, 7);
|
||
|
||
// bot.editMessageText(tools.gettranslate('ADDED_TOLISTAINGRESSO', user.lang), opts);
|
||
|
||
} else if (data.action === InlineCmd.NON_VOGLIO_IMBARCARMI) {
|
||
await User.NonVoglioImbarcarmi(user.idapp, user.username);
|
||
|
||
const msgadd = '[' + user.username + '] ' + user.name + ' ' +
|
||
user.surname + ' ha risposto che NON VUOLE IMBARCARSI !';
|
||
|
||
await local_sendMsgTelegramToTheManagers(user.idapp, msgadd,
|
||
msg, false); // Anche a STAFF
|
||
} else if (data.action ===
|
||
InlineZoomConferma.CONFERMA_ZOOM_PRESENZA) {
|
||
|
||
await User.setZoomPresenza(user.idapp, user._id, true);
|
||
|
||
} else if (data.action ===
|
||
InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA) {
|
||
|
||
await User.setZoomPresenza(user.idapp, user._id, false);
|
||
|
||
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.REGISTRATION) {
|
||
const changed = await myclTelegram.setCmdToUsername(rec,
|
||
data.username,
|
||
Cmd.VALIDATE_REGISTRATION, true);
|
||
|
||
if (changed) {
|
||
const req = tools.getReqByPar(user.idapp, username_action);
|
||
await User.setFriendsCmd(req, user.idapp, data.username, userDest.username, shared_consts.FRIENDSCMD.SETFRIEND);
|
||
|
||
await User.setaportador_solidario(user.idapp, data.username, userDest.username);
|
||
|
||
const msgOrig = printf(getstr(userDest.lang, 'MSG_APORTADOR_DEST_CONFIRMED'), `${userDest.username}`,
|
||
tools.getHostByIdApp(user.idapp));
|
||
const msgDest = printf(getstr(user.lang, 'MSG_APORTADOR_CONFIRMED'), `${user.username}`, `${userDest.username}`);
|
||
|
||
await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
|
||
await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
|
||
}
|
||
|
||
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.REGISTRATION) {
|
||
if (userDest.username === user.aportador_solidario) {
|
||
const changed = await myclTelegram.setCmdToUsername(rec, data.username,
|
||
Cmd.VALIDATE_REGISTRATION, false);
|
||
|
||
if (changed) {
|
||
const nomeDest = tools.getNomeCognomeEUserNameByUser(userDest);
|
||
const nomestr = tools.getNomeCognomeEUserNameByUser(user);
|
||
|
||
const msgOrig = printf(getstr(userDest.lang, 'MSG_APORTADOR_DEST_NOT_CONFIRMED', nomeDest));
|
||
const msgDest = printf(getstr(user.lang, 'MSG_APORTADOR_NOT_CONFIRMED'), nomestr);
|
||
|
||
await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
|
||
await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
|
||
}
|
||
}
|
||
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.RICHIESTA_GRUPPO) {
|
||
|
||
if (group) {
|
||
cmd = shared_consts.GROUPSCMD.SETGROUP;
|
||
const foundIfAlreadyGroup = await User.ifAlreadyInGroup(user.idapp, data.username, group.groupname);
|
||
|
||
if (!foundIfAlreadyGroup) {
|
||
// Aggiungilo nel Gruppo
|
||
await User.setGroupsCmd(user.idapp, data.username, group.groupname, cmd, 0, username_action);
|
||
}
|
||
|
||
}
|
||
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.RICHIESTA_GRUPPO) {
|
||
|
||
if (group) {
|
||
cmd = shared_consts.GROUPSCMD.REFUSE_REQ_GROUP;
|
||
const foundIfAlreadyGroup = await User.ifAlreadyInGroup(user.idapp, data.username, group.groupname);
|
||
|
||
if (foundIfAlreadyGroup) {
|
||
// Rimuovilo nel Gruppo
|
||
await User.setGroupsCmd(user.idapp, data.username, group.groupname, cmd, 0, username_action);
|
||
}
|
||
|
||
}
|
||
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.RICHIESTA_CIRCUIT) {
|
||
|
||
if (circuit) {
|
||
cmd = shared_consts.CIRCUITCMD.SET;
|
||
const foundIfAlreadyCircuit = await User.ifAlreadyInCircuit(user.idapp, data.username, circuit.name);
|
||
|
||
if (!foundIfAlreadyCircuit) {
|
||
// Aggiungilo nel Circuito
|
||
await User.setCircuitCmd(user.idapp, data.username, circuit.name, cmd, 0, username_action);
|
||
}
|
||
|
||
}
|
||
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.RICHIESTA_CIRCUIT) {
|
||
|
||
if (circuit) {
|
||
cmd = shared_consts.CIRCUITCMD.REFUSE_REQ;
|
||
const foundIfAlreadyCircuit = await User.ifAlreadyInCircuit(user.idapp, data.username, circuit.name);
|
||
|
||
if (foundIfAlreadyCircuit) {
|
||
// Rimuovilo nel Circuito
|
||
await User.setCircuitCmd(user.idapp, data.username, circuit.name, cmd, 0, username_action);
|
||
}
|
||
|
||
}
|
||
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.RICHIESTA_AMICIZIA) {
|
||
|
||
if (userDest) {
|
||
cmd = shared_consts.FRIENDSCMD.SETFRIEND;
|
||
const foundIfAlreadyFriend = await User.isMyFriend(user.idapp, data.username, data.userDest);
|
||
|
||
if (!foundIfAlreadyFriend) {
|
||
// Aggiungilo nelle Amicizie
|
||
const req = tools.getReqByPar(user.idapp, username_action);
|
||
const ris = await User.setFriendsCmd(req, user.idapp, data.username, data.userDest, cmd);
|
||
|
||
}
|
||
|
||
}
|
||
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.RICHIESTA_AMICIZIA) {
|
||
|
||
if (userDest) {
|
||
cmd = shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS;
|
||
// Rimuovilo nelle Amicizie
|
||
const req = tools.getReqByPar(user.idapp, username_action);
|
||
const ris = await User.setFriendsCmd(req, user.idapp, data.username, data.userDest, cmd);
|
||
if (ris) {
|
||
const msgDest = printf(getstr(user.lang, 'MSG_FRIENDS_NOT_ACCEPTED_CONFIRMED'), data.username);
|
||
|
||
await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.error('Error BOT callback_query', e);
|
||
}
|
||
|
||
/*
|
||
let text;
|
||
|
||
if (action === 'edit') {
|
||
text = 'Edited Text';
|
||
}
|
||
|
||
bot.editMessageText(text, opts);
|
||
*/
|
||
|
||
// bot.answerCallbackQuery(callbackQuery.id, { url });
|
||
});
|
||
}
|
||
} catch (e) {
|
||
console.error('Error Telegram LOOP : ' + e.message);
|
||
}
|
||
}
|
||
}).catch(() => {
|
||
arrTeleg = [];
|
||
});
|
||
|
||
}
|
||
|
||
module.exports = MyTelegramBot;
|