diff --git a/docs/passi.txt b/docs/passi.txt
index 9dc6c40..7708482 100644
--- a/docs/passi.txt
+++ b/docs/passi.txt
@@ -9,23 +9,19 @@ X - Aggiornare il testo sulla Placca (Data Inizio e Data Fine Doni)
// ++Todo: SISTEMARE:
+ X - Devo comparire come mio invitato se aggiungo un nuovo Viaggio.
+ X - Fare la lista delle Navi (in alto alla Lavagna) con il loro tragitto.
+ X- Nel campo note, metterci il Sogno
+ X - Se nave Temporanea, mettere Info.
+ X- Mettere flag se si vuole spostare l'Utente oppure Aggiungerlo...
+ - Mettere Sfondo immagine su ogni nave
+ - Mettere il tragitto anche sul BOT.
-// ++Todo: TOGLIERE!
-
x- AGGIONARE AMBIENTE DI TEST
- ESEGUIRE LA CONVERSIONE 1 E 2 !
-- CHECK getProssimiInLista
-X - CONTROLLARE arrIdTelegramUsers
-
-- TESTARE SOSTITUISCI UTENTE DA NAVE
-
-- TESTARE AGGIUNGI VIAGGIO
-
-x- Accorpare tutti i sotto account, in 1 unico !
-x - Nel campo note, metterci l'username vecchio.
x - Sistemare le navi con num_tess === 4 : indorder=0 e 46 :
Prendere quelli del num_tess === 3 e SOSTITUISCI ind_order del num_Tess = 4 con ind_order di num_tess = 3
@@ -41,7 +37,6 @@ x - Sistemare le navi con num_tess === 4 : indorder=0 e 46 :
SOSTITUISCI:
- - Mettere flag se si vuole spostare l'Utente oppure Aggiungerlo...
- Sistemare che in Edit Pagina, se è troppo grande, va oltre l'altezza della finestra.
@@ -55,7 +50,5 @@ SOSTITUISCI:
TRADURRE:
-'Giorno in cui Inviare il DONO': 'Hai 4 giorni di tempo per inviare il tuo dono. Giorno di Chiusura:',
-
- Mettere le bandierine nella lista Zoom (su AYNI BOT).
diff --git a/src/server/models/listaingresso.js b/src/server/models/listaingresso.js
index dec3af6..99078c0 100755
--- a/src/server/models/listaingresso.js
+++ b/src/server/models/listaingresso.js
@@ -171,6 +171,12 @@ ListaIngressoSchema.statics.deleteUserInListaIngresso = async function (idapp, u
};
+ListaIngressoSchema.statics.getNumDaImbarcare = async function (idapp) {
+ const ListaIngresso = this;
+
+ return await ListaIngresso.count({ idapp, added: false, deleted: false })
+
+};
ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, username, invitante_username, lang, addednowreal, nuovo, dateins, note, added, opt) {
const ListaIngresso = this;
@@ -212,8 +218,19 @@ ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, user
if (addednowreal) {
if (!!ris) {
const nome = await User.getNameSurnameByUsername(idapp, username);
- msgtext = '🔵 ' + nome + ' (' + username + ') ' + tools.gettranslate('ADDED_TOLISTAINGRESSO', lang);
- await telegrambot.sendMsgTelegram(idapp, username, msgtext, true); // Anche a STAFF
+ const numimbarcare = await ListaIngresso.getNumDaImbarcare(idapp);
+ let msgtext = '🛳 ';
+ msgtext += nome + ' (' + username + ') ' + tools.gettranslate('ADDED_TOLISTAINGRESSO', lang);
+ await telegrambot.sendMsgTelegram(idapp, username, msgtext, false);
+
+ msgtext = '🛳 ';
+ if (nuovo) {
+ msgtext += '🌠 ';
+ }
+
+ const msgadd = msgtext + ' [' + numimbarcare + '] Imbarcare ' + nome + ' (' + username + ') ';
+
+ await telegrambot.sendMsgTelegramToTheManagers(idapp, msgadd, false); // Anche a STAFF
if (!!opt) {
if (!!opt.sendmsgtoinvitante) {
@@ -458,6 +475,22 @@ ListaIngressoSchema.statics.getProssimiInLista = async function (idapp, solonuov
return arrrec;
};
+ListaIngressoSchema.statics.eliminaListeIngressoNascoste = async function (idapp) {
+ const ListaIngresso = this;
+
+ const { User } = require('./user');
+
+ const arrIngr = await ListaIngresso.find({ idapp, deleted: true });
+
+ for (const ingr of arrIngr) {
+ const user = await User.findOne({ idapp, old_order: ingr.ind_order });
+ if (!user) {
+ await ListaIngresso.deleteOne({ _id: ingr._id })
+ }
+ }
+
+};
+
ListaIngressoSchema.statics.creaTessituraeConv = async function (idapp) {
const ListaIngresso = this;
@@ -501,6 +534,7 @@ ListaIngressoSchema.statics.creaTessituraeConv = async function (idapp) {
.then((mynave) => {
if (!!mynave) {
ingr.date_added = mynave.created;
+ ingr.deleted = false;
ingr.added = true;
}
return !!mynave;
@@ -580,7 +614,7 @@ ListaIngressoSchema.statics.creaTessituraeConv = async function (idapp) {
for (const myuser of arrIdTelegramUsers) {
// Crea 1 record listaingresso per ogni record aggiuntivo ! escludendo il primo!
- if (teleg_id !== myuser.profile.teleg_id) {
+ if (teleg_id !== myuser.profile.teleg_id && myuser.old_order > 0) {
index = 0;
teleg_id = myuser.profile.teleg_id;
username = myuser.username;
@@ -605,7 +639,7 @@ ListaIngressoSchema.statics.creaTessituraeConv = async function (idapp) {
}
}, { new: false });
- await Nave.updateMany({idapp, ind_order}, {
+ await Nave.updateMany({ idapp, ind_order }, {
$set: {
note: findlistaingresso.username,
}
@@ -666,17 +700,21 @@ ListaIngressoSchema.statics.getarray = async function (idapp, filtri, myobjField
};
-ListaIngressoSchema.statics.getInvitati = async function (idapp, username, myobjField) {
+ListaIngressoSchema.statics.getInvitati = async function (idapp, username, includemyself, myobjField) {
const ListaIngresso = this;
- return ListaIngresso.getarray(idapp,
- {
- idapp,
- deleted: false,
- invitante_username: username,
- username: { $ne: username },
- },
- myobjField);
+ let myq = {
+ idapp,
+ deleted: false,
+ invitante_username: username,
+ };
+
+ if (!includemyself) {
+ myq = { ...myq, username: { $ne: username } }
+ }
+
+ return ListaIngresso.getarray(idapp, myq, myobjField);
+
};
@@ -708,7 +746,7 @@ ListaIngressoSchema.statics.getnumInvitati = async function (idapp, username) {
idapp,
invitante_username: username,
deleted: false,
- username: { $ne: username },
+ // username: { $ne: username },
}, { username: 1 });
const { User } = require('./user');
@@ -720,10 +758,10 @@ ListaIngressoSchema.statics.getnumInvitati = async function (idapp, username) {
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }]
});
- for (const inv of arrinv) {
+ /*for (const inv of arrinv) {
if (!arrlistainv.find((rec) => rec.username === inv.username))
arrlistainv.push(inv);
- }
+ }*/
if (!!arrlistainv)
return arrlistainv.length;
@@ -745,7 +783,7 @@ ListaIngressoSchema.statics.getnumInvitatiAttivi = async function (idapp, userna
let myquery = getQueryProj({
idapp,
invitante_username: username,
- username: { $ne: username },
+ // username: { $ne: username },
deleted: false,
},
{ username: 1, ind_order: 1 },
@@ -764,10 +802,11 @@ ListaIngressoSchema.statics.getnumInvitatiAttivi = async function (idapp, userna
$and: User.getQueryQualified()
});
+ /*
for (const inv of arrinv) {
if (!arrlistainv.find((rec) => rec.username === inv.username))
arrlistainv.push(inv);
- }
+ }*/
if (!!arrlistainv)
return arrlistainv.length;
diff --git a/src/server/models/nave.js b/src/server/models/nave.js
index 22931f3..f2452f0 100755
--- a/src/server/models/nave.js
+++ b/src/server/models/nave.js
@@ -160,7 +160,7 @@ NaveSchema.statics.findById = function (idapp, id) {
} else {
return null;
}
- }catch (e) {
+ } catch (e) {
console.error(e.message);
}
});
@@ -453,13 +453,13 @@ function getQueryProj(myfilter) {
}
},
{
- $replaceRoot: { newRoot: { $mergeObjects: [ { $arrayElemAt: [ "$mylista", 0 ] }, "$$ROOT" ] } }
+ $replaceRoot: { newRoot: { $mergeObjects: [{ $arrayElemAt: ["$mylista", 0] }, "$$ROOT"] } }
},
{
$lookup: {
from: "users",
as: "user",
- let: {username: '$username' },
+ let: { username: '$username' },
pipeline: [
{
$match: {
@@ -723,13 +723,22 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
let recnavepersistente = await NavePersistente.findByRigaCol(idapp, riga, col, 0);
- mystr = '🌈' + tools.get__('SOGNATORE', lang) + ': ';
- for (let indsogn = 0; indsogn < recsognatori.length; indsogn++) {
- mystr += 'A' + (3 - indsogn) + await getusertextbyrec(recsognatori[indsogn], '', '', riga, col, '') + tools.ACAPO;
+ mystr = '7️⃣° 🌈 ' + tools.get__('SOGNATORE', lang) + ': ';
+ mystr += '' + await getusertextbyrec(recsognatori[0], '', '', riga, col, '') + '' + tools.ACAPO;
+ for (let indsogn = 1; indsogn < recsognatori.length; indsogn++) {
+ if (indsogn === 1)
+ mystr += '6️⃣°';
+ else
+ mystr += '5️⃣°';
+
+ mystr += ' ' + tools.get__('INTERMEDIO', lang) + ': ';
+
+ mystr += await getusertextbyrec(recsognatori[indsogn], '', '', riga, col, '') + tools.ACAPO;
}
- mystr += tools.ACAPO + '🌀 ' + tools.get__('MEDIATORE', lang) + ':' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
+ mystr += tools.ACAPO + '4️⃣° 🌀 ' + tools.get__('MEDIATORE', lang) + ':' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
+ mystr += '3️⃣° ' + tools.get__('INTERMEDIO', lang) +':' + tools.ACAPO;
for (let indterra = 1; indterra <= 2; indterra++) {
miacol = calcval(riga, col, 2) + (indterra);
miariga = riga + 1;
@@ -739,6 +748,7 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
mystr += tools.ACAPO;
+ mystr += '2️⃣° ' + tools.get__('INTERMEDIO', lang) + ':' + tools.ACAPO;
for (let indaria = 1; indaria <= 4; indaria++) {
miacol = calcval(riga, col, 4) + (indaria);
miariga = riga + 2;
@@ -750,7 +760,7 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
let primofuoco = null;
- mystr += '🎁 ' + tools.get__('DONATORI', lang) + ':' + tools.ACAPO;
+ mystr += '1️⃣° 🎁 ' + tools.get__('DONATORI', lang) + ':' + tools.ACAPO;
let donitotali = 0;
let donifatti = 0;
@@ -794,7 +804,7 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
if (!!recnavepersistente.tutor_namesurname)
data += '👤 ' + tools.get__('Tutor che affianchèra il Mediatore', lang) + ': "' + recnavepersistente.tutor_namesurname + '"' + tools.ACAPO;
- data += '💬 ' + printf(tools.get__('APERTURA_CHIUSURA_GIFT_CHAT', lang), tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang), tools.getstrDateLong(recnavepersistente.date_start, lang)) + tools.ACAPO;
+ data += '💬 ' + printf(tools.get__('APERTURA_CHIUSURA_GIFT_CHAT', lang), tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang), tools.getstrDateLong(recnavepersistente.date_start, lang)) + tools.ACAPO;
// data += '💬 ' + tools.get__('Giorno di Apertura GIFT CHAT', lang) + ': ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang) + tools.ACAPO;
@@ -1398,7 +1408,7 @@ NaveSchema.statics.getnumNaviByUsername = async function (idapp, username) {
// Get array di ind_order
const arrind_order = await ListaIngresso.find({ idapp, username }).distinct('ind_order');
- const arrrec = await Nave.find({ idapp, ind_order: arrind_order, num_tess: { $mod: [ 2 , 1] } }, {
+ const arrrec = await Nave.find({ idapp, ind_order: arrind_order, num_tess: { $mod: [2, 1] } }, {
riga: 1,
col: 1,
ind_order: 1
@@ -1409,7 +1419,7 @@ NaveSchema.statics.getnumNaviByUsername = async function (idapp, username) {
else
return 0;
- }catch (e) {
+ } catch (e) {
console.error(e.message);
}
};
@@ -1435,7 +1445,6 @@ NaveSchema.statics.getSognatoreByRigaColMediatore = async function (idapp, navem
};
-
const Nave = mongoose.model('Nave', NaveSchema);
module.exports = { Nave };
diff --git a/src/server/models/user.js b/src/server/models/user.js
index 8ac6f40..4d998b5 100755
--- a/src/server/models/user.js
+++ b/src/server/models/user.js
@@ -445,12 +445,12 @@ UserSchema.statics.getUserShortDataByUsername = async function (idapp, username)
return myrec
};
-UserSchema.statics.getDownlineByUsername = async function (idapp, username) {
+UserSchema.statics.getDownlineByUsername = async function (idapp, username, includemyself) {
if (username === undefined)
return null;
- const arrrec = await ListaIngresso.getInvitati(idapp, username,
+ const arrrec = await ListaIngresso.getInvitati(idapp, username, includemyself,
{
index: 1,
lang: 1,
@@ -474,12 +474,18 @@ UserSchema.statics.getDownlineByUsername = async function (idapp, username) {
}
);
- // Ottieni gli invitati che ancora non hanno un'imbarco
- const arrinv = await User.find({
+ let myq = {
idapp,
aportador_solidario: username,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }]
- });
+ };
+
+ if (!includemyself) {
+ myq = { ...myq, username: {$ne: username} }
+ }
+
+ // Ottieni gli invitati che ancora non hanno un'imbarco
+ const arrinv = await User.find(myq);
for (const inv of arrinv) {
if (!arrrec.find((rec) => rec.username === inv.username))
@@ -1153,16 +1159,16 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
if (!!arrap)
dashboard.numpeople_aportador = arrap.length;
- dashboard.downline = await User.getDownlineByUsername(idapp, username);
+ dashboard.downline = await User.getDownlineByUsername(idapp, username, true);
// dashboard.downnotreg = await ExtraList.getDownlineNotRegisteredByNameSurname(idapp, dashboard.myself.name + ' ' + dashboard.myself.surname);
dashboard.downbyuser = {};
for (const down of dashboard.downline) {
- dashboard.downbyuser[down.username] = await User.getDownlineByUsername(idapp, down.username);
+ dashboard.downbyuser[down.username] = await User.getDownlineByUsername(idapp, down.username, false);
for (const down2 of dashboard.downbyuser[down.username]) {
- dashboard.downbyuser[down2.username] = await User.getDownlineByUsername(idapp, down2.username);
+ dashboard.downbyuser[down2.username] = await User.getDownlineByUsername(idapp, down2.username, false);
}
}
diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js
index bb7976d..a9b1af2 100755
--- a/src/server/router/index_router.js
+++ b/src/server/router/index_router.js
@@ -543,6 +543,8 @@ router.patch('/callfunz', authenticate, async (req, res) => {
username_da_sostituire = mydata.data.username_da_sostituire;
+ let myuservecchio = await User.findOne({ idapp, username: username_da_sostituire });
+
mianavedasost = await Nave.findOne({ idapp, riga: mydata.data.riga, col: mydata.data.col });
if (!!mianavedasost) {
@@ -574,8 +576,9 @@ router.patch('/callfunz', authenticate, async (req, res) => {
}
}
- if (!!myuser) {
+ if (!!myusernuovo) {
if (!!mianavedasost && mianavedasost.ind_order >= 0) {
+
// Metti campo 'delete': true su ListaIngresso
olduseringresso = await ListaIngresso.findOne({ idapp, ind_order: mianavedasost.ind_order });
if (!!olduseringresso) {
@@ -587,14 +590,14 @@ router.patch('/callfunz', authenticate, async (req, res) => {
}
}
- if (!!myuser) {
+ if (!!myuservecchio) {
if (mydata.data.deleteUser && !!mianavedasost && mianavedasost.ind_order > 0) {
// Metti Deleted allo User
fieldsvalue = {
deleted: true
};
- await User.findByIdAndUpdate(myuser.id, { $set: fieldsvalue });
- await telegrambot.sendMsgTelegramToTheManagers(idapp, `L\'utente ${myuser.name} ${myuser.surname} (${myuser.username}) è stato cancellato (nascosto) perchè sostituito (da ${req.user.name} ${req.user.surname} )`);
+ await User.findByIdAndUpdate(myuservecchio.id, { $set: fieldsvalue });
+ await telegrambot.sendMsgTelegramToTheManagers(idapp, `L\'utente ${myuservecchio.name} ${myuservecchio.surname} (${myuservecchio.username}) è stato cancellato (nascosto) perchè sostituito (da ${req.user.name} ${req.user.surname} )`);
}
}
@@ -632,27 +635,31 @@ router.patch('/callfunz', authenticate, async (req, res) => {
if (!rec) {
return res.status(404).send();
} else {
+ // Send Notification to the BOT
+ let messaggio = tools.get__('SPOSTATO', req.user.lang);
+
+ if (!!navepersistente.date_start) {
+ messaggio += tools.ACAPO + tools.get__('DATA_PART_NAVE', req.user.lang) + tools.getstrDateLong(navepersistente.date_gift_chat_open) + tools.ACAPO;
+ }
+ if (!!navepersistente.link_chat) {
+ messaggio += tools.ACAPO + '👉🏻👉🏻 ' + tools.get__('ENTRA_GIFT_CHAT', req.user.lang) + ' ' + tools.ACAPO;
+ }
+
+ const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
+ messaggio += tools.ACAPO + myplacca;
+
+ const mymsg = mydata.notifBot.txt + ' ' + myusernuovo.name + ' ' + myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO + 'Inviato messaggio: ' + messaggio;
+
if (mydata.data.notifBot && !!navepersistente.link_chat) {
- // Send Notification to the BOT
- let messaggio = tools.get__('SPOSTATO', req.user.lang);
-
- if (!!navepersistente.date_start) {
- messaggio += tools.ACAPO + tools.get__('DATA_PART_NAVE', req.user.lang) + tools.getstrDateLong(navepersistente.date_gift_chat_open) + tools.ACAPO;
- }
- if (!!navepersistente.link_chat) {
- messaggio += tools.ACAPO + '👉🏻👉🏻 ' + tools.get__('ENTRA_GIFT_CHAT', req.user.lang) + ' ' + tools.ACAPO;
- }
-
- const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
- messaggio += tools.ACAPO + myplacca;
await telegrambot.sendMsgTelegram(idapp, myusernuovo.username, messaggio);
- await telegrambot.sendMsgTelegramToTheManagers(idapp, mydata.notifBot.txt + ' ' + myusernuovo.name + ' ' + myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO + 'Inviato messaggio: ' + messaggio);
+ await telegrambot.sendMsgTelegramToTheManagers(idapp, mymsg);
await telegrambot.sendMsgTelegram(idapp, req.user.username, mydata.notifBot.txt);
await telegrambot.sendMsgTelegram(idapp, req.user.username, myplacca);
}
+ tools.writeManagersLog(mymsg);
// const nomecognomeprima = myuser.name + ' ' + myuser.surname + '(' + myuser.username + ')';
// const nomecognomenuovo = await User.getNameSurnameByUsername(idapp,);
diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js
index 5df10b2..b9be6bb 100755
--- a/src/server/router/users_router.js
+++ b/src/server/router/users_router.js
@@ -474,6 +474,9 @@ router.post('/dbop', authenticate, async (req, res) => {
} else if (mydata.dbop === 'creaTessituraeConv') {
ris = await ListaIngresso.creaTessituraeConv(idapp);
ris = { mystr };
+ } else if (mydata.dbop === 'eliminaListeIngressoNascoste') {
+ ris = await ListaIngresso.eliminaListeIngressoNascoste(idapp);
+ ris = { mystr };
} else if (mydata.dbop === 'convNaviTessinListaIngressoRec') {
let num = 0;
diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js
index f0d7db1..69188ea 100755
--- a/src/server/telegram/telegrambot.js
+++ b/src/server/telegram/telegrambot.js
@@ -500,7 +500,7 @@ module.exports = {
const usersmanagers = await User.getusersManagers(idapp);
if (usersmanagers) {
for (const rec of usersmanagers) {
- await this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id, emo.ROBOT_FACE + '[BOT-STAFF]' + emo.ADMIN + ': ' + text, undefined, undefined, true);
+ await this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id, emo.ROBOT_FACE + ': ' + text, undefined, undefined, true);
await tools.snooze(200)
}
}
@@ -732,7 +732,7 @@ async function local_sendMsgTelegramToTheManagers(idapp, text, msg, username_bo)
if (username_bo)
username = username_bo;
- text = emo.ROBOT_FACE + '[BOT-STAFF]' + emo.ADMIN + ': Da ' + msg.chat.first_name + ' ' + msg.chat.last_name + ' (' + username + '): \n' + text;
+ text = emo.ROBOT_FACE + ': Da ' + msg.chat.first_name + ' ' + msg.chat.last_name + ' (' + username + '): \n' + text;
tools.writeEventsLog(text);
if (usersmanagers) {
@@ -2145,7 +2145,14 @@ class Telegram {
async sendMsg(id, text, menu, form, msg_id, chat_id, ripr_menuPrec) {
- return await this._inviaMsg(id, text, form, menu, msg_id, chat_id, ripr_menuPrec);
+ if (text.length > 4096) {
+ let text1 = text.slice(0, 4096);
+ let text2 = text.slice(4096, text.length);
+ await this._inviaMsg(id, text1, form, menu, msg_id, chat_id, ripr_menuPrec);
+ return await this._inviaMsg(id, text2, form, menu, msg_id, chat_id, ripr_menuPrec);
+ }else {
+ return await this._inviaMsg(id, text, form, menu, msg_id, chat_id, ripr_menuPrec);
+ }
}
diff --git a/src/server/tools/general.js b/src/server/tools/general.js
index 3c7c032..0ddf3b7 100755
--- a/src/server/tools/general.js
+++ b/src/server/tools/general.js
@@ -99,6 +99,7 @@ textlang = {
'ENTRA_GIFT_CHAT': 'Entra nella Gift Chat',
'DATA_PART_NAVE': 'data di Partenza della Nave:',
'SOGNATORE': 'SOGNATORE',
+ 'INTERMEDIO': 'Intermedio',
'MEDIATORE': 'MEDIATORE',
'DONATORI': 'DONATORI',
'RITESSITURA': 'RITESSITURA',
@@ -167,6 +168,7 @@ textlang = {
'ENTRA_GIFT_CHAT': 'Vstopi v Darilni Klepet',
'DATA_PART_NAVE': 'Datum odhoda ladje:',
'SOGNATORE': 'Sanjača',
+ 'INTERMEDIO': 'POTNIK',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONATOR',
'RITESSITURA': 'Avtomatičen Vpis',
@@ -231,6 +233,7 @@ textlang = {
'ENTRA_GIFT_CHAT': 'Entre en el Chat de Regalos',
'DATA_PART_NAVE': 'fecha de salida de la nave:',
'SOGNATORE': 'SOÑADOR',
+ 'INTERMEDIO': 'Intermedio',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONANTES',
'RITESSITURA': 'RETEJIDO',
@@ -292,6 +295,7 @@ textlang = {
'ENTRA_GIFT_CHAT': 'Enter the ship\'s Gift Chat',
'DATA_PART_NAVE': 'date of departure of the ship:',
'SOGNATORE': 'DREAMER',
+ 'INTERMEDIO': 'Intermediate',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONOR',
'RITESSITURA': 'RE-ENTER',
@@ -357,6 +361,7 @@ textlang = {
'ENTRA_GIFT_CHAT': 'Entrez dans le chat des cadeaux',
'DATA_PART_NAVE': 'la date de départ du navire:',
'SOGNATORE': 'Rêveur',
+ 'INTERMEDIO': 'Intermediaire',
'MEDIATORE': 'Médiateur',
'DONATORI': 'DONATEUR',
'RITESSITURA': 'RETESSITURA',
@@ -422,6 +427,7 @@ textlang = {
'ENTRA_GIFT_CHAT': 'Entre no Gift Chat do navio',
'DATA_PART_NAVE': 'data de partida do navio:',
'SOGNATORE': 'SONHEIROS',
+ 'INTERMEDIO': 'Intermediar',
'MEDIATORE': 'MEDIATOR',
'DONATORI': 'DONATORES',
'RITESSITURA': 'ENTRE EM',