- Tolto Zoom e Sogni come requisiti

- Corretto Email con HTML che si visualizzavano tutti i caratteri HTML...
This commit is contained in:
Paolo Arena
2020-09-15 11:49:20 +02:00
parent f16631dad3
commit 0ac4a16715
7 changed files with 72 additions and 117 deletions

View File

@@ -1,40 +1,32 @@
------------ ------------
- L'ultimo Utente della Creazione della Nave, compare ancora il Sognatore !!!
Sistemato: TESTARE SE ORA È' OK...
// ************************************************
// ++Todo: PRIORITA' ALTA: // ++Todo: PRIORITA' ALTA:
- Togliere gli imbarchi: far pagare subito la persona. - Togliere gli imbarchi: far pagare subito la persona.
- Errore durante la sostituzione... - Errore durante la sostituzione...
- Se sostuisci una persona, al nuovo utente gli arriva il messaggio sbagliato!
(🌟Caro Tiziana - TiziCaso 🌟 Il tuo imbarco è stato cancellato,
questo succede quando non riceviamo risposta ad un nostro messaggio per giorni.)
- far pagare direttamente al Sognatore.
- Il dono al Fondo, fallo fare a prescindere (non al 57¨ dono). - Il dono al Fondo, fallo fare a prescindere (non al 57¨ dono).
- Se sostituisco mi da sempre la stessa persona. - Controllare che ci sono registrazioni doppie !! (stesso username e stessa email!)
- Togliere i Video e il Sogno. (5 requisiti)
- Cestino di ELIMINA non funziona !!
- (Linuccia) - Natalina Malerbi - (Linuccia) - Natalina Malerbi
DA CONTROLLARE CHE LEI NON HA PAGATO 8.44. DA CONTROLLARE CHE LEI NON HA PAGATO 8.44.
QUINDI QUALCUNO HA PRESO IL SUO POSTO. QUINDI QUALCUNO HA PRESO IL SUO POSTO.
- 7.64 : NATALINA NON HA LA RITESSITURA !! - 7.64 : NATALINA NON HA LA RITESSITURA !!
- Controllare che ci sono registrazioni doppie !! (stesso username e stessa email!)
- SubAccount: - SubAccount:
filtro. filtro.
- Aggiornare le Traduzioni di Darja (ritessitura). - Aggiornare le Traduzioni di Darja (ritessitura).
- Sistemare la email che arriva ai Donatori (HTML) ! - Sistemare la email che arriva ai Donatori (HTML) non si legge !!!
- Flotte: Poter scegliere quale messaggio inviare ! - Flotte: Poter scegliere quale messaggio inviare !
@@ -78,9 +70,7 @@
- Rimettere "made_gift" a false se si ha sbagliato... - Rimettere "made_gift" a false se si ha sbagliato...
- Mettere 3 giorni. - Fondo Ayni 9.152 : aggiungere registrazione Paolo2 Arena. e mettere paypal.me ??
- Fondo Ayni 9.152 : aggiungere registrazione Paolo2 Arena. e mettere paypal.me
- Mandare msg ai Non Invitati, o inferiori di 2. - Mandare msg ai Non Invitati, o inferiori di 2.
@@ -106,12 +96,8 @@
// ++Todo: PRIORITA' NORMALE: // ++Todo: PRIORITA' NORMALE:
- AGGIUNGERCI L'USERNAME REALE ! ALTRIMENTI PRENDE IL PRINCIPALE !!
- Fare funzione che passa un Utente secondario in un utente Primario! (c'è gia) - Fare funzione che passa un Utente secondario in un utente Primario! (c'è gia)
- L'orario degli Zoom sul BOT è diverso che dal sito, deve dare quello locale...
// ++Todo: DA FARE PIU AVANTI: // ++Todo: DA FARE PIU AVANTI:
@@ -129,92 +115,21 @@ TESTARE -> inviare il msg anche al Sognatore della Gift Chat
// ++Todo: SISTEMARE: // ++Todo: SISTEMARE:
x- AGGIONARE AMBIENTE DI TEST
- ESEGUIRE LA CONVERSIONE 1 E 2 !
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
-------------
- AGGIONARE AMBIENTE DI PRODUZIONE
- ESEGUIRE LA CONVERSIONE 1 E 2 e !
- 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
-------------
SOSTITUISCI: SOSTITUISCI:
- Sistemare che in Edit Pagina, se è troppo grande, va oltre l'altezza della finestra.
- Attivare le Traduttrici alle Pagine
- Inviare messaggi solo per ITALIANI (o di lingua cmq). - Inviare messaggi solo per ITALIANI (o di lingua cmq).
- Aggiornare le FAQ in lingua
- CONTROLLARE CON ARGENTINA E PORTOGALLO e Brasile: - CONTROLLARE CON ARGENTINA E PORTOGALLO e Brasile:
Il sito deve comparire in Spagnolo e in Portoghese Il sito deve comparire in Spagnolo e in Portoghese
TRADURRE: TRADURRE:
- Mettere le bandierine nella lista Zoom (su AYNI BOT).
1- mi appaiono prima le navi del secondo account
2- forse metterei ogni nave seguita dal relativo viaggio di "ritorno" (a me piace chiamarlo così!)
X 3- sotto le navi, alla voce donatore, c'è ancora scritto "Effettuerai il tuo dono ESATTAMENTE il giorno indicato"
X 4- nei miei invitati non compaiono le mie ritessiture, fatte con il magico bottone, da chi sono invitata?
- Controllare Tragitto (Elisabetta)
- Monica Sozzi -> Davide Moirano (0) è giusto.
- Andrea Decouter (2)
- Enrica Pescio (OK)
- 852 (Gerico2) Elio2 Garelli -> (Gerico)
Andrea 346
ind_order: 231 Gerico Elio Garelli
ind_order: 852 Gerico2 Elio2 Garelli
Morgana Roveta (Maelabo)
--- Gerico Elio Garelli
ANDREA
|-----GERICO2 852
.update({}, {$unset: {$ind_order: 1}, {multi: true}); .update({}, {$unset: {$ind_order: 1}, {multi: true});
//++TODO: *** FATTI ***
// ++Todo: FATTO: DA CONTROLLARE // ++Todo: FATTO: DA CONTROLLARE
X - Se sei imbarcata i tuoi due invitati usati per quella posizione sono bloccati. Se ne hai in più li puoi regalare
X - Numero d'invitati sbagliato -> Nogalska
X - 50 persone non hanno un'imbarco -> Chiamare funzione che gliela rimette.
X - Poter Inviare un msg preconfezionato a chi non la la nave !
X Poter cliccare SI per aggiungersi ad un Nuovo Imbarco.
X - Se entro con la seconda utenza, gli mando messaggio che dice che deve collegarsi con la prima utenza....
X - Sistemare poter modificare le Pagine.
X - SISTEMARE QUANDO L'ULTIMA NAVE DELLA FLOTTA C'E' UN SOGNATORE CHE HA LA NAVE DI RITORNO!
X - IL MEDIATORE DEVE AVERE LA SUA RITESSUTURA !!! ( TOGLIERE L'IF NEL CASO NON SIA SOGNATORE)
X - Mettere anche la email del sognatore, per chi è abituato ad inviarla in quel modo...
X - Controllare che sul sito compaiano le informazioni del Sognatore...

View File

@@ -502,7 +502,7 @@ UserSchema.statics.getUserShortDataByUsername = async function (idapp, username)
sospeso: 1, sospeso: 1,
verified_email: 1, verified_email: 1,
'profile.teleg_id': 1, 'profile.teleg_id': 1,
'profile.saw_zoom_presentation': 1, // 'profile.saw_zoom_presentation': 1,
'profile.ask_zoom_partecipato': 1, 'profile.ask_zoom_partecipato': 1,
'profile.qualified': 1, 'profile.qualified': 1,
'profile.qualified_2invitati': 1, 'profile.qualified_2invitati': 1,
@@ -513,7 +513,7 @@ UserSchema.statics.getUserShortDataByUsername = async function (idapp, username)
'profile.revolut': 1, 'profile.revolut': 1,
'profile.link_payment': 1, 'profile.link_payment': 1,
'profile.note_payment': 1, 'profile.note_payment': 1,
'profile.my_dream': 1, // 'profile.my_dream': 1,
'profile.paymenttypes': 1, 'profile.paymenttypes': 1,
'profile.cell': 1, 'profile.cell': 1,
made_gift: 1, made_gift: 1,
@@ -556,7 +556,7 @@ UserSchema.statics.getDownlineByUsername = async function (idapp, username, incl
surname: 1, surname: 1,
verified_email: 1, verified_email: 1,
'profile.teleg_id': 1, 'profile.teleg_id': 1,
'profile.saw_zoom_presentation': 1, // 'profile.saw_zoom_presentation': 1,
'profile.ask_zoom_partecipato': 1, 'profile.ask_zoom_partecipato': 1,
'profile.qualified': 1, 'profile.qualified': 1,
'profile.qualified_2invitati': 1, 'profile.qualified_2invitati': 1,
@@ -567,7 +567,7 @@ UserSchema.statics.getDownlineByUsername = async function (idapp, username, incl
'profile.revolut': 1, 'profile.revolut': 1,
'profile.link_payment': 1, 'profile.link_payment': 1,
'profile.note_payment': 1, 'profile.note_payment': 1,
'profile.my_dream': 1, // 'profile.my_dream': 1,
'profile.paymenttypes': 1, 'profile.paymenttypes': 1,
'profile.cell': 1, 'profile.cell': 1,
made_gift: 1, made_gift: 1,
@@ -641,7 +641,7 @@ UserSchema.statics.getQueryQualified = function () {
verified_email: true, verified_email: true,
'profile.teleg_id': { $gt: 1 }, 'profile.teleg_id': { $gt: 1 },
'profile.saw_and_accepted': shared_consts.ALL_SAW_AND_ACCEPTED, 'profile.saw_and_accepted': shared_consts.ALL_SAW_AND_ACCEPTED,
'profile.saw_zoom_presentation': true, // 'profile.saw_zoom_presentation': true,
$or: [ $or: [
{ 'profile.link_payment': { $exists: true } }, { 'profile.link_payment': { $exists: true } },
{ 'profile.email_paypal': { $exists: true } }, { 'profile.email_paypal': { $exists: true } },

View File

@@ -63,7 +63,6 @@ const shared_consts = require('../tools/shared_nodejs');
UserCost = { UserCost = {
FIELDS_REQUISITI: ['verified_email', FIELDS_REQUISITI: ['verified_email',
'profile.teleg_id', 'profile.teleg_id',
'profile.saw_zoom_presentation',
'profile.saw_and_accepted', 'profile.saw_and_accepted',
'profile.revolut', 'profile.revolut',
'profile.payeer_id', 'profile.payeer_id',
@@ -463,13 +462,13 @@ router.patch('/chval', authenticate, async (req, res) => {
} }
if (mydata.table === 'users') { if (mydata.table === 'users') {
if ('saw_zoom_presentation' in fieldsvalue) { /*if ('saw_zoom_presentation' in fieldsvalue) {
if (fieldsvalue['saw_zoom_presentation']) { if (fieldsvalue['saw_zoom_presentation']) {
const messaggio = tools.get__('ZOOM_CONFERMATO'); const messaggio = tools.get__('ZOOM_CONFERMATO');
await telegrambot.sendMsgTelegram(idapp, myuser.username, messaggio); await telegrambot.sendMsgTelegram(idapp, myuser.username, messaggio);
await telegrambot.sendMsgTelegramToTheManagersAndZoomeri(idapp, `L\'utente ${rec.name} ${rec.surname} (${rec.username}) è stato confermato per aver visto lo Zoom di Benvenuto`); await telegrambot.sendMsgTelegramToTheManagersAndZoomeri(idapp, `L\'utente ${rec.name} ${rec.surname} (${rec.username}) è stato confermato per aver visto lo Zoom di Benvenuto`);
} }
} }*/
if ('aportador_solidario' in fieldsvalue) { if ('aportador_solidario' in fieldsvalue) {
ind_order_ingr = mydata.ind_order_ingr; ind_order_ingr = mydata.ind_order_ingr;

View File

@@ -347,7 +347,16 @@ router.post('/testemail', authenticate, async (req, res) => {
lang = req.body.locale; lang = req.body.locale;
previewonly = req.body.previewonly; previewonly = req.body.previewonly;
const ris = await sendemail.testemail(idapp, lang, previewonly); const test = true;
if (test) {
const email = 'pao.loarena77@gmail.com';
const myuser = await User.findOne({ idapp, email });
const ris = await sendemail.testemailHtml(idapp, lang, email, myuser);
} else {
const ris = await sendemail.testemail(idapp, lang, previewonly);
}
if (ris) if (ris)
return res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); return res.send({ code: server_constants.RIS_CODE_OK, msg: '' });

View File

@@ -163,9 +163,9 @@ router.post('/', async (req, res) => {
recorig = await User.findByCellAndNameSurname(user.idapp, user.profile.cell, user.name.slice(0, -1), user.surname); recorig = await User.findByCellAndNameSurname(user.idapp, user.profile.cell, user.name.slice(0, -1), user.surname);
if (!!recorig) { if (!!recorig) {
user.profile.teleg_id = recorig.profile.teleg_id; user.profile.teleg_id = recorig.profile.teleg_id;
user.profile.saw_zoom_presentation = recorig.profile.saw_zoom_presentation; // user.profile.saw_zoom_presentation = recorig.profile.saw_zoom_presentation;
user.profile.saw_and_accepted = recorig.profile.saw_and_accepted; user.profile.saw_and_accepted = recorig.profile.saw_and_accepted;
user.profile.my_dream = recorig.profile.my_dream; // user.profile.my_dream = recorig.profile.my_dream;
user.profile.email_paypal = recorig.profile.email_paypal; user.profile.email_paypal = recorig.profile.email_paypal;
user.profile.payeer_id = recorig.profile.payeer_id; user.profile.payeer_id = recorig.profile.payeer_id;
user.profile.advcash_id = recorig.profile.advcash_id; user.profile.advcash_id = recorig.profile.advcash_id;

View File

@@ -105,23 +105,27 @@ module.exports = {
}); });
}, },
sendEmail_Normale: function (to, subject, html, replyTo) { sendEmail_Normale: async function (to, subject, html, replyTo) {
// setup e-mail data with unicode symbols // setup e-mail data with unicode symbols
var mailOptions = { var mailOptions = {
from: tools.getEmailByIdApp(mylocalsconf.idapp), // sender address from: tools.getEmailByIdApp(mylocalsconf.idapp), // sender address
dataemail: await this.getdataemail(idapp),
to: to, to: to,
generateTextFromHTML: true, generateTextFromHTML: true,
subject: subject, subject: subject,
html: html, html: html,
}; };
if (replyTo) if (replyTo)
mailOptions['reply-to'] = replyTo; mailOptions['reply-to'] = replyTo;
if (process.env.SEND_EMAIL === 1) { const smtpTransport = this.getTransport(mylocalsconf);
if (process.env.SEND_EMAIL === "1") {
// console.log("SEND EMAIL..."); // console.log("SEND EMAIL...");
// send mail with defined transport object // send mail with defined transport object
smtpTransport.sendMail(mailOptions, function (error, response) { smtpTransport.sendMail(mailOptions, function (error, response) {
if (error) { if (error) {
console.log("Email Inviata ERRORE RISPOSTA: " + error); console.log("Email Inviata ERRORE RISPOSTA: " + error);
@@ -328,7 +332,8 @@ module.exports = {
if (!!mylocalsconf.dataemail.emailtitle && !!mylocalsconf.dataemail.emailbody) { if (!!mylocalsconf.dataemail.emailtitle && !!mylocalsconf.dataemail.emailbody) {
const replyto = tools.getreplyToEmailByIdApp(idapp); const replyto = tools.getreplyToEmailByIdApp(idapp);
return this.sendEmail_base('standard', emailto, mylocalsconf, replyto); //return this.sendEmail_base('standard', emailto, mylocalsconf, replyto);
return await this.sendEmail_Normale(emailto, mylocalsconf.dataemail.emailtitle, mylocalsconf.dataemail.emailbody, replyto);
} }
// Send Email also to the Admin // Send Email also to the Admin
@@ -490,7 +495,7 @@ module.exports = {
// Create Transport // Create Transport
let smtpTransport = null; let smtpTransport = null;
if (mylocalsconf.dataemail.email_service !== 'gmail' && mylocalsconf.dataemail.email_service !== undefined) { if (mylocalsconf.dataemail.email_service !== 'gmail' && mylocalsconf.dataemail.email_service !== undefined && mylocalsconf.dataemail.email_service !== "") {
smtpTransport = nodemailer.createTransport({ smtpTransport = nodemailer.createTransport({
host: mylocalsconf.dataemail.email_service, host: mylocalsconf.dataemail.email_service,
port: mylocalsconf.dataemail.email_port, port: mylocalsconf.dataemail.email_port,
@@ -500,21 +505,24 @@ module.exports = {
} }
}); });
} else if (mylocalsconf.dataemail.email_service === 'gmail' && mylocalsconf.dataemail.email_service !== undefined) { } else if (mylocalsconf.dataemail.email_service === 'gmail' && mylocalsconf.dataemail.email_service !== undefined) {
smtpTransport = {
//smtpTransport = {
smtpTransport = nodemailer.createTransport({
service: 'gmail', //'Gmail', service: 'gmail', //'Gmail',
auth: { auth: {
user: mylocalsconf.dataemail.from, user: mylocalsconf.dataemail.from,
pass: mylocalsconf.dataemail.pwd_from pass: mylocalsconf.dataemail.pwd_from
} }
}; });
} else { } else {
smtpTransport = { // smtpTransport = {
smtpTransport = nodemailer.createTransport({
service: 'gmail', service: 'gmail',
auth: { auth: {
user: tools.getEmailByIdApp(mylocalsconf.idapp), user: tools.getEmailByIdApp(mylocalsconf.idapp),
pass: tools.getPwdByIdApp(mylocalsconf.idapp) pass: tools.getPwdByIdApp(mylocalsconf.idapp)
} }
}; });
} }
return smtpTransport; return smtpTransport;
@@ -719,6 +727,28 @@ module.exports = {
console.log('-> Invio Email TEST a', mylocalsconf.emailto, 'previewonly', previewonly); console.log('-> Invio Email TEST a', mylocalsconf.emailto, 'previewonly', previewonly);
return this.sendEmail_base('newsletter/' + lang, mylocalsconf.emailto, mylocalsconf, '', smtpTransport, previewonly); return this.sendEmail_base('newsletter/' + lang, mylocalsconf.emailto, mylocalsconf, '', smtpTransport, previewonly);
},
testemailHtml: async function (idapp, lang, email, myuser) {
mytitle = 'Prova msg'
messaggio = '<br><b>Ciao!</b><div>Come stai?</div><br>Tutto Bene?<br><a href="https://ayni.gifteconomy.app/">Prova Link</a><br><i>Corsivo</i></i>&nbsp;';
/*const htmlToText = require('html-to-text');
messaggio = htmlToText.fromString(messaggio, {
wordwrap: 80,
preserveNewlines: true,
singleNewLineParagraphs: true
});
*/
return await this.sendEmail_ByText(lang, email, myuser, idapp, {
emailbody: messaggio,
emailtitle: mytitle
});
} }

View File

@@ -1502,8 +1502,8 @@ class Telegram {
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 += '\n3. ' + this.getsymb(emo.PENCIL, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)) + tools.get__('LINEE_GUIDA', this.getlang(msg));
mystr += '\n4. ' + this.getsymb(emo.TV, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)) + tools.get__('VIDEO_INTRO', this.getlang(msg)); mystr += '\n4. ' + this.getsymb(emo.TV, tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)) + tools.get__('VIDEO_INTRO', this.getlang(msg));
mystr += '\n5. ' + this.getsymb(emo.EYES, user.profile.saw_zoom_presentation) + tools.get__('ZOOM_PARTECIPATO', this.getlang(msg)); // mystr += '\n5. ' + this.getsymb(emo.EYES, user.profile.saw_zoom_presentation) + tools.get__('ZOOM_PARTECIPATO', this.getlang(msg));
mystr += '\n6. ' + this.getsymb(emo.DREAM, this.isdreamset(user)) + tools.get__('SCRITTO_SOGNO', this.getlang(msg)); // mystr += '\n6. ' + this.getsymb(emo.DREAM, this.isdreamset(user)) + tools.get__('SCRITTO_SOGNO', this.getlang(msg));
mystr += '\n7. ' + this.getsymb(emo.CREDIT_CARD, this.ispayment(user)) + tools.get__('PAYMENTS', this.getlang(msg)); mystr += '\n7. ' + this.getsymb(emo.CREDIT_CARD, this.ispayment(user)) + tools.get__('PAYMENTS', this.getlang(msg));
} }
@@ -1772,9 +1772,11 @@ class Telegram {
} else if (qualelink === 'empower') { } else if (qualelink === 'empower') {
return "ITA 🇮🇹: https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g" + tools.ACAPO + return "ITA 🇮🇹: https://t.me/joinchat/C741mkx5QYXu-kyYCYvA8g" + tools.ACAPO +
"SLO 🇸🇮: https://t.me/aynislovenija" + tools.ACAPO + "SLO 🇸🇮: https://t.me/aynislovenija" + tools.ACAPO +
"HRV 🇭🇷 BIH 🇧🇦 SRB 🇷🇸 MNE 🇲🇪: https://t.me/joinchat/KFGPolcH0lLrqrdloOASYQ" + tools.ACAPO +
"ESP 🇪🇸 - PRT 🇵🇹: https://t.me/joinchat/AL2qKBqJRuIEuc2FivgAzg" + tools.ACAPO + "ESP 🇪🇸 - PRT 🇵🇹: https://t.me/joinchat/AL2qKBqJRuIEuc2FivgAzg" + tools.ACAPO +
"ENG 🇬🇧: https://t.me/joinchat/AL2qKBYX0yVvOJ6Ssf9hKg" + tools.ACAPO + "FRA 🇫🇷: https://t.me/joinchat/POqmM1ddtRmnxtLdKkm5sQ" + tools.ACAPO +
"FRA 🇫🇷: https://t.me/joinchat/POqmM1ddtRmnxtLdKkm5sQ"; "ENG 🇬🇧: https://t.me/joinchat/AL2qKBYX0yVvOJ6Ssf9hKg" + tools.ACAPO
;
} }
} }
@@ -1796,9 +1798,9 @@ class Telegram {
let mytext = ""; let mytext = "";
if (this.getlang(msg) === 'it') if (this.getlang(msg) === 'it')
mytext = printf(tools.get__('TESTO_ASSISTENZA', this.getlang(msg)), sito, empower, biblio, faq, help); mytext = printf(tools.get__('TESTO_ASSISTENZA', this.getlang(msg)), sito, biblio, empower, faq, help);
else else
mytext = printf(tools.get__('TESTO_ASSISTENZA', this.getlang(msg)), sito, empower, biblio, help); mytext = printf(tools.get__('TESTO_ASSISTENZA', this.getlang(msg)), sito, biblio, empower, help);
let menu = null; let menu = null;
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);