2020-01-03 01:52:49 +01:00
const tools = require ( '../tools/general' ) ;
2022-03-02 20:18:29 +01:00
const appTelegram = [ tools . FREEPLANET , tools . RISO ] ;
2021-12-23 14:13:40 +01:00
2022-03-02 20:18:29 +01:00
const appTelegram _TEST = [ tools . FREEPLANET , tools . PDNM , tools . RISO ] ;
const appTelegram _DEVELOP = [ tools . RISO ] ;
2020-01-03 01:52:49 +01:00
2022-01-07 01:18:01 +01:00
const appTelegramFinti = [ '2' , tools . CNM ] ;
const appTelegramDest = [ tools . FREEPLANET , tools . FREEPLANET ] ;
2020-02-07 22:08:46 +01:00
2020-01-03 01:52:49 +01:00
const printf = require ( 'util' ) . format ;
2022-01-07 01:18:01 +01:00
const { User } = require ( '../models/user' ) ;
2022-03-06 00:48:33 +01:00
const { MyGroup } = require ( '../models/mygroup' ) ;
2022-09-02 02:25:38 +02:00
const { Circuit } = require ( '../models/circuit' ) ;
2022-01-07 01:18:01 +01:00
const { CalZoom } = require ( '../models/calzoom' ) ;
const { MyBot } = require ( '../models/bot' ) ;
2020-02-07 22:08:46 +01:00
const shared _consts = require ( '../tools/shared_nodejs' ) ;
2020-01-03 01:52:49 +01:00
2022-03-09 14:53:09 +01:00
const sharp = require ( 'sharp' ) ;
2022-02-27 16:56:02 +01:00
const server _constants = require ( '../tools/server_constants' ) ;
2022-02-03 00:33:15 +01:00
// const {ListaIngresso} = require('../models/listaingresso');
2022-01-07 01:18:01 +01:00
const { MsgTemplate } = require ( '../models/msg_template' ) ;
2020-06-08 13:31:05 +02:00
2022-03-06 00:48:33 +01:00
const globalTables = require ( '../tools/globalTables' ) ;
2020-01-03 22:02:18 +01:00
const emoji = require ( 'node-emoji' ) ;
2022-01-07 01:18:01 +01:00
const i18n = require ( 'i18n' ) ;
2020-01-20 01:48:25 +01:00
2020-06-08 13:31:05 +02:00
let url = process . env . URL || 'https://<PUBLIC-URL>' ;
2022-01-07 01:18:01 +01:00
const Benvenuto = emoji . get ( 'heartbeat' ) + emoji . get ( 'heartbeat' ) +
emoji . get ( 'heartbeat' ) + ' Benvenuto!' ;
2020-01-03 01:52:49 +01:00
2020-01-20 01:48:25 +01:00
const emo = {
2020-02-19 16:09:16 +01:00
JOY : emoji . get ( 'joy' ) ,
JOY2 : emoji . get ( 'rolling_on_the_floor_laughing' ) ,
DANCER : emoji . get ( 'dancer' ) ,
2020-01-21 01:37:15 +01:00
STARS : emoji . get ( 'stars' ) ,
FIRE : emoji . get ( 'fire' ) ,
2020-02-19 16:09:16 +01:00
SUN : emoji . get ( 'sunrise' ) ,
2020-02-07 22:08:46 +01:00
TV : emoji . get ( 'tv' ) ,
NEWSPAPER : emoji . get ( 'newspaper' ) ,
2020-02-19 16:09:16 +01:00
KISS : emoji . get ( 'kiss' ) ,
2020-02-07 22:08:46 +01:00
PENCIL : emoji . get ( 'pencil2' ) ,
2020-01-20 01:48:25 +01:00
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' ) ,
2020-02-19 16:09:16 +01:00
LEFT _FACING _FIST : emoji . get ( 'left-facing_fist' ) ,
2020-01-20 01:48:25 +01:00
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' ) ,
2020-03-10 21:44:14 +01:00
GIFT : emoji . get ( 'gift' ) ,
2020-02-05 00:39:25 +01:00
ROBOT _FACE : emoji . get ( 'robot_face' ) ,
ADMIN : emoji . get ( 'information_desk_person' ) ,
2020-02-19 16:09:16 +01:00
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 = {
2022-03-10 23:19:56 +01:00
OK : [ 'si' , 'ok' ] ,
CUORE : [ '❤️' , '💚️' , '💜' ] ,
2022-01-07 01:18:01 +01:00
CIAO : [
'ciao' ,
'ciaoo' ,
'hola' ,
'holaa' ,
'hey' ,
'salve' ,
'buongiorno' ,
'buondi' ,
'ciao ❤️' ] ,
2020-02-19 16:09:16 +01:00
CI _SEI : [ 'ci sei' , 'c\'è qualcuno' , 'c\'è nessuno' ] ,
CHI _SONO _IO : [ 'chi sono io' , 'chi sono' ] ,
2022-01-07 01:18:01 +01:00
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' ] ,
2020-02-19 16:09:16 +01:00
COSA _FAI : [ 'cosa fai' , 'cosa combini' , 'che fai' ] ,
QUANTI _ANNI _HAI : [ 'quanti anni hai' , 'che età hai' ] ,
2022-01-07 01:18:01 +01:00
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' ] ,
2020-02-19 16:09:16 +01:00
CHAT _EMPOWER : [ 'chat empower' ] ,
2022-01-07 01:18:01 +01:00
MASCHIO _FEMMINA : [
'sei uomo o donna' ,
'sei maschio o femmina' ,
'sei ragazzo o ragazza' ,
'che sesso hai' ] ,
2020-02-19 16:09:16 +01:00
DAMMI _UN _BACIO : [ 'dammi un bacio' , 'baciami' ] ,
HAHA : [ 'hahaha' , 'ahah' , '😂' ] ,
MI _AMI : [ 'mi ami' ] ,
TI _AMO : [ 'ti amo' , 'ti adoro' , 'ti lovvo' ] ,
2022-03-11 12:38:01 +01:00
PREGO : [ 'prego' , 'Prego ! 💋💋💋' ] ,
2022-01-07 01:18:01 +01:00
GRAZIE : [
'grazie ainy' ,
'grazie' ,
'grazie mille' ,
'graziee' ,
2022-03-06 00:48:33 +01:00
'grazie ❤' ,
'grazie️ ❤' ,
2022-01-07 01:18:01 +01:00
'grazie 😘' ,
'grazie😘' ] ,
2020-02-19 16:09:16 +01:00
PRINCIPE _AZZURRO : [ 'principe azzurro' ] ,
2022-02-21 13:12:27 +01:00
COSE _COVID : [
2022-03-01 23:50:58 +01:00
'cos\'è il covid' ,
'cosa è il covid' ,
] ,
2022-02-21 13:12:27 +01:00
COVID : [
2022-03-01 23:50:58 +01:00
'covid' ,
] ,
2022-01-07 01:18:01 +01:00
SPOSAMI : [
'sposami' ,
'vuoi sposar' ,
'sei sposat' ,
'ci sposiamo' ,
'ti sposo' ,
'sei sposat' ,
'mi sposi' ] ,
2020-02-19 16:09:16 +01:00
CHE _TEMPO _FA : [ 'che tempo' ] ,
NON _TROO _INVITATI : [ 'non trovo invitati' , 'non riesco a trovare invitati' ] ,
2022-03-01 23:50:58 +01:00
TROVAMI _UN _UOMO _DONNA : [
'trovami un uomo' ,
'trovami una donna' ,
'esiste una donna per me' ,
'esiste un uomo per me' ] ,
2022-01-07 01:18:01 +01:00
PAROLACCE : [
'stronz' ,
'fanculo' ,
'fottiti' ,
'cagare' ,
'ammazzat' ,
'muori' ,
'cretino' ,
'stupido' ] ,
2020-02-19 16:09:16 +01:00
COME _SI _CHIAMA : [ 'come si chiama' ] ,
2022-01-07 01:18:01 +01:00
PROSSIMO _ZOOM : [
'prossimo zoom' ,
'fare lo zoom' ,
'gli zoom' ,
'conferenz' ,
'zoom' ] ,
2020-02-19 16:09:16 +01:00
LAVAGNA : [ 'lavagna' , 'Lavagna' , 'LAVAGNA' ] ,
2022-02-21 13:12:27 +01:00
SEI _LIBERO _DI _RESPIRARE : [ 'sei libero di respirare' ] ,
2020-02-19 16:09:16 +01:00
SEI _LIBERO : [ 'sei liber' , 'sei sposat' , 'sei fidanzat' , 'sei single' ] ,
2022-01-07 01:18:01 +01:00
AIUTO : [
'help' ,
'aiuto' ,
'ho bisogno di' ,
'ho problemi' ,
'non riesco' ,
'mi puoi aiutare' ,
'mi aiuti' ,
'aiutami' ,
'posso chiederti' ,
'puoi aiutarmi' ] ,
2020-02-19 16:09:16 +01:00
UOMO : [ 'uomo' , 'maschio' ] ,
2022-01-07 01:18:01 +01:00
SORPRESA : [
'noo' ,
'davvero' ,
'sii' ,
'facciamo festa' ,
'è qui la festa' ,
'festa' ] ,
2020-02-19 16:09:16 +01:00
UGUALE : [ '👍🏻' , '✨' , '❤🏻' , '⭐' , '❤' , '❤❤' , '🤩' ] ,
SI : [ 'si' , 'yes' ] ,
NO : [ 'no' , 'noo' ] ,
DONNA : [ 'donna' , 'femmina' ] ,
FARE _DOMANDA : [ 'fare una domanda' , 'posso farti una domanda' ] ,
DIVENTERO _RICCA : [ 'diventerò ricc' ] ,
2022-03-03 20:32:04 +01:00
DOVE _VUOI _VIVERE : [ 'dove vuoi vivere' ] ,
2020-02-19 16:09:16 +01:00
MA _ALLORA : [ 'ma allora' ] ,
} ;
2021-12-29 18:26:08 +01:00
const MsgRisp = {
2022-01-07 01:18:01 +01:00
CHAT _EMPOWER : 'Entra nella Chat EMPOWER !!!\n' +
'https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g ' + emo . PURPLE _HEART +
emo . GIFT _HEART + emo . BLUE _HEART ,
2020-01-20 01:48:25 +01:00
} ;
function getemojibynumber ( number ) {
if ( number === 0 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'zero' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 1 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'one' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 2 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'two' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 3 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'three' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 4 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'four' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 5 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'five' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 6 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'six' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 7 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'seven' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 8 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'height' ) ;
2020-01-20 01:48:25 +01:00
} else if ( number === 9 ) {
2022-01-07 01:18:01 +01:00
return emoji . get ( 'nine' ) ;
2020-03-10 21:44:14 +01:00
} else {
return number ;
2020-01-20 01:48:25 +01:00
}
}
2020-01-03 01:52:49 +01:00
const Menu = {
2020-03-31 20:34:24 +02:00
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' ,
2020-01-20 01:48:25 +01:00
ADMIN : emoji . get ( 'information_desk_person' ) + ' Admin' ,
2022-03-02 20:18:29 +01:00
AIUTO : '🔮 Help' ,
2020-01-20 01:48:25 +01:00
ALTRO : emoji . get ( 'newspaper' ) + ' Altro' ,
2022-03-01 23:50:58 +01:00
SETPICPROFILE : '🖼 SetPicProfile' ,
2022-03-08 01:01:20 +01:00
RESETPWD : '🔑 SetResetPwd' ,
2022-02-26 17:35:50 +01:00
// 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)',
2022-01-07 01:18:01 +01:00
MSG _SI _INVITATI _NO _7REQ _INVITATI : emoji . get ( 'incoming_envelope' ) +
'Inv e NO 7 Req' ,
2020-02-07 22:08:46 +01:00
MSGSTAFF : emoji . get ( 'incoming_envelope' ) + ' Invia a STAFF' ,
2020-06-08 13:31:05 +02:00
MSGPAOLO : emoji . get ( 'incoming_envelope' ) + ' Invia a PAOLO' ,
2022-03-12 21:38:19 +01:00
RESTART _SRV : emoji . get ( 'incoming_envelope' ) + 'RestartServer' ,
REBOOT _SRV : emoji . get ( 'incoming_envelope' ) + 'RebootServer' ,
EXECSH : emoji . get ( 'incoming_envelope' ) + 'ExecSH' ,
LOG _SRV : '🖥Logserver.sh' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
ASSISTENZA : emoji . get ( 'open_hands' ) + ' Le Chat' ,
2020-03-31 20:34:24 +02:00
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' ,
2022-01-07 01:18:01 +01:00
NUOVOSITO : '' ,
2020-03-31 20:34:24 +02:00
} ,
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' ,
2021-12-23 14:13:40 +01:00
ASSISTENZA : emoji . get ( 'open_hands' ) + ' Chats' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
ASSISTENZA : emoji . get ( 'open_hands' ) + ' Les chats' ,
2020-03-31 20:34:24 +02:00
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' ,
2020-04-07 14:34:29 +02:00
LAVAGNA : emoji . get ( 'om_symbol' ) + ' Tabla' ,
LINK _CONDIVIDERE : emoji . get ( 'link' ) + ' Link za vpis oseb' ,
2020-03-31 20:34:24 +02:00
ZOOM : emoji . get ( 'information_source' ) + ' Zoom (Konference)' ,
INFO : emoji . get ( 'information_source' ) + ' Informacije' ,
2021-12-23 14:13:40 +01:00
ASSISTENZA : emoji . get ( 'open_hands' ) + ' jev klepet' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
ASSISTENZA : emoji . get ( 'open_hands' ) + ' Chats' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
ASSISTENZA : emoji . get ( 'open_hands' ) + ' Chats' ,
2020-03-31 20:34:24 +02:00
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' ,
} ,
2020-01-03 01:52:49 +01:00
} ;
2020-03-10 21:44:14 +01:00
const CONTA _SOLO = 'contasolo' ;
const RICEVI _EMAIL = 'riceviemail' ;
2020-06-08 13:31:05 +02:00
const NOME _COGNOME = 'nomecognome' ;
const CHEDI _SE _IMBARCARTI = 'chiedi_se_imbarcarti' ;
const InlineCmd = {
2020-09-04 00:06:49 +02:00
VOGLIO _IMBARCARMI : 'w_imb' ,
2022-01-07 01:18:01 +01:00
NON _VOGLIO _IMBARCARMI : 'nw_imb' ,
2020-09-04 00:06:49 +02:00
} ;
const InlineZoomConferma = {
CONFERMA _ZOOM _PRESENZA : 'conf_pres' ,
2022-01-07 01:18:01 +01:00
NON _CONFERMA _ZOOM _PRESENZA : 'nonconf_pres' ,
2020-06-08 13:31:05 +02:00
} ;
2020-03-10 21:44:14 +01:00
2022-01-16 23:21:03 +01:00
const InlineConferma = {
RISPOSTA _SI : 'r_s' ,
RISPOSTA _NO : 'r_n' ,
} ;
2022-01-07 01:18:01 +01:00
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]] },
// };
2020-01-20 01:48:25 +01:00
2021-12-23 14:13:40 +01:00
// const MenuStandard = {
// it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG]] },
// };
2020-03-31 20:34:24 +02:00
const MenuLang = {
2022-01-07 01:18:01 +01:00
it : {
menu : [
[ Menu . LANG _IT , Menu . LANG _EN ] ,
[ Menu . LANG _ES , Menu . LANG _FR ] ,
[ Menu . LANG _SI , Menu . LANG _PT , Menu . it . INDIETRO ] ] ,
} ,
2020-03-31 20:34:24 +02:00
} ;
const MenuYesNo = {
2022-01-07 01:18:01 +01:00
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 ] ] } ,
2020-03-31 20:34:24 +02:00
} ;
const MenuAdmin = {
2022-01-07 01:18:01 +01:00
it : {
2022-05-04 00:26:12 +02:00
menu : [
[ Menu . RESTART _SRV + ' 6711' , Menu . LOG _SRV + ' 6711' ] ,
[ Menu . REBOOT _SRV + ' 6711' , Menu . it . INDIETRO ] ] ,
2022-01-07 01:18:01 +01:00
} ,
2020-03-31 20:34:24 +02:00
} ;
const MenuSend = {
2022-01-07 01:18:01 +01:00
it : {
menu : [
[ CONTA _SOLO , RICEVI _EMAIL , NOME _COGNOME ] ,
[ CHEDI _SE _IMBARCARTI , Menu . it . INDIETRO ] ] ,
} ,
2020-03-31 20:34:24 +02:00
} ;
const MenuChat = {
2022-01-07 01:18:01 +01:00
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 ] ] } ,
2020-03-31 20:34:24 +02:00
} ;
2020-01-03 01:52:49 +01:00
2020-02-19 16:09:16 +01:00
const Sex = {
MALE : 1 ,
FEMALE : - 1 ,
} ;
2020-01-03 01:52:49 +01:00
const Status = {
2020-06-08 13:31:05 +02:00
EXIT : - 5 ,
2020-01-03 01:52:49 +01:00
NONE : 0 ,
VERIFIED : 1 ,
2022-05-04 00:26:12 +02:00
WAITFOR _USERNAME _TELEGRAM : 101 ,
WAITFOR _USERNAME _INVITANTE : 104 ,
SET _USERNAME _INVITANTE : 105 ,
CLICK _LINK _REG : 106 ,
2020-02-19 16:09:16 +01:00
WAITFOR _RISPOSTA : 110 ,
2020-01-03 01:52:49 +01:00
} ;
2021-12-29 18:26:08 +01:00
const Cmd = {
VALIDATE _REGISTRATION : 1 ,
2022-03-06 00:48:33 +01:00
RICHIESTA _GRUPPO : 2 ,
2022-09-02 02:25:38 +02:00
RICHIESTA _CIRCUIT : 3 ,
2021-12-29 18:26:08 +01:00
} ;
2020-03-10 21:44:14 +01:00
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 ,
2020-06-08 13:31:05 +02:00
NESSUN _IMBARCO _7REQ : 8 ,
PAOLO : 9 ,
2021-12-29 18:26:08 +01:00
DOMANDA : 10 ,
RISPOSTA : 11 ,
2020-03-10 21:44:14 +01:00
} ;
2020-01-20 01:48:25 +01:00
const StatusMSGALL = {
NONE : 0 ,
ASK : 1 ,
CONFIRM : 2 ,
} ;
2020-01-03 01:52:49 +01:00
const txt = {
2022-01-07 01:18:01 +01:00
MSG _SCEGLI _MENU : emoji . get ( 'dizzy' ) + ' Scegli una voce di menu:' +
emoji . get ( 'dizzy' ) ,
2022-03-09 14:53:09 +01:00
MSG _ASK _USERNAME _BO : 'Scrivete nel messaggio l\'username (SENZA SPAZI) o la email con cui vi siete registrati sul sito di %s:' ,
2022-05-05 00:38:41 +02:00
MSG _ASK _USERNAME _INVITANTE : 'Incolla (o scrivi) l\'username di chi ti ha invitato su %s (non inserire spazi)' ,
2022-07-10 01:25:19 +02:00
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' ,
2020-02-19 16:09:16 +01:00
MSG _ERRORE _USERNAME : 'Attenzione! Devi inserire solo lo username (40 caratteri massimo)' ,
2022-03-09 14:53:09 +01:00
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' ,
2020-01-20 01:48:25 +01:00
MSG _ERRORE _USERNAME _ANNULLA : 'Inserimento Annullato. Riprovare' ,
MSG _OPERAZ _ANNULLATA : 'Operazione Annullata' ,
2020-01-03 01:52:49 +01:00
MSG _ERRORE _VERIFY _CODE _MAXLEN : 'Attenzione! Devi inserire solo il codice a 6 cifre' ,
2021-12-23 14:13:40 +01:00
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:' ,
2022-01-07 01:18:01 +01:00
MSG _ERR _VERIFY _CODE : 'Codice di Verifica Errato!' + emo . EXCLAMATION _MARK +
'\nControlla sul sito %s e riscrivi il nuovo codice di 6 cifre.' ,
2022-03-02 20:18:29 +01:00
MSG _SET _PICPROFILE : '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)' ,
2022-03-08 01:01:20 +01:00
MSG _RESETPWD : 'Clicca qui per impostare una nuova password per accedere alla APP:' ,
2020-01-03 22:02:18 +01:00
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.' ,
2022-03-01 23:50:58 +01:00
MSG _APORTADOR _USER _REGISTERED : emo . FIRE +
' Si è appena Registrato "%s" (n. %s)\nInvitato da %s' ,
2022-03-06 00:48:33 +01:00
MSG _APORTADOR _ASK _CONFIRM : '🆕💥 🧍♂️ Abilita Nuova Registrazione:' ,
MSG _ACCEPT _NEWENTRY _INGROUP : '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:' ,
2022-03-11 22:48:46 +01:00
MSG _FRIENDS _NOT _ACCEPTED _CONFIRMED : '🚫 Hai rifiutato la richiesta di Amicizia di %s !' ,
2022-03-04 22:30:50 +01:00
MSG _APORTADOR _CONFIRMED : '✅ %s è stato Abilitato correttamente (da %s)!' ,
2022-02-28 17:20:47 +01:00
MSG _APORTADOR _DEST _CONFIRMED : '✅ Sei stato Abilitato correttamente da %s!\n' +
2022-03-01 23:50:58 +01:00
'Vai sulla App oppure clicca qui per entrare\n👉🏻 %s' ,
2022-03-06 00:48:33 +01:00
MSG _GROUP _CONFIRMED : '✅ Sei stato Aggiunto sul Gruppo %s!' ,
2022-05-04 00:26:12 +02:00
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 !' ,
2022-03-11 12:38:01 +01:00
MSG _APORTADOR _NOT _CONFIRMED : emo . EXCLAMATION _MARK + '🚫 %s Non è stato Abilitato !' ,
2022-08-04 17:30:57 +02:00
MSG _ISCRITTO _CONACREIS : emo . FIRE + '[%] Si è appena Iscritto al Conacreis "%s"' ,
2020-01-20 01:48:25 +01:00
MSG _MSG _SENT : emoji . get ( 'envelope' ) + ' Messaggi Inviati !' ,
2020-03-10 21:44:14 +01:00
MSG _MSG _TOSENT : emoji . get ( 'envelope' ) + ' Messaggi da Inviare' ,
2022-05-04 00:26:12 +02:00
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' +
2022-05-05 00:38:41 +02:00
'premi il tasto INDIETRO del cellulare (si chiuderà questa chat).\n\n' +
2022-05-04 00:26:12 +02:00
'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:' ,
2020-01-03 01:52:49 +01:00
} ;
2020-03-31 20:34:24 +02:00
const txt _es = {
2022-01-07 01:18:01 +01:00
MSG _SCEGLI _MENU : emoji . get ( 'dizzy' ) + ' Elija un elemento del menú:' +
emoji . get ( 'dizzy' ) ,
2020-03-31 20:34:24 +02:00
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)' ,
2021-12-23 14:13:40 +01:00
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.:' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
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:' ,
2022-01-07 01:18:01 +01:00
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.' ,
2022-03-04 15:30:11 +01:00
MSG _SET _PICPROFILE : '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)' ,
2020-03-31 20:34:24 +02:00
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.' ,
2022-01-07 01:18:01 +01:00
MSG _APORTADOR _USER _REGISTERED : emo . FIRE +
' Acaba de registrarse "%s (n. %s)"\n(Invitado de %s)' ,
2022-03-06 00:48:33 +01:00
MSG _APORTADOR _ASK _CONFIRM : '🆕💥 🧍♂️ Abilita Nuova Registrazione:' ,
MSG _ACCEPT _NEWENTRY _INGROUP : '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:' ,
2022-03-09 14:53:09 +01:00
MSG _APORTADOR _CONFIRMED : '✅ %s è stato Abilitato correttamente (da %s)!' ,
2022-02-12 22:12:49 +01:00
MSG _APORTADOR _DEST _CONFIRMED : '✅ Sei stato Abilitato correttamente da %s!' ,
2022-03-06 00:48:33 +01:00
MSG _GROUP _CONFIRMED : '✅ Sei stato Aggiunto sul Gruppo %s!' ,
2022-02-12 22:12:49 +01:00
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 !' ,
2020-03-31 20:34:24 +02:00
MSG _MSG _SENT : emoji . get ( 'envelope' ) + ' Mensajes enviados !' ,
MSG _MSG _TOSENT : emoji . get ( 'envelope' ) + ' Mensajes a enviar' ,
2022-01-07 01:18:01 +01:00
MSG _MSG _INCORSO : emoji . get ( 'envelope' ) +
' mensajes en progreso... Enviado actualmente' ,
2020-03-31 20:34:24 +02:00
} ;
const txt _fr = {
2022-01-07 01:18:01 +01:00
MSG _SCEGLI _MENU : emoji . get ( 'dizzy' ) + 'Choisissez un élément de menu:' +
emoji . get ( 'dizzy' ) ,
2020-04-24 10:29:25 +02:00
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: ' ,
2020-03-31 20:34:24 +02:00
MSG _ERRORE _USERNAME : 'Attention! Vous devez insérer seulement l’ username (40 caractères maximum)' ,
2021-12-23 14:13:40 +01:00
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: ' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
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:' ,
2022-01-07 01:18:01 +01:00
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.' ,
2022-03-04 15:30:11 +01:00
MSG _SET _PICPROFILE : '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)' ,
2020-03-31 20:34:24 +02:00
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.' ,
2022-01-07 01:18:01 +01:00
MSG _APORTADOR _USER _REGISTERED : emo . FIRE +
2022-02-09 19:48:39 +01:00
' Vous venez à peine de vous inscrire "%s (n. %s) %s' ,
2022-03-06 00:48:33 +01:00
MSG _APORTADOR _ASK _CONFIRM : '🆕💥 🧍♂️ Abilita Nuova Registrazione:' ,
MSG _ACCEPT _NEWENTRY _INGROUP : '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:' ,
2022-03-09 14:53:09 +01:00
MSG _APORTADOR _CONFIRMED : '✅ %s è stato Abilitato correttamente (da %s)!' ,
2022-02-12 22:12:49 +01:00
MSG _APORTADOR _DEST _CONFIRMED : '✅ Sei stato Abilitato correttamente da %s!' ,
2022-03-06 00:48:33 +01:00
MSG _GROUP _CONFIRMED : '✅ Sei stato Aggiunto sul Gruppo %s!' ,
2022-02-12 22:12:49 +01:00
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 !' ,
2020-03-31 20:34:24 +02:00
MSG _MSG _SENT : emoji . get ( 'envelope' ) + ' Messages envoyés !' ,
MSG _MSG _TOSENT : emoji . get ( 'envelope' ) + ' Messages à envoyer' ,
2022-01-07 01:18:01 +01:00
MSG _MSG _INCORSO : emoji . get ( 'envelope' ) +
' messages en cours... Actuellement envoyé' ,
2020-03-31 20:34:24 +02:00
} ;
const txt _si = {
2020-04-07 14:34:29 +02:00
MSG _SCEGLI _MENU : emoji . get ( 'dizzy' ) + 'Izbirni meni:' + emoji . get ( 'dizzy' ) ,
2020-04-24 10:29:25 +02:00
MSG _ASK _USERNAME _BO : 'Vpiši svoje uporabniško ime in e-naslov s katerimi si se registriral na spletni strani %s: ' ,
2020-03-31 20:34:24 +02:00
MSG _ERRORE _USERNAME : 'Pozor! Vpiši samo uporabniško ime (40 znakov) maksimalno' ,
2021-12-23 14:13:40 +01:00
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: ' ,
2020-03-31 20:34:24 +02:00
MSG _ERRORE _USERNAME _ANNULLA : 'Preklic. Poskusi ponovno ' ,
MSG _OPERAZ _ANNULLATA : 'Operacija preklicana' ,
MSG _ERRORE _VERIFY _CODE _MAXLEN : 'Pozor! Vstavi D mestno kodo' ,
2021-12-23 14:13:40 +01:00
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: ' ,
2022-01-07 01:18:01 +01:00
MSG _ERR _VERIFY _CODE : 'Napačna koda za preverjanje!' + emo . EXCLAMATION _MARK +
'\nPreveri na strani %s in ponovno napiši 6 mestno kodo.' ,
2022-03-04 15:30:11 +01:00
MSG _SET _PICPROFILE : '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)' ,
2020-03-31 20:34:24 +02:00
MSG _ERR _UNKNOWN _VERIFY _CODE : 'Napaka strežnika.Poskusi kasneje ' ,
MSG _EXIT _TELEGRAM : 'Račun se nahaja v programu Telegram BOT.' ,
2022-01-07 01:18:01 +01:00
MSG _APORTADOR _USER _REGISTERED : emo . FIRE +
'Registracija registracije %s (n. %s)\n(povabil ga %s)' ,
2022-03-06 00:48:33 +01:00
MSG _APORTADOR _ASK _CONFIRM : '🆕💥 🧍♂️ Abilita Nuova Registrazione:' ,
MSG _ACCEPT _NEWENTRY _INGROUP : '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:' ,
2022-03-09 14:53:09 +01:00
MSG _APORTADOR _CONFIRMED : '✅ %s è stato Abilitato correttamente (da %s)!' ,
2022-02-12 22:12:49 +01:00
MSG _APORTADOR _DEST _CONFIRMED : '✅ Sei stato Abilitato correttamente da %s!' ,
2022-03-06 00:48:33 +01:00
MSG _GROUP _CONFIRMED : '✅ Sei stato Aggiunto sul Gruppo %s!' ,
2022-02-12 22:12:49 +01:00
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 !' ,
2020-03-31 20:34:24 +02:00
} ;
const txt _en = {
2022-01-07 01:18:01 +01:00
MSG _SCEGLI _MENU : emoji . get ( 'dizzy' ) + ' Choose a menu item:' +
emoji . get ( 'dizzy' ) ,
2020-03-31 20:34:24 +02:00
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)' ,
2021-12-23 14:13:40 +01:00
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:' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
MSG _VERIFY _CODE : '1. Now return to the website: %s\n' +
2022-01-07 01:18:01 +01:00
'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.' ,
2022-03-04 15:30:11 +01:00
MSG _SET _PICPROFILE : '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)' ,
2020-03-31 20:34:24 +02:00
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.' ,
2022-01-07 01:18:01 +01:00
MSG _APORTADOR _USER _REGISTERED : emo . FIRE +
' He/She\'s just registered "%s (n. %s)"\n(Invited from %s)' ,
2022-03-06 00:48:33 +01:00
MSG _APORTADOR _ASK _CONFIRM : '🆕💥 🧍♂️ Abilita Nuova Registrazione:' ,
MSG _ACCEPT _NEWENTRY _INGROUP : '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:' ,
2022-03-09 14:53:09 +01:00
MSG _APORTADOR _CONFIRMED : '✅ %s è stato Abilitato correttamente (da %s)!' ,
2022-02-12 22:12:49 +01:00
MSG _APORTADOR _DEST _CONFIRMED : '✅ Sei stato Abilitato correttamente da %s!' ,
2022-03-06 00:48:33 +01:00
MSG _GROUP _CONFIRMED : '✅ Sei stato Aggiunto sul Gruppo %s!' ,
2022-02-12 22:12:49 +01:00
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 !' ,
2020-03-31 20:34:24 +02:00
MSG _MSG _SENT : emoji . get ( 'envelope' ) + ' Sent Messages !' ,
MSG _MSG _TOSENT : emoji . get ( 'envelope' ) + ' Messages to Send' ,
2022-01-07 01:18:01 +01:00
MSG _MSG _INCORSO : emoji . get ( 'envelope' ) +
' messages in progress... Currently sent' ,
2020-03-31 20:34:24 +02:00
} ;
const txt _pt = {
2022-01-07 01:18:01 +01:00
MSG _SCEGLI _MENU : emoji . get ( 'dizzy' ) + ' Escolha um item do menu:' +
emoji . get ( 'dizzy' ) ,
2020-03-31 20:34:24 +02:00
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)' ,
2021-12-23 14:13:40 +01:00
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:' ,
2020-03-31 20:34:24 +02:00
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' ,
2021-12-23 14:13:40 +01:00
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:' ,
2022-01-07 01:18:01 +01:00
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.' ,
2022-03-04 15:30:11 +01:00
MSG _SET _PICPROFILE : '🖼 Abbiamo impostato <b>la tua foto del Profilo</b>, copiandola dalla foto profilo di Telegram. Potrai comunque cambiarla dalla APP (%s)' ,
2020-03-31 20:34:24 +02:00
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.' ,
2022-01-07 01:18:01 +01:00
MSG _APORTADOR _USER _REGISTERED : emo . FIRE +
' Acabou de se registar "%s (n. %s)"\n(Convidado por %s)' ,
2022-03-06 00:48:33 +01:00
MSG _APORTADOR _ASK _CONFIRM : '🆕💥 🧍♂️ Abilita Nuova Registrazione:' ,
MSG _ACCEPT _NEWENTRY _INGROUP : '❇️👥 🧍♂️ Accetta Ingresso nel GRUPPO %s:' ,
2022-03-09 14:53:09 +01:00
MSG _APORTADOR _CONFIRMED : '✅ %s è stato Abilitato correttamente (da %s)!' ,
2022-02-12 22:12:49 +01:00
MSG _APORTADOR _DEST _CONFIRMED : '✅ Sei stato Abilitato correttamente da %s!' ,
2022-03-06 00:48:33 +01:00
MSG _GROUP _CONFIRMED : '✅ Sei stato Aggiunto sul Gruppo %s!' ,
2022-02-12 22:12:49 +01:00
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 !' ,
2020-03-31 20:34:24 +02:00
MSG _MSG _SENT : emoji . get ( 'envelope' ) + ' Mensagens Enviadas !' ,
MSG _MSG _TOSENT : emoji . get ( 'envelope' ) + ' Mensagens a enviar' ,
2022-01-07 01:18:01 +01:00
MSG _MSG _INCORSO : emoji . get ( 'envelope' ) +
' mensagens em progresso... Actualmente enviado' ,
2020-03-31 20:34:24 +02:00
} ;
2020-01-03 01:52:49 +01:00
const TelegramBot = require ( 'node-telegram-bot-api' ) ;
2022-08-04 17:30:57 +02:00
const ADMIN _IDTELEGRAM _TEST = 5356627050 ; // 5022837609; //Surya Arena
2021-12-29 18:26:08 +01:00
2022-03-06 00:48:33 +01:00
const MyTelegramBot = {
2020-01-03 22:02:18 +01:00
2020-06-08 13:31:05 +02:00
ADMIN _IDTELEGRAM _SERVER : '12429864' , //Paolo
2020-01-03 22:02:18 +01:00
ADMIN _USER _SERVER : 'paoloar77' ,
ADMIN _USER _NAME _SERVER : 'Paolo' ,
phase : {
2021-04-30 01:31:12 +02:00
REGISTRATION : 1 ,
2022-01-07 01:18:01 +01:00
ISCRIZIONE _CONACREIS : 2 ,
2020-01-03 22:02:18 +01:00
} ,
2022-03-12 21:38:19 +01:00
getAppTelegram : function ( ) {
return appTelegram ;
} ,
2022-03-06 00:48:33 +01:00
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 ) {
2022-09-11 11:45:33 +02:00
return await cl . sendMsg ( idtelegram , text , null , MyForm , message _id ,
2022-03-06 00:48:33 +01:00
chat _id , ripr _menuPrec ) ;
}
} ,
2022-03-04 15:30:11 +01:00
deleteRecInMemByUsername : function ( idapp , username _bo ) {
const cl = getclTelegByidapp ( idapp ) ;
if ( cl ) {
cl . arrUsers = cl . arrUsers . filter (
( rec ) => rec . username _bo !== username _bo ) ;
}
} ,
2022-01-07 01:18:01 +01:00
getFormDaMostrare : function ( idapp , myfunc , myuser ) {
2020-09-04 00:06:49 +02:00
2022-01-16 23:21:03 +01:00
let FormDaMostrare = null ;
2020-09-04 00:06:49 +02:00
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 }
2022-01-16 23:21:03 +01:00
callback _data : InlineZoomConferma . CONFERMA _ZOOM _PRESENZA + tools . SEP +
2022-01-07 01:18:01 +01:00
myuser . username ,
2020-09-04 00:06:49 +02:00
} ,
{
text : 'Annulla Presenza Zoom' ,
// callback_data: { action: InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA, username: myuser.username }
2022-01-16 23:21:03 +01:00
callback _data : InlineZoomConferma . NON _CONFERMA _ZOOM _PRESENZA +
tools . SEP +
2022-01-07 01:18:01 +01:00
myuser . username ,
2020-09-04 00:06:49 +02:00
} ,
] ) ;
}
return FormDaMostrare ;
} ,
2022-01-07 01:18:01 +01:00
getCiao : function ( idapp , username , lang ) {
2020-03-10 21:44:14 +01:00
return tools . gettranslate ( 'CIAO' , lang ) + ' ' + username + '!\n' ;
} ,
2022-01-07 01:18:01 +01:00
notifyToTelegram : async function ( phase , mylocalsconf ) {
2020-01-03 22:02:18 +01:00
let userdest = mylocalsconf . user . aportador _solidario ;
2020-03-31 20:34:24 +02:00
let langdest = mylocalsconf . user . lang ;
2020-01-20 01:48:25 +01:00
let NameFrom = ` ${ mylocalsconf . user . name } ${ mylocalsconf . user . surname } ` ;
2022-02-08 23:14:08 +01:00
if ( ! mylocalsconf . user . name ) {
NameFrom = ` ${ mylocalsconf . user . username } ` ;
}
2020-05-11 22:43:14 +02:00
const index = mylocalsconf . user . index ;
2020-01-20 01:48:25 +01:00
let aportador = '' ;
2020-01-20 02:18:11 +01:00
if ( userdest ) {
2022-03-04 15:30:11 +01:00
aportador = ` ${ userdest } ` ;
2020-01-20 02:18:11 +01:00
NameFrom += aportador ;
} else {
2022-03-01 23:50:58 +01:00
aportador = mylocalsconf . user . aportador _solidario _nome _completo
? mylocalsconf . user . aportador _solidario _nome _completo
: mylocalsconf . user . aportador _solidario ;
2020-01-20 02:18:11 +01:00
}
2020-01-20 01:48:25 +01:00
2020-01-03 22:02:18 +01:00
let text = '' ;
if ( phase === this . phase . REGISTRATION ) {
2022-02-27 16:56:02 +01:00
2022-03-01 23:50:58 +01:00
if ( tools . getConfSiteOptionEnabledByIdApp ( mylocalsconf . idapp ,
shared _consts . ConfSite . Notif _Reg _Bot _ToManagers ) ) {
2022-02-27 16:56:02 +01:00
if ( userdest ) {
NameFrom = await User . getNameSurnameByUsername ( mylocalsconf . idapp ,
2022-03-04 15:30:11 +01:00
userdest , true ) ;
aportador = NameFrom ? NameFrom + ' ' + aportador : aportador ;
2022-02-27 16:56:02 +01:00
}
const numutenti = await User . getNumUsers ( mylocalsconf . idapp ) ;
let nome = tools . getNomeCognomeEUserNameByUser ( mylocalsconf . user ) ;
text = printf ( getstr ( langdest , 'MSG_APORTADOR_USER_REGISTERED' ) , nome ,
numutenti , aportador ) ;
2020-01-20 01:48:25 +01:00
}
2020-01-03 22:02:18 +01:00
}
2022-01-07 01:18:01 +01:00
let addtext = '' ;
2021-12-29 18:26:08 +01:00
let rismsg = null ;
2022-02-27 16:56:02 +01:00
if ( text ) {
2020-01-03 22:02:18 +01:00
2022-02-27 16:56:02 +01:00
await this . sendMsgTelegramToTheManagers ( mylocalsconf . idapp ,
addtext + text , false , null , userdest ) ;
}
2021-12-29 18:26:08 +01:00
2020-01-03 22:02:18 +01:00
} ,
2022-01-07 01:18:01 +01:00
notifyIscrizioneToTelegram : async function ( phase , mylocalsconf ) {
2021-04-30 01:31:12 +02:00
let langdest = mylocalsconf . iscritto . lang ;
let NameFrom = ` ${ mylocalsconf . iscritto . name } ${ mylocalsconf . iscritto . surname } ` ;
2022-08-04 17:30:57 +02:00
let nomeapp = tools . getHostByIdApp ( mylocalsconf . idapp ) ;
let text = printf ( getstr ( langdest , 'MSG_ISCRITTO_CONACREIS' ) , nomeapp , NameFrom ) ;
2021-04-30 01:31:12 +02:00
2022-01-07 01:18:01 +01:00
let addtext = '' ;
2021-04-30 01:31:12 +02:00
await this . sendMsgTelegramToTheManagers ( mylocalsconf . idapp , addtext + text ) ;
} ,
2022-03-08 01:01:20 +01:00
askConfirmationUser : async function ( idapp , myfunc , myuser , userDest = '' , groupname = '' , groupid = '' ) {
2022-03-04 22:30:50 +01:00
try {
2022-03-08 01:01:20 +01:00
const cl = getclTelegByidapp ( idapp ) ;
2022-09-14 11:32:04 +02:00
if ( ! cl )
return false ;
2022-03-04 22:30:50 +01:00
const langdest = myuser . lang ;
2022-03-08 01:01:20 +01:00
const telegid = myuser . profile . teleg _id ;
2022-03-04 22:30:50 +01:00
let keyb = null ;
let domanda = '' ;
2022-03-06 00:48:33 +01:00
const struserinfomsg = tools . getUserInfoMsg ( idapp , myuser ) ;
2022-03-04 22:30:50 +01:00
if ( myfunc === shared _consts . CallFunz . REGISTRATION ) {
2022-03-08 01:01:20 +01:00
cl . setPhotoProfile ( myuser , telegid , false ) ;
2022-03-10 00:28:23 +01:00
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 ) ;
2022-03-08 01:01:20 +01:00
await cl . sendMsgLog ( telegid , rismsg . body ) ;
await cl . sendMsg ( telegid , rismsg2 . body ) ;
2022-03-06 00:48:33 +01:00
userDest = myuser . aportador _solidario ;
2022-03-04 22:30:50 +01:00
const notask _verif = await User . notAsk _VerifByUsername ( idapp , userDest ) ;
if ( notask _verif ) {
// Non chiedi la verifica Registrazione
2022-03-08 01:01:20 +01:00
await setVerifiedReg ( myuser . idapp , myuser . lang , myuser . username , userDest ) ;
2022-03-04 22:30:50 +01:00
} else {
2022-03-06 00:48:33 +01:00
domanda = getstr ( langdest , 'MSG_APORTADOR_ASK_CONFIRM' ) + '<br>' + struserinfomsg ;
2022-03-04 22:30:50 +01:00
keyb = cl . getInlineKeyboard ( myuser . lang , [
{
text : '✅ Abilita ' + myuser . username ,
2022-03-06 00:48:33 +01:00
callback _data : InlineConferma . RISPOSTA _SI + myfunc + tools . SEP + myuser . username + tools . SEP + userDest ,
2022-03-04 22:30:50 +01:00
} ,
{
text : '🚫 Rifiuta ' + myuser . username ,
2022-03-06 00:48:33 +01:00
callback _data : InlineConferma . RISPOSTA _NO + myfunc + tools . SEP + myuser . username + tools . SEP + userDest ,
2022-03-04 22:30:50 +01:00
} ,
] ) ;
}
2022-03-06 00:48:33 +01:00
} else if ( myfunc === shared _consts . CallFunz . RICHIESTA _GRUPPO ) {
domanda = printf ( getstr ( langdest , 'MSG_ACCEPT_NEWENTRY_INGROUP' ) , groupname ) + '<br>' + struserinfomsg ;
2022-09-02 02:25:38 +02:00
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 ) {
2022-09-03 13:06:58 +02:00
domanda = i18n . _ _ ( { phrase : 'CIRCUIT_ACCEPT_NEWENTRY' , locale : langdest } , groupname ) + '<br>' + struserinfomsg ;
2022-09-02 02:25:38 +02:00
2022-03-06 00:48:33 +01:00
keyb = cl . getInlineKeyboard ( myuser . lang , [
{
text : '✅ Accetta ' + myuser . username ,
2022-09-11 11:45:33 +02:00
callback _data : InlineConferma . RISPOSTA _SI + myfunc + tools . SEP + myuser . username + tools . SEP + '' + tools . SEP + '' + tools . SEP + groupid ,
2022-03-06 00:48:33 +01:00
} ,
{
text : '🚫 Rifiuta ' + myuser . username ,
2022-09-11 11:45:33 +02:00
callback _data : InlineConferma . RISPOSTA _NO + myfunc + tools . SEP + myuser . username + tools . SEP + '' + tools . SEP + '' + tools . SEP + groupid ,
2022-03-06 00:48:33 +01:00
} ,
] ) ;
2022-03-04 22:30:50 +01:00
}
// Invia Msg
if ( domanda ) {
const teleg _id = await User . TelegIdByUsername ( idapp , userDest ) ;
2022-03-06 00:48:33 +01:00
await this . local _sendMsgTelegramByIdTelegram ( idapp , teleg _id , domanda , undefined , undefined , true , keyb ) ;
2022-03-04 22:30:50 +01:00
}
} catch ( e ) {
2022-03-06 00:48:33 +01:00
console . error ( 'Error askConfirmationUser' , e ) ;
2022-03-04 22:30:50 +01:00
}
} ,
2022-03-11 12:38:01 +01:00
askConfirmationUserFriend : async function ( idapp , myfunc , myuser , userDest = '' , username = '' ) {
try {
const cl = getclTelegByidapp ( idapp ) ;
2022-09-14 11:32:04 +02:00
if ( ! cl )
return false ;
2022-03-11 12:38:01 +01:00
2022-08-04 17:30:57 +02:00
const { SendNotif } = require ( '../models/sendnotif' ) ;
2022-03-11 12:38:01 +01:00
const langdest = myuser . lang ;
let keyb = null ;
let domanda = '' ;
2022-08-04 17:30:57 +02:00
let sendnotif = false ;
let typedir = 0 ;
let typeid = 0 ;
let paramsObj = { } ;
2022-03-11 12:38:01 +01:00
const struserinfomsg = tools . getUserInfoMsg ( idapp , myuser ) ;
if ( myfunc === shared _consts . CallFunz . RICHIESTA _AMICIZIA ) {
2022-08-04 17:30:57 +02:00
sendnotif = true ;
typedir = shared _consts . TypeNotifs . TYPEDIR _FRIENDS ;
typeid = shared _consts . TypeNotifs . ID _FRIENDS _NEW _REC ;
2022-09-03 13:06:58 +02:00
paramsObj = { usernameDest : userDest } ;
2022-03-11 12:38:01 +01:00
2022-03-11 22:48:46 +01:00
domanda = printf ( tools . gettranslate ( 'RICHIESTA_AMICIZIA' , langdest ) , myuser . username ) + '<br>' + struserinfomsg ;
2022-03-11 12:38:01 +01:00
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 ) ;
}
2022-08-04 17:30:57 +02:00
if ( sendnotif ) {
2022-09-14 11:32:04 +02:00
const req = tools . getReqByPar ( idapp , username ) ;
2022-08-04 17:30:57 +02:00
// CREATE NOTIFICATION IN TABLE SENDNOTIF
await SendNotif . createNewNotifToSingleUser ( req , null , paramsObj , true , typedir , typeid ) ;
}
2022-03-11 12:38:01 +01:00
} catch ( e ) {
console . error ( 'Error askConfirmationUser' , e ) ;
}
} ,
2022-03-01 23:50:58 +01:00
sendMsgTelegramToTheManagers : async function (
idapp , text , onlyintofile = false , MyForm = null , nottousername = '' ) {
2020-01-03 22:02:18 +01:00
2020-03-10 21:44:14 +01:00
tools . writeManagersLog ( text ) ;
2020-05-10 21:07:51 +02:00
if ( ! onlyintofile ) {
const usersmanagers = await User . getusersManagers ( idapp ) ;
if ( usersmanagers ) {
for ( const rec of usersmanagers ) {
2022-02-26 17:35:50 +01:00
if ( rec . username !== nottousername ) {
await this . sendMsgTelegramByIdTelegram ( idapp , rec . profile . teleg _id ,
emo . ROBOT _FACE + ': ' + text , undefined , undefined , true ,
MyForm ) ;
await tools . snooze ( 100 ) ;
}
2020-09-04 00:06:49 +02:00
}
}
}
2022-01-07 01:18:01 +01:00
return true ;
2020-09-04 00:06:49 +02:00
} ,
2022-01-07 01:18:01 +01:00
sendMsgTelegramToTheManagersAndZoomeri : async function (
idapp , text , onlyintofile , MyForm = null ) {
2020-09-04 00:06:49 +02:00
tools . writeManagersLog ( text ) ;
if ( ! onlyintofile ) {
// const usersmanagers = await User.getusersManagersAndZoomeri(idapp);
const usersmanagers = await User . getusersManagers ( idapp ) ;
if ( usersmanagers ) {
for ( const rec of usersmanagers ) {
2022-01-07 01:18:01 +01:00
await this . sendMsgTelegramByIdTelegram ( idapp , rec . profile . teleg _id ,
emo . ROBOT _FACE + ': ' + text , undefined , undefined , true , MyForm ) ;
await tools . snooze ( 100 ) ;
2020-05-10 21:07:51 +02:00
}
2020-01-20 02:18:11 +01:00
}
2020-01-03 22:02:18 +01:00
}
2022-01-07 01:18:01 +01:00
return true ;
2020-01-03 22:02:18 +01:00
} ,
2022-01-07 01:18:01 +01:00
getMsgByTipoMsg : async function ( mydata , lang , user , sonosognatore ) {
2020-03-10 21:44:14 +01:00
if ( ! ! mydata . msgextra ) {
2022-01-07 01:18:01 +01:00
return { body : mydata . msgextra , title : '' } ;
2020-03-10 21:44:14 +01:00
}
2020-06-08 13:31:05 +02:00
let title = '' ;
let msg = '' ;
2020-03-10 21:44:14 +01:00
if ( mydata . tipomsg === tools . TipoMsg . SEND _LINK _CHAT _DONATORI ) {
2020-05-10 21:07:51 +02:00
if ( sonosognatore )
2022-01-07 01:18:01 +01:00
msg = printf ( tools . gettranslate ( 'SEND_LINK_CHAT_SOGNATORE' , lang ) ,
user . name ,
mydata . navemediatore . riga + '.' + mydata . navemediatore . col ,
mydata . msgpar1 ) ;
2020-05-10 21:07:51 +02:00
else
2022-01-07 01:18:01 +01:00
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 ) {
2020-04-07 14:34:29 +02:00
if ( ! ! mydata . username _mitt ) {
2022-01-07 01:18:01 +01:00
msg = '[' + tools . gettranslate ( 'MSG_SEND_FROM' , lang ) + ' ' +
mydata . username _mitt + ']:' + tools . ACAPO ;
2020-04-07 14:34:29 +02:00
}
2020-06-08 13:31:05 +02:00
msg += mydata . msgpar1 ;
} else if ( mydata . tipomsg >= 1000 ) {
2022-03-10 00:28:23 +01:00
const ris = await MsgTemplate . getMsgByLang ( user . idapp , user , mydata . tipomsg ,
2022-01-07 01:18:01 +01:00
lang ) ;
2020-06-08 13:31:05 +02:00
msg = ris . body ;
title = ris . title ;
}
2022-02-26 17:35:50 +01:00
const cl = getclTelegByidapp ( user . idapp ) ;
if ( cl ) {
2022-03-06 00:48:33 +01:00
msg = tools . convertSpecialTags ( rec . user , msg ) ;
2020-06-08 13:31:05 +02:00
}
if ( ! ! mydata . flotta ) {
// SOSTITUISCI LE PAROLE CHIAVI
if ( ! ! mydata . flotta . date _start )
2022-01-07 01:18:01 +01:00
msg = msg . replace ( '{date_start}' ,
tools . getstrDateLongTot ( new Date ( mydata . flotta . date _start ) ,
user . lang ) ) ;
2020-06-08 13:31:05 +02:00
if ( ! ! mydata . flotta . date _close )
2022-01-07 01:18:01 +01:00
msg = msg . replace ( '{date_close}' ,
tools . getstrDateLongTot ( new Date ( mydata . flotta . date _close ) ,
user . lang ) ) ;
2020-06-08 13:31:05 +02:00
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 ) ;
2020-07-02 22:00:58 +02:00
if ( ! ! mydata . flotta . sognatore _nomecognome )
2022-01-07 01:18:01 +01:00
msg = msg . replace ( '{flotta}' ,
mydata . flotta . riga + '.' + Math . ceil ( mydata . flotta . col _prima / 8 ) +
' - ' + mydata . flotta . riga + '.' +
Math . ceil ( mydata . flotta . col _ultima / 8 ) ) ;
2020-06-08 13:31:05 +02:00
}
2022-01-07 01:18:01 +01:00
return { body : msg , title } ;
2020-03-10 21:44:14 +01:00
} ,
2022-03-12 21:38:19 +01:00
sendMsgTelegramToTheAdminAllSites : async function ( text , senzaintestazione ) {
for ( const idapp of this . getAppTelegram ( ) ) {
text = text . replace ( '{appname}' , tools . getNomeAppByIdApp ( idapp ) ) ;
await this . sendMsgTelegramToTheAdmin ( idapp , text , senzaintestazione ) ;
}
} ,
2022-01-07 01:18:01 +01:00
sendMsgTelegramToTheAdmin : async function ( idapp , text , senzaintestazione ) {
2020-02-19 16:09:16 +01:00
const usersmanagers = await User . getusersManagers ( idapp ) ;
2020-03-21 10:28:26 +01:00
let intestaz = emo . ROBOT _FACE + '[BOT-ADMIN]' + emo . ADMIN + ': ' ;
if ( senzaintestazione )
intestaz = '' ;
2020-02-19 16:09:16 +01:00
if ( usersmanagers ) {
for ( const rec of usersmanagers ) {
if ( User . isAdmin ( rec . perm ) ) {
2022-01-07 01:18:01 +01:00
this . sendMsgTelegramByIdTelegram ( idapp , rec . profile . teleg _id ,
intestaz + text , undefined , undefined , true ) ;
await tools . snooze ( 300 ) ;
2020-02-19 16:09:16 +01:00
}
}
}
2022-01-07 01:18:01 +01:00
return true ;
2020-02-19 16:09:16 +01:00
} ,
2022-01-07 01:18:01 +01:00
sendMsgTelegramToALL : async function ( idapp , text ) {
2020-01-20 01:48:25 +01:00
const usersall = await User . getUsersTelegALL ( idapp ) ;
if ( usersall ) {
2020-02-07 22:08:46 +01:00
for ( const rec of usersall ) {
this . sendMsgTelegramByIdTelegram ( idapp , rec . profile . teleg _id , text ) ;
2022-01-07 01:18:01 +01:00
await tools . snooze ( 300 ) ;
2020-02-07 22:08:46 +01:00
}
2020-01-20 01:48:25 +01:00
}
} ,
2022-01-07 01:18:01 +01:00
sendMsgTelegram : async function (
2022-01-16 23:21:03 +01:00
idapp , username , text , alsotomanagers = false , username _mitt = '' ) {
2022-01-07 01:18:01 +01:00
const { User } = require ( '../models/user' ) ;
2021-04-30 01:31:12 +02:00
2020-01-03 22:02:18 +01:00
const teleg _id = await User . TelegIdByUsername ( idapp , username ) ;
const cl = getclTelegByidapp ( idapp ) ;
2020-03-25 09:25:31 +01:00
let ris = null ;
2020-01-03 22:02:18 +01:00
if ( cl && teleg _id ) {
2022-01-07 01:18:01 +01:00
ris = await cl . sendMsg ( teleg _id , text ) ;
2020-01-03 22:02:18 +01:00
}
2020-03-25 09:25:31 +01:00
if ( cl && teleg _id ) {
if ( alsotomanagers ) {
2022-01-07 01:18:01 +01:00
await this . sendMsgTelegramToTheManagers ( idapp , text ) ;
2020-03-25 09:25:31 +01:00
}
2020-04-07 14:34:29 +02:00
if ( ! ! username _mitt ) {
const rec = cl . getRecByUsername ( username ) ;
if ( rec ) {
rec . msgall _username _specifico = username _mitt ;
}
}
2020-03-10 21:44:14 +01:00
}
2020-03-25 09:25:31 +01:00
return ris ;
2020-01-03 22:02:18 +01:00
} ,
2022-01-07 01:18:01 +01:00
sendMsgTelegramByIdTelegram : async function (
idapp , idtelegram , text , message _id , chat _id , ripr _menuPrec ,
MyForm = null ) {
2022-01-16 23:21:03 +01:00
console . log ( 'sendMsgTelegramByIdTelegram' , text ) ;
2020-01-20 01:48:25 +01:00
if ( ! idtelegram )
return ;
2020-01-03 22:02:18 +01:00
const cl = getclTelegByidapp ( idapp ) ;
if ( cl && idtelegram ) {
2020-02-19 16:09:16 +01:00
let myform = null ;
2022-01-07 01:18:01 +01:00
return await cl . sendMsg ( idtelegram , text , null , MyForm , message _id ,
chat _id , ripr _menuPrec ) ;
2020-01-03 22:02:18 +01:00
}
2021-12-29 18:26:08 +01:00
} ,
2022-01-07 01:18:01 +01:00
reloadMenuBot : async function ( idapp ) {
2021-12-29 18:26:08 +01:00
const cl = getclTelegByidapp ( idapp ) ;
if ( cl ) {
2022-01-16 23:21:03 +01:00
return cl . updateMenuBot ( ) ;
}
} ,
2022-02-27 16:56:02 +01:00
reloadSites : async function ( ) {
tools . loadApps ( ) ;
} ,
2022-03-06 00:48:33 +01:00
sendMsgFromSite : async function ( idapp , user , params ) {
try {
let ris = {
numrec : 0 ,
nummsgsent : 0 ,
} ;
let invia = false ;
2022-08-18 05:26:50 +02:00
let content = '' ;
2022-03-06 00:48:33 +01:00
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 ;
2022-08-18 05:26:50 +02:00
} else if ( params . cmd === shared _consts . MsgTeleg . SHARE _TEXT ) {
invia = ! ! params . content ;
2022-03-06 00:48:33 +01:00
}
if ( tipomsgtempl > 0 ) {
2022-03-10 00:28:23 +01:00
const rismsg = await MsgTemplate . getMsgByLang ( idapp , user , tipomsgtempl , user . lang ) ;
2022-03-06 00:48:33 +01:00
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 ) ;
} ,
2020-01-03 22:02:18 +01:00
} ;
2020-02-19 16:09:16 +01:00
async function sendMsgTelegramToTheAdmin ( idapp , text , msg ) {
const usersmanagers = await User . getusersManagers ( idapp ) ;
2020-03-10 21:44:14 +01:00
const clorig = getclTelegByidapp ( idapp ) ;
const rec = clorig . getRecInMem ( msg ) ;
let username = '' ;
if ( ! ! rec ) {
username = rec . username _bo ;
} else {
username = msg . chat . username ;
}
2020-02-19 16:09:16 +01:00
2022-01-07 01:18:01 +01:00
text = emo . ROBOT _FACE + '[BOT-ADMIN]' + emo . ADMIN + ': Da ' +
msg . chat . first _name + ' ' + msg . chat . last _name + ' [' + username +
']: \n' + text ;
2020-02-19 16:09:16 +01:00
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 ) {
2022-01-07 01:18:01 +01:00
await cl . sendMsg ( idtelegram , text ) ;
2020-02-19 16:09:16 +01:00
}
2022-01-07 01:18:01 +01:00
await tools . snooze ( 300 ) ;
2020-02-19 16:09:16 +01:00
}
}
}
2022-01-07 01:18:01 +01:00
return true ;
2020-02-19 16:09:16 +01:00
}
2022-03-04 15:30:11 +01:00
async function setVerifiedReg ( idapp , lang , usernameorig , usernameDest ) {
try {
await User . setVerifiedByAportador ( idapp , usernameorig , true ) ;
2022-08-04 17:30:57 +02:00
await User . setFriendsCmd ( null , idapp , usernameorig , usernameDest , shared _consts . FRIENDSCMD . SETFRIEND ) ;
2022-03-04 15:30:11 +01:00
const msgDest = printf ( getstr ( lang , 'MSG_APORTADOR_CONFIRMED' ) ,
2022-03-04 22:30:50 +01:00
` ${ usernameorig } ` , usernameDest ) ;
await local _sendMsgTelegram ( idapp , usernameDest , msgDest ) ;
2022-03-04 15:30:11 +01:00
} catch ( e ) {
console . log ( 'e' , e ) ;
}
}
2020-03-10 21:44:14 +01:00
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 ;
}
2022-01-07 01:18:01 +01:00
async function local _sendMsgTelegramToTheManagers (
idapp , text , msg , username _bo ) {
2020-02-19 16:09:16 +01:00
const usersmanagers = await User . getusersManagers ( idapp ) ;
2020-03-10 21:44:14 +01:00
let username = msg . chat . username ;
if ( username _bo )
username = username _bo ;
2020-02-19 16:09:16 +01:00
2022-01-07 01:18:01 +01:00
text = emo . ROBOT _FACE + ': Da ' + msg . chat . first _name + ' ' +
msg . chat . last _name + ' (' + username + '): \n' + text ;
2020-02-19 16:09:16 +01:00
tools . writeEventsLog ( text ) ;
if ( usersmanagers ) {
for ( const rec of usersmanagers ) {
const idtelegram = rec . profile . teleg _id ;
const cl = getclTelegByidapp ( idapp ) ;
if ( cl && idtelegram ) {
2022-01-07 01:18:01 +01:00
await cl . sendMsg ( idtelegram , text , undefined , undefined , undefined ,
undefined , true ) ;
2020-02-19 16:09:16 +01:00
}
2022-01-07 01:18:01 +01:00
await tools . snooze ( 100 ) ;
2020-02-19 16:09:16 +01:00
}
}
2022-01-07 01:18:01 +01:00
return true ;
2020-02-19 16:09:16 +01:00
}
2022-01-16 23:21:03 +01:00
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 ;
}
2020-04-24 10:29:25 +02:00
function getstr ( lang , key , param1 ) {
2020-03-31 20:34:24 +02:00
let mystr = '' ;
2020-04-07 14:34:29 +02:00
if ( ( lang === 'si' ) || ( lang === 'sl-si' ) ) {
2020-03-31 20:34:24 +02:00
try {
2022-01-07 01:18:01 +01:00
mystr = txt _si [ key ] ;
2020-03-31 20:34:24 +02:00
} catch ( e ) {
mystr = '' ;
}
} else if ( ( lang === 'en' ) || ( lang === 'enUs' ) ) {
try {
2022-01-07 01:18:01 +01:00
mystr = txt _en [ key ] ;
2020-03-31 20:34:24 +02:00
} catch ( e ) {
mystr = '' ;
}
} else if ( lang === 'es' ) {
try {
2022-01-07 01:18:01 +01:00
mystr = txt _es [ key ] ;
2020-03-31 20:34:24 +02:00
} catch ( e ) {
mystr = '' ;
}
} else if ( lang === 'fr' ) {
try {
2022-01-07 01:18:01 +01:00
mystr = txt _fr [ key ] ;
2020-03-31 20:34:24 +02:00
} catch ( e ) {
mystr = '' ;
}
} else if ( lang === 'pt' ) {
try {
2022-01-07 01:18:01 +01:00
mystr = txt _pt [ key ] ;
2020-03-31 20:34:24 +02:00
} catch ( e ) {
mystr = '' ;
}
}
if ( mystr === '' )
2020-04-24 10:29:25 +02:00
mystr = txt [ key ] ;
if ( ! ! param1 ) {
mystr = printf ( mystr , param1 ) ;
}
return mystr ;
2020-01-03 01:52:49 +01:00
}
class Telegram {
constructor ( idapp , bot ) {
this . idapp = idapp ;
this . bot = bot ;
this . token = bot . token ;
this . arrUsers = [ ] ;
2022-01-07 01:18:01 +01:00
this . lastid = 0 ;
2021-12-29 18:26:08 +01:00
//++
2020-01-03 01:52:49 +01:00
}
2020-01-20 01:48:25 +01:00
async createIfNotExist ( msg ) {
if ( ! await this . alreadyExist ( msg ) ) {
2020-02-19 16:09:16 +01:00
if ( await this . insertIntoDB ( msg ) ) {
2020-01-20 01:48:25 +01:00
let rec = this . getRecInMem ( msg ) ;
2020-03-31 20:34:24 +02:00
if ( ! ! rec ) {
if ( rec . user )
2022-01-07 01:18:01 +01:00
rec . status = Status . VERIFIED ;
2020-03-31 20:34:24 +02:00
} else {
2022-01-07 01:18:01 +01:00
return false ;
2020-03-31 20:34:24 +02:00
}
2020-01-20 01:48:25 +01:00
}
2022-01-07 01:18:01 +01:00
return true ;
2020-01-20 01:48:25 +01:00
} else {
2022-01-07 01:18:01 +01:00
return false ;
2020-01-20 01:48:25 +01:00
}
}
2020-01-03 01:52:49 +01:00
2022-05-04 00:26:12 +02:00
async settotheDatabase ( msg ) {
2020-01-03 01:52:49 +01:00
// Check if Present to the DB
2020-03-31 20:34:24 +02:00
const riscreate = await this . createIfNotExist ( msg ) ;
if ( ! riscreate ) {
2020-01-03 01:52:49 +01:00
let rec = this . getRecInMem ( msg ) ;
if ( ! rec )
rec = this . addUser ( msg ) ;
2020-01-20 01:48:25 +01:00
if ( rec . user )
2022-01-07 01:18:01 +01:00
rec . status = Status . VERIFIED ;
2020-01-03 01:52:49 +01:00
}
}
2022-05-04 00:26:12 +02:00
async start ( msg ) {
// Check if Username Telegram Present
if ( ! msg . from . username ) {
return false ;
}
await this . settotheDatabase ( msg ) ;
}
2020-05-11 22:43:14 +02:00
geturlfaq ( ) {
2022-01-07 01:18:01 +01:00
return tools . getHostByIdApp ( this . idapp ) + '/faq' ;
2020-05-11 22:43:14 +02:00
}
2022-02-25 17:24:31 +01:00
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 !' ;
}
2020-02-19 16:09:16 +01:00
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 ;
2021-12-29 18:26:08 +01:00
let lang = 'it' ;
2020-02-19 16:09:16 +01:00
const rec = this . getRecInMem ( msg ) ;
let myname = '' ;
if ( rec . user ) {
2022-02-09 19:48:39 +01:00
myname = rec . user . username ;
2021-12-29 18:26:08 +01:00
lang = rec . user . lang ;
2020-02-19 16:09:16 +01:00
}
if ( rec . statusmsg === Status . WAITFOR _RISPOSTA ) {
if ( rec . msgcodeprec === MsgBot . COME _STAI ) {
2022-01-07 01:18:01 +01:00
risp = 'L\'importante è trovare Serenità dentro di noi' +
emo . GIFT _HEART +
'\nNutrirsi di Sole e Viaggiare il più possibile ! ' + emo . DREAM ;
2020-02-19 16:09:16 +01:00
} 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 ) ) {
2022-01-07 01:18:01 +01:00
risp = MsgRisp . CHAT _EMPOWER ;
2020-02-19 16:09:16 +01:00
} 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 = '' ;
2021-12-29 18:26:08 +01:00
const menusite = await this . isMenuSite ( this . idapp , testo , lang , id ) ;
2022-02-25 17:24:31 +01:00
if ( rec . status === Status . VERIFIED ) {
if ( rec . user ) {
2022-03-08 01:01:20 +01:00
if ( rec . user . profile . username _telegram && msg . from . id > 0 && ! msg . from . username ) {
2022-03-01 23:50:58 +01:00
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 || '' ) ;
2022-02-25 17:24:31 +01:00
}
2022-03-08 01:01:20 +01:00
if ( ! rec . user . profile . username _telegram && ! ! msg . from . username ) {
2022-03-01 23:50:58 +01:00
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 || '' ) ;
2022-03-09 14:53:09 +01:00
await this . sendMsgByTemplate ( 'MSG_SET_USERNAME_OK' , rec . user ) ;
2022-03-03 20:32:04 +01:00
2022-03-10 00:28:23 +01:00
if ( rec . user ) {
if ( ! rec . user . verified _by _aportador ) {
MyTelegramBot . askConfirmationUser ( this . idapp , shared _consts . CallFunz . REGISTRATION , rec . user ) ;
}
2022-03-03 20:32:04 +01:00
}
2022-05-04 00:26:12 +02:00
/ * } e l s e {
if ( ! rec . user . profile . username _telegram ) {
return this . checkIfUsernameTelegramSet ( msg , rec . user ) ;
} * /
2022-02-25 17:24:31 +01:00
}
}
}
2020-02-19 16:09:16 +01:00
if ( risp === '' ) {
2021-12-29 18:26:08 +01:00
if ( menusite ) {
2022-03-02 20:18:29 +01:00
risp = await this . getValueMenu ( this . idapp , rec , msg , testo , lang ) ;
2021-12-29 18:26:08 +01:00
noanswer = true ;
} else if ( MsgBot . CIAO . includes ( testo . replace ( '!' , '' ) ) ) {
2020-02-19 16:09:16 +01:00
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 ;
2022-01-07 01:18:01 +01:00
rec . msgcodeprec = MsgBot . COME _STAI ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . CHI _SONO _IO . includes ( testo . replace ( '?' , '' ) ) ) {
2022-01-07 01:18:01 +01:00
risp = 'Su Telegram ti chiami "' + msg . chat . first _name + ' ' +
msg . chat . last _name + '"\n' ;
2020-05-10 21:07:51 +02:00
2020-02-19 16:09:16 +01:00
if ( ! ! rec . user ) {
2022-01-07 01:18:01 +01:00
const myrec = await User . getUserShortDataByUsername ( this . idapp ,
rec . user . username ) ;
2022-02-09 19:48:39 +01:00
risp += ` \n Sul sito ti sei registrato come ${ rec . user . username } : \n \n [N. ` +
2022-01-07 01:18:01 +01:00
rec . user . index + ']: ' + rec . user . name + ' ' + rec . user . surname +
'\nUsername: ' + rec . user . username + '\n' + 'Email: ' +
rec . user . email + '\nLang: ' + rec . user . lang + tools . ACAPO ;
2020-05-10 21:07:51 +02:00
risp += 'Num Invitati: ' + myrec . numinvitati + tools . ACAPO ;
2022-01-07 01:18:01 +01:00
risp += 'Num Invitati Attivi: ' + myrec . numinvitatiattivi +
tools . ACAPO ;
2020-02-19 16:09:16 +01:00
} else {
2021-12-23 14:13:40 +01:00
risp = 'Ancora non ti sei Attivato sul BOT' ;
2020-02-19 16:09:16 +01:00
}
} else if ( MsgBot . CI _SEI . includes ( testo . replace ( '?' , '' ) ) ) {
risp = 'Io Si, ci sono !' ;
} else if ( MsgBot . QUANTI _ANNI _HAI . includes ( testo . replace ( '?' , '' ) ) ) {
2022-01-07 01:18:01 +01:00
risp = 'Io sono abbastanza Giovane ! ' + emo . SMILE _STAR +
'\nNon posso dirti che età ho. E tu?' ;
2020-02-19 16:09:16 +01:00
rec . statusmsg = Status . WAITFOR _RISPOSTA ;
2022-01-07 01:18:01 +01:00
rec . msgcodeprec = MsgBot . QUANTI _ANNI _HAI ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . DAMMI _UN _BACIO . includes ( testo ) ) {
risp = emo . KISS ;
} else if ( MsgBot . COSA _FAI . includes ( testo ) ) {
2022-01-07 01:18:01 +01:00
risp = 'Ora sto chattando con te!\nSolitamente sono in attesa di ricevere messaggi ' +
emo . ENVELOPE ;
2020-02-19 16:09:16 +01:00
} 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 ( '?' , '' ) ) ) {
2022-01-07 01:18:01 +01:00
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 ;
2020-02-19 16:09:16 +01:00
contastiera = true ;
} else if ( MsgBot . UGUALE . includes ( testo ) ) {
risp = testo ;
2020-03-10 21:44:14 +01:00
// } else if (MsgBot.CHI_E_VISTAR.includes(testo)) {
// } else if (MsgBot.CHI_E_PAOLO.includes(testo)) {
2020-02-19 16:09:16 +01:00
} 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 ;
2022-03-10 23:19:56 +01:00
} else if ( MsgBot . PREGO . includes ( testo . replace ( '!' , '' ) ) ) {
risp = 'Grazie a te ! ' + emo . KISS + emo . KISS + emo . KISS ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . MI _AMI . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-01-07 01:18:01 +01:00
risp = ' Tantissimo! ' + emo . KISS + emo . GIFT _HEART + emo . GIFT _HEART +
emo . GIFT _HEART ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . TI _AMO . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-01-07 01:18:01 +01:00
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 ) ) {
2021-12-29 18:26:08 +01:00
risp = 'Chissà... Forse si!\nAnche se meglio averne un altro di scorta, nel caso il Principe non sia disponibile.' ;
2022-02-21 13:12:27 +01:00
} 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 ' ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . AIUTO . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-02-25 17:24:31 +01:00
risp = this . getstrChatHelp ( ) ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . SPOSAMI . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-01-07 01:18:01 +01:00
risp = 'No Grazie! Sono per la Libertà a Vita! ' + emo . JOY +
'\nMa se vuoi possiamo conoscerci meglio!' + emo . DANCER + emo . FIRE ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . CHE _TEMPO _FA . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
risp = 'Il tempo oggi è Sereno da me! ' + emo . SUN ;
2022-01-07 01:18:01 +01:00
} else if ( MsgBot . NON _TROO _INVITATI . find (
( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2020-02-19 16:09:16 +01:00
risp = MsgRisp . CHAT _EMPOWER ;
} else if ( MsgBot . SEI _LIBERO . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-01-07 01:18:01 +01:00
risp = 'Io? Sono per la Libertà! ' + emo . JOY +
'\nMa se vuoi possiamo conoscerci meglio!' + emo . DANCER + emo . FIRE ;
2022-03-01 23:50:58 +01:00
} 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 ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . FARE _DOMANDA . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
risp = 'Dipende ' + emo . SMILE _STAR + '\nProvaci!' ;
2022-01-07 01:18:01 +01:00
} 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 ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . MA _ALLORA . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
risp = 'Ma allora cosa?' ;
2022-03-04 15:30:11 +01:00
} else if ( MsgBot . DOVE _VUOI _VIVERE . find (
( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-03-03 20:32:04 +01:00
risp = 'Mah a me piacerebbe vivere al mare, ma anche vicino al verde, in montagna. Sarebbe l\'ideale 😄' ;
2022-03-04 15:30:11 +01:00
} else if ( MsgBot . TROVAMI _UN _UOMO _DONNA . find (
( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-02-16 09:40:16 +01:00
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' ;
2022-01-07 01:18:01 +01:00
} 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 ;
2020-02-19 16:09:16 +01:00
risp += '\n\n' + MsgRisp . CHAT _EMPOWER ;
2022-01-07 01:18:01 +01:00
} else if ( MsgBot . SORPRESA . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) &&
testo . length < 15 ) {
2021-12-23 14:13:40 +01:00
risp = 'Siiiii ! Davvero! ' + emo . DREAM ;
2020-02-19 16:09:16 +01:00
} else if ( MsgBot . PAROLACCE . find ( ( rec ) => testo . indexOf ( rec ) > - 1 ) ) {
2022-01-07 01:18:01 +01:00
risp = 'Da te non me l\'aspettavo proprio !! ' + emo . INNOCENT +
emo . CROSS _ROSSA ;
2022-03-10 23:19:56 +01:00
} 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 ) {
2020-02-19 16:09:16 +01:00
risp = emo . JOY + emo . JOY + emo . JOY ;
2020-03-25 09:25:31 +01:00
} else if ( testo . length >= 10 ) {
2020-02-19 16:09:16 +01:00
noanswer = true ;
2020-05-11 22:43:14 +02:00
let myfaq = this . geturlfaq ( ) ;
2022-07-26 15:46:39 +02:00
risp = 'Ciao {username}, Io mi chiamo BOT e sono il tuo assistente Virtuale ' + emo . ROBOT _FACE + emo . JOY2 + '\n' +
2022-09-03 13:06:58 +02:00
'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' ;
2021-12-23 14:13:40 +01:00
// 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 !';
2022-01-07 01:18:01 +01:00
await local _sendMsgTelegramToTheManagers ( this . idapp , testo , msg ,
rec . username _bo ) ;
2020-02-19 16:09:16 +01:00
}
}
2022-03-06 00:48:33 +01:00
risp = tools . convertSpecialTags ( rec . user , risp ) ;
2022-02-26 17:35:50 +01:00
2020-05-11 22:43:14 +02:00
let keyboard = null ;
2020-02-19 16:09:16 +01:00
if ( contastiera ) {
keyboard = {
2022-01-07 01:18:01 +01:00
'parse_mode' : 'HTML' ,
'reply_markup' : {
'resize_keyboard' : true ,
'keyboard' : await this . getKeyboard ( id , undefined , this . getlang ( msg ) ) ,
} ,
} ;
2020-02-19 16:09:16 +01:00
}
if ( rec . numdomande > 3 && rec . msgcodeprec === '' ) {
2020-03-10 21:44:14 +01:00
// 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;
// }
2020-02-19 16:09:16 +01:00
}
2022-03-02 20:18:29 +01:00
if ( risp !== '' && risp !== shared _consts . RIS _OK ) {
2020-02-19 16:09:16 +01:00
rec . numdomande ++ ;
if ( ! noanswer ) {
2022-03-10 23:19:56 +01:00
await tools . snooze ( 300 ) ;
2022-01-07 01:18:01 +01:00
risp = '[BOT' + emo . ROBOT _FACE + ' scrive]:\n' + risp ;
2020-02-19 16:09:16 +01:00
}
2021-12-29 18:26:08 +01:00
this . _inviaMsg ( id , risp , keyboard ) ;
let strlog = 'USER [' + myname + ']: ' + testo + '\n' ;
2020-02-19 16:09:16 +01:00
tools . writelog ( strlog ) ;
}
return risp !== '' ;
}
2022-02-26 17:35:50 +01:00
async isMenuNotVerified ( rec , msg , notlast ) {
2020-03-31 20:34:24 +02:00
if ( this . isSelMenu ( msg , msg . text , 'ASSISTENZA' ) ) {
2022-01-07 01:18:01 +01:00
await this . menuAssistenza ( msg ) ;
2020-03-31 20:34:24 +02:00
} 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' ) ) {
2022-01-07 01:18:01 +01:00
await this . menuInformazioni ( msg ) ;
2020-03-31 20:34:24 +02:00
} else if ( msg . text === Menu . LANG ) {
2022-01-07 01:18:01 +01:00
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 ) ;
2022-02-26 17:35:50 +01:00
} else if ( ! notlast && await this . IsTesto ( msg ) ) {
2020-02-19 16:09:16 +01:00
// OK
2020-01-20 01:48:25 +01:00
} else {
await this . msgScegliMenu ( msg ) ;
}
}
2020-03-31 20:34:24 +02:00
isSelMenu ( msg , menuselect , key ) {
let miomenu = '' ;
try {
let lang = this . getlang ( msg ) ;
miomenu = Menu [ lang ] [ key ] ;
} catch ( e ) {
miomenu = Menu [ 'it' ] [ key ] ;
}
2020-04-10 13:02:33 +02:00
let trovato = ( miomenu === menuselect ) ;
if ( ! trovato ) {
try {
let miomenu2 = Menu [ 'it' ] [ key ] ;
trovato = ( miomenu2 === menuselect ) ;
2020-04-24 10:29:25 +02:00
} catch ( e ) {
2020-04-10 13:02:33 +02:00
}
}
return trovato ;
2020-03-31 20:34:24 +02:00
}
2022-02-26 17:35:50 +01:00
async isMenu ( rec , msg , testo , notlast ) {
2022-03-12 21:38:19 +01:00
try {
if ( ! msg )
return ;
2020-02-19 16:09:16 +01:00
2022-03-12 21:38:19 +01:00
if ( testo === undefined )
return ;
2020-02-19 16:09:16 +01:00
2022-03-12 21:38:19 +01:00
const arrtext = testo . split ( ' ' ) ;
let cmd2 = '' ;
let cmd1 = arrtext [ 0 ] ;
if ( arrtext . length > 1 )
cmd2 = arrtext [ 1 ] ;
2020-03-10 21:44:14 +01:00
2022-03-12 21:38:19 +01:00
let oldusername = rec . msgall _username _specifico ;
2020-03-10 21:44:14 +01:00
2022-03-12 21:38:19 +01:00
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 ;
}
2020-03-10 21:44:14 +01:00
}
2022-03-12 21:38:19 +01:00
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 ) ;
2020-01-20 01:48:25 +01:00
}
}
2020-01-27 15:07:53 +01:00
getsymb ( symb , valid , isnum , num , smileif ) {
2020-01-20 01:48:25 +01:00
let str = symb + ': ' ;
if ( valid )
str += emo . CHECK _VERDE ;
else
str += emo . CROSS _ROSSA ;
if ( isnum ) {
2020-01-27 15:07:53 +01:00
str += ' ' + getemojibynumber ( num ) ;
2020-01-20 01:48:25 +01:00
if ( smileif )
str += emo . SMILE _STAR ;
2020-01-03 01:52:49 +01:00
}
2020-01-20 01:48:25 +01:00
return str + ' ' ;
}
isdreamset ( user ) {
if ( user ) {
if ( user . profile . my _dream )
if ( user . profile . my _dream . length > 10 )
2022-01-07 01:18:01 +01:00
return true ;
2020-01-20 01:48:25 +01:00
}
2022-01-07 01:18:01 +01:00
return false ;
2020-01-03 01:52:49 +01:00
}
2020-02-19 16:09:16 +01:00
ispayment ( user ) {
if ( user ) {
if ( ! ! user . profile . paymenttypes ) {
2020-07-13 23:35:05 +02:00
/ * i f ( u s e r . p r o f i l e . p a y m e n t t y p e s . i n c l u d e s ( ' p a y p a l ' ) ) {
2020-02-19 16:09:16 +01:00
if ( user . profile . email _paypal ) {
ispaypal = true
}
2020-07-13 23:35:05 +02:00
} * /
2020-02-19 16:09:16 +01:00
if ( ! ! user . profile )
if ( ! ! user . profile . paymenttypes ) {
2020-07-13 23:35:05 +02:00
return ( user . profile . paymenttypes . length >= 1 ) ;
2020-02-19 16:09:16 +01:00
}
}
}
2022-01-07 01:18:01 +01:00
return false ;
2020-02-19 16:09:16 +01:00
}
async menuAccedi ( msg ) {
let status = this . getstatusInMemory ( msg ) ;
2020-03-31 20:34:24 +02:00
}
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 {
2022-01-07 01:18:01 +01:00
return msg . from . language _code ;
2020-03-31 20:34:24 +02:00
}
2020-02-19 16:09:16 +01:00
}
}
async getLavagnaByUser ( user , msg ) {
2020-01-03 01:52:49 +01:00
let mystr = '' ;
2022-01-07 01:18:01 +01:00
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 ) ;
2020-01-03 01:52:49 +01:00
2020-05-14 17:23:17 +02:00
let numpersone = ( downline . downline ) ? downline . downline . length : 0 ;
2020-02-19 16:09:16 +01:00
let invitati _attivi = dashboard . myself . numinvitatiattivi ;
2022-01-07 01:18:01 +01:00
mystr = '' ;
2020-02-19 16:09:16 +01:00
// 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`;
2020-01-20 01:48:25 +01:00
2020-02-19 16:09:16 +01:00
let tuttie9 = false ;
2020-02-05 00:39:25 +01:00
2020-03-25 09:25:31 +01:00
let mystrnave = '' ;
2020-02-19 16:09:16 +01:00
if ( user ) {
2022-01-07 01:18:01 +01:00
mystr += tools . get _ _ ( 'BENVENUTO' , this . getlang ( msg ) ) + ' ' + user . name +
' (' + user . username + ') ' + emo . DIZZY + '\n\n' ;
2020-01-20 01:48:25 +01:00
2022-01-07 01:18:01 +01:00
tuttie9 = dashboard . myself . qualified && ( numpersone >= 2 ) &&
invitati _attivi >= 2 ;
2020-01-20 01:48:25 +01:00
2022-01-07 01:18:01 +01:00
mystrnave = await Nave . getNaveByUser ( this . idapp , user . username , user . lang ,
true ) ;
2020-03-25 09:25:31 +01:00
if ( mystrnave === '' && tuttie9 ) {
mystr += tools . gettranslate ( 'NO_PROG' , user . lang ) ;
2020-01-03 01:52:49 +01:00
}
2020-02-19 16:09:16 +01:00
2020-03-25 09:25:31 +01:00
if ( ! ! mystrnave ) {
2020-03-31 20:34:24 +02:00
mystr += '✨✨✨' + tools . get _ _ ( 'TUE_NAVI' , this . getlang ( msg ) ) + ':\n' ;
2020-03-25 09:25:31 +01:00
mystr += mystrnave ;
2020-05-11 22:43:14 +02:00
2020-03-25 09:25:31 +01:00
} else {
2020-02-19 16:09:16 +01:00
2020-03-25 09:25:31 +01:00
if ( ! tuttie9 ) {
2022-01-07 01:18:01 +01:00
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 ) ) ;
2020-03-25 09:25:31 +01:00
mystr += '\n\n' ;
}
2021-12-23 14:13:40 +01:00
// 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));
2020-03-25 09:25:31 +01:00
mystr += '\n\n' ;
2020-03-31 20:34:24 +02:00
mystr += tools . get _ _ ( 'INFO_LA_MIA_LAVAGNA' , this . getlang ( msg ) ) ;
2020-02-19 16:09:16 +01:00
2020-03-25 09:25:31 +01:00
mystr += '\n' + '1. ' + this . getsymb ( emo . ENVELOPE , user . verified _email ) ;
2020-03-31 20:34:24 +02:00
mystr += tools . get _ _ ( 'EMAIL' , this . getlang ( msg ) ) + ' ' ;
2022-01-07 01:18:01 +01:00
mystr += user . verified _email
? tools . get _ _ ( 'VERIF' , this . getlang ( msg ) )
: tools . get _ _ ( 'EMAIL_NON_VERIF' , this . getlang ( msg ) ) ;
2020-01-20 01:48:25 +01:00
2022-01-07 01:18:01 +01:00
mystr += '\n2. ' + this . getsymb ( emo . ROBOT _FACE , true ) +
tools . get _ _ ( 'BOT' , this . getlang ( msg ) ) + ' ' ;
2020-03-31 20:34:24 +02:00
mystr += tools . get _ _ ( 'VERIF' , this . getlang ( msg ) ) ;
2020-01-20 01:48:25 +01:00
2022-01-07 01:18:01 +01:00
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 ) ) ;
2020-09-15 11:49:20 +02:00
// 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));
2022-01-07 01:18:01 +01:00
mystr += '\n7. ' + this . getsymb ( emo . CREDIT _CARD , this . ispayment ( user ) ) +
tools . get _ _ ( 'PAYMENTS' , this . getlang ( msg ) ) ;
2020-03-25 09:25:31 +01:00
}
2020-02-19 16:09:16 +01:00
// } else{
// mystr += tools.get__('TELEGRAM_NOT_CONNECTED', msg) + ' ' + emoji.get('e-mail');
}
// numpersone = 2;
2020-03-25 09:25:31 +01:00
if ( ! mystrnave ) {
2022-01-07 01:18:01 +01:00
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' ;
2020-03-25 09:25:31 +01:00
if ( numpersone > 0 ) {
2020-03-31 20:34:24 +02:00
mystr += tools . get _ _ ( 'INVITATI_LISTA' , this . getlang ( msg ) ) + ':\n' ;
2020-03-25 09:25:31 +01:00
let index = 1 ;
2020-05-14 17:23:17 +02:00
downline . downline . forEach ( ( user ) => {
2020-03-25 09:25:31 +01:00
mystr += emoji . get ( 'star-struck' ) + ` ${ index } °: ` ;
2020-05-11 22:43:14 +02:00
mystr += ( user . qualified ) ? emo . CHECK _VERDE : emo . CROSS _ROSSA ;
2020-03-25 09:25:31 +01:00
mystr += ` ${ user . name } ${ user . surname } ( ${ user . username } ) \n ` ;
index ++ ;
} ) ;
} else {
2022-01-07 01:18:01 +01:00
mystr += tools . get _ _ ( 'NESSUN_INVITATO' , this . getlang ( msg ) ) +
tools . ACAPO ;
2020-03-25 09:25:31 +01:00
}
2020-02-19 16:09:16 +01:00
}
2020-01-20 01:48:25 +01:00
2020-03-10 21:44:14 +01:00
// 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++;
// });
// }
// }
2020-01-03 01:52:49 +01:00
2020-02-19 16:09:16 +01:00
if ( tuttie9 )
2022-01-07 01:18:01 +01:00
mystr += '\n' +
printf ( tools . get _ _ ( 'INFO_LAVAGNA_SITO' , this . getlang ( msg ) ) ) ;
2020-02-19 16:09:16 +01:00
else
2022-01-07 01:18:01 +01:00
mystr += '\n' +
printf ( tools . get _ _ ( 'INFO_LAVAGNA_SITO_COMPLETARE' , this . getlang ( msg ) ) ,
tools . getHostByIdApp ( this . idapp ) ) ;
2020-01-03 01:52:49 +01:00
2020-02-19 16:09:16 +01:00
return mystr ;
}
2020-02-05 00:39:25 +01:00
2020-02-19 16:09:16 +01:00
async menuLavagna ( msg ) {
const rec = this . getRecInMem ( msg ) ;
let mystr = '' ;
if ( rec . user ) {
2022-01-07 01:18:01 +01:00
mystr = await this . getLavagnaByUser ( rec . user , msg ) ;
2020-02-05 00:39:25 +01:00
2020-01-03 01:52:49 +01:00
}
if ( ! ! mystr )
2020-01-20 01:48:25 +01:00
await this . sendMsg ( msg . chat . id , mystr ) ;
2020-01-03 01:52:49 +01:00
}
2020-03-10 21:44:14 +01:00
async menuNave ( msg ) {
const rec = this . getRecInMem ( msg ) ;
let mystr = '' ;
if ( ! rec . user )
2022-01-07 01:18:01 +01:00
return '' ;
2020-03-10 21:44:14 +01:00
2020-05-10 21:07:51 +02:00
let username _to _check = rec . user . username ;
2022-01-07 01:18:01 +01:00
let arrstringa = msg . text . split ( ' ' ) ;
2020-03-10 21:44:14 +01:00
if ( ! ! arrstringa ) {
if ( arrstringa . length > 1 ) {
let last = arrstringa . slice ( - 1 ) [ 0 ] ;
if ( ! isNaN ( last ) ) {
2020-12-21 02:16:42 +01:00
// ind_order_to_check = last;
2020-03-10 21:44:14 +01:00
}
}
}
2022-01-07 01:18:01 +01:00
mystr = await Nave . getNaveByUser ( this . idapp , username _to _check ,
rec . user . lang , true ) ;
2020-03-10 21:44:14 +01:00
if ( ! ! mystr )
await this . sendMsg ( msg . chat . id , mystr ) ;
}
2020-01-03 01:52:49 +01:00
async menuLinkCondividere ( msg ) {
const rec = this . getRecInMem ( msg ) ;
2020-02-05 00:39:25 +01:00
let mystr = '' ;
2020-01-03 01:52:49 +01:00
if ( rec . user ) {
2022-01-07 01:18:01 +01:00
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 ) ) ;
2020-01-20 01:48:25 +01:00
await this . sendMsg ( msg . chat . id , mystr ) ;
2020-01-03 01:52:49 +01:00
}
}
2020-01-03 22:02:18 +01:00
async menuExitToTelegram ( msg ) {
const rec = this . getRecInMem ( msg ) ;
if ( rec . user ) {
2022-01-07 01:18:01 +01:00
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' ) ) ;
}
} ) ;
2020-02-19 16:09:16 +01:00
} else {
this . deleteRecInMem ( msg ) ;
2020-01-03 22:02:18 +01:00
}
}
2020-01-03 01:52:49 +01:00
async menuInformazioni ( msg ) {
const mystr = 'Informazioni Aggiuntive: ...' ;
2020-01-20 01:48:25 +01:00
await this . sendMsg ( msg . chat . id , mystr ) ;
}
2020-03-31 20:34:24 +02:00
async getNextZoom ( msg ) {
2020-01-21 01:37:15 +01:00
const listazoom = await CalZoom . findAllIdApp ( this . idapp ) ;
const nextzoom = await CalZoom . getNextZoom ( this . idapp ) ;
2020-02-19 16:09:16 +01:00
let mystr = '' ;
2022-01-07 01:18:01 +01:00
mystr += emo . STARS + tools . get _ _ ( 'ZOOM_CONFERENCE' , this . getlang ( msg ) ) +
emo . STARS + '\n\n' ;
2020-01-21 01:37:15 +01:00
2020-05-04 19:34:41 +02:00
// let pwd = 'Password: 123123';
2020-04-07 14:34:29 +02:00
2020-01-21 01:37:15 +01:00
let index = 1 ;
listazoom . forEach ( ( evento ) => {
2020-01-27 15:07:53 +01:00
let iniziata = false ;
if ( nextzoom )
iniziata = ( nextzoom . _id . toString ( ) === evento . _id . toString ( ) ) ;
2020-01-21 01:37:15 +01:00
2020-07-02 22:00:58 +02:00
let lang = this . getlang ( msg ) ;
2020-01-27 15:07:53 +01:00
if ( iniziata ) {
2022-01-07 01:18:01 +01:00
mystr += emo . CHECK _VERDE + ' ' + tools . get _ _ ( 'ZOOM_INIZIATO' , lang ) +
' ' + emo . CHECK _VERDE + '\n' ;
2020-01-27 15:07:53 +01:00
}
2022-01-07 01:18:01 +01:00
mystr += tools . getflagtelegrambyLang ( evento . lang ) +
` ${ emo . EYES } ${ tools . getstrDateTimeShort ( evento . date _start ,
this . getlang ( msg ) ) } $ { emo . EYES } ` ;
2020-07-02 22:00:58 +02:00
mystr += ` \n ${ evento . title } \n ( ${ evento . note } ) ` ;
mystr += ` \n ${ tools . getlinkzoom ( evento ) } \n \n ` ;
2020-01-27 15:07:53 +01:00
if ( nextzoom ) {
2020-01-21 01:37:15 +01:00
if ( iniziata ) {
2022-01-07 01:18:01 +01:00
mystr += emo . FIRE + tools . get _ _ ( 'CLICCA_ENTRA' , this . getlang ( msg ) ) +
' ' + emo . FIRE + '\n' ;
2020-07-02 22:00:58 +02:00
mystr += tools . getlinkzoom ( evento ) + '\n' ;
2020-05-04 19:34:41 +02:00
mystr += '\n' ;
//mystr += pwd + '\n\n';
2020-01-21 01:37:15 +01:00
}
2020-01-27 15:07:53 +01:00
}
2020-01-21 01:37:15 +01:00
2020-01-27 15:07:53 +01:00
index ++ ;
} ) ;
if ( ! nextzoom && index > 1 ) {
2022-01-07 01:18:01 +01:00
mystr += '✨✨✨✨✨✨✨✨✨✨✨✨\n' +
tools . get _ _ ( 'CLICCA_PER_ZOOM' , this . getlang ( msg ) ) + '\n' +
'✨✨✨✨✨✨✨✨✨✨✨✨\n' ;
2020-01-27 15:07:53 +01:00
}
2020-01-21 01:37:15 +01:00
2022-01-07 01:18:01 +01:00
return mystr ;
2020-02-19 16:09:16 +01:00
}
async menuZoom ( msg ) {
2020-03-31 20:34:24 +02:00
let mystr = await this . getNextZoom ( msg ) ;
2020-01-21 01:37:15 +01:00
2020-02-07 22:08:46 +01:00
await this . sendMsg ( msg . chat . id , mystr ) ;
2020-01-21 01:37:15 +01:00
}
2022-03-02 20:18:29 +01:00
async menuAiuto ( msg ) {
const mystr = this . getstrChatHelp ( ) ;
await this . sendMsg ( msg . chat . id , mystr ) ;
}
2022-03-04 15:30:11 +01:00
2020-01-20 01:48:25 +01:00
async menuAdmin ( msg ) {
2020-03-31 20:34:24 +02:00
const mystr = tools . get _ _ ( 'SCEGLI_VOCE' , this . getlang ( msg ) ) ;
2020-01-21 01:37:15 +01:00
await
2022-01-07 01:18:01 +01:00
this . sendMsg ( msg . chat . id , mystr , MenuAdmin ) ;
2020-01-20 01:48:25 +01:00
}
2020-03-31 20:34:24 +02:00
async menuLang ( msg ) {
const mystr = tools . get _ _ ( 'SCEGLI_VOCE' , this . getlang ( msg ) ) ;
await
2022-01-07 01:18:01 +01:00
this . sendMsg ( msg . chat . id , mystr , MenuLang ) ;
2020-03-31 20:34:24 +02:00
}
2020-03-10 21:44:14 +01:00
getDestinStr ( msg , destin , rec ) {
if ( destin === Destin . TUTTI )
return 'TUTTI' ;
else if ( destin === Destin . STAFF )
return 'STAFF' ;
2020-06-08 13:31:05 +02:00
else if ( destin === Destin . PAOLO )
return 'PAOLO' ;
2020-03-10 21:44:14 +01:00
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 ;
2020-06-08 13:31:05 +02:00
else if ( destin === Destin . NESSUN _IMBARCO _7REQ )
return 'No Imbarcati (7 Req) ' ;
2020-03-10 21:44:14 +01:00
else if ( destin === Destin . A _UTENTE ) {
const rec = this . getRecInMem ( msg ) ;
2022-01-07 01:18:01 +01:00
return rec . msgall _username _specifico ;
2021-12-29 18:26:08 +01:00
} else if ( destin === Destin . DOMANDA ) {
const rec = this . getRecInMem ( msg ) ;
2022-01-07 01:18:01 +01:00
return rec . msg _username _domanda ;
2021-12-29 18:26:08 +01:00
} else if ( destin === Destin . RISPOSTA ) {
const rec = this . getRecInMem ( msg ) ;
2022-01-07 01:18:01 +01:00
return rec . msg _username _risposta ;
2020-02-07 22:08:46 +01:00
}
2020-03-10 21:44:14 +01:00
}
async menumsgAll ( msg ) {
await this . menumsgGenerico ( msg , Destin . TUTTI ) ;
2020-02-07 22:08:46 +01:00
}
async menumsgStaff ( msg ) {
2020-03-10 21:44:14 +01:00
await this . menumsgGenerico ( msg , Destin . STAFF ) ;
}
2020-06-08 13:31:05 +02:00
async menumsgPaolo ( msg ) {
await this . menumsgGenerico ( msg , Destin . PAOLO ) ;
}
2022-03-12 21:38:19 +01:00
nonAbilitato ( msg ) {
2022-05-04 00:26:12 +02:00
MyTelegramBot . local _sendMsgTelegramByIdTelegram ( this . idapp , msg . chat . id ,
'Utente Non abilitato o codice non valido ad eseguire questa funzione' ) ;
2022-03-12 21:38:19 +01:00
}
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...' ) ;
2022-05-04 00:26:12 +02:00
const ris = await tools . execScript ( this . idapp , msg , '~/batch/production_restart_server.sh' ,
this . chisono ( rec ) + ' Restart il Server (Node.Js)' ) ;
2022-03-12 21:38:19 +01:00
} else {
2022-05-04 00:26:12 +02:00
this . nonAbilitato ( msg ) ;
2022-03-12 21:38:19 +01:00
}
}
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 {
2022-05-04 00:26:12 +02:00
this . nonAbilitato ( msg ) ;
2022-03-12 21:38:19 +01:00
}
}
async menuRebootSrv ( rec , msg , cmd2 ) {
if ( cmd2 === '6711' ) {
await MyTelegramBot . sendMsgTelegramToTheAdminAllSites ( this . chisono ( rec ) + ' ha effettuato il Reboot del Server! ...' ) ;
2022-05-04 00:26:12 +02:00
const ris = await tools . execScript ( this . idapp , msg , '~/batch/esegui_reboot.sh' ,
this . chisono ( rec ) + ' Eseguo il Reboot del Server !...' ) ;
2022-03-12 21:38:19 +01:00
} else {
2022-05-04 00:26:12 +02:00
this . nonAbilitato ( msg ) ;
2022-03-12 21:38:19 +01:00
}
}
2020-03-10 21:44:14 +01:00
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 ) ;
}
}
2022-02-26 17:35:50 +01:00
permitSendMsg ( user ) {
2022-03-01 23:50:58 +01:00
return User . isAdmin ( user . perm ) ;
2022-02-26 17:35:50 +01:00
}
2020-03-10 21:44:14 +01:00
async menumsgGenerico ( msg , dest , username , extraparam ) {
2020-02-07 22:08:46 +01:00
const rec = this . getRecInMem ( msg ) ;
if ( rec . user ) {
2022-02-26 17:35:50 +01:00
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 ) ;
2020-03-10 21:44:14 +01:00
}
2020-01-20 01:48:25 +01:00
}
2020-01-03 01:52:49 +01:00
}
2022-01-07 01:18:01 +01:00
async menumsgDomanda (
msg , cmd , dest , username , extraparam , domanda , msgYes , msgNo , destYes ,
destNo , username _risposta ) {
2021-12-29 18:26:08 +01:00
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 ) ;
}
}
2020-05-10 21:07:51 +02:00
getlink ( qualelink ) {
if ( qualelink === 'website' ) {
2022-01-07 01:18:01 +01:00
return '' ;
2020-05-10 21:07:51 +02:00
} else if ( qualelink === 'biblio' ) {
2021-12-23 14:13:40 +01:00
return '' ;
2020-05-10 21:07:51 +02:00
} else if ( qualelink === 'help' ) {
2020-07-02 22:00:58 +02:00
return tools . HELP _CHAT ;
2020-05-10 21:07:51 +02:00
} else if ( qualelink === 'faq' ) {
2021-12-23 14:13:40 +01:00
return '' ;
2020-05-10 21:07:51 +02:00
}
}
2020-01-03 01:52:49 +01:00
async menuAssistenza ( msg ) {
2020-01-20 01:48:25 +01:00
2020-05-10 21:07:51 +02:00
const sito = this . getlink ( 'website' ) ;
const empower = this . getlink ( 'empower' ) ;
const biblio = this . getlink ( 'biblio' ) ;
const faq = this . getlink ( 'faq' ) ;
2022-01-07 01:18:01 +01:00
let help = '' ;
2020-05-10 21:07:51 +02:00
let helpaperta = true ;
2022-01-07 01:18:01 +01:00
/ * i f ( t o o l s . i s M o n T o F r i ( ) & & t o o l s . i s B e t w e e n T w o T i m e ( ' 9 : 0 0 : 0 0 ' , ' 1 9 : 0 0 : 0 0 ' ) ) {
2020-05-10 21:07:51 +02:00
help = '✅ ' + this . getlink ( 'help' ) ;
} else {
help = "🔴 [ORA CHIUSA - NOW CLOSED]" ;
helpaperta = false ;
2022-01-07 01:18:01 +01:00
} * /
help = '✅ ' + this . getlink ( 'help' ) ;
2020-05-10 21:07:51 +02:00
2022-01-07 01:18:01 +01:00
let mytext = '' ;
2020-05-10 21:07:51 +02:00
if ( this . getlang ( msg ) === 'it' )
2022-01-07 01:18:01 +01:00
mytext = printf ( tools . get _ _ ( 'TESTO_ASSISTENZA' , this . getlang ( msg ) ) , sito ,
biblio , empower , faq , help ) ;
2020-05-10 21:07:51 +02:00
else
2022-01-07 01:18:01 +01:00
mytext = printf ( tools . get _ _ ( 'TESTO_ASSISTENZA' , this . getlang ( msg ) ) , sito ,
biblio , empower , help ) ;
2020-01-20 01:48:25 +01:00
2020-02-19 16:09:16 +01:00
let menu = null ;
const rec = this . getRecInMem ( msg ) ;
if ( ! rec . user ) {
2022-01-07 01:18:01 +01:00
menu = null ;
2020-02-19 16:09:16 +01:00
}
2020-01-21 01:37:15 +01:00
await
2022-01-07 01:18:01 +01:00
this . sendMsg ( msg . chat . id , mytext , menu ) ;
2020-01-03 01:52:49 +01:00
}
existInMemory ( msg ) {
const rec = this . getRecInMem ( msg ) ;
2022-01-07 01:18:01 +01:00
return ! ! rec ;
2020-01-03 01:52:49 +01:00
}
2020-01-20 01:48:25 +01:00
getstatus ( rec ) {
2020-01-03 01:52:49 +01:00
if ( ! ! rec )
return rec . status ;
else
return Status . NONE ;
}
2020-01-20 01:48:25 +01:00
getstatusInMemory ( msg ) {
const rec = this . getRecInMem ( msg ) ;
return this . getstatus ( rec ) ;
}
2020-01-03 01:52:49 +01:00
getRecInMem ( msg ) {
2020-06-08 13:31:05 +02:00
return this . arrUsers . find ( ( rec ) => rec . id === this . getchatid ( msg ) ) ;
2020-01-03 01:52:49 +01:00
}
2020-02-19 16:09:16 +01:00
getRecInMemById ( id ) {
2021-12-29 18:26:08 +01:00
return this . arrUsers . find ( ( rec ) => rec . id . toString ( ) === id . toString ( ) ) ;
2020-02-19 16:09:16 +01:00
}
2020-03-10 21:44:14 +01:00
getRecByUsername ( username ) {
return this . arrUsers . find ( ( rec ) => rec . username _bo === username ) ;
}
2022-03-08 01:01:20 +01:00
setRecByUsername ( username , myrec ) {
const ind = this . arrUsers . findIndex ( ( rec ) => rec . username _bo === username ) ;
if ( ind >= 0 ) {
this . arrUsers [ ind ] = myrec ;
}
}
2020-01-03 22:02:18 +01:00
deleteRecInMem ( msg ) {
2022-01-07 01:18:01 +01:00
this . arrUsers = this . arrUsers . filter (
( rec ) => rec . id !== this . getchatid ( msg ) ) ;
2020-01-03 22:02:18 +01:00
}
2020-02-19 16:09:16 +01:00
async getUser ( msg , rec , conmsg ) {
let myid = 0 ;
let ok = false ;
2020-03-10 21:44:14 +01:00
let mystruser = tools . getFirstWord ( msg . text . trim ( ) ) ;
const user = await User . findByUsername ( this . idapp , mystruser , true ) ;
2020-02-19 16:09:16 +01:00
if ( ! user ) {
if ( conmsg ) {
2022-01-07 01:18:01 +01:00
await this . sendMsg ( msg . from . id ,
getstr ( this . getlang ( msg ) , 'MSG_ERRORE_USERNAME_NOT_FOUND' ) , null ) ;
2020-03-31 20:34:24 +02:00
const lang = this . getlang ( msg ) ;
2020-05-10 21:07:51 +02:00
// 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);
2020-02-19 16:09:16 +01:00
rec . username _bo = '' ;
}
} else {
rec . username _bo = user . username ;
myid = user . _id ;
ok = true ;
}
2022-01-07 01:18:01 +01:00
return { rec , user , myid , ok } ;
2020-02-19 16:09:16 +01:00
}
2020-01-03 01:52:49 +01:00
async setUsernameBo ( msg ) {
2022-05-04 00:26:12 +02:00
}
async askUsernameInvitante ( msg ) {
2020-01-03 01:52:49 +01:00
try {
2020-02-19 16:09:16 +01:00
let rec = this . getRecInMem ( msg ) ;
2022-08-15 15:10:27 +02:00
if ( msg . text === undefined || msg . text === 'undefined' )
2020-01-27 15:07:53 +01:00
return false ;
2022-05-04 00:26:12 +02:00
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 ) ) ;
2020-01-03 01:52:49 +01:00
}
} catch ( e ) {
2022-01-07 01:18:01 +01:00
console . error ( 'Error setUsernameBo:' , e ) ;
2020-01-03 01:52:49 +01:00
}
}
2022-03-09 14:53:09 +01:00
async sendMsgByTemplate ( title , myuser ) {
try {
const msg = await MsgTemplate . getMsgByTitleAndLang ( myuser . idapp , title , myuser . lang ) ;
const mytext = tools . convertSpecialTags ( myuser , msg . body ) ;
2022-09-11 11:45:33 +02:00
return await this . sendMsg ( myuser . profile . teleg _id , mytext ) ;
2022-03-11 12:38:01 +01:00
} catch ( e ) {
2022-03-09 14:53:09 +01:00
console . error ( 'ERR sendMsgByTemplate' , e ) ;
}
}
2022-05-04 00:26:12 +02:00
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 )
2022-09-11 11:45:33 +02:00
return await this . sendMsg ( id , mytext ) ;
2022-05-04 00:26:12 +02:00
} 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 )
2022-09-11 11:45:33 +02:00
return await this . sendMsg ( id , mytext ) ;
2022-05-04 00:26:12 +02:00
} catch ( e ) {
console . error ( 'ERR sendMsgByTextByMsgStrutt' , e ) ;
}
}
async checkIfUsernameTelegramSet ( msg ) {
2022-02-25 17:24:31 +01:00
try {
if ( ! msg . from . username ) {
2022-08-15 15:10:27 +02:00
await this . sendMsgByTemplateByMsgStrutt ( 'MSG_SET_USERNAME' , msg ) ;
// await this.sendMsgByTextByMsgStrutt('MSG_SET_USERNAME_TELEGRAM', msg);
2022-05-04 00:26:12 +02:00
return false ;
//await this.sendMsgByTemplate('MSG_SET_USERNAME', myuser);
2022-02-25 17:24:31 +01:00
}
2022-05-04 00:26:12 +02:00
return true ;
2022-03-01 23:50:58 +01:00
} catch ( e ) {
2022-02-25 17:24:31 +01:00
console . error ( 'e' ) ;
2022-05-04 00:26:12 +02:00
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 ( ) ;
2022-07-10 01:25:19 +02:00
tools . removeAtChar ( aportador _solidario ) ;
2022-05-04 00:26:12 +02:00
const user = await User . getUserShortDataByUsername ( this . idapp , aportador _solidario ) ;
if ( user )
rec . aportador _solidario = user . username ;
}
if ( rec . aportador _solidario ) {
// Link per Registrarsi
this . asktoRegistrationByLink ( msg ) ;
} else {
2022-05-05 00:38:41 +02:00
// rec.status = Status.WAITFOR_USERNAME_INVITANTE;
rec . status = Status . SET _USERNAME _INVITANTE ;
2022-05-04 00:26:12 +02:00
const str2 = '\n' + getstr ( this . getlang ( msg ) , 'MSG_ASK_USERNAME_INVITANTE' , tools . getNomeAppByIdApp ( this . idapp ) ) ;
2022-05-05 23:56:37 +02:00
if ( msg . from . username )
console . log ( msg . from . username + ' ha digitato: ' + msg . text ) ;
2022-05-04 00:26:12 +02:00
await this . sendMsg ( msg . from . id , getstr ( this . getlang ( msg ) , 'MSG_ERRORE_INVITANTE_NOT_FOUND' ) + str2 , null ) ;
}
}
} catch ( e ) {
console . error ( 'Error setUsernameInvitante' , e ) ;
2022-02-25 17:24:31 +01:00
}
}
2020-01-03 01:52:49 +01:00
async setVerifyCode ( msg ) {
try {
2020-04-24 10:29:25 +02:00
if ( ! ! msg . text ) {
const code = msg . text . toString ( ) . trim ( ) ;
const rec = this . getRecInMem ( msg ) ;
2022-03-06 00:48:33 +01:00
let user = await User . findByUsername ( this . idapp , rec . username _bo , true ) ;
2020-04-24 10:29:25 +02:00
let telegcode = 0 ;
if ( user ) {
telegcode = user . profile . teleg _checkcode . toString ( ) ;
} else {
await
2022-01-07 01:18:01 +01:00
this . sendMsg ( msg . from . id ,
getstr ( this . getlang ( msg ) , 'MSG_ERRORE_USERNAME_NOT_FOUND' ) ,
null ) ;
return ;
2020-04-24 10:29:25 +02:00
}
if ( code . length < 7 ) {
if ( rec ) {
if ( code === telegcode ) {
2022-01-26 01:31:22 +01:00
try {
2022-03-01 23:50:58 +01:00
await User . setUsernameTelegram ( this . idapp , user . _id ,
msg . from . username || '' , msg . from . first _name || '' ,
msg . from . last _name || '' ) ;
2022-03-06 00:48:33 +01:00
2022-01-26 01:31:22 +01:00
} catch ( e ) { }
2020-04-24 10:29:25 +02:00
// let ris = await this.getUser(msg, rec, false);
2022-01-26 01:31:22 +01:00
2020-04-24 10:29:25 +02:00
rec . status = Status . VERIFIED ;
2022-03-02 20:18:29 +01:00
rec . datemenu _updated = null ;
rec . menuDb = null ;
2022-03-08 01:01:20 +01:00
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 ) ;
2020-04-24 10:29:25 +02:00
} else {
2022-03-08 01:01:20 +01:00
console . log ( ' ... MA GLI MANCA L\'USERNAME TELEGRAM !! ' ) ;
2020-04-24 10:29:25 +02:00
}
2022-03-06 00:48:33 +01:00
2022-05-04 00:26:12 +02:00
// this.checkIfUsernameTelegramSet(msg, recuser);
2022-03-08 01:01:20 +01:00
// 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' ) ) ;
}
2020-04-24 10:29:25 +02:00
} else {
if ( rec . retry < 2 ) {
rec . retry ++ ;
await
2022-03-04 15:30:11 +01:00
this . sendMsgLog ( msg . from . id ,
2022-01-07 01:18:01 +01:00
printf ( getstr ( this . getlang ( msg ) , 'MSG_ERR_VERIFY_CODE' ) ,
tools . getHostByIdApp ( this . idapp ) ) ) ;
2020-02-19 16:09:16 +01:00
} else {
2020-04-24 10:29:25 +02:00
rec . status = Status . NONE ;
await
2022-03-04 15:30:11 +01:00
this . sendMsgLog ( msg . from . id , getstr ( this . getlang ( msg ) ,
2022-01-07 01:18:01 +01:00
'MSG_ERRORE_USERNAME_ANNULLA' ) ) ;
2020-04-24 10:29:25 +02:00
this . deleteRecInMem ( msg ) ;
2020-02-19 16:09:16 +01:00
}
2020-01-20 01:48:25 +01:00
}
2020-01-03 01:52:49 +01:00
}
2020-04-24 10:29:25 +02:00
} else if ( msg . text . length === 0 ) {
if ( rec )
rec . status = Status . NONE ;
await
2022-03-04 15:30:11 +01:00
this . sendMsgLog ( msg . from . id ,
2022-01-07 01:18:01 +01:00
getstr ( this . getlang ( msg ) , 'MSG_ERRORE_USERNAME_ANNULLA' ) ) ;
2020-04-24 10:29:25 +02:00
} else {
await
2022-03-04 15:30:11 +01:00
this . sendMsgLog ( msg . from . id ,
2022-01-07 01:18:01 +01:00
getstr ( this . getlang ( msg ) , 'MSG_ERRORE_VERIFY_CODE_MAXLEN' ) ) ;
2020-01-03 01:52:49 +01:00
}
}
} catch ( e ) {
console . error ( 'Error setVerifyCode' , e ) ;
}
}
2020-03-10 21:44:14 +01:00
async sistemaRecDest ( rec , msg ) {
let recdest = this . getRecByUsername ( rec . msgall _username _specifico ) ;
if ( ! recdest ) {
2022-01-07 01:18:01 +01:00
const userdest = await User . findByUsername ( this . idapp ,
rec . msgall _username _specifico ) ;
2020-03-10 21:44:14 +01:00
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 ;
2020-01-20 01:48:25 +01:00
} else {
2020-03-10 21:44:14 +01:00
rec . msgall _username _specifico = '' ;
}
2020-01-20 01:48:25 +01:00
2022-01-07 01:18:01 +01:00
return recdest ;
2020-03-10 21:44:14 +01:00
}
2020-01-20 01:48:25 +01:00
2021-12-29 18:26:08 +01:00
async setCmdToUsername ( rec , username , cmd _to _set , valuebool ) {
if ( cmd _to _set === Cmd . VALIDATE _REGISTRATION ) {
2022-09-11 11:45:33 +02:00
return await User . setVerifiedByAportador ( rec . user . idapp , username , valuebool ) ;
2022-03-06 00:48:33 +01:00
} else if ( cmd _to _set === Cmd . RICHIESTA _GRUPPO ) {
2021-12-29 18:26:08 +01:00
}
}
2020-03-10 21:44:14 +01:00
async sendMsgToAll ( rec , msg , texttosend , destin ) {
try {
if ( ( texttosend . length < 3 ) && ( destin !== Destin . A _UTENTE ) ) {
2021-12-29 18:26:08 +01:00
// NOTHING
2020-03-10 21:44:14 +01:00
} else {
2020-02-19 16:09:16 +01:00
2020-03-10 21:44:14 +01:00
let usersall = null ;
2021-12-29 18:26:08 +01:00
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 ) ;
2020-02-19 16:09:16 +01:00
else
2020-03-10 21:44:14 +01:00
usersall = await User . getUsersTelegALL ( rec . user . idapp ) ;
2020-02-19 16:09:16 +01:00
2020-03-10 21:44:14 +01:00
let nummsgsent = 0 ;
2020-02-19 16:09:16 +01:00
2022-01-07 01:18:01 +01:00
let textdainviare = '' ;
2020-03-10 21:44:14 +01:00
let preparatesto = '' ;
let myid = '' ;
2020-03-31 20:34:24 +02:00
if ( this . isSelMenu ( msg , texttosend , 'ZOOM' ) ) {
2022-01-07 01:18:01 +01:00
texttosend = await this . getNextZoom ( msg ) ;
2020-03-10 21:44:14 +01:00
}
const cmd = texttosend . toLowerCase ( ) ;
if ( usersall ) {
2020-03-31 20:34:24 +02:00
if ( this . isSelMenu ( msg , cmd , 'INDIETRO' ) ) {
2020-03-10 21:44:14 +01:00
rec . msgall _status = StatusMSGALL . NONE ;
2022-01-07 01:18:01 +01:00
return ;
2020-02-07 22:08:46 +01:00
}
2020-03-10 21:44:14 +01:00
2022-01-07 01:18:01 +01:00
tools . writeEventsLog (
this . getDestinStr ( msg , destin , rec ) + ':\n' + texttosend ) ;
2020-03-10 21:44:14 +01:00
2020-06-08 13:31:05 +02:00
// let chiedisino = false;
// TEST usersall = await User.getUsersTelegALL(rec.user.idapp, 'paoloar77');
2020-03-10 21:44:14 +01:00
for ( const utente of usersall ) {
2020-06-08 13:31:05 +02:00
let FormDaMostrare = null ;
const lang = utente . lang ;
2020-04-24 10:29:25 +02:00
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 ;
2020-03-10 21:44:14 +01:00
} else {
2020-04-24 10:29:25 +02:00
textdainviare = texttosend ;
2020-03-10 21:44:14 +01:00
}
2020-04-24 10:29:25 +02:00
let invia = false ;
if ( destin === Destin . STAFF ) {
invia = User . isManager ( utente . perm ) ;
} else if ( destin === Destin . TUTTI ) {
invia = true ;
2020-06-08 13:31:05 +02:00
} else if ( destin === Destin . PAOLO ) {
invia = utente . username === 'paoloar77' ;
2020-04-24 10:29:25 +02:00
} else if ( destin === Destin . A _UTENTE ) {
invia = utente . username === rec . msgall _username _specifico ;
2021-12-29 18:26:08 +01:00
} else if ( destin === Destin . DOMANDA ) {
invia = utente . username === rec . msg _username _domanda ;
} else if ( destin === Destin . RISPOSTA ) {
invia = utente . username === rec . msg _username _risposta ;
2020-04-24 10:29:25 +02:00
} else if ( destin === Destin . NO _7 _REQ ) {
2022-01-07 01:18:01 +01:00
invia = ! await User . isUserQualified7 ( this . idapp ,
utente . username ) ;
2020-04-24 10:29:25 +02:00
} else if ( destin === Destin . MSG _TO _NAVE ) {
2022-02-03 00:33:15 +01:00
// invia = !await Nave.findDonatoreByNave(this.idapp, rec.extraparam);
2020-04-24 10:29:25 +02:00
}
2020-06-08 13:31:05 +02:00
// TEST invia = true;
2020-04-24 10:29:25 +02:00
if ( invia ) {
2020-06-08 13:31:05 +02:00
let inviaveramente = false ;
2020-04-24 10:29:25 +02:00
if ( cmd === RICEVI _EMAIL ) {
preparatesto += utente . email + ', ' ;
2020-06-08 13:31:05 +02:00
} else if ( cmd === NOME _COGNOME ) {
2022-01-07 01:18:01 +01:00
preparatesto += utente . name + ' ' + utente . surname + '(' +
utente . username + ')' + '\n' ;
2020-04-24 10:29:25 +02:00
} else if ( cmd === CONTA _SOLO ) {
// Niente
2020-06-08 13:31:05 +02:00
} else if ( cmd === CHEDI _SE _IMBARCARTI ) {
textdainviare = tools . gettranslate ( 'VUOI_IMBARCARTI' , lang ) ;
2021-12-23 14:13:40 +01:00
2020-06-08 13:31:05 +02:00
FormDaMostrare = this . getInlineKeyboard ( lang , [
2020-07-13 23:35:05 +02:00
{
text : Menu [ lang ] . SI ,
2022-01-16 23:21:03 +01:00
callback _data : InlineCmd . VOGLIO _IMBARCARMI + tools . SEP +
2022-01-07 01:18:01 +01:00
utente . username ,
2020-07-13 23:35:05 +02:00
} ,
{
text : Menu [ lang ] . NO ,
2022-01-16 23:21:03 +01:00
callback _data : InlineCmd . NON _VOGLIO _IMBARCARMI +
tools . SEP +
2022-01-07 01:18:01 +01:00
utente . username ,
2020-07-13 23:35:05 +02:00
} ,
2020-06-08 13:31:05 +02:00
] ) ;
inviaveramente = true ;
2020-04-24 10:29:25 +02:00
} else {
2020-06-08 13:31:05 +02:00
inviaveramente = true ;
}
if ( inviaveramente ) {
2022-03-06 00:48:33 +01:00
textdainviare = tools . convertSpecialTags ( utente , textdainviare ) ;
2022-03-02 20:18:29 +01:00
2020-04-24 10:29:25 +02:00
if ( destin === Destin . A _UTENTE ) {
await this . sistemaRecDest ( rec , msg ) ;
2022-01-07 01:18:01 +01:00
await this . sendMsg ( utente . profile . teleg _id ,
'[' + rec . username _bo + ' ti scrive]:\n' +
textdainviare , MenuChat ) ;
2020-04-24 10:29:25 +02:00
} else {
2020-06-08 13:31:05 +02:00
// if (chiedisino) {
// this.ChiediSINO(msg, textdainviare);
// } else {
// TEST
let telegid = utente . profile . teleg _id ;
// if (process.env.PROD === "0") {
// telegid = 12429864;
// }
2022-01-07 01:18:01 +01:00
await this . sendMsg ( telegid , textdainviare , null ,
FormDaMostrare ) ;
2020-06-08 13:31:05 +02:00
// break;
2020-04-24 10:29:25 +02:00
}
2020-09-04 00:06:49 +02:00
await tools . snooze ( 100 ) ;
2020-06-08 13:31:05 +02:00
nummsgsent ++ ;
2020-03-10 21:44:14 +01:00
}
2020-06-08 13:31:05 +02:00
2020-04-24 10:29:25 +02:00
if ( ! SendMsgCmd . includes ( cmd ) ) {
2020-09-04 00:06:49 +02:00
if ( ( nummsgsent % 100 ) === 0 ) {
2022-01-07 01:18:01 +01:00
myid = await this . sendMsg ( msg . chat . id , nummsgsent + ' ' +
getstr ( this . getlang ( msg ) , 'MSG_MSG_INCORSO' ) , null ,
null , myid ) ;
await tools . snooze ( 100 ) ;
2020-04-24 10:29:25 +02:00
}
}
2020-03-10 21:44:14 +01:00
}
}
2020-02-07 22:08:46 +01:00
}
2020-03-10 21:44:14 +01:00
}
2020-02-19 16:09:16 +01:00
2022-01-07 01:18:01 +01:00
let msgris = '' ;
2020-03-10 21:44:14 +01:00
if ( cmd === CONTA _SOLO ) {
2022-01-07 01:18:01 +01:00
msgris = nummsgsent + ' ' +
getstr ( this . getlang ( msg ) , 'MSG_MSG_TOSENT' ) ;
2020-06-08 13:31:05 +02:00
} else if ( cmd === NOME _COGNOME ) {
msgris = nummsgsent + ' ' + 'Utenti' ;
await this . sendMsg ( msg . chat . id , msgris ) ;
msgris = preparatesto ;
2020-03-10 21:44:14 +01:00
} else if ( cmd === RICEVI _EMAIL ) {
msgris = nummsgsent + ' ' + 'Email' ;
await this . sendMsg ( msg . chat . id , msgris ) ;
msgris = preparatesto ;
} else {
2021-12-29 18:26:08 +01:00
if ( destin !== Destin . DOMANDA && destin !== Destin . RISPOSTA ) {
2022-01-07 01:18:01 +01:00
msgris = nummsgsent + ' ' +
getstr ( this . getlang ( msg ) , 'MSG_MSG_SENT' ) ;
2021-12-29 18:26:08 +01:00
}
2020-03-10 21:44:14 +01:00
}
2020-02-19 16:09:16 +01:00
2020-03-10 21:44:14 +01:00
if ( destin === Destin . A _UTENTE ) {
const recdest = await this . sistemaRecDest ( rec ) ;
if ( ! ! recdest ) {
2022-01-07 01:18:01 +01:00
await this . sendMsg ( msg . chat . id ,
'Conversazione Iniziata con ' + rec . msgall _username _specifico +
' !' , MenuChat ) ;
2020-03-10 21:44:14 +01:00
} else {
2022-01-07 01:18:01 +01:00
await this . sendMsg ( msg . chat . id ,
'Utente ' + rec . msgall _username _specifico +
' non presente sul BOT !' ) ;
2020-03-10 21:44:14 +01:00
}
} else {
2021-12-29 18:26:08 +01:00
if ( msgris ) {
tools . writeEventsLog ( msgris ) ;
await this . sendMsg ( msg . chat . id , msgris ) ;
}
2020-01-20 01:48:25 +01:00
}
2020-03-10 21:44:14 +01:00
}
rec . start _write _msgall = false ;
} catch ( e ) {
2020-05-04 19:34:41 +02:00
console . error ( e . message ) ;
2020-01-20 01:48:25 +01:00
}
}
selectMenuHelp ( msg ) {
2022-01-07 01:18:01 +01:00
return ( ( this . isSelMenu ( msg , msg . text , 'INFO' ) ) ||
( this . isSelMenu ( msg , msg . text , 'ASSISTENZA' ) ) ) ;
2020-03-31 20:34:24 +02:00
}
selectMenuLang ( msg ) {
2022-01-07 01:18:01 +01:00
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 ) ) ;
2020-01-20 01:48:25 +01:00
}
2020-06-08 13:31:05 +02:00
async setInit ( msg ) {
2020-01-03 01:52:49 +01:00
let status = this . getstatusInMemory ( msg ) ;
if ( status === Status . NONE ) {
2020-02-19 16:09:16 +01:00
await this . start ( msg ) ;
2020-01-03 22:02:18 +01:00
let status = this . getstatusInMemory ( msg ) ;
if ( status !== Status . VERIFIED )
2020-06-08 13:31:05 +02:00
return Status . EXIT ;
2020-01-20 01:48:25 +01:00
} else {
2022-01-07 01:18:01 +01:00
await this . setUser ( msg ) ;
2020-01-03 01:52:49 +01:00
}
2020-06-08 13:31:05 +02:00
return status ;
}
async receiveMsg ( msg ) {
2022-05-04 00:26:12 +02:00
// Check if Username Telegram Present
if ( ! this . checkIfUsernameTelegramSet ( msg ) ) {
return ;
}
2020-06-08 13:31:05 +02:00
let status = await this . setInit ( msg ) ;
if ( status === Status . EXIT ) {
2022-01-07 01:18:01 +01:00
return ;
2020-06-08 13:31:05 +02:00
}
2020-01-20 01:48:25 +01:00
const rec = this . getRecInMem ( msg ) ;
status = this . getstatus ( rec ) ;
2022-05-04 00:26:12 +02:00
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 ) ;
2020-01-03 01:52:49 +01:00
} else if ( status === Status . NONE ) {
2020-02-19 16:09:16 +01:00
await this . start ( msg ) ;
2020-01-03 01:52:49 +01:00
} else if ( status === Status . VERIFIED ) {
2020-01-20 01:48:25 +01:00
let normale = true ;
if ( rec . msgall _status === StatusMSGALL . CONFIRM ) {
2020-03-31 20:34:24 +02:00
if ( this . isSelMenu ( msg , msg . text , 'SI' ) ) {
2020-01-20 01:48:25 +01:00
// Take msg to send to ALL
2022-01-07 01:18:01 +01:00
await this . sendMsgToAll ( rec , msg , rec . msgtosent , rec . msgall _achi ) ;
2020-01-20 01:48:25 +01:00
} else {
2021-12-29 18:26:08 +01:00
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' ) ) {
2022-01-07 01:18:01 +01:00
const ris = await this . setCmdToUsername ( rec ,
rec . msg _username _risposta , rec . cmd _to _set , true ) ;
2021-12-29 18:26:08 +01:00
if ( ris ) {
2022-01-07 01:18:01 +01:00
await this . sendMsgToAll ( rec , msg , rec . msg _toDest _yes ,
rec . msgall _achi ) ;
2021-12-29 18:26:08 +01:00
}
} else if ( this . isSelMenu ( msg , msg . text , 'NO' ) ) {
2022-01-07 01:18:01 +01:00
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 ) ;
2021-12-29 18:26:08 +01:00
}
}
2020-01-20 01:48:25 +01:00
}
rec . msgall _status = StatusMSGALL . NONE ;
normale = false ;
} else if ( rec . msgall _status === StatusMSGALL . ASK ) {
2020-03-31 20:34:24 +02:00
if ( ! this . isSelMenu ( msg , msg . text , 'INDIETRO' ) ) {
2020-01-20 01:48:25 +01:00
rec . msgtosent = msg . text ;
rec . msgall _status = StatusMSGALL . CONFIRM ;
2020-03-10 21:44:14 +01:00
const cmd = rec . msgtosent . toLowerCase ( ) ;
let achi = this . getDestinStr ( msg , rec . msgall _achi , rec ) ;
let domanda = '' ;
2021-12-29 18:26:08 +01:00
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 ;
}
2020-03-10 21:44:14 +01:00
}
2020-01-20 01:48:25 +01:00
this . ChiediSINO ( msg , domanda ) ;
} else {
rec . msgall _status = StatusMSGALL . NONE ;
2020-01-21 01:37:15 +01:00
await
2022-01-07 01:18:01 +01:00
this . msgScegliMenu ( msg ) ;
2020-01-20 01:48:25 +01:00
}
2022-01-07 01:18:01 +01:00
normale = false ;
2020-01-20 01:48:25 +01:00
}
if ( normale ) {
// Check Menu
2022-02-26 17:35:50 +01:00
await this . isMenu ( rec , msg , msg . text , false ) ;
2020-01-20 01:48:25 +01:00
}
} else {
2022-02-26 17:35:50 +01:00
await this . isMenuNotVerified ( rec , msg , false ) ;
2020-01-03 01:52:49 +01:00
}
}
2022-05-04 00:26:12 +02:00
async asktoRegistrationByLink ( msg ) {
2020-01-03 01:52:49 +01:00
2022-05-05 00:38:41 +02:00
let rec = this . getRecInMem ( msg ) ;
2020-06-08 13:31:05 +02:00
2022-05-04 00:26:12 +02:00
let visu = false ;
2020-01-03 01:52:49 +01:00
if ( ! rec ) {
2022-05-05 00:38:41 +02:00
rec = await this . addUser ( msg ) ;
2020-01-03 01:52:49 +01:00
2022-05-04 00:26:12 +02:00
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 ) {
2022-05-05 23:56:37 +02:00
let linkreg = tools . getLinkRegByIdAppAndMsgStrutt ( this . idapp , msg , rec ) ;
2022-05-04 00:26:12 +02:00
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 ) ;
2022-05-05 00:38:41 +02:00
} else if ( status === Status . WAITFOR _USERNAME _INVITANTE ) {
await this . askUsernameInvitante ( msg ) ;
2022-05-04 00:26:12 +02:00
}
2020-01-20 01:48:25 +01:00
return false ;
2020-01-03 01:52:49 +01:00
}
2022-05-04 00:26:12 +02:00
2020-01-20 01:48:25 +01:00
return true ;
2020-01-03 01:52:49 +01:00
}
2020-01-20 01:48:25 +01:00
async setUser ( msg ) {
2020-06-08 13:31:05 +02:00
let id = this . getchatid ( msg ) ;
2020-03-10 21:44:14 +01:00
const user = await User . UserByIdTelegram ( this . idapp , id ) ;
2020-06-08 13:31:05 +02:00
let rec = this . getRecInMem ( msg ) ;
2020-01-20 01:48:25 +01:00
if ( user && rec ) {
2020-01-03 01:52:49 +01:00
rec . user = user ;
2020-01-20 01:48:25 +01:00
}
}
2020-03-10 21:44:14 +01:00
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 ;
}
}
2020-06-08 13:31:05 +02:00
getchatid ( msg ) {
if ( msg . from . is _bot )
return msg . chat . id ;
else
return msg . from . id ;
}
2020-01-20 01:48:25 +01:00
async alreadyExist ( msg ) {
2020-06-08 13:31:05 +02:00
const id = this . getchatid ( msg ) ;
2020-01-20 01:48:25 +01:00
let rec = null ;
try {
2020-02-19 16:09:16 +01:00
const user = await User . UserByIdTelegram ( this . idapp , id ) ;
2020-06-08 13:31:05 +02:00
let rec = this . getRecInMem ( msg ) ;
2020-01-20 01:48:25 +01:00
if ( user && ! rec ) {
rec = this . addUser ( msg ) ;
}
if ( rec ) {
rec . user = user ;
if ( user )
rec . username _bo = user . username ;
else
2022-01-07 01:18:01 +01:00
rec . username _bo = '' ;
2020-01-20 01:48:25 +01:00
}
} catch ( e ) {
console . error ( 'Error: ' , e ) ;
2020-01-03 22:02:18 +01:00
}
2022-01-07 01:18:01 +01:00
return ! ! rec ;
2020-01-03 01:52:49 +01:00
}
2021-12-29 18:26:08 +01:00
updateMenuBot ( ) {
for ( let rec of this . arrUsers ) {
2022-03-02 20:18:29 +01:00
rec . menuDb = null ;
2021-12-29 18:26:08 +01:00
rec . datemenu _updated = null ;
}
}
2020-01-03 01:52:49 +01:00
addUser ( msg ) {
2020-03-31 20:34:24 +02:00
const lang = this . getlang ( msg ) ;
2020-01-03 01:52:49 +01:00
const code = 100000 + Math . round ( Math . random ( ) * 899999 ) ;
const rec = {
2020-06-08 13:31:05 +02:00
id : this . getchatid ( msg ) ,
2020-01-03 01:52:49 +01:00
code ,
lang ,
2020-02-19 16:09:16 +01:00
statusmsg : 0 ,
msgcodeprec : '' ,
sex : 0 ,
numdomande : 0 ,
2020-01-03 01:52:49 +01:00
retry : 0 ,
2020-01-20 01:48:25 +01:00
username _bo : '' ,
msgall _status : StatusMSGALL . NONE ,
2021-12-29 18:26:08 +01:00
msgall _domanda : '' ,
2020-03-10 21:44:14 +01:00
msgall _achi : 0 ,
msgall _username _specifico : '' ,
2021-12-29 18:26:08 +01:00
cmd _to _set : 0 ,
msg _username _domanda : '' ,
msg _username _risposta : '' ,
2020-03-10 21:44:14 +01:00
extraparam : '' ,
2020-01-20 01:48:25 +01:00
msgtosent : '' ,
2021-12-29 18:26:08 +01:00
msgNo : '' ,
msg _toDest _yes : '' ,
msg _toDest _no : '' ,
2020-03-10 21:44:14 +01:00
msg _wait : false ,
lastmenu : null ,
2021-12-29 18:26:08 +01:00
datemenu _updated : null ,
2022-03-02 20:18:29 +01:00
pageChange : false ,
menuSaved : { } ,
pagenow : 1 ,
menuDb : null ,
2022-05-04 00:26:12 +02:00
aportador _solidario : '' ,
2020-01-03 01:52:49 +01:00
} ;
2022-05-04 00:26:12 +02:00
if ( ! msg . from . username ) {
rec . status = Status . WAITFOR _USERNAME _TELEGRAM ;
} else {
rec . status = Status . WAITFOR _USERNAME _INVITANTE ;
}
2020-01-03 01:52:49 +01:00
this . arrUsers . push ( rec ) ;
return rec ;
}
2020-02-19 16:09:16 +01:00
async insertIntoDB ( msg ) {
2020-01-03 01:52:49 +01:00
2022-05-04 00:26:12 +02:00
return this . asktoRegistrationByLink ( msg ) ;
2020-01-20 01:48:25 +01:00
}
2022-03-02 20:18:29 +01:00
menuisVisible ( idapp , menu ) {
}
2021-12-29 18:26:08 +01:00
async loadMenuFromDb ( idapp , id ) {
try {
let load = false ;
const check = true ;
2020-12-21 02:16:42 +01:00
2021-12-29 18:26:08 +01:00
const recuser = this . getRecInMemById ( id ) ;
if ( recuser ) {
if ( ! recuser . datemenu _updated )
2022-01-07 01:18:01 +01:00
load = true ;
2021-12-29 18:26:08 +01:00
}
if ( check ) {
2022-03-02 20:18:29 +01:00
if ( recuser ) {
if ( ! ( recuser . menuSaved [ idapp ] ) )
load = true ;
2022-03-03 20:32:04 +01:00
if ( recuser . menuDb || recuser . pageChange )
load = true ;
2022-03-02 20:18:29 +01:00
}
2021-12-29 18:26:08 +01:00
}
2022-03-03 20:32:04 +01:00
if ( load ) {
2021-12-29 18:26:08 +01:00
// Check if you are Admin
const user = await User . UserByIdTelegram ( idapp , id ) ;
2022-03-12 21:38:19 +01:00
// let isAdmin = user ? user.profile.manage_telegram && user.username === 'paoloar77' : false;
2022-05-04 00:26:12 +02:00
let isAdmin = user ? user . profile . manage _telegram : false ;
2022-01-07 01:18:01 +01:00
const isManager = user ? user . profile . manage _telegram : false ;
2022-03-10 23:19:56 +01:00
const isVerified = user ? user . profile . teleg _id > 0 && user . verified _by _aportador : false ;
2021-12-29 18:26:08 +01:00
2022-03-02 20:18:29 +01:00
recuser . menuDb = await MyBot . findAllIdApp ( idapp ) ;
2021-12-29 18:26:08 +01:00
2022-01-07 01:18:01 +01:00
let arrlang = { } ;
2021-12-29 18:26:08 +01:00
let riga = 0 ;
let arrtemp = [ ] ;
let lang = '' ;
2022-03-02 20:18:29 +01:00
for ( const rec of recuser . menuDb ) {
2022-02-26 17:35:50 +01:00
rec . active _mem = false ;
2022-03-02 20:18:29 +01:00
if ( rec . active && rec . page === recuser . pagenow
2022-03-04 15:30:11 +01:00
&& ( 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 ) )
2022-03-01 23:50:58 +01:00
) {
2022-02-26 17:35:50 +01:00
rec . active _mem = true ;
2022-03-08 01:01:20 +01:00
if ( true ) {
2022-02-26 17:35:50 +01:00
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 = [ ] ;
}
2021-12-29 18:26:08 +01:00
2022-02-26 17:35:50 +01:00
arrtemp . push ( rec . label ) ;
2021-12-29 18:26:08 +01:00
}
}
}
if ( arrtemp . length > 0 )
arrlang [ lang ] . menu . push ( arrtemp ) ;
if ( recuser )
recuser . datemenu _updated = new Date ( ) ;
2022-03-02 20:18:29 +01:00
recuser . pageChange = false ;
recuser . menuSaved [ idapp ] = arrlang ;
2021-12-29 18:26:08 +01:00
}
2022-03-03 20:32:04 +01:00
return recuser ? recuser . menuSaved [ idapp ] : null ;
2021-12-29 18:26:08 +01:00
} catch ( e ) {
console . log ( 'Err loadMenuFromDb: ' + e ) ;
2020-12-21 02:16:42 +01:00
}
2021-12-29 18:26:08 +01:00
}
async isMenuSite ( idapp , testo , lang , id ) {
try {
// Check if Reload
const recuser = await this . getRecInMemById ( id ) ;
if ( recuser ) {
if ( ! recuser . datemenu _updated ) {
2022-01-07 01:18:01 +01:00
await this . loadMenuFromDb ( this . idapp , id ) ;
2021-12-29 18:26:08 +01:00
}
2020-12-21 02:16:42 +01:00
}
2021-12-29 18:26:08 +01:00
2022-03-02 20:18:29 +01:00
for ( const rec of recuser . menuDb ) {
2022-02-26 17:35:50 +01:00
if ( rec . active _mem ) {
if ( rec . idapp === idapp && rec . lang === lang &&
rec . label . toLowerCase ( ) === testo ) {
return true ;
}
2021-12-29 18:26:08 +01:00
}
}
} catch ( e ) {
return false ;
}
return false ;
}
2022-03-02 20:18:29 +01:00
async getValueMenu ( idapp , recuser , msg , testo , lang ) {
2021-12-29 18:26:08 +01:00
try {
2022-03-02 20:18:29 +01:00
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 ) ) {
2022-03-08 01:01:20 +01:00
recuser . pagenow = parseInt ( recdb . value ) ;
recuser . pageChange = true ;
// this.setRecByUsername(recuser.username, recuser);
2022-03-02 20:18:29 +01:00
}
2022-02-26 17:35:50 +01:00
return '' ;
2022-03-02 20:18:29 +01:00
} else if ( recdb . type === shared _consts . BOTTYPE _MENU ) {
if ( recdb . value ) {
2022-03-03 20:32:04 +01:00
this . isMenu ( recuser , msg , recdb . value , true ) ;
2022-03-02 20:18:29 +01:00
return shared _consts . RIS _OK ;
}
2022-02-26 17:35:50 +01:00
}
2021-12-29 18:26:08 +01:00
2022-03-02 20:18:29 +01:00
}
2022-02-26 17:35:50 +01:00
}
2021-12-29 18:26:08 +01:00
}
}
return '' ;
} catch ( e ) {
return '' ;
}
2022-03-02 20:18:29 +01:00
2021-12-29 18:26:08 +01:00
}
async getKeyboard ( id , menu , lang ) {
let keyb = null ;
2022-01-07 01:18:01 +01:00
this . lastid = id ;
2021-12-29 18:26:08 +01:00
2020-01-20 01:48:25 +01:00
if ( menu ) {
2022-01-07 01:18:01 +01:00
keyb = menu ;
2021-12-29 18:26:08 +01:00
} else {
keyb = await this . loadMenuFromDb ( this . idapp , id ) ;
2020-01-20 01:48:25 +01:00
}
2020-01-03 01:52:49 +01:00
2020-03-31 20:34:24 +02:00
let mykeyb = undefined ;
if ( ! ! keyb ) {
mykeyb = this . getmenuKey ( keyb , lang ) ;
}
2022-01-07 01:18:01 +01:00
if ( mykeyb === null ) {
mykeyb = [ ] ;
}
// console.log('mykeyboard', mykeyb);
2020-03-31 20:34:24 +02:00
return mykeyb ;
2020-01-03 01:52:49 +01:00
}
2020-02-19 16:09:16 +01:00
modificaMsg ( chatid , idmodif , text ) {
const form = {
2022-01-07 01:18:01 +01:00
'chat_id' : chatid ,
'message_id' : idmodif ,
2020-02-19 16:09:16 +01:00
} ;
try {
return this . bot . editMessageText ( text , form ) ;
} catch ( e ) {
console . log ( 'Err Telegram: ' + e ) ;
}
}
2020-06-08 13:31:05 +02:00
async _inviaMsg ( id , text , form , menu , msg _id , chat _id , ripr _menuPrec , opt ) {
2020-01-20 01:48:25 +01:00
if ( ! text )
2020-02-19 16:09:16 +01:00
return 0 ;
2020-01-20 01:48:25 +01:00
2022-01-07 01:18:01 +01:00
if ( process . env . LOCALE === '1' ) {
2021-12-29 18:26:08 +01:00
if ( id !== ADMIN _IDTELEGRAM _TEST )
id = '12429864' ;
2020-07-02 22:00:58 +02:00
}
2020-02-19 16:09:16 +01:00
if ( ! ! msg _id ) {
return this . modificaMsg ( chat _id , msg _id , text ) ;
}
2020-03-10 21:44:14 +01:00
const recmem = this . getRecInMemById ( id ) ;
if ( ! menu ) {
if ( recmem ) {
if ( recmem . msgall _username _specifico !== '' ) {
2022-01-07 01:18:01 +01:00
menu = MenuChat ;
2020-03-10 21:44:14 +01:00
}
}
}
if ( recmem ) {
2022-01-07 01:18:01 +01:00
recmem . lastmenu = menu ;
2020-03-10 21:44:14 +01:00
}
if ( ripr _menuPrec ) {
if ( recmem && ! ! recmem . lastmenu ) {
2022-01-07 01:18:01 +01:00
menu = recmem . lastmenu ;
2020-03-10 21:44:14 +01:00
}
}
2020-04-07 14:34:29 +02:00
let mylang = 'it' ;
if ( ! ! recmem ) {
mylang = recmem . lang ;
}
2020-02-19 16:09:16 +01:00
try {
2022-08-07 02:01:35 +02:00
console . log ( '<<< SEND MSG TELEGRAM: >>> ' , text . substring ( 0 , 100 ) ) ;
2022-01-07 01:18:01 +01:00
text = text . replace ( /<br>/g , '\n' ) ;
2022-03-09 14:53:09 +01:00
text = text . replace ( /<br\/>/g , '\n' ) ;
2022-01-07 01:18:01 +01:00
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' ) ;
2022-03-09 14:53:09 +01:00
// text = text.replace(/<\/div>/g, '');
2022-01-07 01:18:01 +01:00
text = text . replace ( / /g , ' ' ) ;
2020-06-08 13:31:05 +02:00
2020-02-19 16:09:16 +01:00
if ( ! form ) {
form = {
2022-01-07 01:18:01 +01:00
'parse_mode' : 'HTML' ,
'message_id' : msg _id ,
'reply_markup' : {
'resize_keyboard' : true ,
'keyboard' : await this . getKeyboard ( id , menu , mylang ) ,
} ,
2020-02-19 16:09:16 +01:00
} ;
2020-01-03 01:52:49 +01:00
}
2022-01-07 01:18:01 +01:00
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 ;
} ) ;
2020-02-19 16:09:16 +01:00
} catch ( e ) {
2022-03-09 14:53:09 +01:00
console . error ( e , 'text' , text ) ;
2022-01-07 01:18:01 +01:00
return 0 ;
2020-02-19 16:09:16 +01:00
}
2020-01-03 01:52:49 +01:00
}
2020-03-10 21:44:14 +01:00
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 + ']: ');
2022-01-07 01:18:01 +01:00
await this . sendMsg ( telegid ,
Menu . CHAT _PERSONALE + '[' + rec . username _bo + ' ti scrive]:\n' +
text , MenuChat ) ;
2020-03-10 21:44:14 +01:00
} else {
await this . sendMsg ( msg . chat . id , 'Username non valido' ) ;
2022-01-07 01:18:01 +01:00
rec . msgall _username _specifico = '' ;
2020-03-10 21:44:14 +01:00
}
}
}
async sendMsg ( id , text , menu , form , msg _id , chat _id , ripr _menuPrec ) {
2020-02-19 16:09:16 +01:00
2022-03-12 21:38:19 +01:00
if ( ! id || ! text )
2022-03-09 14:53:09 +01:00
return false ;
2022-02-25 17:24:31 +01:00
try {
2022-03-04 15:30:11 +01:00
2022-02-25 17:24:31 +01:00
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 ) ;
}
2022-03-01 23:50:58 +01:00
} catch ( e ) {
2022-02-25 17:24:31 +01:00
console . error ( 'Error sendMsg' , e ) ;
2022-03-08 01:01:20 +01:00
return null ;
2020-05-13 01:32:27 +02:00
}
2020-01-03 01:52:49 +01:00
2020-02-19 16:09:16 +01:00
}
2022-03-04 15:30:11 +01:00
async sendMsgLog ( id , text , menu , form , msg _id , chat _id , ripr _menuPrec ) {
const rec = this . getRecInMemById ( id ) ;
2022-03-04 22:30:50 +01:00
const username = rec ? rec . username _bo : '' ;
2022-03-04 15:30:11 +01:00
2022-03-04 22:30:50 +01:00
console . log ( 'Msg inviato a ' , username , '(' , id , ')' , text ) ;
2022-09-11 11:45:33 +02:00
return await this . sendMsg ( id , text , menu , form , msg _id , chat _id , ripr _menuPrec ) ;
2022-03-04 15:30:11 +01:00
}
2020-03-31 20:34:24 +02:00
getmenuKey ( mymenu , lang ) {
let mymenuout = null ;
try {
mymenuout = mymenu [ lang ] . menu ;
} catch ( e ) {
2021-12-29 18:26:08 +01:00
if ( ! ! mymenu [ 'it' ] )
mymenuout = mymenu [ 'it' ] . menu ;
2020-03-31 20:34:24 +02:00
}
return mymenuout ;
2020-01-20 01:48:25 +01:00
}
2022-03-08 01:01:20 +01:00
async setResetPwd ( rec , msg ) {
2022-03-01 23:50:58 +01:00
try {
if ( rec . user ) {
const idapp = this . idapp ;
const username = rec . user . username ;
2022-03-02 20:18:29 +01:00
const lang = rec . user . lang ;
2022-03-08 01:01:20 +01:00
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 ;
2022-03-01 23:50:58 +01:00
const token = this . token ;
2022-03-02 20:18:29 +01:00
const editprofile = tools . getHostByIdApp ( idapp , true ) + '/editprofile' ;
2022-03-01 23:50:58 +01:00
let myfileprofile = tools . getdirByIdApp ( idapp , true ) +
2022-03-04 15:30:11 +01:00
server _constants . DIR _UPLOAD + '/profile/' + username + '/' ;
2022-03-08 01:01:20 +01:00
let user _profile = bot . getUserProfilePhotos ( telegid ) ;
2022-03-01 23:50:58 +01:00
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 ;
2022-03-04 15:30:11 +01:00
const photo _url = 'https://api.telegram.org/file/bot' + token +
'/' + file _path ;
// console.log('1) photo_url', photo_url);
2022-03-02 20:18:29 +01:00
let filename = tools . extractFileName ( photo _url ) ;
2022-03-01 23:50:58 +01:00
myfileprofile += filename ;
2022-03-03 20:32:04 +01:00
const pathfile = tools . extractFilePath ( myfileprofile ) ;
tools . mkdirpath ( pathfile ) ;
2022-03-04 15:30:11 +01:00
// console.log('2) myfileprofile', pathfile);
2022-03-02 20:18:29 +01:00
return tools . downloadImage ( photo _url , myfileprofile ) .
2022-03-01 23:50:58 +01:00
then ( ( ris ) => {
2022-03-09 14:53:09 +01:00
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 ) ;
2022-03-11 12:38:01 +01:00
} catch ( e ) {
2022-03-09 14:53:09 +01:00
console . error ( 'setPhotoProfile sharp' , e ) ;
}
2022-03-04 15:30:11 +01:00
// console.log('3) setPicProfile ris', ris);
return User . setPicProfile ( idapp , username , filename ) .
then ( ( ris ) => {
// console.log('4) sendMsg picprofile Copied !');
2022-03-06 00:48:33 +01:00
if ( showmsg ) {
2022-03-08 01:01:20 +01:00
local _sendMsgTelegram ( idapp , username , printf ( getstr ( lang , 'MSG_SET_PICPROFILE' ) , editprofile ) ) ;
2022-03-06 00:48:33 +01:00
}
2022-03-04 15:30:11 +01:00
} ) ;
2022-03-01 23:50:58 +01:00
// console.log('scaricato');
2022-03-03 20:32:04 +01:00
} ) . catch ( ( err ) => {
console . error ( 'Error setPhotoProfile' , err ) ;
2022-03-01 23:50:58 +01:00
} ) ;
2022-03-02 20:18:29 +01:00
2022-03-01 23:50:58 +01:00
} ) ;
}
} ) ;
}
} catch ( e ) {
console . error ( 'Error setPhotoProfile' , e ) ;
}
}
2020-06-08 13:31:05 +02:00
getInlineKeyboard ( lang , arrrisp1 , arrrisp2 , arrrisp3 ) {
let mykeyb = {
parse _mode : 'HTML' ,
reply _markup : {
2022-01-07 01:18:01 +01:00
inline _keyboard : [ ] ,
} ,
2020-06-08 13:31:05 +02:00
} ;
// 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 ;
}
2020-01-20 01:48:25 +01:00
async ChiediSINO ( msg , domanda ) {
2020-03-31 20:34:24 +02:00
const lang = this . getlang ( msg ) ;
2020-02-19 16:09:16 +01:00
this . _inviaMsg ( msg . from . id , domanda , {
2022-01-07 01:18:01 +01:00
'reply_markup' : {
'resize_keyboard' : true ,
2020-01-20 01:48:25 +01:00
'one_time_keyboard' : true ,
2022-01-07 01:18:01 +01:00
'keyboard' : this . getmenuKey ( MenuYesNo , lang ) ,
} ,
2020-01-03 01:52:49 +01:00
} ) ;
}
2020-01-03 22:02:18 +01:00
2020-03-31 20:34:24 +02:00
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 ) ;
}
}
2020-01-20 01:48:25 +01:00
async msgScegliMenu ( msg ) {
2020-03-31 20:34:24 +02:00
this . _inviaMsg ( msg . from . id , getstr ( this . getlang ( msg ) , 'MSG_SCEGLI_MENU' ) , {
2022-01-07 01:18:01 +01:00
'parse_mode' : 'HTML' ,
'reply_markup' : {
'resize_keyboard' : true ,
'keyboard' : await this . getKeyboard ( msg . from . id , undefined ,
this . getlang ( msg ) ) ,
} ,
2020-04-24 10:29:25 +02:00
} ) ;
2020-01-03 22:02:18 +01:00
}
2020-01-03 01:52:49 +01:00
}
const arrTelegram = [ ] ;
function getclTelegBytoken ( token ) {
2020-01-03 22:02:18 +01:00
const rec = arrTelegram . find ( ( rec ) => rec . cl . token === token ) ;
if ( ! ! rec )
return rec . cl ;
else
return null ;
}
function getclTelegByidapp ( idapp ) {
2020-02-07 22:08:46 +01:00
// ****************************
if ( appTelegramFinti . includes ( idapp ) ) {
const ind = appTelegramFinti . indexOf ( idapp ) ;
if ( ind >= 0 )
idapp = appTelegramDest [ ind ] ; // Invia
}
2020-01-03 22:02:18 +01:00
const rec = arrTelegram . find ( ( rec ) => rec . idapp === idapp ) ;
2020-01-03 01:52:49 +01:00
if ( ! ! rec )
return rec . cl ;
else
return null ;
}
2021-12-23 14:13:40 +01:00
//if (!tools.testing() || true) {
if ( true ) {
let arrTeleg = appTelegram ;
if ( process . env . NODE _ENV === 'development' )
2022-01-07 01:18:01 +01:00
arrTeleg = appTelegram _DEVELOP ;
else if ( process . env . NODE _ENV === 'test' )
2021-12-23 14:13:40 +01:00
arrTeleg = appTelegram _TEST ;
2022-09-03 13:06:58 +02:00
var internetAvailable = require ( 'internet-available' ) ;
2022-07-23 17:48:33 +02:00
2022-09-03 13:06:58 +02:00
internetAvailable ( ) . then ( ( ) => {
// ..
console . log ( 'TELEGRAM STARTING.... NODE_ENV:' + process . env . NODE _ENV ) ;
2022-02-25 17:24:31 +01:00
2022-09-03 13:06:58 +02:00
for ( const idapp of arrTeleg ) {
2022-01-07 01:18:01 +01:00
2022-09-03 13:06:58 +02:00
try {
const token = tools . getTelegramKeyByIdApp ( idapp ) ;
const nomebot = tools . getTelegramBotNameByIdApp ( idapp ) ;
2022-01-07 01:18:01 +01:00
2022-09-03 13:06:58 +02:00
// console.log('idapp', idapp, 'token', token);
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
if ( ! ! token ) {
console . log ( '*** START BOT ' + nomebot ) ;
const bot = new TelegramBot ( token , { polling : true } ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
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 } ` ) ;
} ) ;
}
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
arrTelegram . push ( { idapp , cl : new Telegram ( idapp , bot ) } ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
bot . onText ( /\/start/ , ( msg ) => {
const myclTelegram = getclTelegBytoken ( bot . token ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
myclTelegram . start ( msg ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
} ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
// 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
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
const chatId = msg . chat . id ;
const resp = match [ 1 ] ; // the captured "whatever"
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
// send back the matched "whatever" to the chat
bot . sendMessage ( chatId , resp ) ;
} ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
// Listen for any kind of message. There are different kinds of
// messages.
bot . on ( 'message' , ( msg ) => {
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
const myclTelegram = getclTelegBytoken ( bot . token ) ;
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
// const chatId = msg.chat.id;
2020-06-08 13:31:05 +02:00
2022-09-03 13:06:58 +02:00
myclTelegram . receiveMsg ( msg ) ;
} ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
// 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 ,
2022-09-11 11:45:33 +02:00
circuitId : '' ,
2022-09-03 13:06:58 +02:00
} ;
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 ] ) : '' ,
2022-09-14 11:32:04 +02:00
circuitId : dataarr [ 4 ] ? dataarr [ 4 ] : '' ,
2022-09-03 13:06:58 +02:00
} ;
}
2022-03-06 00:48:33 +01:00
}
2022-09-03 13:06:58 +02:00
const msg = callbackQuery . message ;
const opts = {
chat _id : msg . chat . id ,
message _id : msg . message _id ,
} ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
const status = await myclTelegram . setInit ( msg ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
const rec = myclTelegram . getRecInMem ( msg ) ;
2022-03-10 23:19:56 +01:00
2022-09-03 13:06:58 +02:00
const username _action = rec . user ? rec . user . username : '' ;
2022-03-30 22:51:03 +02:00
2022-09-03 13:06:58 +02:00
data . username = await User . getRealUsernameByUsername ( idapp , data . username ) ;
data . userDest = await User . getRealUsernameByUsername ( idapp , data . userDest ) ;
2022-03-10 23:19:56 +01:00
2022-09-03 13:06:58 +02:00
const user = await User . getUserShortDataByUsername ( idapp , data . username ) ;
const userDest = data . userDest ? await User . getUserShortDataByUsername ( idapp , data . userDest ) : null ;
2020-06-08 13:31:05 +02:00
2022-09-03 13:06:58 +02:00
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 ( ) ;
}
2022-01-16 23:21:03 +01:00
2022-09-03 13:06:58 +02:00
let cmd = 0 ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
if ( ! ! rec ) {
if ( ! ! user ) {
if ( data . action === InlineCmd . VOGLIO _IMBARCARMI ) {
// Controlla se è qualificato!
const mydata = tools . AddDate ( user . date _reg , 7 ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
// bot.editMessageText(tools.gettranslate('ADDED_TOLISTAINGRESSO', user.lang), opts);
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineCmd . NON _VOGLIO _IMBARCARMI ) {
await User . NonVoglioImbarcarmi ( user . idapp , user . username ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
const msgadd = '[' + user . username + '] ' + user . name + ' ' +
user . surname + ' ha risposto che NON VUOLE IMBARCARSI !' ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
await local _sendMsgTelegramToTheManagers ( user . idapp , msgadd ,
msg , false ) ; // Anche a STAFF
} else if ( data . action ===
InlineZoomConferma . CONFERMA _ZOOM _PRESENZA ) {
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
await User . setZoomPresenza ( user . idapp , user . _id , true ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
} else if ( data . action ===
InlineZoomConferma . NON _CONFERMA _ZOOM _PRESENZA ) {
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
await User . setZoomPresenza ( user . idapp , user . _id , false ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _SI + shared _consts . CallFunz . REGISTRATION ) {
const changed = await myclTelegram . setCmdToUsername ( rec ,
data . username ,
Cmd . VALIDATE _REGISTRATION , true ) ;
2022-03-04 22:30:50 +01:00
2022-09-03 13:06:58 +02:00
if ( changed ) {
const req = tools . getReqByPar ( user . idapp , username _action ) ;
await User . setFriendsCmd ( req , user . idapp , data . username , userDest . username , shared _consts . FRIENDSCMD . SETFRIEND ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
await User . setaportador _solidario ( user . idapp , data . username , userDest . username ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
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 } ` ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
await local _sendMsgTelegram ( user . idapp , data . username , msgOrig ) ;
await local _sendMsgTelegram ( user . idapp , data . userDest , msgDest ) ;
}
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
} 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 ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
if ( changed ) {
const nomeDest = tools . getNomeCognomeEUserNameByUser ( userDest ) ;
const nomestr = tools . getNomeCognomeEUserNameByUser ( user ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
const msgOrig = printf ( getstr ( userDest . lang , 'MSG_APORTADOR_DEST_NOT_CONFIRMED' , nomeDest ) ) ;
const msgDest = printf ( getstr ( user . lang , 'MSG_APORTADOR_NOT_CONFIRMED' ) , nomestr ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
await local _sendMsgTelegram ( user . idapp , data . username , msgOrig ) ;
await local _sendMsgTelegram ( user . idapp , data . userDest , msgDest ) ;
}
2022-03-06 00:48:33 +01:00
}
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _SI + shared _consts . CallFunz . RICHIESTA _GRUPPO ) {
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
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 ) ;
}
2022-03-06 00:48:33 +01:00
}
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _NO + shared _consts . CallFunz . RICHIESTA _GRUPPO ) {
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
if ( group ) {
2022-09-12 18:37:08 +02:00
cmd = shared _consts . GROUPSCMD . REFUSE _REQ _GROUP ;
2022-09-03 13:06:58 +02:00
const foundIfAlreadyGroup = await User . ifAlreadyInGroup ( user . idapp , data . username , group . groupname ) ;
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
if ( foundIfAlreadyGroup ) {
// Rimuovilo nel Gruppo
await User . setGroupsCmd ( user . idapp , data . username , group . groupname , cmd , 0 , username _action ) ;
}
2022-03-06 00:48:33 +01:00
}
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _SI + shared _consts . CallFunz . RICHIESTA _CIRCUIT ) {
2022-03-06 00:48:33 +01:00
2022-09-03 13:06:58 +02:00
if ( circuit ) {
cmd = shared _consts . CIRCUITCMD . SET ;
2022-09-14 17:37:29 +02:00
const foundIfAlreadyCircuit = await User . ifAlreadyInCircuit ( user . idapp , data . username , circuit . name ) ;
2022-09-02 02:25:38 +02:00
2022-09-03 13:06:58 +02:00
if ( ! foundIfAlreadyCircuit ) {
2022-09-11 11:45:33 +02:00
// Aggiungilo nel Circuito
2022-09-03 13:06:58 +02:00
await User . setCircuitCmd ( user . idapp , data . username , circuit . name , cmd , 0 , username _action ) ;
}
2022-09-02 02:25:38 +02:00
}
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _NO + shared _consts . CallFunz . RICHIESTA _CIRCUIT ) {
2022-09-02 02:25:38 +02:00
2022-09-03 13:06:58 +02:00
if ( circuit ) {
2022-09-12 18:37:08 +02:00
cmd = shared _consts . CIRCUITCMD . REFUSE _REQ ;
2022-09-03 13:06:58 +02:00
const foundIfAlreadyCircuit = await User . ifAlreadyInCircuit ( user . idapp , data . username , circuit . name ) ;
2022-09-02 02:25:38 +02:00
2022-09-03 13:06:58 +02:00
if ( foundIfAlreadyCircuit ) {
// Rimuovilo nel Circuito
await User . setCircuitCmd ( user . idapp , data . username , circuit . name , cmd , 0 , username _action ) ;
}
2022-09-02 02:25:38 +02:00
}
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _SI + shared _consts . CallFunz . RICHIESTA _AMICIZIA ) {
2022-09-02 02:25:38 +02:00
2022-09-03 13:06:58 +02:00
if ( userDest ) {
cmd = shared _consts . FRIENDSCMD . SETFRIEND ;
const foundIfAlreadyFriend = await User . isMyFriend ( user . idapp , data . username , data . userDest ) ;
2022-03-11 12:38:01 +01:00
2022-09-03 13:06:58 +02:00
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 ) ;
2022-03-11 12:38:01 +01:00
2022-09-03 13:06:58 +02:00
}
2022-03-11 12:38:01 +01:00
}
2022-09-03 13:06:58 +02:00
} else if ( data . action === InlineConferma . RISPOSTA _NO + shared _consts . CallFunz . RICHIESTA _AMICIZIA ) {
2022-03-11 12:38:01 +01:00
2022-09-03 13:06:58 +02:00
if ( userDest ) {
cmd = shared _consts . FRIENDSCMD . REMOVE _FROM _MYFRIENDS ;
const foundIfAlreadyFriend = await User . isMyFriend ( user . idapp , data . username , data . userDest ) ;
2022-03-11 22:48:46 +01:00
2022-09-03 13:06:58 +02:00
if ( foundIfAlreadyFriend ) {
// Aggiungilo nelle Amicizie
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 ) ;
2022-03-11 22:48:46 +01:00
2022-09-03 13:06:58 +02:00
await local _sendMsgTelegram ( user . idapp , data . userDest , msgDest ) ;
}
2022-03-11 22:48:46 +01:00
}
}
2022-03-04 22:30:50 +01:00
}
2022-02-28 17:20:47 +01:00
}
2022-01-07 01:18:01 +01:00
}
2022-09-03 13:06:58 +02:00
} catch ( e ) {
console . error ( 'Error BOT callback_query' , e ) ;
2020-06-08 13:31:05 +02:00
}
2022-09-03 13:06:58 +02:00
/ *
let text ;
2020-06-08 13:31:05 +02:00
2022-09-03 13:06:58 +02:00
if ( action === 'edit' ) {
text = 'Edited Text' ;
}
2020-06-08 13:31:05 +02:00
2022-09-03 13:06:58 +02:00
bot . editMessageText ( text , opts ) ;
* /
2020-01-03 01:52:49 +01:00
2022-09-03 13:06:58 +02:00
// bot.answerCallbackQuery(callbackQuery.id, { url });
} ) ;
}
} catch ( e ) {
console . error ( 'Error Telegram LOOP : ' + e . message ) ;
2022-01-07 01:18:01 +01:00
}
2020-01-13 23:52:51 +01:00
}
2022-09-03 13:06:58 +02:00
} ) . catch ( ( ) => {
arrTeleg = [ ] ;
} ) ;
2020-01-03 01:52:49 +01:00
}
2022-03-06 00:48:33 +01:00
module . exports = MyTelegramBot ;