Aggiornamento Traduzioni ...

This commit is contained in:
Paolo Arena
2020-03-31 20:34:24 +02:00
parent d59ee578c9
commit 8c9a5f7518
14 changed files with 946 additions and 269 deletions

View File

@@ -1,4 +1,4 @@
p Benvenuto #{name} nel portale di #{nomeapp}! p Dobrodošli #{name} nel portale di #{nomeapp}!
p I tuoi dati di accesso da ricordare sono: p I tuoi dati di accesso da ricordare sono:
span Username:  span Username: 
strong #{username}<br> strong #{username}<br>

View File

@@ -1,4 +1,4 @@
Dobrodošli # {name} na portalu # {nomeapp}! p Dobrodoli #{name} na portalu #{nomeapp}!
p Vaši podatki za dostop so: p Vaši podatki za dostop so:
span Username:&nbsp; span Username:&nbsp;
strong #{username}<br> strong #{username}<br>

View File

@@ -114,7 +114,7 @@ if (process.env.NODE_ENV === 'production') {
telegram_key:'1037577457:AAGQbdIuYoB838v61ewJ0Hearx9UPpTBhMI', telegram_key:'1037577457:AAGQbdIuYoB838v61ewJ0Hearx9UPpTBhMI',
telegram_bot_name: 'notevoleaynibot', telegram_bot_name: 'notevoleaynibot',
pathreg_add:'_ayni', pathreg_add:'_ayni',
abilitanave: false, abilitanave: true,
}, },
{ {
idapp: '8', idapp: '8',

View File

@@ -195,6 +195,7 @@ ExtraListSchema.statics.getUserNotRegisteredByNameSurname = function (idapp, nam
name_complete: nameandsurname, name_complete: nameandsurname,
registered: false, registered: false,
}, { }, {
lang: 1,
ind_order: 1, ind_order: 1,
name: 1, name: 1,
surname: 1, surname: 1,

View File

@@ -10,6 +10,7 @@ const { ObjectID } = require('mongodb');
const { Nave } = require('./nave'); const { Nave } = require('./nave');
const shared_consts = require('../tools/shared_nodejs'); const shared_consts = require('../tools/shared_nodejs');
const queryclass = require('../classes/queryclass'); const queryclass = require('../classes/queryclass');
@@ -206,17 +207,27 @@ function getQueryProj(myfilter) {
} }
ListaIngressoSchema.statics.showListaOrd = async function (idapp) { ListaIngressoSchema.statics.showListaOrd = async function (idapp, solonuovi) {
const ListaIngresso = this; const ListaIngresso = this;
const myquery = getQueryProj({ idapp }); const { User } = require('./user');
let myquery = '';
if (solonuovi)
myquery = getQueryProj({ idapp, added: false });
else
myquery = getQueryProj({ idapp });
arrrec = await ListaIngresso.aggregate(myquery).sort({ indprimario: 1 }); arrrec = await ListaIngresso.aggregate(myquery).sort({ indprimario: 1 });
let mystr = ''; let mystr = '';
let conta = 1; let conta = 1;
for (const rec of arrrec) { for (const rec of arrrec) {
mystr += '[' + conta + '] ' + rec.ind_order + ' (' + rec.ind_order + ') ' + rec.name + ' ' + rec.surname; rec.numinvitati = await User.getnumInvitati(idapp, rec.username);
rec.numinvitatiattivi = await User.getnumInvitatiAttivi(idapp, rec.username);
mystr += '[' + conta + '] ' + rec.ind_order + ' [' + rec.numinvitatiattivi + '] - [' + rec.numinvitati + '] (' + rec.ind_order + ') ' + rec.name + ' ' + rec.surname;
if (rec.added) if (rec.added)
mystr += ' (ADDED ++)'; mystr += ' (ADDED ++)';

View File

@@ -43,7 +43,7 @@ const NaveSchema = new mongoose.Schema({
parent_id: { parent_id: {
type: mongoose.Schema.Types.ObjectId, type: mongoose.Schema.Types.ObjectId,
}, },
date_start: { /*date_start: {
type: Date type: Date
}, },
date_gift_chat_open: { date_gift_chat_open: {
@@ -51,7 +51,7 @@ const NaveSchema = new mongoose.Schema({
}, },
link_chat: { link_chat: {
type: String, type: String,
}, },*/
sent_msg_howto_make_gift: { sent_msg_howto_make_gift: {
type: Boolean, type: Boolean,
default: false, default: false,
@@ -80,10 +80,10 @@ const NaveSchema = new mongoose.Schema({
note: { note: {
type: String type: String
}, },
provvisoria: { /* provvisoria: {
type: Boolean type: Boolean
}, },
/* note_bot: { note_bot: {
type: String type: String
}, },
note_interne: { note_interne: {
@@ -438,14 +438,14 @@ function getQueryProj(myfilter) {
riga: 1, riga: 1,
col: 1, col: 1,
created: 1, created: 1,
date_start: 1, // date_start: 1,
date_gift_chat_open: 1, // date_gift_chat_open: 1,
link_chat: 1, // link_chat: 1,
provvisoria: 1, // provvisoria: 1,
note_bot: 1, // note_bot: 1,
note_interne: 1, // note_interne: 1,
tutor: 1, // tutor: 1,
tutor_namesurname: 1, // tutor_namesurname: 1,
}; };
const query = [ const query = [
@@ -590,6 +590,7 @@ NaveSchema.statics.getPlaccaGenerica = async function (idapp, riga, col, offset,
let recfuoco = await Nave.findByRigaCol(idapp, indr, indc, true); let recfuoco = await Nave.findByRigaCol(idapp, indr, indc, true);
recfuoco = checkifNullThenEmpty(recfuoco, indr, indc); recfuoco = checkifNullThenEmpty(recfuoco, indr, indc);
arrdonatori.push({ index: ind, ...recfuoco }); arrdonatori.push({ index: ind, ...recfuoco });
mystr += await getusertextbyrec(recfuoco, symb.icona, symb.car, indr, indc, ind) + tools.ACAPO; mystr += await getusertextbyrec(recfuoco, symb.icona, symb.car, indr, indc, ind) + tools.ACAPO;
ind++; ind++;
} }
@@ -677,7 +678,7 @@ function calcval(riga, col, quanti) {
return (quanti * (col - 1)); return (quanti * (col - 1));
} }
NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord) { NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, ind_order) {
const Nave = this; const Nave = this;
if (riga <= 0) if (riga <= 0)
@@ -685,6 +686,12 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord) {
if (col <= 0) if (col <= 0)
col = 1; col = 1;
let lang = 'it';
if (!!ind_order) {
const { User } = require('./user');
lang = await User.getLangByIndOrder(idapp, ind_order);
}
try { try {
let recsognatori = [await Nave.findRecByRigaColParent(idapp, riga, col, 3), let recsognatori = [await Nave.findRecByRigaColParent(idapp, riga, col, 3),
@@ -695,12 +702,12 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord) {
let recnavepersistente = await NavePersistente.findByRigaCol(idapp, riga, col, 0); let recnavepersistente = await NavePersistente.findByRigaCol(idapp, riga, col, 0);
mystr = '🌈SOGNATORE: '; mystr = '🌈' + tools.get__('SOGNATORE', lang) + ': ';
for (let indsogn = 0; indsogn < recsognatori.length; indsogn++) { for (let indsogn = 0; indsogn < recsognatori.length; indsogn++) {
mystr += 'A' + (3 - indsogn) + await getusertextbyrec(recsognatori[indsogn], '', '', riga, col, '') + tools.ACAPO; mystr += 'A' + (3 - indsogn) + await getusertextbyrec(recsognatori[indsogn], '', '', riga, col, '') + tools.ACAPO;
} }
mystr += tools.ACAPO + '🌀 MEDIATORE:' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO; mystr += tools.ACAPO + '🌀 ' + tools.get__('MEDIATORE', lang) + ':' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
for (let indterra = 1; indterra <= 2; indterra++) { for (let indterra = 1; indterra <= 2; indterra++) {
miacol = calcval(riga, col, 2) + (indterra); miacol = calcval(riga, col, 2) + (indterra);
@@ -722,7 +729,7 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord) {
let primofuoco = null; let primofuoco = null;
mystr += '🎁 DONATORI:' + tools.ACAPO; mystr += '🎁 ' + tools.get__('DONATORI', lang) + ':' + tools.ACAPO;
let donitotali = 0; let donitotali = 0;
let donifatti = 0; let donifatti = 0;
@@ -741,7 +748,7 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord) {
} }
if (!!recfuoco && recmediatore) { if (!!recfuoco && recmediatore) {
if (recfuoco.ind_order === recmediatore.ind_order && recfuoco.num_tess === 2) { if (recfuoco.ind_order === recmediatore.ind_order && recfuoco.num_tess === 2) {
mystr += await getusertextbyrec(recfuoco, '', 'TESS', miariga, miacol, '') + tools.ACAPO; mystr += await getusertextbyrec(recfuoco, '', tools.get__('RITESSITURA', lang), miariga, miacol, '') + tools.ACAPO;
} else { } else {
mystr += await getusertextbyrec(recfuoco, symbol, 'D', miariga, miacol, indfuoco) + tools.ACAPO; mystr += await getusertextbyrec(recfuoco, symbol, 'D', miariga, miacol, indfuoco) + tools.ACAPO;
donitotali++; donitotali++;
@@ -751,30 +758,32 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord) {
if (donitotali > 0 && donifatti >= donitotali) { if (donitotali > 0 && donifatti >= donitotali) {
mystr += tools.ACAPO + '💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫' + tools.ACAPO + mystr += tools.ACAPO + '💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫' + tools.ACAPO +
'✨✨✨ NAVE COMPLETATA (Doni Effettuati) ! ✨✨✨' + tools.ACAPO + '✨✨✨ ' + tools.get__('NAVE COMPLETATA', lang) + ' ' + ' (' + tools.get__('Doni Effettuati', lang) + ') ! ✨✨✨' + tools.ACAPO +
'💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫' + tools.ACAPO; '💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫' + tools.ACAPO;
} }
let data = ""; let data = "";
let mystrtemp = ''; let mystrtemp = '';
if (primofuoco) { if (primofuoco) {
data = '💬 Giorno di Apertura GIFT CHAT: ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open) + tools.ACAPO;
// tools.gettranslate('PLACCA_TUTOR', lang)
if (!!recnavepersistente.tutor_namesurname) if (!!recnavepersistente.tutor_namesurname)
data += 'Il Mediatore sarà contattato 1 giorno prima dal Tutor ' + recnavepersistente.tutor_namesurname + tools.ACAPO; data += '👤 ' + tools.get__('Tutor che affianchèra il Mediatore', lang) + ': "' + recnavepersistente.tutor_namesurname + '"' + tools.ACAPO;
data += "🎁 Giorno in cui Inviare il DONO : " + tools.getstrDateLong(recnavepersistente.date_start) + tools.ACAPO; data += '💬 ' + tools.get__('Giorno di Apertura GIFT CHAT', lang) + ': ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open) + tools.ACAPO;
data += '🎁 ' + tools.get__('Giorno in cui Inviare il DONO', lang) + ' : ' + tools.getstrDateLong(recnavepersistente.date_start) + tools.ACAPO;
if (!!recnavepersistente.note_bot) if (!!recnavepersistente.note_bot)
data += "Note: " + recnavepersistente.note_bot + tools.ACAPO; data += tools.get__('Note', lang) + ": " + recnavepersistente.note_bot + tools.ACAPO;
data += tools.ACAPO;
if (recnavepersistente.provvisoria) if (recnavepersistente.provvisoria)
mystrtemp = 'TEMPORANEA '; mystrtemp = tools.get__('TEMPORANEA', lang) + ' ';
} else } else
data = ""; data = "";
mystr = tools.ACAPO + 'NAVE ' + '[' + riga + '.' + col + '] ' + mystrtemp + tools.ACAPO + data + tools.ACAPO + mystr; mystr = tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + riga + '.' + col + '] ' + mystrtemp + tools.ACAPO + data + tools.ACAPO + mystr;
return mystr; return mystr;
} catch (e) { } catch (e) {
@@ -818,7 +827,6 @@ NaveSchema.statics.getArrPosizioniByIndOrder = async function (idapp, ind_order)
const Nave = this; const Nave = this;
arrposizioni = await Nave.find({ 'idapp': idapp, ind_order }).sort({ riga: 1, col: 1 }); arrposizioni = await Nave.find({ 'idapp': idapp, ind_order }).sort({ riga: 1, col: 1 });
return arrposizioni; return arrposizioni;
@@ -843,8 +851,9 @@ NaveSchema.statics.showListaOrd = async function (idapp) {
let conta = 1; let conta = 1;
for (const rec of arrrec) { for (const rec of arrrec) {
let recnavepersistente = await NavePersistente.findByRigaColByDonatore(idapp, rec.riga, rec.col, 0); let recnavepersistente = await NavePersistente.findByRigaColByDonatore(idapp, rec.riga, rec.col, 0);
if (!!recnavepersistente) {
mystr += '[' + conta + '] [' + rec.riga + '.' + rec.col + '] ' + rec.ind_order + ' ' + rec.name + ' ' + rec.surname + ' (' + tools.getstrDateShort(recnavepersistente.date_start) + ')\n'; mystr += '[' + conta + '] [' + rec.riga + '.' + rec.col + '] ' + rec.ind_order + ' ' + rec.name + ' ' + rec.surname + ' (' + tools.getstrDateShort(recnavepersistente.date_start) + ')\n';
}
conta++; conta++;
} }
@@ -859,18 +868,22 @@ NaveSchema.statics.getLastRigaCol = async function (idapp) {
async function addRecordNaveByParams(params, siRitesse) { async function addRecordNaveByParams(params, siRitesse) {
const { ListaIngresso } = require('./listaingresso'); const { ListaIngresso } = require('./listaingresso');
let paramspers = { ...params };
let mypos = { let mypos = {
idapp: params.idapp, idapp: params.idapp,
riga: params.riga, riga: params.riga,
col: params.col, col: params.col,
numup: -3 numup: 3
}; };
tools.getRigaColByPosUp(mypos); tools.getRigaColByPosUp(mypos);
params.riga1don = mypos.riga; paramspers.riga1don = params.riga;
params.col1don = mypos.col; paramspers.col1don = params.col;
paramspers.riga = mypos.riga;
paramspers.col = mypos.col;
await NavePersistente.addRecordNavePersistenteByParams(params); await NavePersistente.addRecordNavePersistenteByParams(paramspers);
if (!siRitesse) { if (!siRitesse) {
// Check if Exist: // Check if Exist:
@@ -924,7 +937,7 @@ async function addRecordNaveByParams(params, siRitesse) {
if ((params.col % 8) === 0) { if ((params.col % 8) === 0) {
// Completed 8 people // Completed 8 people
if (!params.primavolta) { if (!params.primavolta) {
await Fuochi8Completati(idapp, params); // await Fuochi8Completati(idapp, params);
} }
} }
} }
@@ -1087,7 +1100,6 @@ NaveSchema.statics.generaNave = async function (idapp, mydata) {
params.ind_order = reclista.ind_order; params.ind_order = reclista.ind_order;
params.id = reclista._id; params.id = reclista._id;
params.num_tess = reclista.num_tess; params.num_tess = reclista.num_tess;
params.provvisoria = mydata.provvisoria;
await Nave.addUserFromListaIngresso_IntoNave(index === 0, idapp, params, false); await Nave.addUserFromListaIngresso_IntoNave(index === 0, idapp, params, false);
index++; index++;
@@ -1108,7 +1120,6 @@ async function addUserToNave(idapp, rec) {
params.ind_order = rec.ind_order; params.ind_order = rec.ind_order;
params.id = rec._id; params.id = rec._id;
params.num_tess = rec.num_tess; params.num_tess = rec.num_tess;
params.provvisoria = false;
return await Nave.addUserFromListaIngresso_IntoNave(true, idapp, params, true); return await Nave.addUserFromListaIngresso_IntoNave(true, idapp, params, true);
@@ -1175,7 +1186,7 @@ NaveSchema.statics.getNaveByUser = async function (idapp, ind_order, lang, fuoco
}; };
tools.getRigaColByPosUp(mypos); tools.getRigaColByPosUp(mypos);
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false); mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, ind_order);
// mystr += await Nave.getPlaccaPerDonatore(idapp, pos.riga, pos.col, false, rec); // mystr += await Nave.getPlaccaPerDonatore(idapp, pos.riga, pos.col, false, rec);
// mystr += await Nave.getPlaccaPerMediatore(idapp, pos.riga, pos.col, false, rec); // mystr += await Nave.getPlaccaPerMediatore(idapp, pos.riga, pos.col, false, rec);
} }

View File

@@ -104,6 +104,25 @@ NavePersistenteSchema.statics.findAllIdApp = function (idapp) {
return NavePersistente.find(myfind).sort({ riga: 1, col: 1 }); return NavePersistente.find(myfind).sort({ riga: 1, col: 1 });
}; };
NavePersistenteSchema.statics.getListaNavi = function (idapp) {
const NavePersistente = this;
const myfind = { idapp };
return NavePersistente.find(myfind,
{
index: 1,
riga: 1,
col: 1,
riga1don: 1,
col1don: 1,
date_start: 1,
provvisoria: 1,
DoniConfermati: 1,
}
).sort({ riga: 1, col: 1 });
};
NavePersistenteSchema.statics.findByRigaColByDonatore = function (idapp, riga, col, offset) { NavePersistenteSchema.statics.findByRigaColByDonatore = function (idapp, riga, col, offset) {
const NavePersistente = this; const NavePersistente = this;
@@ -132,7 +151,7 @@ NavePersistenteSchema.statics.getLastRigaCol = async function (idapp) {
NavePersistenteSchema.pre('save', async function (next) { NavePersistenteSchema.pre('save', async function (next) {
if (this.isNew) { if (this.isNew) {
const myrec = await NavePersistente.findOne().limit(1).sort({_id:-1}); const myrec = await NavePersistente.findOne().limit(1).sort({ _id: -1 });
if (!!myrec) { if (!!myrec) {
this.index = myrec._doc.index + 1; this.index = myrec._doc.index + 1;
} else { } else {
@@ -162,7 +181,7 @@ NavePersistenteSchema.statics.addRecordNavePersistenteByParams = async function
col1don: params.col1don, col1don: params.col1don,
date_start: params.date_start, date_start: params.date_start,
date_gift_chat_open: params.date_gift_chat_open, date_gift_chat_open: params.date_gift_chat_open,
provvisoria: params.provvisoria, provvisoria: true,
}); });
return await myNavePersistente.save(); return await myNavePersistente.save();
} }

View File

@@ -9,6 +9,7 @@ const tools = require('../tools/general');
const { Settings } = require('../models/settings'); const { Settings } = require('../models/settings');
const { ListaIngresso } = require('../models/listaingresso'); const { ListaIngresso } = require('../models/listaingresso');
const { Nave } = require('../models/nave'); const { Nave } = require('../models/nave');
const { NavePersistente } = require('../models/navepersistente');
const { ExtraList } = require('../models/extralist'); const { ExtraList } = require('../models/extralist');
const { ObjectID } = require('mongodb'); const { ObjectID } = require('mongodb');
@@ -360,6 +361,7 @@ UserSchema.statics.getUserShortDataByUsername = async function (idapp, username)
'idapp': idapp, 'idapp': idapp,
'username': username, 'username': username,
}, { }, {
lang: 1,
ind_order: 1, ind_order: 1,
username: 1, username: 1,
name: 1, name: 1,
@@ -404,6 +406,7 @@ UserSchema.statics.getDownlineByUsername = async function (idapp, username) {
'idapp': idapp, 'idapp': idapp,
'aportador_solidario': username, 'aportador_solidario': username,
}, { }, {
lang: 1,
aportador_solidario: 1, aportador_solidario: 1,
ind_order: 1, ind_order: 1,
username: 1, username: 1,
@@ -767,6 +770,34 @@ UserSchema.statics.SetTelegramIdSuccess = async function (idapp, id, teleg_id) {
}; };
UserSchema.statics.getLangByIndOrder = async function (idapp, ind_order) {
const User = this;
return await User.findOne({ idapp, ind_order }, { lang: 1 })
.then((rec) => {
return (!!rec) ? rec.lang : '';
}).catch((e) => {
return 'it';
});
};
UserSchema.statics.SetLang = async function (idapp, id, lang) {
const User = this;
const fields_to_update = {
lang,
};
return await User.findOneAndUpdate({
_id: id
}, { $set: fields_to_update }, { new: false }).then((record) => {
return record;
});
};
UserSchema.statics.SetTelegramWasBlocked = async function (idapp, teleg_id) { UserSchema.statics.SetTelegramWasBlocked = async function (idapp, teleg_id) {
const User = this; const User = this;
@@ -1000,10 +1031,11 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
dashboard.arrnavi = await Nave.getArrPosizioniByIndOrder(idapp, dashboard.myself.ind_order); dashboard.arrnavi = await Nave.getArrPosizioniByIndOrder(idapp, dashboard.myself.ind_order);
dashboard.navi_partenza = []; dashboard.navi_partenza = await NavePersistente.getListaNavi(idapp);
for (let indriga = 0; indriga < 10; indriga++) {
dashboard.navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga)); //for (let indriga = 0; indriga < 10; indriga++) {
} // dashboard.navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga));
//}
for (let mynave of dashboard.arrnavi) { for (let mynave of dashboard.arrnavi) {
mynave._doc.rec = await Nave.getNaveByRigaCol(idapp, mynave.riga, mynave.col); mynave._doc.rec = await Nave.getNaveByRigaCol(idapp, mynave.riga, mynave.col);

View File

@@ -83,11 +83,7 @@ router.post('/getnavi', authenticate, async (req, res) => {
const idapp = req.body.idapp; const idapp = req.body.idapp;
let arrnavi = []; let arrnavi = [];
let navi_partenza = [];
let test = false; let test = false;
for (let indriga = 1; indriga <= 4; indriga++) {
navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga));
}
if (test) { if (test) {
let indriga = 7; let indriga = 7;
let indcol = 49; let indcol = 49;
@@ -96,7 +92,6 @@ router.post('/getnavi', authenticate, async (req, res) => {
} else { } else {
for (let indriga = 4; indriga <= 9; indriga++) { for (let indriga = 4; indriga <= 9; indriga++) {
navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga));
let numcol = Math.pow(2, indriga - 1); let numcol = Math.pow(2, indriga - 1);
let quanti = Math.ceil(numcol / 8); let quanti = Math.ceil(numcol / 8);
@@ -112,6 +107,8 @@ router.post('/getnavi', authenticate, async (req, res) => {
nave.rec = await Nave.getNaveByRigaCol(idapp, nave.riga, nave.col); nave.rec = await Nave.getNaveByRigaCol(idapp, nave.riga, nave.col);
} }
const navi_partenza = await NavePersistente.findAllIdApp(idapp);
ris = { arrnavi, navi_partenza }; ris = { arrnavi, navi_partenza };
if (ris) if (ris)
@@ -186,5 +183,23 @@ router.post('/getdoninavi', authenticate, async (req, res) => {
}); });
router.post('/getdata', authenticate, async (req, res) => {
const idapp = req.body.idapp;
const data = req.body.data;
try {
const mystr = await Nave.getNavePos(idapp, parseInt(data.riga), parseInt(data.col));
if (mystr)
res.send({ code: server_constants.RIS_CODE_OK, ris: mystr });
else
res.status(400).send(e);
} catch (e) {
console.log(e)
}
});
module.exports = router; module.exports = router;

View File

@@ -331,6 +331,32 @@ async function getInfoUser(idapp, username) {
} }
router.patch('/setlang', authenticate, async (req, res) => {
const username = req.body.data.username;
const idapp = req.body.idapp;
const mydata = req.body.data;
const lang = mydata.lang;
const fieldsvalue = {
lang
};
if (!!lang) {
const rec = await User.findByUsername(idapp, username, false);
let ris = null;
if (!!rec)
ris = await User.findByIdAndUpdate(rec.id, { $set: fieldsvalue });
if (!!ris) {
return res.send({ code: server_constants.RIS_CODE_OK, msg: '' });
}
res.status(400).send();
}
});
router.patch('/chval', authenticate, async (req, res) => { router.patch('/chval', authenticate, async (req, res) => {
// const idapp = req.body.idapp; // const idapp = req.body.idapp;

View File

@@ -420,12 +420,7 @@ router.post('/dbop', authenticate, async (req, res) => {
try { try {
if (mydata.dbop === 'creaNaviProvvisorie') { if (mydata.dbop === 'creaNavi') {
mydata.provvisoria = true;
const num = await Nave.generaNave(idapp, mydata);
ris = { num };
} else if (mydata.dbop === 'creaNaviDefinitive') {
mydata.provvisoria = false;
const num = await Nave.generaNave(idapp, mydata); const num = await Nave.generaNave(idapp, mydata);
ris = { num }; ris = { num };
} else if (mydata.dbop === 'delNavi') { } else if (mydata.dbop === 'delNavi') {
@@ -439,7 +434,22 @@ router.post('/dbop', authenticate, async (req, res) => {
// const num = await Nave.remove({ idapp, date_start: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 24 * 3) } }); // const num = await Nave.remove({ idapp, date_start: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 24 * 3) } });
// ris = { num }; // ris = { num };
} else if (mydata.dbop === 'delNaviProvvisorie') { } else if (mydata.dbop === 'delNaviProvvisorie') {
const num = await Nave.remove({ idapp, provvisoria: true });
let num = 0;
const arrnavi = await Nave.find({ idapp });
for (const nave of arrnavi) {
let persistente = await NavePersistente.findByRigaColByDonatore(idapp, nave.riga, nave.col, 0);
if (!!persistente) {
if (persistente.provvisoria) {
let ris = await Nave.remove({ _id: nave._id });
if (!!ris) {
num++;
}
}
}
}
const data = await Nave.getLastRigaCol(idapp); const data = await Nave.getLastRigaCol(idapp);
await Nave.setRiga(idapp, data.riga); await Nave.setRiga(idapp, data.riga);
@@ -456,7 +466,10 @@ router.post('/dbop', authenticate, async (req, res) => {
const mystr = await Nave.checkIfDevoAggiungereInNave(idapp); const mystr = await Nave.checkIfDevoAggiungereInNave(idapp);
ris = { mystr }; ris = { mystr };
} else if (mydata.dbop === 'visuListaIngresso') { } else if (mydata.dbop === 'visuListaIngresso') {
const mystr = await ListaIngresso.showListaOrd(idapp); const mystr = await ListaIngresso.showListaOrd(idapp, false);
ris = { mystr };
} else if (mydata.dbop === 'visuListaIngressoNuovi') {
const mystr = await ListaIngresso.showListaOrd(idapp, true);
ris = { mystr }; ris = { mystr };
} else if (mydata.dbop === 'initListaIngresso') { } else if (mydata.dbop === 'initListaIngresso') {
// const aaa = await User.updateMany({ idapp }, { $set: { 'profile.nationality': 'IT' } }); // const aaa = await User.updateMany({ idapp }, { $set: { 'profile.nationality': 'IT' } });
@@ -512,7 +525,10 @@ router.post('/dbop', authenticate, async (req, res) => {
} }
ris = { num }; ris = { num };
} else if (mydata.dbop === 'CreaNaviPersistenti') { /*
}
else if (mydata.dbop === 'CreaNaviPersistenti') {
const listanavi = await Nave.find({ idapp }).sort({riga: 1, col: 1}); const listanavi = await Nave.find({ idapp }).sort({riga: 1, col: 1});
let params = { let params = {
@@ -533,7 +549,6 @@ router.post('/dbop', authenticate, async (req, res) => {
params.date_start = rec.date_start; params.date_start = rec.date_start;
params.date_gift_chat_open = rec.date_gift_chat_open; params.date_gift_chat_open = rec.date_gift_chat_open;
params.provvisoria = rec.provvisoria;
params.riga = mypos.riga; params.riga = mypos.riga;
params.col = mypos.col; params.col = mypos.col;
if (rec.riga > 3) { if (rec.riga > 3) {
@@ -550,7 +565,7 @@ router.post('/dbop', authenticate, async (req, res) => {
} }
} }
ris = { num }; ris = { num }; */
} else if (mydata.dbop === 'CorreggiDataGiftChat') { } else if (mydata.dbop === 'CorreggiDataGiftChat') {
const listanavi = await NavePersistente.find({ idapp }); const listanavi = await NavePersistente.find({ idapp });
let num = 0; let num = 0;

View File

@@ -92,7 +92,7 @@ app.use(bodyParser.json());
i18n.configure({ i18n.configure({
locales: ['it', 'en', 'es'], locales: ['it', 'enUs', 'es', 'fr', 'pt', 'si'],
// cookie: 'cook', // cookie: 'cook',
directory: __dirname + '/locales' directory: __dirname + '/locales'
}); });

View File

@@ -136,29 +136,97 @@ strNave = "Nave";
const Menu = { const Menu = {
LANG_IT: emoji.get('flag-it') + ' Italiano',
LANG_EN: emoji.get('flag-gb') + ' English',
LANG_ES: emoji.get('flag-es') + ' Español',
LANG_FR: emoji.get('flag-fr') + ' Français',
LANG_SI: emoji.get('flag-si') + ' Slovenski',
LANG_PT: emoji.get('flag-pt') + ' Português',
LANG: emoji.get('globe_with_meridians') + ' Language',
CHAT_PERSONALE: emoji.get('female-office-worker') + emoji.get('computer'),
EXIT_TELEGRAM: 'exittotelegram',
MSG_TO_USER: 'sendmsgto',
ADMIN: emoji.get('information_desk_person') + ' Admin',
ALTRO: emoji.get('newspaper') + ' Altro',
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',
MSG_SI_INVITATI_NO_7REQ_INVITATI: emoji.get('incoming_envelope') + 'Inv e NO 7 Req',
MSGSTAFF: emoji.get('incoming_envelope') + ' Invia a STAFF',
MSGATUTTI: emoji.get('incoming_envelope') + ' Invia a TUTTI',
it: {
ACCEDI: emo.PERSON + ' Accedi', ACCEDI: emo.PERSON + ' Accedi',
LAVAGNA: emoji.get('om_symbol') + ' Lavagna', LAVAGNA: emoji.get('om_symbol') + ' Lavagna',
LINK_CONDIVIDERE: emoji.get('link') + ' Link da condividere', LINK_CONDIVIDERE: emoji.get('link') + ' Link da condividere',
ZOOM: emoji.get('information_source') + ' Zoom (Conferenze)', ZOOM: emoji.get('information_source') + ' Zoom (Conferenze)',
INFO: emoji.get('information_source') + ' Informazioni', INFO: emoji.get('information_source') + ' Informazioni',
ASSISTENZA: emoji.get('open_hands') + ' Le Chat di AYNI', ASSISTENZA: emoji.get('open_hands') + ' Le Chat di AYNI',
ADMIN: emoji.get('information_desk_person') + ' Admin',
ALTRO: emoji.get('newspaper') + ' Altro',
MSGATUTTI: emoji.get('incoming_envelope') + ' Invia a TUTTI',
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',
MSG_TO_USER: 'sendmsgto',
MSG_SI_INVITATI_NO_7REQ_INVITATI: emoji.get('incoming_envelope') + 'Inv e NO 7 Req',
MSGSTAFF: emoji.get('incoming_envelope') + ' Invia a STAFF',
INDIETRO: emoji.get('back') + ' Indietro', INDIETRO: emoji.get('back') + ' Indietro',
SI: emoji.get('thumbsup') + ' SI', SI: emoji.get('thumbsup') + ' SI',
NO: emoji.get('thumbsdown') + ' NO', NO: emoji.get('thumbsdown') + ' NO',
CHAT_PERSONALE: emoji.get('female-office-worker') + emoji.get('computer'),
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Esci dalla Conversazione', ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Esci dalla Conversazione',
EXIT_TELEGRAM: 'exittotelegram', },
MIANAVE: emo.GIFT + ' ' + strNave, es: {
ACCEDI: emo.PERSON + ' Entra',
LAVAGNA: emoji.get('om_symbol') + ' Tablero',
LINK_CONDIVIDERE: emoji.get('link') + ' Enlaces para compartir',
ZOOM: emoji.get('information_source') + ' Zoom (Conferencias)',
INFO: emoji.get('information_source') + ' Información',
ASSISTENZA: emoji.get('open_hands') + ' Chats de AYNI',
INDIETRO: emoji.get('back') + ' Volver',
SI: emoji.get('thumbsup') + ' SÍ',
NO: emoji.get('thumbsdown') + ' NO',
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Salir de la conversación',
},
fr: {
ACCEDI: emo.PERSON + ' Entrez',
LAVAGNA: emoji.get('om_symbol') + ' Tableau de bord',
LINK_CONDIVIDERE: emoji.get('link') + ' Liens à partager',
ZOOM: emoji.get('information_source') + ' Zoom (Conférences)',
INFO: emoji.get('information_source') + ' Informations',
ASSISTENZA: emoji.get('open_hands') + ' Les chats d\'AYNI',
INDIETRO: emoji.get('back') + ' Retour',
SI: emoji.get('thumbsup') + ' OUI',
NO: emoji.get('thumbsdown') + ' NON',
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Quitter la conversation',
},
si: {
ACCEDI: emo.PERSON + ' Prijava',
LAVAGNA: emoji.get('om_symbol') + ' Predstavitev',
LINK_CONDIVIDERE: emoji.get('link') + ' Povezava za skupno rabo',
ZOOM: emoji.get('information_source') + ' Zoom (Konference)',
INFO: emoji.get('information_source') + ' Informacije',
ASSISTENZA: emoji.get('open_hands') + ' AYNI-jev klepet',
INDIETRO: emoji.get('back') + ' Nazaj',
SI: emoji.get('thumbsup') + ' DA',
NO: emoji.get('thumbsdown') + ' NE',
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Zaprite pogovor',
},
pt: {
ACCEDI: emo.PERSON + ' Entre',
LAVAGNA: emoji.get('om_symbol') + ' Tablero',
LINK_CONDIVIDERE: emoji.get('link') + ' Links para compartilhar',
ZOOM: emoji.get('information_source') + ' Zoom (Conferências)',
INFO: emoji.get('information_source') + ' Informações',
ASSISTENZA: emoji.get('open_hands') + ' Chats do AYNI',
INDIETRO: emoji.get('back') + ' Voltar',
SI: emoji.get('thumbsup') + ' SIM',
NO: emoji.get('thumbsdown') + ' NÃO',
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Sair da Conversa',
},
enUs: {
ACCEDI: emo.PERSON + ' Enter',
LAVAGNA: emoji.get('om_symbol') + ' DashBoard',
LINK_CONDIVIDERE: emoji.get('link') + ' Link to Share',
ZOOM: emoji.get('information_source') + ' Zoom (Conference)',
INFO: emoji.get('information_source') + ' Info',
ASSISTENZA: emoji.get('open_hands') + ' AYNI\'s Chats',
INDIETRO: emoji.get('back') + ' Back',
SI: emoji.get('thumbsup') + ' YES',
NO: emoji.get('thumbsdown') + ' NO',
ESCI_DA_CHAT: emoji.get('incoming_envelope') + ' Exit to the Conversation',
},
}; };
const CONTA_SOLO = 'contasolo'; const CONTA_SOLO = 'contasolo';
@@ -167,15 +235,62 @@ const RICEVI_EMAIL = 'riceviemail';
const SendMsgCmd = [CONTA_SOLO, RICEVI_EMAIL]; const SendMsgCmd = [CONTA_SOLO, RICEVI_EMAIL];
const MenuNoLogin = [[Menu.ACCEDI], [Menu.ASSISTENZA]]; const MenuNoLogin = {
const MenuStandard = [[Menu.LAVAGNA, Menu.LINK_CONDIVIDERE], [Menu.ZOOM, Menu.ASSISTENZA]]; it: { menu: [[Menu.LANG], [Menu.it.ASSISTENZA]] },
const MenuPerAdmin = [[Menu.LAVAGNA, Menu.LINK_CONDIVIDERE], [Menu.ZOOM, Menu.ASSISTENZA], [Menu.ADMIN, Menu.ALTRO]]; es: { menu: [[Menu.LANG], [Menu.es.ASSISTENZA]] },
const MenuYesNo = [[Menu.SI, Menu.NO]]; fr: { menu: [[Menu.LANG], [Menu.fr.ASSISTENZA]] },
si: { menu: [[Menu.LANG], [Menu.si.ASSISTENZA]] },
pt: { menu: [[Menu.LANG], [Menu.pt.ASSISTENZA]] },
enUs: { menu: [[Menu.LANG], [Menu.enUs.ASSISTENZA]] },
};
const MenuAdmin = [[Menu.MSGSTAFF, Menu.MSGATUTTI, Menu.INDIETRO], [Menu.MSG_NO_7_REQ, Menu.MSG_NO_9_REQ], [Menu.MSG_TO_NAVE, Menu.MSG_SI_INVITATI_NO_7REQ_INVITATI]]; const MenuStandard = {
const MenuSend = [[CONTA_SOLO, RICEVI_EMAIL], [Menu.INDIETRO]]; it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG]] },
const MenuYes = [[Menu.MSGSTAFF, Menu.INDIETRO], ['', '']]; es: { menu: [[Menu.es.LAVAGNA, Menu.es.LINK_CONDIVIDERE], [Menu.es.ZOOM, Menu.es.ASSISTENZA], [Menu.LANG]] },
const MenuChat = [[Menu.ESCI_DA_CHAT, Menu.INDIETRO]]; fr: { menu: [[Menu.fr.LAVAGNA, Menu.fr.LINK_CONDIVIDERE], [Menu.fr.ZOOM, Menu.fr.ASSISTENZA], [Menu.LANG]] },
si: { menu: [[Menu.si.LAVAGNA, Menu.si.LINK_CONDIVIDERE], [Menu.si.ZOOM, Menu.si.ASSISTENZA], [Menu.LANG]] },
pt: { menu: [[Menu.pt.LAVAGNA, Menu.pt.LINK_CONDIVIDERE], [Menu.pt.ZOOM, Menu.pt.ASSISTENZA], [Menu.LANG]] },
enUs: { menu: [[Menu.enUs.LAVAGNA, Menu.enUs.LINK_CONDIVIDERE], [Menu.enUs.ZOOM, Menu.enUs.ASSISTENZA], [Menu.LANG]] },
};
const MenuPerAdmin = {
it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
es: { menu: [[Menu.es.LAVAGNA, Menu.es.LINK_CONDIVIDERE], [Menu.es.ZOOM, Menu.es.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
fr: { menu: [[Menu.fr.LAVAGNA, Menu.fr.LINK_CONDIVIDERE], [Menu.fr.ZOOM, Menu.fr.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
si: { menu: [[Menu.si.LAVAGNA, Menu.si.LINK_CONDIVIDERE], [Menu.si.ZOOM, Menu.si.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
pt: { menu: [[Menu.pt.LAVAGNA, Menu.pt.LINK_CONDIVIDERE], [Menu.pt.ZOOM, Menu.pt.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
enUs: { menu: [[Menu.enUs.LAVAGNA, Menu.enUs.LINK_CONDIVIDERE], [Menu.enUs.ZOOM, Menu.enUs.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
};
const MenuLang = {
it: { menu: [[Menu.LANG_IT, Menu.LANG_EN], [Menu.LANG_ES, Menu.LANG_FR], [Menu.LANG_SI, Menu.LANG_PT, Menu.it.INDIETRO]] },
};
const MenuYesNo = {
it: { menu: [[Menu.it.SI, Menu.it.NO]] },
es: { menu: [[Menu.es.SI, Menu.es.NO]] },
fr: { menu: [[Menu.fr.SI, Menu.fr.NO]] },
si: { menu: [[Menu.si.SI, Menu.si.NO]] },
pt: { menu: [[Menu.pt.SI, Menu.pt.NO]] },
enUs: { menu: [[Menu.enUs.SI, Menu.enUs.NO]] },
};
const MenuAdmin = {
it: { menu: [[Menu.MSGSTAFF, Menu.MSGATUTTI, Menu.it.INDIETRO], [Menu.MSG_NO_7_REQ, Menu.MSG_NO_9_REQ], [Menu.MSG_TO_NAVE, Menu.MSG_SI_INVITATI_NO_7REQ_INVITATI]] },
};
const MenuSend = {
it: { menu: [[CONTA_SOLO, RICEVI_EMAIL], [Menu.it.INDIETRO]] },
};
const MenuChat = {
it: { menu: [[Menu.it.ESCI_DA_CHAT, Menu.it.INDIETRO]] },
es: { menu: [[Menu.es.ESCI_DA_CHAT, Menu.es.INDIETRO]] },
fr: { menu: [[Menu.fr.ESCI_DA_CHAT, Menu.fr.INDIETRO]] },
si: { menu: [[Menu.si.ESCI_DA_CHAT, Menu.si.INDIETRO]] },
pt: { menu: [[Menu.pt.ESCI_DA_CHAT, Menu.pt.INDIETRO]] },
enUs: { menu: [[Menu.enUs.ESCI_DA_CHAT, Menu.enUs.INDIETRO]] },
};
const Sex = { const Sex = {
MALE: 1, MALE: 1,
@@ -218,7 +333,6 @@ const txt = {
MSG_ERR_VERIFY_CODE: 'Codice di Verifica Errato!' + emo.EXCLAMATION_MARK + '\nControlla sul sito %s e riscrivi il nuovo codice di 6 cifre.', MSG_ERR_VERIFY_CODE: 'Codice di Verifica Errato!' + emo.EXCLAMATION_MARK + '\nControlla sul sito %s e riscrivi il nuovo codice di 6 cifre.',
MSG_VERIFY_OK: emoji.get('grinning') + ' Benvenuto %s! Ti sei correttamente verificato con AYNI BOT. ' + '\nSono il tuo assistente virtuale.\n' + MSG_VERIFY_OK: emoji.get('grinning') + ' Benvenuto %s! Ti sei correttamente verificato con AYNI BOT. ' + '\nSono il tuo assistente virtuale.\n' +
'Continua la guida passo passo tornando sul sito di AYNI.\n\nQuesta chat ti servirà per vedere velocemente la tua Lavagna e per ricevere Importanti avvisi su come procedere il tuo cammino.\n\nUsa il menu qui sotto per controllare la tua situazione.' + emo.GREEN_HEART, 'Continua la guida passo passo tornando sul sito di AYNI.\n\nQuesta chat ti servirà per vedere velocemente la tua Lavagna e per ricevere Importanti avvisi su come procedere il tuo cammino.\n\nUsa il menu qui sotto per controllare la tua situazione.' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Errore durante il salvataggio sul Server. Riprovare piú tardi', MSG_ERR_UNKNOWN_VERIFY_CODE: 'Errore durante il salvataggio sul Server. Riprovare piú tardi',
MSG_EXIT_TELEGRAM: 'L\'account è stato ora scollegato da questo Telegram BOT.', MSG_EXIT_TELEGRAM: 'L\'account è stato ora scollegato da questo Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s (n. %s)"\n(Invitato da %s)', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s (n. %s)"\n(Invitato da %s)',
@@ -227,6 +341,107 @@ const txt = {
MSG_MSG_INCORSO: emoji.get('envelope') + ' messaggi in corso... Inviati attualmente', MSG_MSG_INCORSO: emoji.get('envelope') + ' messaggi in corso... Inviati attualmente',
}; };
const txt_es = {
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Elija un elemento del menú:' + emoji.get('dizzy'),
MSG_ASK_USERNAME_BO: 'Escriba en el mensaje el nombre de usuario o el correo electrónico con el que se registró en el sitio de %s:',
MSG_ERRORE_USERNAME: '¡Atención! Debes introducir sólo el nombre de usuario (40 caracteres como máximo)',
MSG_ERRORE_USERNAME_NOT_FOUND: 'Para completar la verificación del telegrama BOT, ahora debe escribir en el mensaje el nombre de usuario o el correo electrónico con el que se registró en el sitio de AYNI.:',
MSG_ERRORE_USERNAME_ANNULLA: 'Inserción cancelada. Inténtalo de nuevo.',
MSG_OPERAZ_ANNULLATA: 'Operación cancelada',
MSG_ERRORE_VERIFY_CODE_MAXLEN: '¡Atención! Sólo tienes que introducir el código de 6 dígitos',
MSG_VERIFY_CODE: '1. Ahora, de vuelta en el sitio web de AYNI:\n%s\n2. Copie el código de autenticación (6 dígitos) que encontrará escrito en la parte superior de la página\n3. Escríbelo (o pégalo) abajo como un mensaje:',
MSG_ERR_VERIFY_CODE: 'Código de verificación incorrecto!' + emo.EXCLAMATION_MARK + '\nComprueba en el sitio %s y reescribe el nuevo código de 6 dígitos.',
MSG_VERIFY_OK: emoji.get('grinning') + ' Bienvenido %s! Ha verificado correctamente con AYNI BOT. ' + '\nSoy su asistente virtual.\nContinúa la guía paso a paso de vuelta a la página web de AYNI.\n\n' +
'Este chat le ayudará a ver rápidamente su pizarra y recibir alertas importantes sobre cómo proceder.\n\nUtilice el menú de abajo para comprobar su situación.' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Error al guardar en el servidor. Inténtalo de nuevo más tarde.',
MSG_EXIT_TELEGRAM: 'La cuenta ha sido desconectada de Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Acaba de registrarse "%s (n. %s)"\n(Invitado de %s)',
MSG_MSG_SENT: emoji.get('envelope') + ' Mensajes enviados !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Mensajes a enviar',
MSG_MSG_INCORSO: emoji.get('envelope') + ' mensajes en progreso... Enviado actualmente',
};
const txt_fr = {
MSG_SCEGLI_MENU: emoji.get('dizzy') + 'Choisissez un élément de menu:' + emoji.get('dizzy'),
MSG_ASK_USERNAME_BO: 'Écrivez dans le message l\'username ou l\'e-mail avec lequel vous vous êtes enregistré sur le site de% s: ',
MSG_ERRORE_USERNAME: 'Attention! Vous devez insérer seulement lusername (40 caractères maximum)',
MSG_ERRORE_USERNAME_NOT_FOUND: 'Pour Compléter la Vérification Telegram BOT, vous devez maintenant écrire dans le message ci-dessous l\'Username ou l\'adresse e-mail avec lequel vous vous êtes inscrit sur le site AYNI: ',
MSG_ERRORE_USERNAME_ANNULLA: 'Saisie des données Annullée.Essayez à nouveau ',
MSG_OPERAZ_ANNULLATA: 'Opération Annullée',
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Attention! Vous devez insérer seulement le code à 6 chiffres',
MSG_VERIFY_CODE: '1. Ᾱ présent retournez sur le site de AYNI:\n%s\n2. Copiez le Code dAuthentification (de 6 chiffres) che vous trouverez écrit en haut \n3. Ecrivez-le (ou copiez-le) ci-dessous comme message:',
MSG_ERR_VERIFY_CODE: ' Code de vérification incorrect!' + emo.EXCLAMATION_MARK + '\nControllez sur le site %s et réécrivez le nouveau code à 6 chiffres.',
MSG_VERIFY_OK: emoji.get('grinning') + ' Bienvenu(e) %s! Vous vous êtes vérifié avec succès avec AYNI BOT. ' + '\nJe suis ton assistant virtuel.\n' +
"Continuez le guide étape par étape en revenant sur le site Web d'AYNI. \n\nCe chat vous servira pour voir rapidement votre tableau de bord et recevoir des avis importants sur la marche à suivre pour continuer votre parcours.\n\nUtilisez le menu ci-dessous pour vérifier votre situation. " + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Erreur lors de l\'enregistrement sur le serveur. Retentez plus tard',
MSG_EXIT_TELEGRAM: 'L\'account a été déconnecté de Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Vous venez à peine de vous inscrire "%s (n)',
MSG_MSG_SENT: emoji.get('envelope') + ' Messages envoyés !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messages à envoyer',
MSG_MSG_INCORSO: emoji.get('envelope') + ' messages en cours... Actuellement envoyé',
};
const txt_si = {
MSG_SCEGLI_MENU: emoji.get('dizzy') + 'Meni za prikaz glasov:' + emoji.get('omotično'),
MSG_ASK_USERNAME_BO: 'Vpiši svoje uporabniško ime in e-naslov s katerimi si se registriral na spletni strani % s: ',
MSG_ERRORE_USERNAME: 'Pozor! Vpiši samo uporabniško ime (40 znakov) maksimalno',
MSG_ERRORE_USERNAME_NOT_FOUND: 'Ponovno preverite telegram BOT Uporabniško ime ali e-poštno sporočilo, s katerim ste registrirali na spletni strani AYNI: ',
MSG_ERRORE_USERNAME_ANNULLA: 'Preklic. Poskusi ponovno ',
MSG_OPERAZ_ANNULLATA: 'Operacija preklicana',
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Pozor! Vstavi D mestno kodo',
MSG_VERIFY_CODE: '1. Vrni se na spletno strani AYNI: \n%s\n2. Kopiraj kodo Authenticazione (6 mestno) ki jo najdeš zgoraj zapisano\n3. Napiši (ali prilepi) tu spodaj kot sporočilo: ',
MSG_ERR_VERIFY_CODE: 'Napačna koda za preverjanje!' + emo.EXCLAMATION_MARK + '\nPreveri na strani% s in ponovno napiši 6 mestno kodo.',
MSG_VERIFY_OK: emoji.get('grinning') + 'Dobrodošel% s! Pravilno ste se preveriliz AYNI BOT. ' + ' \nsem tvoj virtualni asisten.\n ' +
'Vodenje se nadeljuje z vodenimi koraki, ko se vrneš na spletno stran AYNI. \n\nTa klepet ti bo služil za hitri pregled tvoje table in za sprejemanje pomembnih obvestil glede poteka tvojega potovanja. \n\nUporabite meni tu spodaj, da lahko kontrolirate svojo situacijo. ' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Napaka strežnika.Poskusi kasneje ',
MSG_EXIT_TELEGRAM: 'Račun se nahaja v programu Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + 'Registracija registracije %s (n. %s)\n(povabil ga %s)',
};
const txt_en = {
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Choose a menu item:' + emoji.get('dizzy'),
MSG_ASK_USERNAME_BO: 'Write in the message the username or email with which you registered on the site of %s:',
MSG_ERRORE_USERNAME: 'Attention! You must enter only the username (40 characters maximum)',
MSG_ERRORE_USERNAME_NOT_FOUND: 'To complete the Telegram BOT Verification, you must now write below in the message the Username OR the email with which you registered on the AYNI website:',
MSG_ERRORE_USERNAME_ANNULLA: 'Insertion Cancelled. Try again',
MSG_OPERAZ_ANNULLATA: 'Operation Cancelled',
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Attention! You only need to enter the 6-digit code',
MSG_VERIFY_CODE: '1. Now return to the AYNI website: %s\n' +
'2. Copy the Authentication code (of 6 digits) that you will find written at the top\n' +
'3. Write it (or paste it) below as a message:',
MSG_ERR_VERIFY_CODE: 'Incorrect Verification Code!' + emo.EXCLAMATION_MARK + '\nCheck on the site %s and rewrite the new 6-digit code.',
MSG_VERIFY_OK: emoji.get('grinning') + ' Welcome %s! You have correctly verified yourself with AYNI BOT. ' + '\nI am your virtual assistant.\n' +
'Continue the step-by-step guide back to the AYNI website.\n\nThis chat will help you to quickly see your DashBoard and receive important alerts on how to proceed on your path.\n\nUse the menu below to check your situation.' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Error while saving to the Server. Try again later',
MSG_EXIT_TELEGRAM: 'The account has now been disconnected from this Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' He/She\'s just registered "%s (n. %s)"\n(Invited from %s)',
MSG_MSG_SENT: emoji.get('envelope') + ' Sent Messages !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messages to Send',
MSG_MSG_INCORSO: emoji.get('envelope') + ' messages in progress... Currently sent',
};
const txt_pt = {
MSG_SCEGLI_MENU: emoji.get('dizzy') + ' Escolha um item do menu:' + emoji.get('dizzy'),
MSG_ASK_USERNAME_BO: 'Escreva na mensagem o nome de usuário ou e-mail com o qual se registrou no site de %s:',
MSG_ERRORE_USERNAME: 'Atenção! Você deve inserir apenas o nome de usuário (40 caracteres no máximo)',
MSG_ERRORE_USERNAME_NOT_FOUND: 'Para completar a Verificação do Telegrama BOT, você deve agora escrever abaixo na mensagem o Nome de Usuário OU o e-mail com o qual você se registrou no site da AYNI:',
MSG_ERRORE_USERNAME_ANNULLA: 'Inserção Cancelada. Tente novamente',
MSG_OPERAZ_ANNULLATA: 'Operação Cancelada',
MSG_ERRORE_VERIFY_CODE_MAXLEN: 'Atenção! Você só precisa digitar o código de 6 dígitos',
MSG_VERIFY_CODE: '1. Agora de volta ao site do AYNI:\n%s\n2. Copie o código de autenticação (6 dígitos) que você encontrará escrito na parte superior da página\n3. Escreva-o (ou cole-o) abaixo como uma mensagem:',
MSG_ERR_VERIFY_CODE: 'Código de Verificação Incorrecto!' + emo.EXCLAMATION_MARK + '\nCódigo de Verificação ErradoCheque no local %s e reescreva o novo código de 6 dígitos.',
MSG_VERIFY_OK: emoji.get('grinning') + ' Bem-vindo %s! Você verificou corretamente com AYNI BOT. ' + '\nEu sou o vosso assistente virtual.\n' +
'Continue o guia passo-a-passo de volta ao site da AYNI.\n\nEste chat vai ajudá-lo a ver rapidamente o seu Quadro Negro e a receber alertas importantes sobre como proceder..\n\n' +
'Use o menu abaixo para verificar a sua situação.' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Erro ao salvar no Servidor. Tente novamente mais tarde.',
MSG_EXIT_TELEGRAM: 'A conta foi agora desconectada deste Telegrama BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Acabou de se registar "%s (n. %s)"\n(Convidado por %s)',
MSG_MSG_SENT: emoji.get('envelope') + ' Mensagens Enviadas !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Mensagens a enviar',
MSG_MSG_INCORSO: emoji.get('envelope') + ' mensagens em progresso... Actualmente enviado',
};
const TelegramBot = require('node-telegram-bot-api'); const TelegramBot = require('node-telegram-bot-api');
module.exports = { module.exports = {
@@ -245,6 +460,7 @@ module.exports = {
notifyToTelegram: async function (phase, mylocalsconf) { notifyToTelegram: async function (phase, mylocalsconf) {
let userdest = mylocalsconf.user.aportador_solidario; let userdest = mylocalsconf.user.aportador_solidario;
let langdest = mylocalsconf.user.lang;
let NameFrom = `${mylocalsconf.user.name} ${mylocalsconf.user.surname}`; let NameFrom = `${mylocalsconf.user.name} ${mylocalsconf.user.surname}`;
const ind_order = mylocalsconf.user.ind_order; const ind_order = mylocalsconf.user.ind_order;
@@ -262,7 +478,7 @@ module.exports = {
NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp, userdest) + aportador; NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp, userdest) + aportador;
aportador = NameFrom; aportador = NameFrom;
} }
text = printf(txt.MSG_APORTADOR_USER_REGISTERED, `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, ind_order, aportador); text = printf(getstr(langdest, txt.MSG_APORTADOR_USER_REGISTERED), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, ind_order, aportador);
} }
let addtext = ""; let addtext = "";
@@ -497,8 +713,46 @@ async function local_sendMsgTelegramToTheManagers(idapp, text, msg, username_bo)
} }
function getstr(lang, text) { function getstr(lang, key) {
return text;
let mystr = '';
if (lang === 'si') {
try {
mystr = txt_si[key]
} catch (e) {
mystr = '';
}
} else if ((lang === 'en') || (lang === 'enUs')) {
try {
mystr = txt_en[key]
} catch (e) {
mystr = '';
}
} else if (lang === 'es') {
try {
mystr = txt_es[key]
} catch (e) {
mystr = '';
}
} else if (lang === 'fr') {
try {
mystr = txt_fr[key]
} catch (e) {
mystr = '';
}
} else if (lang === 'pt') {
try {
mystr = txt_pt[key]
} catch (e) {
mystr = '';
}
}
if (mystr === '')
return txt[key];
else
return mystr;
} }
class Telegram { class Telegram {
@@ -513,8 +767,12 @@ class Telegram {
if (!await this.alreadyExist(msg)) { if (!await this.alreadyExist(msg)) {
if (await this.insertIntoDB(msg)) { if (await this.insertIntoDB(msg)) {
let rec = this.getRecInMem(msg); let rec = this.getRecInMem(msg);
if (!!rec) {
if (rec.user) if (rec.user)
rec.status = Status.VERIFIED rec.status = Status.VERIFIED
} else {
return false
}
} }
return true return true
} else { } else {
@@ -525,13 +783,17 @@ class Telegram {
async start(msg) { async start(msg) {
// Check if Present to the DB // Check if Present to the DB
if (!await this.createIfNotExist(msg)) { const riscreate = await this.createIfNotExist(msg);
if (!riscreate) {
let rec = this.getRecInMem(msg); let rec = this.getRecInMem(msg);
if (!rec) if (!rec)
rec = this.addUser(msg); rec = this.addUser(msg);
if (rec.user) if (rec.user)
rec.status = Status.VERIFIED rec.status = Status.VERIFIED
} else {
let prova = 1;
} }
} }
@@ -611,7 +873,7 @@ class Telegram {
} else if (MsgBot.CHI_SONO_IO.includes(testo.replace('?', ''))) { } else if (MsgBot.CHI_SONO_IO.includes(testo.replace('?', ''))) {
risp = 'Su Telegram ti chiami "' + msg.chat.first_name + ' ' + msg.chat.last_name + '"\n'; risp = 'Su Telegram ti chiami "' + msg.chat.first_name + ' ' + msg.chat.last_name + '"\n';
if (!!rec.user) { if (!!rec.user) {
risp += '\nSul sito ti sei registrato come:\n\n[N. ' + rec.user.ind_order + ']: ' + rec.user.name + ' ' + rec.user.surname + '\nUsername: ' + rec.user.username + '\n' + 'Email: ' + rec.user.email; risp += '\nSul sito ti sei registrato come:\n\n[N. ' + rec.user.ind_order + ']: ' + rec.user.name + ' ' + rec.user.surname + '\nUsername: ' + rec.user.username + '\n' + 'Email: ' + rec.user.email + '\nLang: ' + rec.user.lang;
} else { } else {
risp = 'Ancora non ti sei Attivato su AYNI BOT'; risp = 'Ancora non ti sei Attivato su AYNI BOT';
} }
@@ -678,7 +940,7 @@ class Telegram {
risp = emo.JOY + emo.JOY + emo.JOY; risp = emo.JOY + emo.JOY + emo.JOY;
} else if (testo.length >= 10) { } else if (testo.length >= 10) {
noanswer = true; noanswer = true;
risp = '[Messaggio inviato allo Staff]\nD\'altronde io sono solo un Robot ' + emo.ROBOT_FACE + emo.JOY2 + '\n\n(Per AIUTO, contatta la Chat AYNI - HELP)'; risp = 'Questo messaggio è stato inviato alla Chat Help\nIo sono solo un Robot ' + emo.ROBOT_FACE + emo.JOY2 + '\n\nPer AIUTO, contatta la Chat AYNI - HELP';
// risp += '\nClicca qui per entrare nella Chat AYNI - HELP di Supporto\n' + 'https://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w' + '\n\nI miei colleghi umani ti aiuteranno a risolvere !'; // risp += '\nClicca qui per entrare nella Chat AYNI - HELP di Supporto\n' + 'https://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w' + '\n\nI miei colleghi umani ti aiuteranno a risolvere !';
await local_sendMsgTelegramToTheManagers(this.idapp, testo, msg, rec.username_bo); await local_sendMsgTelegramToTheManagers(this.idapp, testo, msg, rec.username_bo);
} }
@@ -690,7 +952,7 @@ class Telegram {
keyboard = { keyboard = {
"reply_markup": { "reply_markup": {
"resize_keyboard": true, "resize_keyboard": true,
"keyboard": await this.getKeyboard(id) "keyboard": await this.getKeyboard(id, undefined, this.getlang(msg))
} }
} }
@@ -733,11 +995,25 @@ class Telegram {
} }
async isMenuNotVerified(rec, msg) { async isMenuNotVerified(rec, msg) {
if (msg.text === Menu.ASSISTENZA) { if (this.isSelMenu(msg, msg.text, 'ASSISTENZA')) {
await this.menuAssistenza(msg) await this.menuAssistenza(msg)
} else if (msg.text === Menu.INFO) { } else if (msg.text === Menu.LANG_IT) {
await this.ScegliLang(msg, 'it');
} else if (msg.text === Menu.LANG_ES) {
await this.ScegliLang(msg, 'es');
} else if (msg.text === Menu.LANG_SI) {
await this.ScegliLang(msg, 'si');
} else if (msg.text === Menu.LANG_FR) {
await this.ScegliLang(msg, 'fr');
} else if (msg.text === Menu.LANG_EN) {
await this.ScegliLang(msg, 'enUs');
} else if (msg.text === Menu.LANG_PT) {
await this.ScegliLang(msg, 'pt');
} else if (this.isSelMenu(msg, msg.text, 'INFO')) {
await this.menuInformazioni(msg) await this.menuInformazioni(msg)
} else if (msg.text === Menu.ZOOM || MsgBot.PROSSIMO_ZOOM.find((rec) => msg.text.indexOf(rec) > -1)) { } else if (msg.text === Menu.LANG) {
await this.menuLang(msg)
} else if (this.isSelMenu(msg, msg.text, 'ZOOM') || MsgBot.PROSSIMO_ZOOM.find((rec) => msg.text.indexOf(rec) > -1)) {
await this.menuZoom(msg) await this.menuZoom(msg)
} else if (await this.IsTesto(msg)) { } else if (await this.IsTesto(msg)) {
// OK // OK
@@ -746,6 +1022,17 @@ class Telegram {
} }
} }
isSelMenu(msg, menuselect, key) {
let miomenu = '';
try {
let lang = this.getlang(msg);
miomenu = Menu[lang][key];
} catch (e) {
miomenu = Menu['it'][key];
}
return (miomenu === menuselect);
}
async isMenu(rec, msg) { async isMenu(rec, msg) {
if (!msg) if (!msg)
return; return;
@@ -761,7 +1048,7 @@ class Telegram {
let oldusername = rec.msgall_username_specifico; let oldusername = rec.msgall_username_specifico;
if ((msg.text === Menu.ESCI_DA_CHAT) || (msg.text === Menu.INDIETRO)) { if ((this.isSelMenu(msg, msg.text, 'ESCI_DA_CHAT')) || (this.isSelMenu(msg, msg.text, 'INDIETRO'))) {
rec.msgall_username_specifico = ''; rec.msgall_username_specifico = '';
} else { } else {
if (rec.msgall_username_specifico !== '') { if (rec.msgall_username_specifico !== '') {
@@ -770,18 +1057,20 @@ class Telegram {
} }
} }
if (msg.text === Menu.LAVAGNA || MsgBot.LAVAGNA.find((rec) => msg.text.indexOf(rec) > -1)) { if (this.isSelMenu(msg, msg.text, 'LAVAGNA') || MsgBot.LAVAGNA.find((rec) => msg.text.indexOf(rec) > -1)) {
await this.menuLavagna(msg); await this.menuLavagna(msg);
} else if (msg.text === Menu.MIANAVE || (cmd2 === strNave) || MsgBot.MIANAVE.find((rec) => msg.text.indexOf(rec) > -1)) { } else if (msg.text === Menu.MIANAVE || (cmd2 === strNave) || MsgBot.MIANAVE.find((rec) => msg.text.indexOf(rec) > -1)) {
await this.menuNave(msg) await this.menuNave(msg)
} else if (msg.text === Menu.ACCEDI) { } else if (this.isSelMenu(msg, msg.text, 'ACCEDI')) {
await this.menuAccedi(msg) await this.menuAccedi(msg)
} else if (msg.text === Menu.LINK_CONDIVIDERE) { } else if (this.isSelMenu(msg, msg.text, 'LINK_CONDIVIDERE')) {
await this.menuLinkCondividere(msg) await this.menuLinkCondividere(msg)
} else if (msg.text === Menu.EXIT_TELEGRAM) { } else if (msg.text === Menu.EXIT_TELEGRAM) {
await this.menuExitToTelegram(msg) await this.menuExitToTelegram(msg)
} else if (msg.text === Menu.ADMIN) { } else if (msg.text === Menu.ADMIN) {
await this.menuAdmin(msg) await this.menuAdmin(msg)
} else if (msg.text === Menu.LANG) {
await this.menuLang(msg)
} else if (msg.text === Menu.MSGATUTTI) { } else if (msg.text === Menu.MSGATUTTI) {
await this.menumsgAll(msg) await this.menumsgAll(msg)
} else if (msg.text === Menu.MSGSTAFF) { } else if (msg.text === Menu.MSGSTAFF) {
@@ -796,9 +1085,9 @@ class Telegram {
await this.menumsg_Si_Invitati_No_7Req(msg) await this.menumsg_Si_Invitati_No_7Req(msg)
} else if (cmd1.toLowerCase() === Menu.MSG_TO_USER) { } else if (cmd1.toLowerCase() === Menu.MSG_TO_USER) {
await this.menumsg_A_Utente(msg) await this.menumsg_A_Utente(msg)
} else if (msg.text === Menu.INDIETRO) { } else if (this.isSelMenu(msg, msg.text, 'INDIETRO') || (msg.text === Menu.it.INDIETRO)) {
await this.msgScegliMenu(msg); await this.msgScegliMenu(msg);
} else if (msg.text === Menu.ESCI_DA_CHAT) { } else if (this.isSelMenu(msg, msg.text, 'ESCI_DA_CHAT')) {
await this.sendMsg(msg.chat.id, 'Uscito dalla Chat con ' + oldusername); await this.sendMsg(msg.chat.id, 'Uscito dalla Chat con ' + oldusername);
rec.msgall_username_specifico = ''; rec.msgall_username_specifico = '';
} else { } else {
@@ -852,7 +1141,21 @@ class Telegram {
async menuAccedi(msg) { async menuAccedi(msg) {
let status = this.getstatusInMemory(msg); let status = this.getstatusInMemory(msg);
if (status === Status.WAITFOR_USERNAME_BO) { if (status === Status.WAITFOR_USERNAME_BO) {
await this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME_NOT_FOUND, MenuNoLogin); await this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_NOT_FOUND'), MenuNoLogin);
}
}
getlang(msg) {
const rec = this.getRecInMem(msg);
if (!!rec) {
if (rec.user) {
rec.lang = rec.user.lang;
}
if (rec.lang !== '' && rec.lang !== undefined)
return rec.lang;
else {
return msg.from.language_code
}
} }
} }
@@ -877,7 +1180,7 @@ class Telegram {
let mystrnave = ''; let mystrnave = '';
if (user) { if (user) {
mystr += tools.get__('BENVENUTO', msg) + ' ' + user.name + ' (' + user.username + ') ' + emo.DIZZY + '\n\n'; mystr += tools.get__('BENVENUTO', this.getlang(msg)) + ' ' + user.name + ' (' + user.username + ') ' + emo.DIZZY + '\n\n';
tuttie9 = dashboard.myself.qualified && (numpersone >= 2) && invitati_attivi >= 2; tuttie9 = dashboard.myself.qualified && (numpersone >= 2) && invitati_attivi >= 2;
@@ -888,31 +1191,31 @@ class Telegram {
} }
if (!!mystrnave) { if (!!mystrnave) {
mystr += '✨✨✨' + tools.get__('TUE_NAVI', msg) + ':\n'; mystr += '✨✨✨' + tools.get__('TUE_NAVI', this.getlang(msg)) + ':\n';
mystr += mystrnave; mystr += mystrnave;
} else { } else {
if (!tuttie9) { if (!tuttie9) {
mystr += dashboard.myself.qualified ? emo.SMILE_STAR + tools.get__('HAI_I_7_REQUISITI', msg) + emo.SMILE_STAR : emo.EXCLAMATION_MARK + tools.get__('NON_HAI_I_7_REQUISITI', msg); mystr += dashboard.myself.qualified ? emo.SMILE_STAR + tools.get__('HAI_I_7_REQUISITI', this.getlang(msg)) + emo.SMILE_STAR : emo.EXCLAMATION_MARK + tools.get__('NON_HAI_I_7_REQUISITI', this.getlang(msg));
mystr += '\n\n'; mystr += '\n\n';
} }
mystr += tuttie9 ? emo.SMILE_STAR + tools.get__('HAI_I_9_REQUISITI', msg) + emo.SMILE_STAR : emo.EXCLAMATION_MARK + tools.get__('NON_HAI_I_9_REQUISITI', msg); mystr += tuttie9 ? emo.SMILE_STAR + tools.get__('HAI_I_9_REQUISITI', this.getlang(msg)) + emo.SMILE_STAR : emo.EXCLAMATION_MARK + tools.get__('NON_HAI_I_9_REQUISITI', this.getlang(msg));
mystr += '\n\n'; mystr += '\n\n';
mystr += tools.get__('INFO_LA_MIA_LAVAGNA', msg); mystr += tools.get__('INFO_LA_MIA_LAVAGNA', this.getlang(msg));
mystr += '\n' + '1. ' + this.getsymb(emo.ENVELOPE, user.verified_email); mystr += '\n' + '1. ' + this.getsymb(emo.ENVELOPE, user.verified_email);
mystr += tools.get__('EMAIL', msg) + ' '; mystr += tools.get__('EMAIL', this.getlang(msg)) + ' ';
mystr += user.verified_email ? tools.get__('VERIF', msg) : tools.get__('EMAIL_NON_VERIF', msg); mystr += user.verified_email ? tools.get__('VERIF', this.getlang(msg)) : tools.get__('EMAIL_NON_VERIF', this.getlang(msg));
mystr += '\n2. ' + this.getsymb(emo.ROBOT_FACE, true) + tools.get__('BOT', msg) + ' '; mystr += '\n2. ' + this.getsymb(emo.ROBOT_FACE, true) + tools.get__('BOT', this.getlang(msg)) + ' ';
mystr += tools.get__('VERIF', msg); mystr += tools.get__('VERIF', this.getlang(msg));
mystr += '\n3. ' + this.getsymb(emo.PENCIL, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)) + tools.get__('LINEE_GUIDA', msg); mystr += '\n3. ' + this.getsymb(emo.PENCIL, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)) + tools.get__('LINEE_GUIDA', this.getlang(msg));
mystr += '\n4. ' + this.getsymb(emo.TV, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)) + tools.get__('VIDEO_INTRO', msg); mystr += '\n4. ' + this.getsymb(emo.TV, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)) + tools.get__('VIDEO_INTRO', this.getlang(msg));
mystr += '\n5. ' + this.getsymb(emo.EYES, user.profile.saw_zoom_presentation) + tools.get__('ZOOM_PARTECIPATO', msg); mystr += '\n5. ' + this.getsymb(emo.EYES, user.profile.saw_zoom_presentation) + tools.get__('ZOOM_PARTECIPATO', this.getlang(msg));
mystr += '\n6. ' + this.getsymb(emo.DREAM, this.isdreamset(user)) + tools.get__('SCRITTO_SOGNO', msg); mystr += '\n6. ' + this.getsymb(emo.DREAM, this.isdreamset(user)) + tools.get__('SCRITTO_SOGNO', this.getlang(msg));
mystr += '\n7. ' + this.getsymb(emo.CREDIT_CARD, this.ispayment(user)) + tools.get__('PAYMENTS', msg); mystr += '\n7. ' + this.getsymb(emo.CREDIT_CARD, this.ispayment(user)) + tools.get__('PAYMENTS', this.getlang(msg));
} }
// } else{ // } else{
@@ -922,11 +1225,11 @@ class Telegram {
// numpersone = 2; // numpersone = 2;
if (!mystrnave) { if (!mystrnave) {
mystr += '\n8. ' + this.getsymb(emo.INVITATI, numpersone >= 2, numpersone, numpersone, numpersone >= 3) + tools.get__('INVITATI', msg); 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', msg) + '\n' + '\n'; mystr += '\n9. ' + this.getsymb(emo.INVITATI, invitati_attivi >= 2, invitati_attivi, invitati_attivi, invitati_attivi >= 3) + tools.get__('INVITATI_ATTIVI', this.getlang(msg)) + '\n' + '\n';
if (numpersone > 0) { if (numpersone > 0) {
mystr += tools.get__('INVITATI_LISTA') + ':\n'; mystr += tools.get__('INVITATI_LISTA', this.getlang(msg)) + ':\n';
let index = 1; let index = 1;
dashboard.downline.forEach((user) => { dashboard.downline.forEach((user) => {
@@ -936,7 +1239,7 @@ class Telegram {
index++; index++;
}); });
} else { } else {
mystr += tools.get__('NESSUN_INVITATO') + tools.ACAPO; mystr += tools.get__('NESSUN_INVITATO', this.getlang(msg)) + tools.ACAPO;
} }
} }
@@ -953,9 +1256,9 @@ class Telegram {
// } // }
if (tuttie9) if (tuttie9)
mystr += '\n' + printf(tools.get__('INFO_LAVAGNA_SITO', msg)); mystr += '\n' + printf(tools.get__('INFO_LAVAGNA_SITO', this.getlang(msg)));
else else
mystr += '\n' + printf(tools.get__('INFO_LAVAGNA_SITO_COMPLETARE', msg), tools.getHostByIdApp(this.idapp)); mystr += '\n' + printf(tools.get__('INFO_LAVAGNA_SITO_COMPLETARE', this.getlang(msg)), tools.getHostByIdApp(this.idapp));
return mystr; return mystr;
} }
@@ -1000,7 +1303,7 @@ class Telegram {
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);
let mystr = ''; let mystr = '';
if (rec.user) { if (rec.user) {
mystr += printf(tools.get__('INFO_LINK_DA_CONDIVIDERE', msg), tools.getHostByIdApp(this.idapp) + '/signup/' + rec.user.username, tools.getlinkzoom('')); mystr += printf(tools.get__('INFO_LINK_DA_CONDIVIDERE', this.getlang(msg)), tools.getHostByIdApp(this.idapp) + '/signup/' + rec.user.username, tools.getlinkzoom(''));
await this.sendMsg(msg.chat.id, mystr); await this.sendMsg(msg.chat.id, mystr);
} }
} }
@@ -1008,10 +1311,11 @@ class Telegram {
async menuExitToTelegram(msg) { async menuExitToTelegram(msg) {
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);
if (rec.user) { if (rec.user) {
await User.SetTelegramIdSuccess(this.idapp, rec.user._id, 0).then((recuser) => { await User.SetTelegramIdSuccess(this.idapp, rec.user._id, 0)
.then((recuser) => {
if (recuser) { if (recuser) {
this.deleteRecInMem(msg); this.deleteRecInMem(msg);
this.sendMsg(msg.chat.id, txt.MSG_EXIT_TELEGRAM); this.sendMsg(msg.chat.id, getstr(rec.user.lang, 'MSG_EXIT_TELEGRAM'));
} }
}) })
} else { } else {
@@ -1024,13 +1328,13 @@ class Telegram {
await this.sendMsg(msg.chat.id, mystr); await this.sendMsg(msg.chat.id, mystr);
} }
async getNextZoom() { async getNextZoom(msg) {
const listazoom = await CalZoom.findAllIdApp(this.idapp); const listazoom = await CalZoom.findAllIdApp(this.idapp);
const nextzoom = await CalZoom.getNextZoom(this.idapp); const nextzoom = await CalZoom.getNextZoom(this.idapp);
let mystr = ''; let mystr = '';
mystr += emo.STARS + tools.get__('ZOOM_CONFERENCE') + emo.STARS + '\n\n'; mystr += emo.STARS + tools.get__('ZOOM_CONFERENCE', this.getlang(msg)) + emo.STARS + '\n\n';
let index = 1; let index = 1;
listazoom.forEach((evento) => { listazoom.forEach((evento) => {
@@ -1040,14 +1344,14 @@ class Telegram {
if (iniziata) { if (iniziata) {
mystr += emo.CHECK_VERDE + ' ' + tools.get__('ZOOM_INIZIATO') + ' ' + emo.CHECK_VERDE + '\n'; mystr += emo.CHECK_VERDE + ' ' + tools.get__('ZOOM_INIZIATO', this.getlang(msg)) + ' ' + emo.CHECK_VERDE + '\n';
} }
mystr += `${emo.EYES} ${tools.getstrDateTimeShort(evento.date_start)} ${emo.EYES}`; mystr += `${emo.EYES} ${tools.getstrDateTimeShort(evento.date_start)} ${emo.EYES}`;
mystr += `\n${evento.title}\n(${evento.note})\n\n`; mystr += `\n${evento.title}\n(${evento.note})\n\n`;
if (nextzoom) { if (nextzoom) {
if (iniziata) { if (iniziata) {
mystr += emo.FIRE + tools.get__('CLICCA_ENTRA') + ' ' + emo.FIRE + '\n'; mystr += emo.FIRE + tools.get__('CLICCA_ENTRA', this.getlang(msg)) + ' ' + emo.FIRE + '\n';
mystr += tools.getlinkzoom(evento.id_conf_zoom) + '\n\n'; mystr += tools.getlinkzoom(evento.id_conf_zoom) + '\n\n';
} }
} }
@@ -1058,24 +1362,30 @@ class Telegram {
if (!nextzoom && index > 1) { if (!nextzoom && index > 1) {
mystr += "✨✨✨✨✨✨✨✨✨✨✨✨\n" + mystr += "✨✨✨✨✨✨✨✨✨✨✨✨\n" +
tools.get__('CLICCA_PER_ZOOM') + ':\n' + tools.getlinkzoom(listazoom[0].id_conf_zoom) + '\n' + "✨✨✨✨✨✨✨✨✨✨✨✨\n" + '\n'; tools.get__('CLICCA_PER_ZOOM', this.getlang(msg)) + ':\n' + tools.getlinkzoom(listazoom[0].id_conf_zoom) + '\n' + "✨✨✨✨✨✨✨✨✨✨✨✨\n" + '\n';
} }
return mystr return mystr
} }
async menuZoom(msg) { async menuZoom(msg) {
let mystr = await this.getNextZoom(); let mystr = await this.getNextZoom(msg);
await this.sendMsg(msg.chat.id, mystr); await this.sendMsg(msg.chat.id, mystr);
} }
async menuAdmin(msg) { async menuAdmin(msg) {
const mystr = tools.get__('SCEGLI_VOCE'); const mystr = tools.get__('SCEGLI_VOCE', this.getlang(msg));
await await
this.sendMsg(msg.chat.id, mystr, MenuAdmin); this.sendMsg(msg.chat.id, mystr, MenuAdmin);
} }
async menuLang(msg) {
const mystr = tools.get__('SCEGLI_VOCE', this.getlang(msg));
await
this.sendMsg(msg.chat.id, mystr, MenuLang);
}
getDestinStr(msg, destin, rec) { getDestinStr(msg, destin, rec) {
if (destin === Destin.TUTTI) if (destin === Destin.TUTTI)
return 'TUTTI'; return 'TUTTI';
@@ -1146,7 +1456,7 @@ class Telegram {
async menuAssistenza(msg) { async menuAssistenza(msg) {
const mytext = tools.get__('TESTO_ASSISTENZA', msg); const mytext = tools.get__('TESTO_ASSISTENZA', this.getlang(msg));
let menu = null; let menu = null;
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);
@@ -1202,8 +1512,9 @@ class Telegram {
const user = await User.findByUsername(this.idapp, mystruser, true); const user = await User.findByUsername(this.idapp, mystruser, true);
if (!user) { if (!user) {
if (conmsg) { if (conmsg) {
await this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME_NOT_FOUND, MenuNoLogin); await this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_NOT_FOUND'), MenuNoLogin);
const textman = msg.chat.first_name + ' ' + msg.chat.last_name + ' sta tentando di autenticarsi con il BOT (username che scrive: ' + msg.text + ') '; const lang = this.getlang(msg);
const textman = msg.chat.first_name + ' ' + msg.chat.last_name + ' sta tentando di autenticarsi con il BOT (lang=' + lang + ') (username che scrive: ' + msg.text + ') ';
await local_sendMsgTelegramToTheManagers(this.idapp, textman, msg); await local_sendMsgTelegramToTheManagers(this.idapp, textman, msg);
rec.username_bo = ''; rec.username_bo = '';
} }
@@ -1233,16 +1544,16 @@ class Telegram {
rec.user = ris.user; rec.user = ris.user;
await User.SetTelegramCheckCode(this.idapp, ris.myid.toString(), rec.code); await User.SetTelegramCheckCode(this.idapp, ris.myid.toString(), rec.code);
rec.status = Status.WAITFOR_VERIFY_CODE; rec.status = Status.WAITFOR_VERIFY_CODE;
await this.sendMsg(msg.from.id, printf(txt.MSG_VERIFY_CODE, tools.getHostByIdApp(this.idapp)), MenuNoLogin) await this.sendMsg(msg.from.id, printf(getstr(rec.user.lang, 'MSG_VERIFY_CODE'), tools.getHostByIdApp(this.idapp)), MenuNoLogin)
} }
} }
} else if (text.length === 0) { } else if (text.length === 0) {
if (rec) if (rec)
rec.status = Status.NONE; rec.status = Status.NONE;
await this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME_ANNULLA); await this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_ANNULLA'));
this.deleteRecInMem(msg) this.deleteRecInMem(msg)
} else { } else {
await this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME) await this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME'))
} }
} catch (e) { } catch (e) {
console.error('Error setUsernameBo:', e) console.error('Error setUsernameBo:', e)
@@ -1259,7 +1570,7 @@ class Telegram {
telegcode = user.profile.teleg_checkcode.toString(); telegcode = user.profile.teleg_checkcode.toString();
} else { } else {
await await
this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME_NOT_FOUND, MenuNoLogin); this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_NOT_FOUND'), MenuNoLogin);
return return
} }
if (code.length < 7) { if (code.length < 7) {
@@ -1270,21 +1581,21 @@ class Telegram {
await User.SetTelegramIdSuccess(this.idapp, user._id, msg.from.id).then((recuser) => { await User.SetTelegramIdSuccess(this.idapp, user._id, msg.from.id).then((recuser) => {
if (recuser) { if (recuser) {
let name = recuser.name; let name = recuser.name;
this.sendMsg(msg.from.id, printf(txt.MSG_VERIFY_OK, name)); this.sendMsg(msg.from.id, printf(getstr(recuser.lang, 'MSG_VERIFY_OK'), name));
local_sendMsgTelegramToTheManagers(this.idapp, recuser.name + ' ' + recuser.surname + ' si è Verificato a Telegram BOT!' + emo.STARS, msg); local_sendMsgTelegramToTheManagers(this.idapp, recuser.name + ' ' + recuser.surname + ' si è Verificato a Telegram BOT! (lang=' +recuser.lang + ')' + emo.STARS, msg);
} else { } else {
this.sendMsg(msg.from.id, txt.MSG_ERR_UNKNOWN_VERIFY_CODE); this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERR_UNKNOWN_VERIFY_CODE'));
} }
}); });
} else { } else {
if (rec.retry < 2) { if (rec.retry < 2) {
rec.retry++; rec.retry++;
await await
this.sendMsg(msg.from.id, printf(txt.MSG_ERR_VERIFY_CODE, tools.getHostByIdApp(this.idapp))); this.sendMsg(msg.from.id, printf(getstr(this.getlang(msg), 'MSG_ERR_VERIFY_CODE'), tools.getHostByIdApp(this.idapp)));
} else { } else {
rec.status = Status.NONE; rec.status = Status.NONE;
await await
this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME_ANNULLA); this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_ANNULLA'));
this.deleteRecInMem(msg); this.deleteRecInMem(msg);
} }
} }
@@ -1293,10 +1604,10 @@ class Telegram {
if (rec) if (rec)
rec.status = Status.NONE; rec.status = Status.NONE;
await await
this.sendMsg(msg.from.id, txt.MSG_ERRORE_USERNAME_ANNULLA) this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_USERNAME_ANNULLA'))
} else { } else {
await await
this.sendMsg(msg.from.id, txt.MSG_ERRORE_VERIFY_CODE_MAXLEN) this.sendMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_ERRORE_VERIFY_CODE_MAXLEN'))
} }
} catch (e) { } catch (e) {
console.error('Error setVerifyCode', e); console.error('Error setVerifyCode', e);
@@ -1341,14 +1652,14 @@ class Telegram {
let preparatesto = ''; let preparatesto = '';
let myid = ''; let myid = '';
if (texttosend === Menu.ZOOM) { if (this.isSelMenu(msg, texttosend, 'ZOOM')) {
texttosend = await this.getNextZoom() texttosend = await this.getNextZoom(msg)
} }
const cmd = texttosend.toLowerCase(); const cmd = texttosend.toLowerCase();
if (usersall) { if (usersall) {
if (cmd === Menu.INDIETRO) { if (this.isSelMenu(msg, cmd, 'INDIETRO')) {
rec.msgall_status = StatusMSGALL.NONE; rec.msgall_status = StatusMSGALL.NONE;
return return
} }
@@ -1357,7 +1668,7 @@ class Telegram {
for (const utente of usersall) { for (const utente of usersall) {
if (texttosend === Menu.LAVAGNA) { if (this.isSelMenu(msg, texttosend === 'LAVAGNA')) {
textdainviare = await this.getLavagnaByUser(utente, msg); textdainviare = await this.getLavagnaByUser(utente, msg);
} else if (destin === Destin.A_UTENTE) { } else if (destin === Destin.A_UTENTE) {
textdainviare = texttosend; textdainviare = texttosend;
@@ -1401,7 +1712,7 @@ class Telegram {
if (!SendMsgCmd.includes(cmd)) { if (!SendMsgCmd.includes(cmd)) {
if ((nummsgsent % 50) === 0) { if ((nummsgsent % 50) === 0) {
myid = await this.sendMsg(msg.chat.id, nummsgsent + ' ' + getstr(msg.from.language_code, txt.MSG_MSG_INCORSO), null, { message_id: myid }); myid = await this.sendMsg(msg.chat.id, nummsgsent + ' ' + getstr(this.getlang(msg), 'MSG_MSG_INCORSO'), null, { message_id: myid });
await tools.snooze(300) await tools.snooze(300)
} }
} }
@@ -1411,13 +1722,13 @@ class Telegram {
let msgris = ""; let msgris = "";
if (cmd === CONTA_SOLO) { if (cmd === CONTA_SOLO) {
msgris = nummsgsent + ' ' + getstr(msg.from.language_code, txt.MSG_MSG_TOSENT); msgris = nummsgsent + ' ' + getstr(this.getlang(msg), 'MSG_MSG_TOSENT');
} else if (cmd === RICEVI_EMAIL) { } else if (cmd === RICEVI_EMAIL) {
msgris = nummsgsent + ' ' + 'Email'; msgris = nummsgsent + ' ' + 'Email';
await this.sendMsg(msg.chat.id, msgris); await this.sendMsg(msg.chat.id, msgris);
msgris = preparatesto; msgris = preparatesto;
} else { } else {
msgris = nummsgsent + ' ' + getstr(msg.from.language_code, txt.MSG_MSG_SENT); msgris = nummsgsent + ' ' + getstr(this.getlang(msg), 'MSG_MSG_SENT');
} }
if (destin === Destin.A_UTENTE) { if (destin === Destin.A_UTENTE) {
@@ -1441,7 +1752,12 @@ class Telegram {
selectMenuHelp(msg) { selectMenuHelp(msg) {
return ((msg.text === Menu.INFO) || (msg.text === Menu.ASSISTENZA)) return ((this.isSelMenu(msg, msg.text, 'INFO')) || (this.isSelMenu(msg, msg.text, 'ASSISTENZA')))
}
selectMenuLang(msg) {
return ((msg.text === Menu.LANG) || (msg.text === Menu.LANG_EN) || (msg.text === Menu.LANG_IT) || (msg.text === Menu.LANG_ES)
|| (msg.text === Menu.LANG_FR) || (msg.text === Menu.LANG_SI) || (msg.text === Menu.LANG_PT) )
} }
async receiveMsg(msg) { async receiveMsg(msg) {
@@ -1458,7 +1774,7 @@ class Telegram {
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);
status = this.getstatus(rec); status = this.getstatus(rec);
if (status === Status.WAITFOR_USERNAME_BO && !this.selectMenuHelp(msg)) { if (status === Status.WAITFOR_USERNAME_BO && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) {
await this.setUsernameBo(msg) await this.setUsernameBo(msg)
} else if (status === Status.WAITFOR_VERIFY_CODE) { } else if (status === Status.WAITFOR_VERIFY_CODE) {
await this.setVerifyCode(msg) await this.setVerifyCode(msg)
@@ -1467,16 +1783,16 @@ class Telegram {
} else if (status === Status.VERIFIED) { } else if (status === Status.VERIFIED) {
let normale = true; let normale = true;
if (rec.msgall_status === StatusMSGALL.CONFIRM) { if (rec.msgall_status === StatusMSGALL.CONFIRM) {
if (msg.text === Menu.SI) { if (this.isSelMenu(msg, msg.text, 'SI')) {
// Take msg to send to ALL // Take msg to send to ALL
await this.sendMsgToAll(rec, msg, rec.msgtosent, rec.msgall_achi) await this.sendMsgToAll(rec, msg, rec.msgtosent, rec.msgall_achi)
} else { } else {
this.sendMsg(msg.chat.id, txt.MSG_OPERAZ_ANNULLATA); this.sendMsg(msg.chat.id, getstr(this.getlang(msg), 'MSG_OPERAZ_ANNULLATA'));
} }
rec.msgall_status = StatusMSGALL.NONE; rec.msgall_status = StatusMSGALL.NONE;
normale = false; normale = false;
} else if (rec.msgall_status === StatusMSGALL.ASK) { } else if (rec.msgall_status === StatusMSGALL.ASK) {
if (msg.text !== Menu.INDIETRO) { if (!this.isSelMenu(msg, msg.text, 'INDIETRO')) {
rec.msgtosent = msg.text; rec.msgtosent = msg.text;
rec.msgall_status = StatusMSGALL.CONFIRM; rec.msgall_status = StatusMSGALL.CONFIRM;
const cmd = rec.msgtosent.toLowerCase(); const cmd = rec.msgtosent.toLowerCase();
@@ -1518,8 +1834,8 @@ class Telegram {
if (!rec) { if (!rec) {
await this.addUser(msg); await this.addUser(msg);
// await this.sendMsg(msg.chat.id, getstr(msg.from.language_code, printf(txt.MSG_ASK_USERNAME_BO, tools.getHostByIdApp(this.idapp)))); // 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(msg.from.language_code, printf(txt.MSG_ASK_USERNAME_BO, tools.getNomeAppByIdApp(this.idapp))), MenuNoLogin); await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), printf('MSG_ASK_USERNAME_BO', tools.getNomeAppByIdApp(this.idapp))), MenuNoLogin);
return false; return false;
} }
@@ -1534,7 +1850,6 @@ class Telegram {
if (user && rec) { if (user && rec) {
rec.user = user; rec.user = user;
} }
} }
async setUserbyUsername(username) { async setUserbyUsername(username) {
@@ -1569,7 +1884,7 @@ class Telegram {
} }
addUser(msg) { addUser(msg) {
const lang = msg.from.language_code; const lang = this.getlang(msg);
const code = 100000 + Math.round(Math.random() * 899999); const code = 100000 + Math.round(Math.random() * 899999);
const rec = { const rec = {
@@ -1604,7 +1919,7 @@ class Telegram {
} }
async getKeyboard(id, menu) { async getKeyboard(id, menu, lang) {
let keyb = MenuStandard; let keyb = MenuStandard;
// Check if you are Admin // Check if you are Admin
const ismanager = await User.isAdminByIdTeleg(this.idapp, id); const ismanager = await User.isAdminByIdTeleg(this.idapp, id);
@@ -1614,7 +1929,11 @@ class Telegram {
keyb = menu keyb = menu
} }
return keyb let mykeyb = undefined;
if (!!keyb) {
mykeyb = this.getmenuKey(keyb, lang);
}
return mykeyb;
} }
modificaMsg(chatid, idmodif, text) { modificaMsg(chatid, idmodif, text) {
@@ -1665,7 +1984,7 @@ class Telegram {
"message_id": msg_id, "message_id": msg_id,
"reply_markup": { "reply_markup": {
"resize_keyboard": true, "resize_keyboard": true,
"keyboard": await this.getKeyboard(id, menu) "keyboard": await this.getKeyboard(id, menu, recmem.lang)
} }
}; };
} }
@@ -1714,32 +2033,52 @@ class Telegram {
} }
async msgBenvenuto(id) { getmenuKey(mymenu, lang) {
return this._inviaMsg(id, Benvenuto, { let mymenuout = null;
"reply_markup": { try {
"resize_keyboard": true, mymenuout = mymenu[lang].menu;
"keyboard": await this.getKeyboard(id) } catch (e) {
mymenuout = mymenu['it'].menu;
} }
});
return mymenuout;
} }
async ChiediSINO(msg, domanda) { async ChiediSINO(msg, domanda) {
const lang = this.getlang(msg);
this._inviaMsg(msg.from.id, domanda, { this._inviaMsg(msg.from.id, domanda, {
"reply_markup": { "reply_markup": {
"resize_keyboard": true, "resize_keyboard": true,
'one_time_keyboard': true, 'one_time_keyboard': true,
"keyboard": MenuYesNo "keyboard": this.getmenuKey(MenuYesNo, lang)
} }
}); });
} }
async ScegliLang(msg, lang) {
const rec = this.getRecInMem(msg);
if (rec) {
if (rec.user) {
User.SetLang(this.idapp, rec.user._id, lang);
rec.user.lang = lang;
}
rec.lang = lang;
// await this.sendMsg(msg.chat.id, lang);
this.msgScegliMenu(msg);
}
}
async msgScegliMenu(msg) { async msgScegliMenu(msg) {
// const rec = this.getRecInMem(msg); // const rec = this.getRecInMem(msg);
this._inviaMsg(msg.from.id, txt.MSG_SCEGLI_MENU, { this._inviaMsg(msg.from.id, getstr(this.getlang(msg), 'MSG_SCEGLI_MENU'), {
"reply_markup": { "reply_markup": {
"resize_keyboard": true, "resize_keyboard": true,
"keyboard": await this.getKeyboard(msg.from.id) "keyboard": await this.getKeyboard(msg.from.id, undefined, this.getlang(msg))
} }
}) })
; ;

View File

@@ -51,7 +51,7 @@ textlang = {
"Nuova Registrazione": "Nuova Registrazione", "Nuova Registrazione": "Nuova Registrazione",
"Effettuata una Nuova Registrazione": "Effettuata una Nuova Registrazione", "Effettuata una Nuova Registrazione": "Effettuata una Nuova Registrazione",
"partecipanti": "partecipanti", "partecipanti": "partecipanti",
'TESTO_ASSISTENZA': "Per entrare nel Sito AYNI:\nhttps://ayni.gifteconomy.app\n\nHai dimenticato la Password per accedere al sito?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (questa):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Entra ⛩ nella nostra Community chat:\n https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat di Aiuto e Supporto: 'AYNI - HELP'\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Fai la tua domanda e chiedi assistenza.\n2 - Dopo aver ricevuto aiuto esci dalla chat.\nPotrai rientrare ogni qualvolta ne avrai la necessità.", 'TESTO_ASSISTENZA': "Per entrare nel Sito AYNI:\nhttps://ayni.gifteconomy.app\n\nHai dimenticato la Password per accedere al sito?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (questa):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Entra ⛩ nella nostra Community chat:\n https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat di Aiuto e Supporto: 'AYNI - HELP'\nDa Lunedì al Sabato (8:00 - 21:00)\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Fai la tua domanda e chiedi assistenza.\n2 - Dopo aver ricevuto aiuto esci dalla chat.\nPotrai rientrare ogni qualvolta ne avrai la necessità.",
'BENVENUTO': "Benvenuto", 'BENVENUTO': "Benvenuto",
'TUE_NAVI': "Ecco le tue Navi programmate", 'TUE_NAVI': "Ecco le tue Navi programmate",
'HAI_I_7_REQUISITI': 'PRIMI PASSI OK!\nHai i Primi 7 Requisiti per Entrare nella Lista d\'Imbarco!', 'HAI_I_7_REQUISITI': 'PRIMI PASSI OK!\nHai i Primi 7 Requisiti per Entrare nella Lista d\'Imbarco!',
@@ -86,53 +86,239 @@ textlang = {
'CIAO': 'Ciao', 'CIAO': 'Ciao',
'ADDED_TOLISTAINGRESSO': 'Sei stato aggiunto alla Lista delle persone che entreranno nella Lista D\'Imbarco !', 'ADDED_TOLISTAINGRESSO': 'Sei stato aggiunto alla Lista delle persone che entreranno nella Lista D\'Imbarco !',
'NO_PROG': 'Attualmente non sei ancora dentro alla Lista d\'Imbarco!', 'NO_PROG': 'Attualmente non sei ancora dentro alla Lista d\'Imbarco!',
'SEND_LINK_CHAT_DONATORI': 'Ciao %s!\nLa tua NAVE sta finalmente Salpando!\nEntra nella Gift Chat cliccando qui: %s' 'SEND_LINK_CHAT_DONATORI': 'Ciao %s!\nLa tua NAVE sta finalmente Salpando!\nEntra nella Gift Chat cliccando qui: %s',
'SOGNATORE': 'SOGNATORE',
'MEDIATORE': 'MEDIATORE',
'DONATORI': 'DONATORI',
'RITESSITURA': 'RITESSITURA',
'NAVE COMPLETATA': 'NAVE COMPLETATA',
'Doni Effettuati': 'Doni Effettuati',
'Tutor che affianchèra il Mediatore': 'Tutor che affianchèra il Mediatore',
'Giorno di Apertura GIFT CHAT': 'Giorno di Apertura GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Giorno in cui Inviare il DONO',
'Note': 'Note',
'TEMPORANEA': 'TEMPORANEA',
'NAVE': 'NAVE',
},
si: {
"Email je že bila preverjena": "Email je že bila preverjenaL'Email è già stata Verificata",
"Nuova Registrazione": "Nova Registracija",
"Effettuata una Nuova Registrazione": "Izpelji novo Registracijo",
"partecipanti": "Udeleženci",
'TESTO_ASSISTENZA': "Za vstop na spletno stran:\nhttps://ayni.gifteconomy.app\n\nSi pozabil geslo za vstop na stran?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nKlepet AYNI BOT (questa):\nhttps://t.me/notevoleaynibot\n\nKlepet AYNI - EMPOWER: Vstopi ⛩ v našo Skupnost klepet:\n https://t.me/aynislovenija\n\nKlepet AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nKlepet za Pomoč in Suport: 'AYNI - HELP'\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Postavi svoje vprašanje in prosi za asistenco.\n2 - KO si sprejel pomoč, izstopi iz klepeta.\n Vstopil boš lahko vedno, ko boš potreboval pomoč.",
'BENVENUTO': "Dobrodošel",
'TUE_NAVI': "Tvoje programirane Ladje",
'HAI_I_7_REQUISITI': 'PRVI KORAKI OK!\nIzpolnjuješ Prvih 7 Zahtev za vstop na Listo d\'Vkrcanje!',
'NON_HAI_I_7_REQUISITI': 'Pozor!\nŠe vedno nimaš izpolnjenih 7 Zahtev za vstop na listo\'Vkrcanje!',
'HAI_I_9_REQUISITI': 'ČESTITAMO!\nIzpolnil si VSEH 9 korakov v navodilih! Hvala ker pomagaš k širitvi AYNI !',
'NON_HAI_I_9_REQUISITI': 'Zapomni si, če želiš Pomagati Rasti in Širit Gibanje, lahko to storiš z delitvijo med ljudmi!',
'INFO_LA_MIA_LAVAGNA': '✨ Seznam Krajev: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Da izpolneš vse zahteve, pojdi na spletno stran:\n%s\nDa pogledaš status svoje Ladje in status svojih povabljencev, klikni na levi strani zgoraj na tri črte in izberi "Tabla".\n',
'INFO_LAVAGNA_SITO': 'Da lahko podrobno pogledaš status svoje Ladje,na spletni strani AYNI, klikni, na levi strani zgoraj, na tri črtice in izberi "Tabla".\n',
'INFO_LINK_DA_CONDIVIDERE': 'Link, ki ga deliš svojim povabljencem, da se lahko registrirajo na spletni strani Ayni:\n%s\n\nLink, ki ga deliš za udeležbo na Zoom (Konferenca OnLine):\n%s',
'ZOOM_CONFERENCE': 'Tu najdeš datume prihajajočih Zoom-ov:',
"NON_VERIF": "Ni Preverjena",
"VERIF": "Preverjena",
'EMAIL': "Email",
'BOT': "AYNI BOT",
'EMAIL_NON_VERIF': "Email ni preverjen\npojdi v svoj poštni nabiralnik in najdi**\"Potrditev Registracije na Ayni\"**<br>e klikni na gumb **\"Potrdi Registracijo\"**",
'TELEGRAM_NOT_CONNECTED': "Telegram ni povezan s tvojim računom!",
'NESSUN_INVITATO': 'Nisi povabil nikogar',
'ZOOM_PARTECIPATO': 'Udeležba na vsaj 1 Konferenci (Zoom-u)',
'LINEE_GUIDA': 'Sprejemam pogoje poslovanja',
'VIDEO_INTRO': 'Pogledal sem video AYNI',
'SCRITTO_SOGNO': 'Sem zapisal Sanje',
'PAYMENTS': 'Načini Plačila (Obvezen Paypal)',
'INVITATI': 'registrirane osebe, ki si povabil',
'INVITATI_ATTIVI': 'Povabljenci s 7 Zahtevami',
'NONREG': 'Neregistrirani povabljenci',
'CLICCA_PER_ZOOM': 'NA DOLOČENO URO IN DATUM, ZA VSTOP V VIDEO KONFERENCO,KLIKNI TU',
'CLICCA_ENTRA': 'KLIKNI TU ZA VSTOP !',
'ZOOM_INIZIATO': 'TA KONFERENCA JE\' PRIČELA!',
'SCEGLI_VOCE': 'izberi en glas:',
'INVITATI_LISTA': 'Tvoji povabljenci (v zelenem, s izpolnjenimi vsaj 7-imi zahtevami)',
'CIAO': 'Zdravo',
'ADDED_TOLISTAINGRESSO': 'Si bil dodan na Seznam oseb, ki bodo vstopile v Listo D\'Vkrcanje !',
'NO_PROG': 'Trenutno še nisi na Listi d\'Vkrcanja!',
'SEND_LINK_CHAT_DONATORI': 'Zdravo %s!\nTvoja LADJA bo končno Izplula!\nVstopi v Darilni (Gift) klepet s klikom tu: %s',
'SOGNATORE': 'Sanjača',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONATOR',
'RITESSITURA': 'PONOVNI VPIS',
'NAVE COMPLETATA': 'LADJE DOSTAVLJEN',
'Doni Effettuati': 'Darila narejena',
'Tutor che affianchèra il Mediatore': 'Tutor, ki bo podpiral Mediatorja',
'Giorno di Apertura GIFT CHAT': 'Dan odpiranja GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Dan za pošiljanje DARILA',
'Note': 'Opombe',
'TEMPORANEA': 'ZAČASNA',
'NAVE': 'LADJE',
}, },
es: { es: {
"L'Email è già stata Verificata": "L'Email è già stata Verificata", "L'Email è già stata Verificata": "El correo electrónico ya ha sido verificado",
"Nuova Registrazione": "Nuevo Registro", "Nuova Registrazione": "Nuevo Registro",
"Effettuata una Nuova Registrazione": "Se ha realizado un nuevo registro", "Effettuata una Nuova Registrazione": "Se ha realizado un nuevo registro",
"partecipanti": "participantes", "partecipanti": "participantes",
'TESTO_ASSISTENZA': "Per entrare nel Sito AYNI:\nhttps://ayni.gifteconomy.app\n\nHai dimenticato la Password per accedere al sito?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (questa):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Entra ⛩ nella nostra Community chat:\n https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat di Aiuto e Supporto: 'AYNI - HELP'\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Fai la tua domanda e chiedi assistenza.\n2 - Dopo aver ricevuto aiuto esci dalla chat.\nPotrai rientrare ogni qualvolta ne avrai la necessità.", 'TESTO_ASSISTENZA': "Para entrar en el sitio de AYNI:\nhttps://ayni.gifteconomy.app\n\n¿Olvidó su contraseña para acceder al sitio?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (este):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Entra en ⛩ en nuestra comunidad de chat:\n https://t.me/joinchat/AL2qKBqJRuIEuc2FivgAzg\n\nChat de la AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat de ayuda y soporte: 'AYNI - HELP'\nDe lunes a sábado (8:00 - 21:00)\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Haga su pregunta y pida ayuda.\n2 - Después de que consigas ayuda, sal de la sala de chat.\nPuedes volver cuando necesites ayuda..",
'BENVENUTO': "Benvenuto", 'BENVENUTO': "Bienvenido",
'TUE_NAVI': "Ecco le tue Navi programmate", 'TUE_NAVI': "Aquí están sus naves programadas",
'HAI_I_7_REQUISITI': 'PRIMI PASSI OK!\nHai i Primi 7 Requisiti per Entrare nella Lista d\'Imbarco!', 'HAI_I_7_REQUISITI': '¡LOS PRIMEROS PASOS ESTÁN BIEN!\nTiene los primeros 7 requisitos para entrar en la lista de embarque!',
'NON_HAI_I_7_REQUISITI': 'Attenzione!\nAncora non hai i 7 Requisiti per Entrare nella Lista d\'Imbarco!', 'NON_HAI_I_7_REQUISITI': '¡Atención!\nTodavía no tienes los 7 requisitos para entrar en la lista de embarque!',
'HAI_I_9_REQUISITI': 'COMPLIMENTI!\nHai Completato TUTTI i 9 Passi della Guida! Grazie per Aiutare AYNI ad Espandersi!', 'HAI_I_9_REQUISITI': '¡FELICITACIONES!\n¡Has completado los 9 pasos de la Guía! Gracias por ayudar a AYNI a expandirse!',
'NON_HAI_I_9_REQUISITI': 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!', 'NON_HAI_I_9_REQUISITI': 'Recuerda que puedes ayudar a que el Movimiento crezca y se expanda compartiendo nuestro viaje con todos.!',
'INFO_LA_MIA_LAVAGNA': '✨ Lista dei Passi: ✨ \n', 'INFO_LA_MIA_LAVAGNA': '✨ Lista de pasos: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Per completare tutti i requisiti vai sul sito:\n%s\nPer vedere lo stato della tua Nave e dei tuoi invitati, clicca sulle 3 linee in alto a sinistra ed accedi alla voce "Lavagna".\n', 'INFO_LAVAGNA_SITO_COMPLETARE': 'Para completar todos los requisitos vaya al sitio:\n%s\nPara ver el estado de su nave y sus invitados, haga clic en las 3 líneas de arriba a la izquierda y vaya a "Pizarra".\n',
'INFO_LAVAGNA_SITO': 'Per vedere in dettaglio lo stato della tua Nave, sul sito AYNI, clicca sulle 3 linee in alto a sinistra ed accedi alla voce "Lavagna".\n', 'INFO_LAVAGNA_SITO': 'Para ver en detalle el estado de su nave, en el sitio web de AYNI, haga clic en las 3 líneas de la parte superior izquierda y vaya a "Pizarra"..\n',
'INFO_LINK_DA_CONDIVIDERE': 'Link da condividere ai tuoi invitati per farli registrare al sito di Ayni:\n%s\n\nLink da condividere per partecipare allo Zoom (Conferenza OnLine):\n%s', 'INFO_LINK_DA_CONDIVIDERE': 'Enlaces para compartir con sus invitados para que se registren en el sitio web de Ayni:\n%s\n\nEnlaces para compartir para participar en el Zoom (Conferencia en línea):\n%s',
'ZOOM_CONFERENCE': 'Qui trovi le date di programmazione agli Zoom:', 'ZOOM_CONFERENCE': 'Aquí puedes encontrar las fechas de programación en el Zoom:',
"NON_VERIF": "Non Verificata", "NON_VERIF": "No verificado",
"VERIF": "Verificata", "VERIF": "Verificado",
'EMAIL': "Email", 'EMAIL': "Email",
'BOT': "AYNI BOT", 'BOT': "AYNI BOT",
'EMAIL_NON_VERIF': "Email Non Verificata\nleggi la tua casella email e trova **\"Confermare la Registrazione a Ayni\"**<br>e clicca sul bottone **\"Verifica Registrazione\"**", 'EMAIL_NON_VERIF': "Correo electrónico no verificado\nlea su buzón y encuentre **\"Confirmar Registro a Ayni \"** <marca>y haga clic en el botón **\"Verificar Registro \"**.",
'TELEGRAM_NOT_CONNECTED': "Telegram non associato al tuo account!", 'TELEGRAM_NOT_CONNECTED': "Telegram no asociado a su cuenta!",
'NESSUN_INVITATO': 'Non hai invitato nessuno', 'NESSUN_INVITATO': 'No invitaste a nadie',
'ZOOM_PARTECIPATO': 'Partecipazione ad almeno 1 Conferenza (Zoom)', 'ZOOM_PARTECIPATO': 'Participación en al menos 1 Conferencia (Zoom)',
'LINEE_GUIDA': 'Accettato le Linee Guida', 'LINEE_GUIDA': 'Directrices aceptadas',
'VIDEO_INTRO': 'Visto il Video di AYNI', 'VIDEO_INTRO': 'Ver el video de AYNI',
'SCRITTO_SOGNO': 'Hai scritto il tuo Sogno', 'SCRITTO_SOGNO': 'Escribiste tu sueño',
'PAYMENTS': 'Modalità di Pagamento (Obbligatorio Paypal)', 'PAYMENTS': 'Métodos de pago (Paypal obligatorio)',
'INVITATI': 'persone registrate che hai invitato', 'INVITATI': 'las personas registradas que usted invitó',
'INVITATI_ATTIVI': 'Invitati con i 7 Requisiti', 'INVITATI_ATTIVI': 'Invitado con los 7 requisitos',
'NONREG': 'Invitati non Registrati', 'NONREG': 'Invitados no registrados',
'CLICCA_PER_ZOOM': 'AL GIORNO E ORA INDICATA, PER ENTRARE NELLA VIDEO-CONFERENZA, CLICCA QUI', 'CLICCA_PER_ZOOM': 'AL DÍA Y HORA INDICADOS, PARA ENTRAR EN LA VIDEOCONFERENCIA, PULSE AQUÍ',
'CLICCA_ENTRA': 'CLICCA QUI PER ENTRARE !', 'CLICCA_ENTRA': 'HAGA CLIC AQUÍ PARA ENTRAR !',
'ZOOM_INIZIATO': 'QUESTA CONFERENZA E\' INIZIATA!', 'ZOOM_INIZIATO': 'ESTA CONFERENCIA HA COMENZADO!',
'SCEGLI_VOCE': 'scegli una voce:', 'SCEGLI_VOCE': 'elegir una voz:',
'INVITATI_LISTA': 'I Tuoi Invitati (in verde con almeno i primi 7 Requisiti)', 'INVITATI_LISTA': 'Sus invitados (en verde con al menos los 7 primeros requisitos)',
'CIAO': 'Hola', 'CIAO': 'Hola',
'ADDED_TOLISTAINGRESSO': 'Has sido añadido a la lista de personas que entrarán en Lista de embarque!', 'ADDED_TOLISTAINGRESSO': 'Has sido añadido a la lista de personas que entrarán en Lista de embarque!',
'NO_PROG': 'Attualmente non sei ancora dentro alla Lista d\'Imbarco!', 'NO_PROG': 'Actualmente no está en la lista de embarque.!',
'SEND_LINK_CHAT_DONATORI': 'Ciao %s!\nLa tua NAVE sta finalmente Salpando!\nEntra nella Gift Chat cliccando qui: %s' 'SEND_LINK_CHAT_DONATORI': 'Hola %s!\n¡Tu barco por fin está navegando!\nEntra en el Gift Chat haciendo clic aquí: %s',
'SOGNATORE': 'SOÑADOR',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONANTES',
'RITESSITURA': 'RETEJIDO',
'NAVE COMPLETATA': 'NAVE COMPLETADA',
'Doni Effettuati': 'Regalos Realizados',
'Tutor che affianchèra il Mediatore': 'Tutor de apoyo al Donante',
'Giorno di Apertura GIFT CHAT': 'Día de apertura GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Día en el que enviar el REGALO',
'Note': 'Notas',
'TEMPORANEA': 'TEMPORAL',
'NAVE': 'NAVE',
}, },
us: { enUs: {
"partecipanti": "participants", "partecipanti": "participants",
'TESTO_ASSISTENZA': "Per entrare nel Sito AYNI:\nhttps://ayni.gifteconomy.app\n\nHai dimenticato la Password per accedere al sito?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (questa):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Entranella nostra Community chat:\n https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat di Aiuto e Supporto: 'AYNI - HELP'\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Fai la tua domanda e chiedi assistenza.\n2 - Dopo aver ricevuto aiuto esci dalla chat.\nPotrai rientrare ogni qualvolta ne avrai la necessità.", 'TESTO_ASSISTENZA': "To enter the AYNI Site:\nhttps://ayni.gifteconomy.app\n\nForgot your password to access the site?\nhttps://ayni.gifteconomy.app/requestresetpwd\nChat AYNI BOT (this one):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Enter ⛩ into our chat community:\nhttps://t.me/joinchat/AL2qKBYX0yVvOJ6Ssf9hKg\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nHelp and Support Chat: 'AYNI - HELP'.\nMonday to Saturday (8:00 - 21:00)\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Ask your question and ask for assistance.\n2 - After receiving help, exit the chat.\nYou can come back whenever you need help.",
'BENVENUTO': "Welcome",
'TUE_NAVI': "Here are your programmed ships",
'HAI_I_7_REQUISITI': 'FIRST STEPS OK!\nYou have the First 7 Requirements to Enter the Boarding List!',
'NON_HAI_I_7_REQUISITI': 'Attention!\nYou still do not have the 7 requirements to enter the boarding list!',
'HAI_I_9_REQUISITI': 'CONGRATULATIONS!\nYou have completed ALL 9 steps of the Guide! Thank you for Helping AYNI Expand!',
'NON_HAI_I_9_REQUISITI': 'Remember that you can help the Movement grow and expand by sharing our journey with everyone.!',
'INFO_LA_MIA_LAVAGNA': '✨ Step List: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'To complete all the requirements go to the site:%s\nTo see the status of your Ship and your guests, click on the 3 lines at the top left and go to "Dashboard"\n',
'INFO_LAVAGNA_SITO': 'To see in detail the status of your ship, on the AYNI website, click on the 3 lines at the top left and go to "Blackboard".\n',
'INFO_LINK_DA_CONDIVIDERE': 'Links to share with your guests to have them register on Ayni\'s website:\n%s\n\nLinks to share to participate in Zoom (Online Conference):\n%s',
'ZOOM_CONFERENCE': 'Here you can find the Zoom Conference Planning:',
"NON_VERIF": "Not Verified",
"VERIF": "Verified",
'EMAIL': "Email",
'BOT': "AYNI BOT",
'EMAIL_NON_VERIF': "Email Not Verified\nread your mailbox and find **\"Confirm Registration to Ayni \"**<br>and click on the button **\"Verify Registration \"**.",
'TELEGRAM_NOT_CONNECTED': "Telegram not associated with your account!",
'NESSUN_INVITATO': 'You didn\'t invite anyone',
'ZOOM_PARTECIPATO': 'Participation in at least 1 Conference (Zoom)',
'LINEE_GUIDA': 'Guidelines Accepted',
'VIDEO_INTRO': 'Seen the AYNI Video',
'SCRITTO_SOGNO': 'You wrote your Dream',
'PAYMENTS': 'Methods of Payment (Mandatory Paypal)',
'INVITATI': 'registered people you invited',
'INVITATI_ATTIVI': 'Guests with the 7 Requirements',
'NONREG': 'Non-registered Guests',
'CLICCA_PER_ZOOM': 'TO THE DAY AND TIME INDICATED, TO ENTER THE VIDEO-CONFERENCE, CLICK HERE',
'CLICCA_ENTRA': 'CLICK HERE TO ENTER !',
'ZOOM_INIZIATO': 'THIS CONFERENCE HAS BEGUN!',
'SCEGLI_VOCE': 'choose a menu item:',
'INVITATI_LISTA': 'Your Guests (in green with at least the first 7 requirements)',
'CIAO': 'Hi',
'ADDED_TOLISTAINGRESSO': 'You have been added to the List of people who will enter the Boarding List!',
'NO_PROG': 'You are not currently on the boarding list.!',
'SEND_LINK_CHAT_DONATORI': 'Hi %s!\nYour ship is finally sailing!\nEnter the Gift Chat by clicking here: %s',
'SOGNATORE': 'DREAMER',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONOR',
'RITESSITURA': 'RE-ENTER',
'NAVE COMPLETATA': 'SHIP COMPLETED',
'Doni Effettuati': 'Gifts Made',
'Tutor che affianchèra il Mediatore': 'Tutor supporting the Mediator',
'Giorno di Apertura GIFT CHAT': 'Opening Day GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Day on which to send the Gift',
'Note': 'Note',
'TEMPORANEA': 'TEMPORARY',
'NAVE': 'SHIP',
},
fr: {
"L'Email è già stata Verificata": "Le courrier électronique a déjà été vérifié",
"Nuova Registrazione": "Nouvelle inscription",
"Effettuata una Nuova Registrazione": "Un nouvel enregistrement a été effectué",
"partecipanti": "participants",
'TESTO_ASSISTENZA': "Pour entrer sur le site AYNI:\nhttps://ayni.gifteconomy.app\n\nVous avez oublié votre mot de passe pour accéder au site ?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (ce):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER : Entrez ⛩ dans notre Community chat:\nhttps://t.me/joinchat/Kz0wtxieJjzoC3L_DsrdZw\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat dAide et de Support: 'AYNI - HELP'\nDu lundi au samedi (8:00 - 21:00)\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Posez votre question et demandez dêtre assisté.\n2 - Après avoir reçu laide, quittez le groupe .\\n Vous pourrez y entrer chaque fois quil vous sera nécessaire.",
'BENVENUTO': "Bienvenue",
'TUE_NAVI': "Voici vos navires programmés",
'HAI_I_7_REQUISITI': 'PREMIÈRES ÉTAPES OK!\nvous avez les 7 premiers Requis pour Entrer dans la liste d\'embarquement!',
'NON_HAI_I_7_REQUISITI': '\'Attention!\nVous ne remplissez pas encore les 7 conditions pour figurer sur la liste d\'embarquement!',
'HAI_I_9_REQUISITI': 'FÉLICITATIONS!\n!Vous avez franchi les 9 étapes de la conduite ! Merci d\'avoir aidé AYNI à se développer!',
'NON_HAI_I_9_REQUISITI': 'N\'oubliez pas que vous pouvez aider le Mouvement à grandir et à se développer en partageant notre voyage avec tout le monde.!',
'INFO_LA_MIA_LAVAGNA': '✨ Liste des étapes: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Pour remplir toutes les conditions, rendez-vous sur le site:\n%s\nPour voir le statut de votre navire et de vos invités, cliquez sur les 3 lignes en haut à gauche et allez sur "Tableau noir".\n',
'INFO_LAVAGNA_SITO': 'Pour voir en détail le statut de votre navire, sur le site de l\'AYNI, cliquez sur les 3 lignes en haut à gauche et allez sur "Tableau noir".\n',
'INFO_LINK_DA_CONDIVIDERE': 'Liens à partager avec vos invités pour qu\'ils s\'inscrivent sur le site web d\'Ayni:\n%s\n\nLiens à partager pour participer à Zoom (Conférence en ligne):\n%s',
'ZOOM_CONFERENCE': 'Vous trouverez ici les dates de programmation sur Zoom:',
"NON_VERIF": "Non vérifié",
"VERIF": "Vérifié",
'EMAIL': "Courriel",
'BOT': "AYNI BOT",
'EMAIL_NON_VERIF': "Courriel non vérifié\nlisez votre boîte aux lettres et trouvez **\"Confirmer l'inscription à Ayni \"**<br>et cliquez sur le bouton **\"Vérifier l'inscription \"**.",
'TELEGRAM_NOT_CONNECTED': "Télégramme non associé à votre compte!",
'NESSUN_INVITATO': 'Vous n\'avez invité personne',
'ZOOM_PARTECIPATO': 'Participation à au moins 1 conférence (Zoom)',
'LINEE_GUIDA': 'Lignes directrices acceptées',
'VIDEO_INTRO': 'Voir la vidéo AYNI',
'SCRITTO_SOGNO': 'Vous avez écrit votre rêve',
'PAYMENTS': 'Modes de paiement (Paypal obligatoire)',
'INVITATI': 'personnes inscrites que vous avez invitées',
'INVITATI_ATTIVI': 'Invité avec les 7 exigences',
'NONREG': 'Invités non enregistrés',
'CLICCA_PER_ZOOM': 'AU JOUR ET À L\'HEURE INDIQUÉS, POUR ENTRER DANS LA VIDÉOCONFÉRENCE, CLIQUEZ ICI',
'CLICCA_ENTRA': 'CLIQUEZ ICI POUR ENTRER !',
'ZOOM_INIZIATO': 'CETTE CONFÉRENCE A COMMENCÉ!',
'SCEGLI_VOCE': 'choisir une voix:',
'INVITATI_LISTA': 'Vos invités (en vert avec au moins les 7 premières exigences)',
'CIAO': 'Salut',
'ADDED_TOLISTAINGRESSO': 'Vous avez été ajouté à la liste d\'embarquement !',
'NO_PROG': 'Vous n\'êtes pas encore sur la liste d\'embarquement.!',
'SEND_LINK_CHAT_DONATORI': 'Salut %s!\nVotre SHIP prend enfin la mer.!\nEntrez dans le Chat Cadeau en cliquant ici: %s',
'SOGNATORE': 'Rêveur',
'MEDIATORE': 'Médiateur',
'DONATORI': 'DONATEUR',
'RITESSITURA': 'RETESSITURA',
'NAVE COMPLETATA': 'NAVIRE COMPLÉTÉ',
'Doni Effettuati': 'Don effectués',
'Tutor che affianchèra il Mediatore': 'Le tuteur qui soutient le Mediateur',
'Giorno di Apertura GIFT CHAT': 'Jour d\'ouverture GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Envoyer le jour il DONO',
'Note': 'Notes',
'TEMPORANEA': 'TEMPORAIRE',
'NAVE': 'NAVIRE',
},
pt: {
"L'Email è già stata Verificata": "",
"Nuova Registrazione": "Nuova Registrazione",
"Effettuata una Nuova Registrazione": "Effettuata una Nuova Registrazione",
"partecipanti": "partecipanti",
'TESTO_ASSISTENZA': "Per entrare nel Sito AYNI:\nhttps://ayni.gifteconomy.app\n\nHai dimenticato la Password per accedere al sito?\nhttps://ayni.gifteconomy.app/requestresetpwd\n\nChat AYNI BOT (questa):\nhttps://t.me/notevoleaynibot\n\nChat AYNI - EMPOWER: Entra ⛩ nella nostra Community chat:\n https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g\n\nChat AYNI-BIBLIO: https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ \n\nChat di Aiuto e Supporto: 'AYNI - HELP'\nDa Lunedì al Sabato (8:00 - 21:00)\nhttps://t.me/joinchat/C741mlVmB_RMcOUpNqWC8w\n1 - Fai la tua domanda e chiedi assistenza.\n2 - Dopo aver ricevuto aiuto esci dalla chat.\nPotrai rientrare ogni qualvolta ne avrai la necessità.",
'BENVENUTO': "Benvenuto", 'BENVENUTO': "Benvenuto",
'TUE_NAVI': "Ecco le tue Navi programmate", 'TUE_NAVI': "Ecco le tue Navi programmate",
'HAI_I_7_REQUISITI': 'PRIMI PASSI OK!\nHai i Primi 7 Requisiti per Entrare nella Lista d\'Imbarco!', 'HAI_I_7_REQUISITI': 'PRIMI PASSI OK!\nHai i Primi 7 Requisiti per Entrare nella Lista d\'Imbarco!',
@@ -164,11 +350,23 @@ textlang = {
'ZOOM_INIZIATO': 'QUESTA CONFERENZA E\' INIZIATA!', 'ZOOM_INIZIATO': 'QUESTA CONFERENZA E\' INIZIATA!',
'SCEGLI_VOCE': 'scegli una voce:', 'SCEGLI_VOCE': 'scegli una voce:',
'INVITATI_LISTA': 'I Tuoi Invitati (in verde con almeno i primi 7 Requisiti)', 'INVITATI_LISTA': 'I Tuoi Invitati (in verde con almeno i primi 7 Requisiti)',
'CIAO': 'Hi', 'CIAO': 'Ciao',
'ADDED_TOLISTAINGRESSO': 'You have been added to the List of people who will enter the Boarding List!', 'ADDED_TOLISTAINGRESSO': 'Sei stato aggiunto alla Lista delle persone che entreranno nella Lista D\'Imbarco !',
'NO_PROG': 'Attualmente non sei ancora dentro alla Lista d\'Imbarco!', 'NO_PROG': 'Attualmente non sei ancora dentro alla Lista d\'Imbarco!',
'SEND_LINK_CHAT_DONATORI': 'Ciao %s!\nLa tua NAVE sta finalmente Salpando!\nEntra nella Gift Chat cliccando qui: %s' 'SEND_LINK_CHAT_DONATORI': 'Ciao %s!\nLa tua NAVE sta finalmente Salpando!\nEntra nella Gift Chat cliccando qui: %s',
} 'SOGNATORE': 'SONHEIROS',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONATORES',
'RITESSITURA': 'ENTRE EM',
'NAVE COMPLETATA': 'NAVIO COMPLETADO',
'Doni Effettuati': 'Regalo Feitos',
'Tutor che affianchèra il Mediatore': 'Tutor que apoia o Mediator',
'Giorno di Apertura GIFT CHAT': 'Dia de Abertura GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Dia em que enviar o REGALO',
'Note': 'Notas',
'TEMPORANEA': 'TEMPORÁRIO',
'NAVE': 'NAVE',
},
}; };
@@ -233,10 +431,21 @@ module.exports = {
} }
}, },
get__(text, msg) { getlangbyres(res) {
let lang = 'it'; // ++Todo: res estrarre la lingua
if (msg) let lang = '';
lang = msg.from.language_code; try {
lang = res.lang
} catch (e) {
}
if (!lang) {
lang = 'it';
}
return lang
},
get__(text, lang) {
try { try {
return textlang[lang][text] return textlang[lang][text]
} catch (e) { } catch (e) {
@@ -245,8 +454,7 @@ module.exports = {
}, },
getres__(text, res) { getres__(text, res) {
// ++Todo: res estrarre la lingua let lang = getlangbyres(res);
let lang = 'it';
try { try {
return textlang[lang][text] return textlang[lang][text]
} catch (e) { } catch (e) {