vedere le Richieste di Fiducia solo se si è verificati Telegram

Corretto il mio account che doveva confermare in automatico... non lo faceva...
"Riregistrarsi se l'invitante non ha ancora confermato l'invito.
Annullo la richiesta precedente. (inviando un msg di annullamento. (Si è già registrato con un alto invito.)"
CMyEditor: non posso andare in edit sul HTML (nella table)
Aggiornare il msg di benvenuto ! (prendere da msgtemplate)
Dal Profilo: è possibile inviarsi il messaggio da condividere agli Amici
Visualizzare la data d'inserimento dell'annuncio e l'ultima modifica fatta
Link alla pagina di un Evento o Bene o Servizio !
Se aggiornamento: mettere messaggio che dice di chiudere e riaprire per aggiornare.
Quando un utente chiede di entrare nel Gruppo, mettere l'abilitazione anche su Telegram. (e correggere il msg)
This commit is contained in:
paoloar77
2022-03-06 00:48:33 +01:00
parent 4bc406fba6
commit 466fdd597d
14 changed files with 686 additions and 784 deletions

View File

@@ -175,7 +175,7 @@ MyGoodSchema.statics.executeQueryTable = function(idapp, params) {
return tools.executeQueryTable(this, idapp, params); return tools.executeQueryTable(this, idapp, params);
}; };
MyGoodSchema.statics.getMyGoodById = function(idapp, idGood) { MyGoodSchema.statics.getMyRecById = function(idapp, idGood) {
const MyGood = this; const MyGood = this;
const query = [ const query = [
@@ -480,7 +480,7 @@ MyGoodSchema.statics.getMyGoodById = function(idapp, idGood) {
MyGoodSchema.statics.getCompleteRecord = function(idapp, id) { MyGoodSchema.statics.getCompleteRecord = function(idapp, id) {
const MyGood = this; const MyGood = this;
return MyGood.getMyGoodById(idapp, id); return MyGood.getMyRecById(idapp, id);
}; };

View File

@@ -177,7 +177,7 @@ MySkillSchema.statics.executeQueryTable = function(idapp, params) {
return tools.executeQueryTable(this, idapp, params); return tools.executeQueryTable(this, idapp, params);
}; };
MySkillSchema.statics.getMySkillByIdkill = function(idapp, idSkill) { MySkillSchema.statics.getMyRecById = function(idapp, idSkill) {
const MySkill = this; const MySkill = this;
const query = [ const query = [
@@ -479,7 +479,7 @@ MySkillSchema.statics.getMySkillByIdkill = function(idapp, idSkill) {
MySkillSchema.statics.getCompleteRecord = function(idapp, id) { MySkillSchema.statics.getCompleteRecord = function(idapp, id) {
const MySkill = this; const MySkill = this;
return MySkill.getMySkillByIdkill(idapp, id); return MySkill.getMyRecById(idapp, id);
}; };

View File

@@ -1100,13 +1100,6 @@ UserSchema.statics.getLastUser = function(idapp) {
}).sort({index: -1}); }).sort({index: -1});
}; };
UserSchema.statics.findByIndOrder = function(idapp, ind_order) {
const User = this;
return User.getRecByIndOrder(idapp, ind_order);
};
UserSchema.statics.findByIndex = function(idapp, index) { UserSchema.statics.findByIndex = function(idapp, index) {
const User = this; const User = this;
@@ -1606,21 +1599,26 @@ UserSchema.statics.setFriendsCmd = async function(idapp, usernameOrig, usernameD
return ris; return ris;
}; };
UserSchema.statics.setGroupsCmd = async function( UserSchema.statics.ifAlreadyInGroup = async function(idapp, usernameOrig, groupnameDest) {
idapp, usernameOrig, groupnameDest, cmd, value) {
// Controllo se è stato già inserito
return User.findOne({
idapp,
username: usernameOrig,
'profile.mygroups': {
$elemMatch: {groupname: {$eq: groupnameDest}},
},
}).lean();
};
UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameDest, cmd, value) {
let ris = null; let ris = null;
let update = {}; let update = {};
try { try {
if (cmd === shared_consts.GROUPSCMD.SETGROUP) { if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
// Controllo se è stato già inserito const foundIfAlreadyGroup = await this.ifAlreadyInGroup(idapp, usernameOrig, groupnameDest);
const foundIfAlreadyGroup = await User.findOne({
idapp,
username: usernameOrig,
'profile.mygroups': {
$elemMatch: {groupname: {$eq: groupnameDest}},
},
});
if (!foundIfAlreadyGroup) { if (!foundIfAlreadyGroup) {
update = { update = {
@@ -1640,12 +1638,13 @@ UserSchema.statics.setGroupsCmd = async function(
} else { } else {
ris = false; ris = false;
} }
if (ris) { if (ris) {
// Invia una notifica alla persona e agli Admin
tools.sendNotificationByGroupname(idapp, usernameOrig, groupnameDest, cmd, true);
ris = await MyGroup.getInfoGroupByGroupname(idapp, groupnameDest); ris = await MyGroup.getInfoGroupByGroupname(idapp, groupnameDest);
} }
} else if (cmd === shared_consts.GROUPSCMD.REQGROUP) { } else if (cmd === shared_consts.GROUPSCMD.REQGROUP) {
// Aggiungo la richiesta di Amicizia a me // Aggiungo la richiesta di Gruppo a me
const foundIfAlreadyAskGroup = await MyGroup.findOne({ const foundIfAlreadyAskGroup = await MyGroup.findOne({
idapp, idapp,
groupname: groupnameDest, groupname: groupnameDest,
@@ -1669,7 +1668,7 @@ UserSchema.statics.setGroupsCmd = async function(
} }
if (ris) { if (ris) {
// Invia una notifica alla persona // Invia una notifica alla persona
tools.sendNotificationByGroupname(idapp, groupnameDest, cmd, true); tools.sendNotificationByGroupname(idapp, usernameOrig, groupnameDest, cmd, true);
} }
} else { } else {
if (foundIfAlreadyAskGroup) { if (foundIfAlreadyAskGroup) {
@@ -1704,7 +1703,7 @@ UserSchema.statics.setGroupsCmd = async function(
}, },
}); });
//++Todo: Send Notification to Admin and Group's manager //++Todo: Send Notification to Admin and Group's manager
tools.sendNotificationByGroupname(idapp, groupnameDest, cmd, true); tools.sendNotificationByGroupname(idapp, usernameOrig, groupnameDest, cmd, true);
} }
} catch (e) { } catch (e) {
@@ -1792,7 +1791,7 @@ UserSchema.statics.getInfoFriendByUsername = async function(idapp, username) {
idapp, idapp,
username, username,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}], $or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
}, whatToShow).then((rec) => !!rec ? rec._doc : null); }, whatToShow).lean().then((rec) => !!rec ? rec : null);
}; };
@@ -1805,7 +1804,7 @@ UserSchema.statics.getInfoAskFriendByUsername = async function(
idapp, idapp,
username, username,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}], $or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
}, whatToShow).then((rec) => !!rec ? rec._doc : null); }, whatToShow).lean().then((rec) => !!rec ? rec : null);
}; };
@@ -1910,8 +1909,8 @@ UserSchema.statics.UserByIdTelegram = async function(idapp, teleg_id) {
return User.findOne({ return User.findOne({
idapp, 'profile.teleg_id': teleg_id, idapp, 'profile.teleg_id': teleg_id,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}], $or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
}).then((rec) => { }).lean().then((rec) => {
return (!!rec) ? rec._doc : null; return (!!rec) ? rec : null;
}).catch((e) => { }).catch((e) => {
console.error('UserExistByIdTelegram', e); console.error('UserExistByIdTelegram', e);
}); });
@@ -1924,7 +1923,7 @@ UserSchema.statics.UsersByIdTelegram = async function(idapp, teleg_id) {
idapp, 'profile.teleg_id': teleg_id, idapp, 'profile.teleg_id': teleg_id,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}], $or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
}).lean().then((rec) => { }).lean().then((rec) => {
return (!!rec) ? rec._doc : null; return (!!rec) ? rec : null;
}).catch((e) => { }).catch((e) => {
console.error('UserExistByIdTelegram', e); console.error('UserExistByIdTelegram', e);
}); });
@@ -1957,6 +1956,20 @@ UserSchema.statics.TelegIdByUsername = async function(idapp, username) {
console.error('TelegIdByUsername', e); console.error('TelegIdByUsername', e);
}); });
}; };
UserSchema.statics.TelegIdById = async function(idapp, id) {
const User = this;
return User.findOne({
idapp,
_id: id,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
}, {'profile.teleg_id': 1}).lean().then((rec) => {
return (!!rec) ? rec.profile.teleg_id : null;
}).catch((e) => {
console.error('TelegIdByUsername', e);
});
};
UserSchema.statics.notAsk_VerifByUsername = async function(idapp, username) { UserSchema.statics.notAsk_VerifByUsername = async function(idapp, username) {
return User.findOne({ return User.findOne({
@@ -2039,13 +2052,6 @@ UserSchema.statics.setUsernameTelegram = async function(
}; };
UserSchema.statics.getLangByIndOrder = async function(idapp, ind_order) {
const User = this;
const rec = await User.getSmallRecByIndOrder(idapp, ind_order);
return (!!rec) ? rec.lang : '';
};
UserSchema.statics.SetLang = async function(idapp, id, lang) { UserSchema.statics.SetLang = async function(idapp, id, lang) {
const User = this; const User = this;
@@ -2122,6 +2128,19 @@ UserSchema.statics.getIdByUsername = async function(idapp, username) {
}); });
}; };
UserSchema.statics.getRecLangAndIdByUsername = async function(idapp, username) {
const User = this;
return User.findOne({
idapp, username,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
}, {lang: 1, _id: 1}).then((rec) => {
return (!!rec) ? rec : null;
}).catch((e) => {
console.error('getRecLangAndIdByUsername', e);
});
};
UserSchema.statics.getNameSurnameById = async function(idapp, userId) { UserSchema.statics.getNameSurnameById = async function(idapp, userId) {
const User = this; const User = this;
@@ -2136,101 +2155,6 @@ UserSchema.statics.getNameSurnameById = async function(idapp, userId) {
}); });
}; };
UserSchema.statics.getSmallRecByIndOrder = async function(idapp, ind_order) {
try {
const rec = {};
/*
const rec = await ListaIngresso.getarray(idapp,
{
idapp,
ind_order,
$or: [
{deleted: {$exists: false}},
{deleted: {$exists: true, $eq: false}}],
},
{
idapp: 1,
index: 1,
ind_order: 1,
old_order: 1,
username: 1,
name: 1,
lang: 1,
surname: 1,
'profile.teleg_id': 1,
});
if (!!rec)
return rec[0];
*/
return null;
} catch (e) {
console.error('getSmallRecByIndOrder', e);
}
};
UserSchema.statics.NuovoSistema = function(idapp) {
const User = this;
try {
return User.findOne({idapp, old_order: {$exists: true}}).then((ris) => {
return !!ris;
});
} catch (e) {
console.error('NuovoSistema', e.message);
}
};
UserSchema.statics.getRecByIndOrder = async function(idapp, ind_order) {
const User = this;
try {
/*
let filters = {
idapp: 1,
index: 1,
ind_order: 1,
old_order: 1,
username: 1,
email: 1,
name: 1,
lang: 1,
surname: 1,
'profile.teleg_id': 1,
'profile.email_paypal': 1,
'profile.payeer_id': 1,
'profile.advcash_id': 1,
'profile.revolut': 1,
'profile.link_payment': 1,
'profile.note_payment': 1,
'profile.paymenttypes': 1,
};
const rec = await ListaIngresso.getarray(idapp,
{
idapp,
ind_order,
},
filters);
if (!!rec)
return rec[0];
*/
return null;
} catch (e) {
console.error('getRecByIndOrder', e);
}
};
UserSchema.statics.getusersManagers = async function(idapp) { UserSchema.statics.getusersManagers = async function(idapp) {
const User = this; const User = this;
@@ -2943,13 +2867,6 @@ if (tools.INITDB_FIRSTIME) {
// UserSchema.index({ surname: 1 }); // UserSchema.index({ surname: 1 });
} }
UserSchema.statics.getUsernameByIndOrder = async function(idapp, ind_order) {
const myrec = await User.getSmallRecByIndOrder(idapp, ind_order);
return (!!myrec) ? myrec.username : '';
};
UserSchema.statics.getUsernameByIndex = async function(idapp, index) { UserSchema.statics.getUsernameByIndex = async function(idapp, index) {
const myrec = await User.findOne({ const myrec = await User.findOne({
@@ -3221,7 +3138,7 @@ UserSchema.statics.addExtraInfo = async function(idapp, recUser) {
{deleted: {$exists: true, $eq: false}}], {deleted: {$exists: true, $eq: false}}],
}, {username: 1}).lean(); }, {username: 1}).lean();
recUser.profile.asked_friends = listSentMyRequestFriends recUser._doc.profile.asked_friends = listSentMyRequestFriends
? listSentMyRequestFriends ? listSentMyRequestFriends
: []; : [];
@@ -3233,9 +3150,9 @@ UserSchema.statics.addExtraInfo = async function(idapp, recUser) {
$or: [ $or: [
{deleted: {$exists: false}}, {deleted: {$exists: false}},
{deleted: {$exists: true, $eq: false}}], {deleted: {$exists: true, $eq: false}}],
}, MyGroup.getWhatToShow_Unknown()); }, MyGroup.getWhatToShow_Unknown()).lean();
recUser.profile.asked_groups = listSentMyRequestGroups recUser._doc.profile.asked_groups = listSentMyRequestGroups
? listSentMyRequestGroups ? listSentMyRequestGroups
: []; : [];
@@ -3247,12 +3164,14 @@ UserSchema.statics.addExtraInfo = async function(idapp, recUser) {
$or: [ $or: [
{deleted: {$exists: false}}, {deleted: {$exists: false}},
{deleted: {$exists: true, $eq: false}}], {deleted: {$exists: true, $eq: false}}],
}); }).lean();
recUser.profile.manage_mygroups = listManageGroups recUser._doc.profile.manage_mygroups = listManageGroups
? listManageGroups ? listManageGroups
: []; : [];
return recUser._doc;
} catch (e) { } catch (e) {
console.error('Err', e); console.error('Err', e);
} }

View File

@@ -82,58 +82,6 @@ router.post('/downline', authenticate, async (req, res) => {
}); });
router.post('/msgnave', authenticate, async (req, res) => {
const idapp = req.body.idapp;
let mydata = req.body;
try {
let ris = null;
if (mydata.tipomsg === tools.TipoMsg.SEND_MSG_SINGOLO) {
let mymsg = '';
if (!!mydata.username_mitt) {
mymsg = '[' + tools.getres__('MSG_SEND_FROM', res) + ' ' + mydata.username_mitt + ' a ' + mydata.username + ']:' + tools.ACAPO;
}
mymsg += mydata.msgpar1;
// ris = await telegrambot.sendMsgTelegram(idapp, mydata.username, mymsg, true, mydata.username_mitt); // Anche a STAFF
ris = await telegrambot.sendMsgTelegram(idapp, mydata.username, mymsg, true); // Anche a STAFF
} else
ris = await telegrambot.sendMsgTelegramToNave(idapp, mydata, res);
if (ris)
res.send({ code: server_constants.RIS_CODE_OK, ris });
else
res.send({ code: server_constants.RIS_CODE_ERR, ris: null });
} catch (e) {
res.status(400).send(e);
}
});
router.post('/msgflotta', authenticate, async (req, res) => {
const idapp = req.body.idapp;
let mydata = req.body;
try {
let ris = null;
ris = await telegrambot.sendMsgTelegramToNave(idapp, mydata, res);
if (ris)
res.send({ code: server_constants.RIS_CODE_OK, ris });
else
res.send({ code: server_constants.RIS_CODE_ERR, ris: null });
} catch (e) {
res.status(400).send(e);
}
});
router.post('/getmsg_templates', authenticate, async (req, res) => { router.post('/getmsg_templates', authenticate, async (req, res) => {
const idapp = req.body.idapp; const idapp = req.body.idapp;

View File

@@ -334,6 +334,10 @@ router.post('/settable', authenticate, async (req, res) => {
} }
} }
if (shared_consts.TABLES_UPDATE_LASTMODIFIED.includes(params.table)) {
mytablerec.date_updated = new Date();
}
return mytablerec.save(). return mytablerec.save().
then(async (rec) => { then(async (rec) => {
@@ -1160,7 +1164,7 @@ function load(req, res, version) {
myuser = arrdata[26]; myuser = arrdata[26];
if (myuser) { if (myuser) {
myuser.password = ''; myuser.password = '';
myuser._doc.calcstat = arrdata[13]; myuser.calcstat = arrdata[13];
} }
} catch (e) {} } catch (e) {}
} }

View File

@@ -23,7 +23,7 @@ router.post('/page', authenticate, function(req, res, next) {
let idGood = req.body.idGood; let idGood = req.body.idGood;
let idapp = req.body.idapp; let idapp = req.body.idapp;
return MyGood.getMyGoodByIdkill(idapp, idGood). return MyGood.getMyRecById(idapp, idGood).
then((ris) => { then((ris) => {
if (ris) { if (ris) {

View File

@@ -23,7 +23,7 @@ router.post('/page', authenticate, function(req, res, next) {
let idSkill = req.body.idSkill; let idSkill = req.body.idSkill;
let idapp = req.body.idapp; let idapp = req.body.idapp;
return MySkill.getMySkillByIdkill(idapp, idSkill). return MySkill.getMyRecById(idapp, idSkill).
then((ris) => { then((ris) => {
if (ris) { if (ris) {

View File

@@ -1,18 +1,20 @@
const express = require('express'); const express = require('express');
const router = express.Router(); const router = express.Router();
const mongoose = require('mongoose').set('debug', false) const mongoose = require('mongoose').set('debug', false);
const Subscription = mongoose.model('subscribers'); const Subscription = mongoose.model('subscribers');
// const q = require('q'); // const q = require('q');
const webpush = require('web-push'); const webpush = require('web-push');
const tools = require('../tools/general'); const tools = require('../tools/general');
const { authenticate } = require('../middleware/authenticate'); const {authenticate} = require('../middleware/authenticate');
const shared_consts = require('../tools/shared_nodejs'); const shared_consts = require('../tools/shared_nodejs');
const server_constants = require('../tools/server_constants'); const server_constants = require('../tools/server_constants');
const { User } = require('../models/user'); const {User} = require('../models/user');
const globalTables = require('../tools/globalTables');
router.post('/', (req, res) => { router.post('/', (req, res) => {
const payload = { const payload = {
@@ -23,14 +25,14 @@ router.post('/', (req, res) => {
icon: req.body.icon, icon: req.body.icon,
image: req.body.image, image: req.body.image,
badge: req.body.badge, badge: req.body.badge,
tag: req.body.tag tag: req.body.tag,
}; };
Subscription.find({}, (err, subscriptions) => { Subscription.find({}, (err, subscriptions) => {
if (err) { if (err) {
console.error(`Error occurred while getting subscriptions`); console.error(`Error occurred while getting subscriptions`);
res.status(500).json({ res.status(500).json({
error: 'Technical error occurred' error: 'Technical error occurred',
}); });
} else { } else {
@@ -40,8 +42,8 @@ router.post('/', (req, res) => {
endpoint: subscription.endpoint, endpoint: subscription.endpoint,
keys: { keys: {
p256dh: subscription.keys.p256dh, p256dh: subscription.keys.p256dh,
auth: subscription.keys.auth auth: subscription.keys.auth,
} },
}; };
const pushPayload = JSON.stringify(payload); const pushPayload = JSON.stringify(payload);
@@ -52,23 +54,23 @@ router.post('/', (req, res) => {
publicKey: process.env.PUBLIC_VAPI_KEY, publicKey: process.env.PUBLIC_VAPI_KEY,
}, },
TTL: payload.ttl, TTL: payload.ttl,
headers: {} headers: {},
}; };
webpush.sendNotification( webpush.sendNotification(
pushSubscription, pushSubscription,
pushPayload, pushPayload,
pushOptions pushOptions,
).then((value) => { ).then((value) => {
resolve({ resolve({
status: true, status: true,
endpoint: subscription.endpoint, endpoint: subscription.endpoint,
data: value data: value,
}); });
}).catch((err) => { }).catch((err) => {
reject({ reject({
status: false, status: false,
endpoint: subscription.endpoint, endpoint: subscription.endpoint,
data: err data: err,
}); });
}); });
}); });
@@ -77,84 +79,31 @@ router.post('/', (req, res) => {
console.info(pushResults); console.info(pushResults);
}); });
res.json({ res.json({
data: 'Push triggered' data: 'Push triggered',
}); });
} }
}); });
}); });
async function SendMsgToAll(idapp, params) {
const arrusers = await User.find({ idapp },
{
username: 1,
name: 1,
surname: 1,
}
);
let msgsent = 0;
for (const user of arrusers) {
await SendMsgTo(idapp, user.username, params);
msgsent++;
}
return msgsent;
}
async function SendMsgToParam(idapp, params) {
const arrusers = await User.find({ idapp },
{
username: 1,
name: 1,
surname: 1,
'profile.socio': 1,
'profile.socioresidente': 1,
}
);
let msgsent = 0;
for (const user of arrusers) {
let invia = false;
if (params.typemsg === shared_consts.TypeMsg.SEND_TO_SOCI) {
invia = user.profile.socio;
}else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_SOCIO_RESIDENTE) {
invia = user.profile.socioresidente;
}else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_CONSIGLIO) {
invia = user.profile.consiglio;
}else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_NON_SOCI) {
invia = !user.profile.socio;
}else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_PAOLO) {
invia = user.username === 'paoloar77';
} else {
invia = true;
}
if (invia) {
await SendMsgTo(idapp, user.username, params);
msgsent++;
}
}
return msgsent;
}
async function SendMsgTo(idapp, username, params) { async function SendMsgTo(idapp, username, params) {
return User.find({ idapp, username }).then((arrusers) => { return User.find({idapp, username}).then((arrusers) => {
if (arrusers !== null) { if (arrusers !== null) {
for (const user of arrusers) { for (const user of arrusers) {
tools.sendNotificationToUser(user._id, params.title, params.content, params.openUrl, params.openUrl2, params.tag, params.actions) tools.sendNotificationToUser(user._id, params.title, params.content,
.then(ris => { params.openUrl, params.openUrl2, params.tag, params.actions).
if (ris) { then(ris => {
if (ris) {
} else { } else {
// already sent the error on calling sendNotificationToUser // already sent the error on calling sendNotificationToUser
} }
}) }).
.catch(e => { catch(e => {
console.error(e.message); console.error(e.message);
}) });
} }
} }
}); });
@@ -169,28 +118,33 @@ router.post('/send', authenticate, async (req, res) => {
let nummsg = 0; let nummsg = 0;
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && !User.isTutor(req.user.perm))) { if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) &&
!User.isTutor(req.user.perm))) {
// If without permissions, exit // If without permissions, exit
return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); return res.status(404).
send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''});
} }
try { try {
if (params.typemsg === shared_consts.TypeMsg.SEND_TO_ALL) { params.typesend = shared_consts.TypeSend.PUSH_NOTIFICATION;
nummsg = await SendMsgToAll(idapp, params); params.sendreally = true;
} else { const ris = await globalTables.SendMsgToParam(idapp, params);
nummsg = await SendMsgToParam(idapp, params);
}
return res.send({ code: server_constants.RIS_CODE_OK, msg: nummsg + ' Msg Inviati !', nummsg }); return res.send({
}catch (e) { code: server_constants.RIS_CODE_OK,
return res.send({ code: server_constants.RIS_CODE_ERR, msg: nummsg + ' Msg Inviati !' }); msg: ris.nummsgsent + ' Msg Inviati su ' + ris.numrec + ' !',
nummsg: ris.nummsgsent,
});
} catch (e) {
return res.send(
{code: server_constants.RIS_CODE_ERR, msg: nummsg + ' Msg Inviati !'});
} }
}); });
router.get('/', (req, res) => { router.get('/', (req, res) => {
res.json({ res.json({
data: 'Invalid Request Bad' data: 'Invalid Request Bad',
}); });
}); });
module.exports = router; module.exports = router;

View File

@@ -250,13 +250,10 @@ router.post('/', async (req, res) => {
await User.setaportador_solidario(user.idapp, user.username, await User.setaportador_solidario(user.idapp, user.username,
user.aportador_solidario); user.aportador_solidario);
const myuser = await User.findOne({_id: trovarec._id}); const myuser = await User.findOne({_id: trovarec._id}).lean();
if (myuser) { if (myuser) {
await telegrambot.askConfirmationUserRegistration(myuser.idapp, await telegrambot.askConfirmationUser(myuser.idapp, shared_consts.CallFunz.REGISTRATION, myuser);
shared_consts.CallFunz.REGISTRATION, myuser,
myuser.profile.username_telegram, myuser.profile.firstname_telegram,
myuser.profile.lastname_telegram);
const token = await myuser.generateAuthToken(req); const token = await myuser.generateAuthToken(req);
res.header('x-auth', token).send(myuser); res.header('x-auth', token).send(myuser);
@@ -1088,4 +1085,24 @@ router.post('/dbop', authenticate, async (req, res) => {
}); });
router.post('/mgt', authenticate, async (req, res) => {
const mydata = req.body.mydata;
idapp = req.body.idapp;
locale = req.body.locale;
try {
const {nummsgsent, numrec } = await telegrambot.sendMsgFromSiteToBotTelegram(idapp, req.user, mydata);
return res.send({numrec, nummsgsent });
} catch (e) {
res.status(400).send();
res.send({code: server_constants.RIS_CODE_ERR, msg: e});
console.log(e.message);
}
});
module.exports = router; module.exports = router;

View File

@@ -35,7 +35,6 @@ const i18n = require('i18n');
// OBTAIN // OBTAIN
// https://www.psclistens.com/insight/blog/enabling-a-nodejs-ssl-webserver-using-let-s-encrypt-pem-certificates/ // https://www.psclistens.com/insight/blog/enabling-a-nodejs-ssl-webserver-using-let-s-encrypt-pem-certificates/
if ((process.env.NODE_ENV === 'production') || if ((process.env.NODE_ENV === 'production') ||
(process.env.NODE_ENV === 'test')) { (process.env.NODE_ENV === 'test')) {
var privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8'); var privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8');
@@ -45,8 +44,8 @@ if ((process.env.NODE_ENV === 'production') ||
cert: certificate, cert: certificate,
ca: [ ca: [
fs.readFileSync(process.env.PATH_SSL_ROOT_PEM, 'utf8'), fs.readFileSync(process.env.PATH_SSL_ROOT_PEM, 'utf8'),
fs.readFileSync(process.env.PATH_SSL_CHAIN_PEM, 'utf8') fs.readFileSync(process.env.PATH_SSL_CHAIN_PEM, 'utf8'),
] ],
}; };
var https = require('https'); var https = require('https');
} else { } else {
@@ -466,17 +465,17 @@ async function estraiImmagini(table) {
try { try {
// console.log('checkdir', folderprof); // console.log('checkdir', folderprof);
if (!fs.existsSync(folderprof)) { if (!fs.existsSync(folderprof)) {
console.log('*** Creadir', folderprof) console.log('*** Creadir', folderprof);
fs.mkdirSync(folderprof); fs.mkdirSync(folderprof);
} }
folderprof = dir + 'profile/' + myuser.username + '/' + table; folderprof = dir + 'profile/' + myuser.username + '/' + table;
// console.log('checkdir', folderprof); // console.log('checkdir', folderprof);
if (!fs.existsSync(folderprof)) { if (!fs.existsSync(folderprof)) {
console.log('creadir', folderprof) console.log('creadir', folderprof);
fs.mkdirSync(folderprof); fs.mkdirSync(folderprof);
} }
}catch (e) { } catch (e) {
} }
} }
@@ -492,7 +491,7 @@ async function estraiImmagini(table) {
// console.log('file', file); // console.log('file', file);
// console.log('filefrom', filefrom); // console.log('filefrom', filefrom);
if (!tools.isFileExists(file)){ if (!tools.isFileExists(file)) {
// non esiste // non esiste
console.log('non esiste', file); console.log('non esiste', file);
console.log(' filefrom', filefrom); console.log(' filefrom', filefrom);
@@ -512,7 +511,7 @@ async function estraiImmagini(table) {
} }
} }
console.log('FINE - estraiImmagini', table); console.log('FINE - estraiImmagini', table);
}catch (e) { } catch (e) {
console.error('e', e); console.error('e', e);
} }
} }
@@ -524,8 +523,6 @@ async function estraiTutteLeImmagini() {
await estraiImmagini('mybachecas'); await estraiImmagini('mybachecas');
} }
async function faitest() { async function faitest() {
// console.log('Fai Test:') // console.log('Fai Test:')
@@ -533,8 +530,8 @@ async function faitest() {
// const $vers = tools.getVersionint('1.92.45'); // const $vers = tools.getVersionint('1.92.45');
if (false){ if (false) {
const prova = tools.getConfSiteOptionEnabledByIdApp('13', shared_consts.ConfSite.Notif_Reg_Push_Admin) const prova = tools.getConfSiteOptionEnabledByIdApp('13', shared_consts.ConfSite.Notif_Reg_Push_Admin);
console.log('prova', prova); console.log('prova', prova);
} }
@@ -557,8 +554,7 @@ async function faitest() {
const langdest = 'it'; const langdest = 'it';
telegrambot.askConfirmationUserRegistration(myuser.idapp, telegrambot.askConfirmationUser(myuser.idapp, shared_consts.CallFunz.REGISTRATION, myuser);
shared_consts.CallFunz.REGISTRATION, myuser);
} }

View File

@@ -11,6 +11,7 @@ const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET];
const printf = require('util').format; const printf = require('util').format;
const {User} = require('../models/user'); const {User} = require('../models/user');
const {MyGroup} = require('../models/mygroup');
const {CalZoom} = require('../models/calzoom'); const {CalZoom} = require('../models/calzoom');
const {MyBot} = require('../models/bot'); const {MyBot} = require('../models/bot');
const shared_consts = require('../tools/shared_nodejs'); const shared_consts = require('../tools/shared_nodejs');
@@ -20,6 +21,8 @@ const server_constants = require('../tools/server_constants');
// const {ListaIngresso} = require('../models/listaingresso'); // const {ListaIngresso} = require('../models/listaingresso');
const {MsgTemplate} = require('../models/msg_template'); const {MsgTemplate} = require('../models/msg_template');
const globalTables = require('../tools/globalTables');
const emoji = require('node-emoji'); const emoji = require('node-emoji');
const i18n = require('i18n'); const i18n = require('i18n');
@@ -129,6 +132,8 @@ MsgBot = {
'grazie', 'grazie',
'grazie mille', 'grazie mille',
'graziee', 'graziee',
'grazie ❤',
'grazie❤',
'grazie 😘', 'grazie 😘',
'grazie😘'], 'grazie😘'],
PRINCIPE_AZZURRO: ['principe azzurro'], PRINCIPE_AZZURRO: ['principe azzurro'],
@@ -432,6 +437,7 @@ const Status = {
const Cmd = { const Cmd = {
VALIDATE_REGISTRATION: 1, VALIDATE_REGISTRATION: 1,
RICHIESTA_GRUPPO: 2,
}; };
const Destin = { const Destin = {
@@ -494,10 +500,12 @@ const txt = {
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 + MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
' Si è appena Registrato "%s" (n. %s)\nInvitato da %s', ' Si è appena Registrato "%s" (n. %s)\nInvitato da %s',
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione:',
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍‍♂️ Accetta Ingresso nel GRUPPO %s:',
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!', MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente (da %s)!',
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!\n' + MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!\n' +
'Vai sulla App oppure clicca qui per entrare\n👉🏻 %s', 'Vai sulla App oppure clicca qui per entrare\n👉🏻 %s',
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !', '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
@@ -550,9 +558,11 @@ const txt_es = {
MSG_EXIT_TELEGRAM: 'La cuenta ha sido desconectada de Telegram BOT.', MSG_EXIT_TELEGRAM: 'La cuenta ha sido desconectada de Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
' Acaba de registrarse "%s (n. %s)"\n(Invitado de %s)', ' Acaba de registrarse "%s (n. %s)"\n(Invitado de %s)',
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione:',
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍‍♂️ Accetta Ingresso nel GRUPPO %s:',
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!',
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !', '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
@@ -604,9 +614,11 @@ const txt_fr = {
MSG_EXIT_TELEGRAM: 'L\'account a été déconnecté de Telegram BOT.', MSG_EXIT_TELEGRAM: 'L\'account a été déconnecté de Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
' Vous venez à peine de vous inscrire "%s (n. %s) %s', ' Vous venez à peine de vous inscrire "%s (n. %s) %s',
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione:',
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍‍♂️ Accetta Ingresso nel GRUPPO %s:',
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!',
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !', '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
@@ -656,9 +668,11 @@ const txt_si = {
MSG_EXIT_TELEGRAM: 'Račun se nahaja v programu Telegram BOT.', MSG_EXIT_TELEGRAM: 'Račun se nahaja v programu Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
'Registracija registracije %s (n. %s)\n(povabil ga %s)', 'Registracija registracije %s (n. %s)\n(povabil ga %s)',
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione:',
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍‍♂️ Accetta Ingresso nel GRUPPO %s:',
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!',
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !', '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
@@ -707,9 +721,11 @@ const txt_en = {
MSG_EXIT_TELEGRAM: 'The account has now been disconnected from this Telegram BOT.', MSG_EXIT_TELEGRAM: 'The account has now been disconnected from this Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
' He/She\'s just registered "%s (n. %s)"\n(Invited from %s)', ' He/She\'s just registered "%s (n. %s)"\n(Invited from %s)',
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione:',
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍‍♂️ Accetta Ingresso nel GRUPPO %s:',
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!',
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !', '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
@@ -761,10 +777,12 @@ const txt_pt = {
MSG_EXIT_TELEGRAM: 'A conta foi agora desconectada deste Telegrama BOT.', MSG_EXIT_TELEGRAM: 'A conta foi agora desconectada deste Telegrama BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + MSG_APORTADOR_USER_REGISTERED: emo.FIRE +
' Acabou de se registar "%s (n. %s)"\n(Convidado por %s)', ' Acabou de se registar "%s (n. %s)"\n(Convidado por %s)',
MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione:',
MSG_ACCEPT_NEWENTRY_INGROUP: '❇️👥 🧍‍♂️ Accetta Ingresso nel GRUPPO %s:',
MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!' + MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!' +
'Vai sulla App oppure clicca qui per entrare 👉🏻 %s', 'Vai sulla App oppure clicca qui per entrare 👉🏻 %s',
MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
MSG_GROUP_CONFIRMED: '✅ Sei stato Aggiunto sul Gruppo %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
'🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !', '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.<br>Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
@@ -779,7 +797,7 @@ const TelegramBot = require('node-telegram-bot-api');
const ADMIN_IDTELEGRAM_TEST = 5022837609; //Perseo const ADMIN_IDTELEGRAM_TEST = 5022837609; //Perseo
module.exports = { const MyTelegramBot = {
ADMIN_IDTELEGRAM_SERVER: '12429864', //Paolo ADMIN_IDTELEGRAM_SERVER: '12429864', //Paolo
ADMIN_USER_SERVER: 'paoloar77', ADMIN_USER_SERVER: 'paoloar77',
@@ -790,6 +808,22 @@ module.exports = {
ISCRIZIONE_CONACREIS: 2, ISCRIZIONE_CONACREIS: 2,
}, },
local_sendMsgTelegramByIdTelegram: async function(idapp, idtelegram, text,
message_id, chat_id, ripr_menuPrec,
MyForm = null) {
if (!idtelegram)
return;
const cl = getclTelegByidapp(idapp);
if (cl && idtelegram) {
return cl.sendMsg(idtelegram, text, null, MyForm, message_id,
chat_id, ripr_menuPrec);
}
},
deleteRecInMemByUsername: function(idapp, username_bo) { deleteRecInMemByUsername: function(idapp, username_bo) {
const cl = getclTelegByidapp(idapp); const cl = getclTelegByidapp(idapp);
@@ -870,40 +904,11 @@ module.exports = {
let rismsg = null; let rismsg = null;
if (text) { if (text) {
/*if (!!mylocalsconf.user.aportador_solidario) {
addtext = '[Inviato a ' + NameFrom + ']:' + '\n';
rismsg = await this.sendMsgTelegram(mylocalsconf.idapp, userdest, text);
}*/
await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp, await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp,
addtext + text, false, null, userdest); addtext + text, false, null, userdest);
} }
/*
// Invia richiesta allo Sponsor
const domanda = printf(getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname + '(' + mylocalsconf.user.username + ')' + 'email: ' + mylocalsconf.user.email }`);
const msgyes = printf(getstr(langdest, 'MSG_APORTADOR_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgNo = printf(getstr(langdest, 'MSG_APORTADOR_NOT_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgDestyes = printf(
getstr(langdest, 'MSG_APORTADOR_DEST_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgDestNo = printf(
getstr(langdest, 'MSG_APORTADOR_DEST_NOT_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const cl = getclTelegByidapp(mylocalsconf.idapp);
if (cl) {
await cl.createIfNotExist(rismsg);
await cl.menumsgDomanda(rismsg, Cmd.VALIDATE_REGISTRATION,
Destin.DOMANDA, userdest, '', domanda, msgyes, msgNo, msgDestyes,
msgDestNo, mylocalsconf.user.username);
}
*/
}, },
notifyIscrizioneToTelegram: async function(phase, mylocalsconf) { notifyIscrizioneToTelegram: async function(phase, mylocalsconf) {
@@ -917,21 +922,21 @@ module.exports = {
await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp, addtext + text); await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp, addtext + text);
}, },
askConfirmationUserRegistration: async function( askConfirmationUser: async function(idapp, myfunc, myuser, userDest = '', {groupname, groupid}) {
idapp, myfunc, myuser, usernametelegram = '', name_telegram = '',
surname_telegram = '') {
const cl = getclTelegByidapp(idapp); const cl = getclTelegByidapp(idapp);
try { try {
const userDest = myuser.aportador_solidario;
const langdest = myuser.lang; const langdest = myuser.lang;
let keyb = null; let keyb = null;
let domanda = ''; let domanda = '';
const struserinfomsg = tools.getUserInfoMsg(idapp, myuser);
if (myfunc === shared_consts.CallFunz.REGISTRATION) { if (myfunc === shared_consts.CallFunz.REGISTRATION) {
userDest = myuser.aportador_solidario;
const notask_verif = await User.notAsk_VerifByUsername(idapp, userDest); const notask_verif = await User.notAsk_VerifByUsername(idapp, userDest);
if (notask_verif) { if (notask_verif) {
@@ -939,46 +944,43 @@ module.exports = {
setVerifiedReg(myuser.idapp, myuser.lang, myuser.username, userDest); setVerifiedReg(myuser.idapp, myuser.lang, myuser.username, userDest);
} else { } else {
const name = myuser.username + domanda = getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM') + '<br>' + struserinfomsg;
(myuser.name ? `(${myuser.name} + ' ' + ${myuser.surname})` : '');
const linkuserprof = tools.getHostByIdApp(idapp) + '/my/' +
myuser.username;
domanda = printf(getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM'),
`<br>Username: <b>${name}</b><br>Profilo su APP: ${linkuserprof}<br>Email: ` +
myuser.email);
if (usernametelegram) {
domanda += '<br>Profilo su Telegram [' + name_telegram + ' ' +
surname_telegram + ']:<br>' + 'https://t.me/' +
usernametelegram;
}
keyb = cl.getInlineKeyboard(myuser.lang, [ keyb = cl.getInlineKeyboard(myuser.lang, [
{ {
text: '✅ Abilita ' + myuser.username, text: '✅ Abilita ' + myuser.username,
callback_data: InlineConferma.RISPOSTA_SI + callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + userDest,
shared_consts.CallFunz.REGISTRATION + tools.SEP +
myuser.username + tools.SEP + userDest,
}, },
{ {
text: '🚫 Rifiuta ' + myuser.username, text: '🚫 Rifiuta ' + myuser.username,
callback_data: InlineConferma.RISPOSTA_NO + callback_data: InlineConferma.RISPOSTA_NO + myfunc + tools.SEP + myuser.username + tools.SEP + userDest,
shared_consts.CallFunz.REGISTRATION + tools.SEP +
myuser.username + tools.SEP + userDest,
}, },
]); ]);
} }
} else if (myfunc === shared_consts.CallFunz.RICHIESTA_GRUPPO) {
domanda = printf(getstr(langdest, 'MSG_ACCEPT_NEWENTRY_INGROUP'), groupname) + '<br>' + struserinfomsg;
keyb = cl.getInlineKeyboard(myuser.lang, [
{
text: '✅ Accetta ' + myuser.username,
callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + '' + tools.SEP + groupid,
},
{
text: '🚫 Rifiuta ' + myuser.username,
callback_data: InlineConferma.RISPOSTA_NO + myfunc + tools.SEP + myuser.username + tools.SEP + '' + tools.SEP + groupid ,
},
]);
} }
// Invia Msg // Invia Msg
if (domanda) { if (domanda) {
const teleg_id = await User.TelegIdByUsername(idapp, userDest); const teleg_id = await User.TelegIdByUsername(idapp, userDest);
await local_sendMsgTelegramByIdTelegram(idapp, teleg_id, domanda, await this.local_sendMsgTelegramByIdTelegram(idapp, teleg_id, domanda, undefined, undefined, true, keyb);
undefined, undefined, true, keyb);
} }
} catch (e) { } catch (e) {
console.error('Error askConfirmationUserRegistration', e); console.error('Error askConfirmationUser', e);
} }
}, },
@@ -1059,7 +1061,7 @@ module.exports = {
const cl = getclTelegByidapp(user.idapp); const cl = getclTelegByidapp(user.idapp);
if (cl) { if (cl) {
msg = cl.convertSpecialTags(rec.user, msg); msg = tools.convertSpecialTags(rec.user, msg);
} }
if (!!mydata.flotta) { if (!!mydata.flotta) {
@@ -1094,209 +1096,6 @@ module.exports = {
return {body: msg, title}; return {body: msg, title};
}, },
sendMsgTelegramToNave: async function(idapp, mydata, res) {
let nummsgtosend = 0;
let nummsgsent = 0;
let strout = '';
let flotta = mydata.flotta;
const sendemail = require('../sendemail');
try {
let arrnavi = null;
let strflotta = '';
if (flotta) {
strflotta = Flotta.getStrFlotta(flotta);
arrnavi = await Nave.getusersByFlotta(idapp, flotta.riga,
flotta.col_prima, flotta.col_ultima);
if (mydata.tipomsg === tools.TipoMsg.SEND_MSG_A_SOGNATORE) {
arrnavi = await User.find({idapp, username: flotta.sognatore});
}
} else {
arrnavi = await Nave.getusersByNave(idapp, mydata.navemediatore);
}
// console.log('usersmanagers', usersmanagers);
let mymsg = '';
let mymsgprimo = '';
tipomsgorig = mydata.tipomsg;
if (arrnavi) {
if (!flotta)
tools.writeManagersLog('sendMsgTelegramToNave',
mydata.navemediatore.riga + '.' + mydata.navemediatore.col);
let index = 1;
if (mydata.inviareale) {
let mystrmsg = tools.getStrMsgByTipoMsg(tipomsgorig);
if (!!mystrmsg) {
tools.writeFlottaLog(idapp, mystrmsg, flotta.riga,
flotta.col_prima);
}
}
for (const nave of arrnavi) {
mydata.tipomsg = tipomsgorig;
let user = null;
if (mydata.tipomsg === tools.TipoMsg.SEND_MSG_A_SOGNATORE) {
user = nave;
} else {
user = await User.findByIndOrder(idapp, nave.ind_order);
if (mydata.tipomsg ===
tools.TipoMsg.SEND_MSG_SOLLECITO_DONATORI_NO_DONO) {
// Solo a quelli che non hanno fatto il dono
if (nave.made_gift)
user = null;
}
if ((nave.num_tess % 2) === 0) {
// MEDIATORE !
// Se l'ultimo Donatore è un Mediatore, allora NON GLI MANDO IL MESSAGGIO !
if (mydata.tipomsg === tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO) {
user = null;
}
if (mydata.tipomsg ===
tools.TipoMsg.SEND_MSG_SOLLECITO_DONATORI_NO_DONO) {
user = null;
}
} else {
// DONATORE
if (mydata.tipomsg === tools.TipoMsg.SEND_MSG_A_MEDIATORI) {
user = null; // Se sto mandando msg a Mediatore, allora questo no!
}
}
}
//mydata.tipomsg = tools.TipoMsg.SEND_MSG_A_MEDIATORI;
if (!!user) {
const lang = user.lang;
const idteleg = user.profile.teleg_id;
mydata.nave = nave;
const rismsg = await this.getMsgByTipoMsg(mydata, lang, user,
false);
mymsg = rismsg.body;
mytitle = rismsg.title;
if (mymsgprimo === '') {
if (lang === 'it')
mymsgprimo = mymsg;
}
if (!!idteleg) {
strout += '\n (' + index + ') ' + user.username + ' (' +
user.name + ' ' + user.surname + ':';
if (mydata.inviareale) {
await this.sendMsgTelegramByIdTelegram(idapp, idteleg, mymsg,
undefined, undefined, true);
await tools.snooze(100);
strout += ' -> (MSG OK)';
if (mydata.inviaemail && !!user.email) {
// user.email = 'paolo.arena77@gmail.com';
await sendemail.sendEmail_ByText(user.lang, user.email, user,
idapp, {
emailbody: mymsg,
emailtitle: mytitle,
});
strout += ' -> (EMAIL OK)';
}
nummsgsent++;
} else {
strout += ' (Ok)';
nummsgtosend++;
}
}
}
index++;
}
}
if (!mydata.inviareale) {
await this.sendMsgTelegram(idapp, res.req.user.username,
'TEST INVIO MESSAGGIO:\n' + mymsgprimo +
'\n\n(Messaggi da Inviare: ' + nummsgtosend + ')');
}
if ((nummsgsent > 1) && (mydata.inviareale)) {
try {
let msg = '';
if (!!flotta) {
if (!!mydata.tipomsg) {
msg = 'Flotta ' + strflotta + '): ' +
tools.getStrMsgByTipoMsg(mydata.tipomsg) + '\n' + mymsg;
} else {
msg = 'Inviato messaggio a tutta la FLOTTA DA ' + flotta.riga +
'.' + flotta.col_prima + ' A ' + flotta.riga + '.' +
flotta.col_ultima + ' \n' + mymsg;
}
} else {
msg = 'Inviato messaggio a tutti i Donatori della Nave ' +
mydata.navemediatore.riga + '.' + mydata.navemediatore.col +
'\n' + mymsg;
}
await this.sendMsgTelegramToTheManagers(idapp, msg);
} catch (e) {
}
}
/*
if (mydata.tipomsg === tools.TipoMsg.SEND_LINK_CHAT_DONATORI) {
const usersognatore = await Nave.getSognatoreByRigaColMediatore(idapp, mydata.navemediatore);
console.log('Sognatore: ', usersognatore.username);
if (!!usersognatore) {
const lang = usersognatore.lang;
const idteleg = usersognatore.profile.teleg_id;
const mymsg = this.getMsgByTipoMsg(mydata, lang, usersognatore, true);
// Invia Msg al Sognatore !
if (mydata.inviareale) {
await this.sendMsgTelegramByIdTelegram(idapp, idteleg, mymsg, undefined, undefined, true);
await tools.snooze(300);
nummsgsent++;
strout += '\n' + usersognatore.name + ' ' + usersognatore.surname + ':';
strout += ' -> MSG INVIATO';
} else {
strout += ' (Pronto da Inviare)';
}
}
}
*/
if (nummsgsent > 0) {
if (mydata.tipomsg === tools.TipoMsg.SEND_LINK_CHAT_DONATORI) {
const fields_to_update = {
sent_msg_howto_make_gift: true,
};
await Nave.findOneAndUpdate({_id: mydata.navemediatore.id},
{$set: fields_to_update}, {new: false});
}
}
return {nummsgsent, strout};
} catch (e) {
console.error(e.message);
strout = 'Error: ' + e.message + '\n' + strout;
return {nummsgsent, strout};
}
},
sendMsgTelegramToTheAdmin: async function(idapp, text, senzaintestazione) { sendMsgTelegramToTheAdmin: async function(idapp, text, senzaintestazione) {
const usersmanagers = await User.getusersManagers(idapp); const usersmanagers = await User.getusersManagers(idapp);
@@ -1389,6 +1188,56 @@ module.exports = {
}, },
sendMsgFromSite: async function(idapp, user, params) {
try {
let ris = {
numrec: 0,
nummsgsent: 0,
};
let invia = false;
let tipomsgtempl = 0;
params.sendreally = true;
if (params.typemsg === shared_consts.TypeMsg.SEND_TO_MYSELF) {
params.usernameDest = user.username;
}
if (params.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
tipomsgtempl = shared_consts.TypeMsgTemplate.MS_SHARE_LINK;
invia = true;
}
if (tipomsgtempl > 0) {
const rismsg = await MsgTemplate.getMsgByLang(idapp, tipomsgtempl, user.lang);
params.content = rismsg.body;
params.title = rismsg.title;
}
if (invia) {
ris = await globalTables.SendMsgToParam(idapp, params);
}
return ris;
} catch (e) {
console.error('sendMsgFromSite', e);
}
},
sendMsgFromSiteToBotTelegram: async function(idapp, user, params) {
if (!params.typesend) {
params.typesend = shared_consts.TypeSend.TELEGRAM;
}
return this.sendMsgFromSite(idapp, user, params);
},
}; };
async function sendMsgTelegramToTheAdmin(idapp, text, msg) { async function sendMsgTelegramToTheAdmin(idapp, text, msg) {
@@ -1491,24 +1340,6 @@ async function local_sendMsgTelegram(idapp, username, text) {
} }
async function local_sendMsgTelegramByIdTelegram(idapp, idtelegram, text,
message_id, chat_id, ripr_menuPrec,
MyForm = null) {
console.log('sendMsgTelegramByIdTelegram', text);
if (!idtelegram)
return;
const cl = getclTelegByidapp(idapp);
if (cl && idtelegram) {
return await cl.sendMsg(idtelegram, text, null, MyForm, message_id,
chat_id, ripr_menuPrec);
}
}
function getstr(lang, key, param1) { function getstr(lang, key, param1) {
let mystr = ''; let mystr = '';
@@ -1610,38 +1441,6 @@ class Telegram {
'\n\nI miei colleghi umani ti aiuteranno a risolvere !'; '\n\nI miei colleghi umani ti aiuteranno a risolvere !';
} }
convertSpecialTags(user, msg) {
try {
if (!!user) {
msg = msg.replace('{username}', user.username);
msg = msg.replace('{name}', user.name ? user.name : user.username);
msg = msg.replace('{surname}', user.surname ? user.surname : '');
msg = msg.replace('{aportador_solidario}',
user.aportador_solidario ? user.aportador_solidario : '');
if (!!user.profile.link_payment)
msg = msg.replace('{link_paypalme}', user.profile.link_payment);
if (!!user.profile.revolut)
msg = msg.replace('{revolut}', user.profile.revolut);
if (!!user.profile.payeer_id)
msg = msg.replace('{payeer_id}', user.profile.payeer_id);
if (!!user.profile.advcash_id)
msg = msg.replace('{advcash_id}', user.profile.advcash_id);
if (!!user.profile.email_paypal)
msg = msg.replace('{email_paypal}', user.profile.email_paypal);
if (!!user.profile.note_payment)
msg = msg.replace('{note_payment}', user.profile.note_payment);
}
// const cl = getclTelegByidapp(user.idapp);
msg = msg.replace('{link_chathelp}', tools.HELP_CHAT);
} catch (e) {
console.log(e);
}
return msg;
}
async IsTesto(msg) { async IsTesto(msg) {
let risp = ''; let risp = '';
@@ -1728,10 +1527,7 @@ class Telegram {
printf(getstr(rec.user.lang, 'MSG_SET_USERNAME_OK'))); printf(getstr(rec.user.lang, 'MSG_SET_USERNAME_OK')));
if (!rec.user.verified_by_aportador) { if (!rec.user.verified_by_aportador) {
this.askConfirmationUserRegistration(this.idapp, this.askConfirmationUser(this.idapp, shared_consts.CallFunz.REGISTRATION, rec.user);
shared_consts.CallFunz.REGISTRATION, rec.user,
msg.from.username || '', msg.from.first_name || '',
msg.from.last_name || '');
} }
} else { } else {
@@ -1887,7 +1683,7 @@ class Telegram {
} }
} }
risp = this.convertSpecialTags(rec.user, risp); risp = tools.convertSpecialTags(rec.user, risp);
let keyboard = null; let keyboard = null;
@@ -2659,14 +2455,11 @@ class Telegram {
} }
} }
checkIfUsernameTelegramSet(msg, recuser) { async checkIfUsernameTelegramSet(msg, recuser) {
try { try {
if (!msg.from.username) { if (!msg.from.username) {
// //
this.sendMsg(msg.from.id, return this.sendMsg(msg.from.id, printf(getstr(recuser.lang, 'MSG_SET_USERNAME')));
printf(getstr(recuser.lang, 'MSG_SET_USERNAME')));
return true;
} }
} catch (e) { } catch (e) {
console.error('e'); console.error('e');
@@ -2678,8 +2471,7 @@ class Telegram {
if (!!msg.text) { if (!!msg.text) {
const code = msg.text.toString().trim(); const code = msg.text.toString().trim();
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);
const user = await User.findByUsername(this.idapp, rec.username_bo, let user = await User.findByUsername(this.idapp, rec.username_bo, true);
true);
let telegcode = 0; let telegcode = 0;
if (user) { if (user) {
telegcode = user.profile.teleg_checkcode.toString(); telegcode = user.profile.teleg_checkcode.toString();
@@ -2697,35 +2489,41 @@ class Telegram {
await User.setUsernameTelegram(this.idapp, user._id, await User.setUsernameTelegram(this.idapp, user._id,
msg.from.username || '', msg.from.first_name || '', msg.from.username || '', msg.from.first_name || '',
msg.from.last_name || ''); msg.from.last_name || '');
} catch (e) {} } catch (e) {}
// let ris = await this.getUser(msg, rec, false); // let ris = await this.getUser(msg, rec, false);
rec.status = Status.VERIFIED; rec.status = Status.VERIFIED;
rec.datemenu_updated = null; rec.datemenu_updated = null;
rec.menuDb = null; rec.menuDb = null;
await User.SetTelegramIdSuccess(this.idapp, user._id, await User.SetTelegramIdSuccess(this.idapp, user._id, msg.from.id).then(async (recuser) => {
msg.from.id).then((recuser) => {
const rismsg = await MsgTemplate.getMsgByLang(this.idapp, shared_consts.TypeMsgTemplate.MSG_BENVENUTO, recuser.lang);
const rismsg2 = await MsgTemplate.getMsgByLang(this.idapp, shared_consts.TypeMsgTemplate.MS_SHARE_LINK, recuser.lang);
return {recuser, rismsg, rismsg2};
}).then(async ({recuser, rismsg, rismsg2}) => {
if (recuser) { if (recuser) {
this.setPhotoProfile(rec, msg); console.log(recuser.username, ' SI E\' VERIFICATO CON TELEGRAM !');
this.setPhotoProfile(rec, msg, false);
let username = recuser.name; let username = recuser.name;
this.sendMsgLog(msg.from.id, // this.sendMsgLog(msg.from.id, printf(getstr(recuser.lang, 'MSG_VERIFY_OK'), username, tools.getHostByIdApp(this.idapp)));
printf(getstr(recuser.lang, 'MSG_VERIFY_OK'), username, await this.sendMsgLog(msg.from.id, rismsg.body);
tools.getHostByIdApp(this.idapp))); await this.sendMsg(msg.from.id, rismsg2.body);
if (msg.from.username) { if (msg.from.username) {
this.askConfirmationUserRegistration(this.idapp, MyTelegramBot.askConfirmationUser(this.idapp, shared_consts.CallFunz.REGISTRATION, recuser);
shared_consts.CallFunz.REGISTRATION, recuser,
msg.from.username || '', msg.from.first_name || '',
msg.from.last_name || '');
} }
this.checkIfUsernameTelegramSet(msg, recuser); this.checkIfUsernameTelegramSet(msg, recuser);
// local_sendMsgTelegramToTheManagers(this.idapp, recuser.name + ' ' + recuser.surname + ' si è Verificato a Telegram BOT! (lang=' + recuser.lang + ')' + 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.sendMsgLog(msg.from.id, this.sendMsgLog(msg.from.id, getstr(this.getlang(msg), 'MSG_ERR_UNKNOWN_VERIFY_CODE'));
getstr(this.getlang(msg), 'MSG_ERR_UNKNOWN_VERIFY_CODE'));
} }
}); });
} else { } else {
if (rec.retry < 2) { if (rec.retry < 2) {
@@ -2784,6 +2582,8 @@ class Telegram {
async setCmdToUsername(rec, username, cmd_to_set, valuebool) { async setCmdToUsername(rec, username, cmd_to_set, valuebool) {
if (cmd_to_set === Cmd.VALIDATE_REGISTRATION) { if (cmd_to_set === Cmd.VALIDATE_REGISTRATION) {
return User.setVerifiedByAportador(rec.user.idapp, username, valuebool); return User.setVerifiedByAportador(rec.user.idapp, username, valuebool);
} else if (cmd_to_set === Cmd.RICHIESTA_GRUPPO) {
} }
} }
@@ -2902,8 +2702,7 @@ class Telegram {
} }
if (inviaveramente) { if (inviaveramente) {
textdainviare = this.convertSpecialTags(utente, textdainviare = tools.convertSpecialTags(utente, textdainviare);
textdainviare);
if (destin === Destin.A_UTENTE) { if (destin === Destin.A_UTENTE) {
await this.sistemaRecDest(rec, msg); await this.sistemaRecDest(rec, msg);
@@ -3117,9 +2916,7 @@ class Telegram {
await this.addUser(msg); await this.addUser(msg);
// await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), printf(txt.MSG_ASK_USERNAME_BO, tools.getHostByIdApp(this.idapp)))); // await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), printf(txt.MSG_ASK_USERNAME_BO, tools.getHostByIdApp(this.idapp))));
await this.sendMsg(msg.chat.id, await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), 'MSG_ASK_USERNAME_BO', tools.getNomeAppByIdApp(this.idapp)), null);
getstr(this.getlang(msg), 'MSG_ASK_USERNAME_BO',
tools.getNomeAppByIdApp(this.idapp)), null);
return false; return false;
} }
@@ -3542,7 +3339,7 @@ class Telegram {
const username = rec ? rec.username_bo : ''; const username = rec ? rec.username_bo : '';
console.log('Msg inviato a ', username, '(', id, ')', text); console.log('Msg inviato a ', username, '(', id, ')', text);
this.sendMsg(id, text, menu, form, msg_id, chat_id, ripr_menuPrec); return this.sendMsg(id, text, menu, form, msg_id, chat_id, ripr_menuPrec);
} }
getmenuKey(mymenu, lang) { getmenuKey(mymenu, lang) {
@@ -3557,7 +3354,7 @@ class Telegram {
return mymenuout; return mymenuout;
} }
async setPhotoProfile(rec, msg) { async setPhotoProfile(rec, msg, showmsg = true) {
try { try {
if (rec.user) { if (rec.user) {
const idapp = this.idapp; const idapp = this.idapp;
@@ -3592,9 +3389,11 @@ class Telegram {
return User.setPicProfile(idapp, username, filename). return User.setPicProfile(idapp, username, filename).
then((ris) => { then((ris) => {
// console.log('4) sendMsg picprofile Copied !'); // console.log('4) sendMsg picprofile Copied !');
local_sendMsgTelegram(idapp, username, if (showmsg) {
printf(getstr(lang, 'MSG_SET_PICPROFILE'), local_sendMsgTelegram(idapp, username,
editprofile)); printf(getstr(lang, 'MSG_SET_PICPROFILE'),
editprofile));
}
}); });
// console.log('scaricato'); // console.log('scaricato');
}).catch((err) => { }).catch((err) => {
@@ -3784,120 +3583,138 @@ if (true) {
bot.on('callback_query', async (callbackQuery) => { bot.on('callback_query', async (callbackQuery) => {
// console.log('callback_query', callbackQuery); // console.log('callback_query', callbackQuery);
const myclTelegram = getclTelegBytoken(bot.token); try {
const myclTelegram = getclTelegBytoken(bot.token);
let dataarr = []; let dataarr = [];
let data = { let data = {
action: '', action: '',
username: '', username: '',
userDest: '', userDest: '',
}; groupId: 0,
};
const datastr = callbackQuery.data; const datastr = callbackQuery.data;
if (!!datastr) { if (!!datastr) {
dataarr = datastr.split(tools.SEP); dataarr = datastr.split(tools.SEP);
if (!!dataarr) { if (!!dataarr) {
data = { data = {
action: dataarr[0], action: dataarr[0],
username: dataarr[1] ? dataarr[1] : '', username: dataarr[1] ? dataarr[1] : '',
userDest: dataarr[2] ? dataarr[2] : '', userDest: dataarr[2] ? dataarr[2] : '',
}; groupId: dataarr[3] ? parseInt(dataarr[3]) : '',
};
}
} }
} const msg = callbackQuery.message;
const msg = callbackQuery.message; const opts = {
const opts = { chat_id: msg.chat.id,
chat_id: msg.chat.id, message_id: msg.message_id,
message_id: msg.message_id, };
};
const status = await myclTelegram.setInit(msg); const status = await myclTelegram.setInit(msg);
const rec = myclTelegram.getRecInMem(msg); const rec = myclTelegram.getRecInMem(msg);
const user = await User.getUserShortDataByUsername(idapp, const user = await User.getUserShortDataByUsername(idapp, data.username);
data.username); const userDest = data.userDest ? await User.getUserShortDataByUsername(idapp, data.userDest) : null;
const userDest = data.userDest
? await User.getUserShortDataByUsername(idapp, data.userDest)
: null;
if (!!rec) { let group = null;
if (!!user) { if (data.groupId) {
if (data.action === InlineCmd.VOGLIO_IMBARCARMI) { group = await MyGroup.findOne({idapp, _id: data.groupId}).lean();
// Controlla se è qualificato! }
const mydata = tools.AddDate(user.date_reg, 7);
// bot.editMessageText(tools.gettranslate('ADDED_TOLISTAINGRESSO', user.lang), opts); let cmd = 0;
} else if (data.action === InlineCmd.NON_VOGLIO_IMBARCARMI) { if (!!rec) {
await User.NonVoglioImbarcarmi(user.idapp, user.username); if (!!user) {
if (data.action === InlineCmd.VOGLIO_IMBARCARMI) {
// Controlla se è qualificato!
const mydata = tools.AddDate(user.date_reg, 7);
const msgadd = '[' + user.username + '] ' + user.name + ' ' + // bot.editMessageText(tools.gettranslate('ADDED_TOLISTAINGRESSO', user.lang), opts);
user.surname + ' ha risposto che NON VUOLE IMBARCARSI !';
await local_sendMsgTelegramToTheManagers(user.idapp, msgadd, } else if (data.action === InlineCmd.NON_VOGLIO_IMBARCARMI) {
msg, false); // Anche a STAFF await User.NonVoglioImbarcarmi(user.idapp, user.username);
} else if (data.action ===
InlineZoomConferma.CONFERMA_ZOOM_PRESENZA) {
await User.setZoomPresenza(user.idapp, user._id, true); const msgadd = '[' + user.username + '] ' + user.name + ' ' +
user.surname + ' ha risposto che NON VUOLE IMBARCARSI !';
} else if (data.action === await local_sendMsgTelegramToTheManagers(user.idapp, msgadd,
InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA) { msg, false); // Anche a STAFF
} else if (data.action ===
InlineZoomConferma.CONFERMA_ZOOM_PRESENZA) {
await User.setZoomPresenza(user.idapp, user._id, false); await User.setZoomPresenza(user.idapp, user._id, true);
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.REGISTRATION) { } else if (data.action ===
const changed = await myclTelegram.setCmdToUsername(rec, InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA) {
data.username,
Cmd.VALIDATE_REGISTRATION, true);
if (changed) { await User.setZoomPresenza(user.idapp, user._id, false);
await User.setFriendsCmd(user.idapp, data.username,
userDest.username, shared_consts.FRIENDSCMD.SETFRIEND);
await User.setaportador_solidario(user.idapp, data.username, } else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.REGISTRATION) {
userDest.username);
const msgOrig = printf(
getstr(userDest.lang, 'MSG_APORTADOR_DEST_CONFIRMED'),
`${userDest.username}`, tools.getHostByIdApp(user.idapp));
const msgDest = printf(
getstr(user.lang, 'MSG_APORTADOR_CONFIRMED'),
`${user.username}`);
await local_sendMsgTelegram(user.idapp, data.username,
msgOrig);
await local_sendMsgTelegram(user.idapp, data.userDest,
msgDest);
}
} else if (data.action === InlineConferma.RISPOSTA_NO +
shared_consts.CallFunz.REGISTRATION) {
if (userDest.username === user.aportador_solidario) {
const changed = await myclTelegram.setCmdToUsername(rec, const changed = await myclTelegram.setCmdToUsername(rec,
data.username, data.username,
Cmd.VALIDATE_REGISTRATION, false); Cmd.VALIDATE_REGISTRATION, true);
if (changed) { if (changed) {
const nomeDest = tools.getNomeCognomeEUserNameByUser( await User.setFriendsCmd(user.idapp, data.username, userDest.username, shared_consts.FRIENDSCMD.SETFRIEND);
userDest);
const nomestr = tools.getNomeCognomeEUserNameByUser(user);
const msgOrig = printf( await User.setaportador_solidario(user.idapp, data.username, userDest.username);
getstr(userDest.lang,
'MSG_APORTADOR_DEST_NOT_CONFIRMED', const msgOrig = printf(getstr(userDest.lang, 'MSG_APORTADOR_DEST_CONFIRMED'), `${userDest.username}`,
nomeDest)); tools.getHostByIdApp(user.idapp));
const msgDest = printf( const msgDest = printf(getstr(user.lang, 'MSG_APORTADOR_CONFIRMED'),
getstr(user.lang, 'MSG_APORTADOR_NOT_CONFIRMED'), `${user.username}`);
nomestr);
await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
}
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.REGISTRATION) {
if (userDest.username === user.aportador_solidario) {
const changed = await myclTelegram.setCmdToUsername(rec, data.username,
Cmd.VALIDATE_REGISTRATION, false);
if (changed) {
const nomeDest = tools.getNomeCognomeEUserNameByUser(userDest);
const nomestr = tools.getNomeCognomeEUserNameByUser(user);
const msgOrig = printf(getstr(userDest.lang, 'MSG_APORTADOR_DEST_NOT_CONFIRMED', nomeDest));
const msgDest = printf(getstr(user.lang, 'MSG_APORTADOR_NOT_CONFIRMED'), nomestr);
await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
}
}
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.RICHIESTA_GRUPPO) {
if (group) {
cmd = shared_consts.GROUPSCMD.SETGROUP;
const foundIfAlreadyGroup = await User.ifAlreadyInGroup(user.idapp, data.username, group.groupname);
if (!foundIfAlreadyGroup) {
// Aggiungilo nel Gruppo
await User.setGroupsCmd(user.idapp, data.username, group.groupname, cmd);
}
}
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.RICHIESTA_GRUPPO) {
if (group) {
cmd = shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP;
const foundIfAlreadyGroup = await User.ifAlreadyInGroup(user.idapp, data.username, group.groupname);
if (foundIfAlreadyGroup) {
// Rimuovilo nel Gruppo
await User.setGroupsCmd(user.idapp, data.username, group.groupname, cmd);
}
await local_sendMsgTelegram(user.idapp, data.username,
msgOrig);
await local_sendMsgTelegram(user.idapp, data.userDest,
msgDest);
} }
} }
} }
} }
} catch (e) {
console.error('Error BOT callback_query', e);
} }
/* /*
@@ -3919,3 +3736,4 @@ if (true) {
} }
} }
module.exports = MyTelegramBot;

View File

@@ -123,6 +123,8 @@ const textlang = {
'MSG_SEND_FROM': 'Msg Inviato da', 'MSG_SEND_FROM': 'Msg Inviato da',
'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!', 'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!',
'RICHIESTA_AMICIZIA': 'Richiesta d\'Amicizia da parte di %s', 'RICHIESTA_AMICIZIA': 'Richiesta d\'Amicizia da parte di %s',
'ACCETTATO_SUL_GRUPPO': 'Sei stato accettato da %s a far parte del Gruppo %s',
'ACCETTATO_NOTIFICA_ADMINS': 'l\'utente %s è stato accettato a far parte del Gruppo %s',
'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s', 'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s',
'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s', 'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s',
}, },
@@ -190,6 +192,11 @@ const textlang = {
'NAVE': 'NAVE', 'NAVE': 'NAVE',
'MSG_SEND_FROM': 'Mensaje enviado por', 'MSG_SEND_FROM': 'Mensaje enviado por',
'ZOOM_CONFERMATO': '¡Se ha confirmado que ha visto la Video Conferencia de Bienvenida!', 'ZOOM_CONFERMATO': '¡Se ha confirmado que ha visto la Video Conferencia de Bienvenida!',
'RICHIESTA_AMICIZIA': 'Richiesta d\'Amicizia da parte di %s',
'ACCETTATO_SUL_GRUPPO': 'Sei stato accettato da %s a far parte del Gruppo %s',
'ACCETTATO_NOTIFICA_ADMINS': 'l\'utente %s è stato accettato a far parte del Gruppo %s',
'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s',
'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s',
}, },
enUs: { enUs: {
'partecipanti': 'participants', 'partecipanti': 'participants',
@@ -249,6 +256,11 @@ const textlang = {
'NAVE': 'SHIP', 'NAVE': 'SHIP',
'MSG_SEND_FROM': 'Msg sent by', 'MSG_SEND_FROM': 'Msg sent by',
'ZOOM_CONFERMATO': 'You have been confirmed to have seen the Welcome Video Conference!', 'ZOOM_CONFERMATO': 'You have been confirmed to have seen the Welcome Video Conference!',
'RICHIESTA_AMICIZIA': 'Richiesta d\'Amicizia da parte di %s',
'ACCETTATO_SUL_GRUPPO': 'Sei stato accettato da %s a far parte del Gruppo %s',
'ACCETTATO_NOTIFICA_ADMINS': 'l\'utente %s è stato accettato a far parte del Gruppo %s',
'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s',
'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s',
}, },
fr: { fr: {
'L\'Email è già stata Verificata': 'Le courrier électronique a déjà été vérifié', 'L\'Email è già stata Verificata': 'Le courrier électronique a déjà été vérifié',
@@ -313,6 +325,11 @@ const textlang = {
'NAVE': 'NAVIRE', 'NAVE': 'NAVIRE',
'MSG_SEND_FROM': 'Message envoyé par', 'MSG_SEND_FROM': 'Message envoyé par',
'ZOOM_CONFERMATO': 'Vous avez été confirmé comme ayant vu la vidéoconférence de bienvenue !', 'ZOOM_CONFERMATO': 'Vous avez été confirmé comme ayant vu la vidéoconférence de bienvenue !',
'RICHIESTA_AMICIZIA': 'Richiesta d\'Amicizia da parte di %s',
'ACCETTATO_SUL_GRUPPO': 'Sei stato accettato da %s a far parte del Gruppo %s',
'ACCETTATO_NOTIFICA_ADMINS': 'l\'utente %s è stato accettato a far parte del Gruppo %s',
'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s',
'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s',
}, },
pt: { pt: {
'L\'Email è già stata Verificata': '', 'L\'Email è già stata Verificata': '',
@@ -375,6 +392,11 @@ const textlang = {
'NAVE': 'NAVE', 'NAVE': 'NAVE',
'MSG_SEND_FROM': 'Mensagem enviada por', 'MSG_SEND_FROM': 'Mensagem enviada por',
'ZOOM_CONFERMATO': 'Foi-lhe confirmado que assistiu à Conferência de Vídeo de Boas-vindas!', 'ZOOM_CONFERMATO': 'Foi-lhe confirmado que assistiu à Conferência de Vídeo de Boas-vindas!',
'RICHIESTA_AMICIZIA': 'Richiesta d\'Amicizia da parte di %s',
'ACCETTATO_SUL_GRUPPO': 'Sei stato accettato da %s a far parte del Gruppo %s',
'ACCETTATO_NOTIFICA_ADMINS': 'l\'utente %s è stato accettato a far parte del Gruppo %s',
'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s',
'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s',
}, },
}; };
@@ -702,8 +724,7 @@ module.exports = {
}); });
}, },
sendNotificationToUser: function( sendNotificationToUser: function(userId, title, content, openUrl, openUrl2, tag, actions) {
userId, title, content, openUrl, openUrl2, tag, actions) {
let payload = { let payload = {
actions, actions,
@@ -850,11 +871,30 @@ module.exports = {
}, },
sendNotificationByGroupname: async function(idapp, groupname, cmd, telegram) { sendNotifAndMsgTelegram: async function(idapp, userId, objmsg, telegram, msgextrateleg) {
if (userId) {
this.sendNotificationToUser(userId, objmsg.title, objmsg.descr, objmsg.openUrl, '', objmsg.tag, objmsg.actions);
}
if (telegram) {
var {User} = require('../models/user');
const telegrambot = require('../telegram/telegrambot');
const idtelegram = await User.TelegIdById(idapp, userId);
const msgteleg = objmsg.descr + (msgextrateleg ? '\n' + msgextrateleg : '')
await telegrambot.sendMsgTelegramByIdTelegram(idapp, idtelegram, msgteleg);
}
},
sendNotificationByGroupname: async function(idapp, usernameOrig, groupname, cmd, telegram) {
var {User} = require('../models/user'); var {User} = require('../models/user');
var {MyGroup} = require('../models/mygroup'); var {MyGroup} = require('../models/mygroup');
const telegrambot = require('../telegram/telegrambot');
const group = await MyGroup.findOne({idapp, groupname}, const group = await MyGroup.findOne({idapp, groupname},
{_id: 1, admins: 1}); {_id: 1, admins: 1});
if (!group) if (!group)
@@ -864,50 +904,58 @@ module.exports = {
const arrusernameAdmins = group.admins; const arrusernameAdmins = group.admins;
for (const arradmins of arrusernameAdmins) { const myuser = await User.findOne({idapp, username: usernameOrig}).lean();
let struserinfomsg = this.getUserInfoMsg(idapp, myuser);
let objmsg = {
title: this.getNomeAppByIdApp(idapp),
descr: '',
openUrl: '/',
tag: '',
actions: [],
};
for (const singleadmin of arrusernameAdmins) {
try { try {
if (arradmins.username) { if (singleadmin.username) {
const user = await User.findOne({idapp, username: arradmins.username}, const user = await User.findOne({idapp, username: singleadmin.username},
{_id: 1, lang: 1}); {_id: 1, lang: 1});
if (user) { if (user) {
let userId = user._id; let userId = user._id;
let lang = user.lang; let lang = user.lang;
let title = this.getNomeAppByIdApp(idapp); let sendnotif = true;
let descr = '';
let openUrl = '/';
let tag = '';
let actions = [];
if (cmd) { if (cmd) {
if (cmd === shared_consts.GROUPSCMD.REQGROUP) { if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
descr = printf(this.get__('RICHIESTA_GRUPPO', lang), groupname, objmsg.descr = printf(this.get__('ACCETTATO_NOTIFICA_ADMINS', lang), singleadmin.username, groupname);
arradmins.username); objmsg.openUrl = '/grp/' + groupname;
openUrl = '/grp/' + groupname; objmsg.tag = 'addgroups';
tag = 'reqgroups';
} else if (cmd === shared_consts.GROUPSCMD.REQGROUP) {
objmsg.descr = printf(this.get__('RICHIESTA_GRUPPO', lang), groupname,
singleadmin.username);
objmsg.openUrl = '/grp/' + groupname;
objmsg.tag = 'reqgroups';
sendnotif = false; // non lo rimandare 2 volte !
telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_GRUPPO, myuser, singleadmin.username, {groupid: group._id, groupname });
} else if (cmd === shared_consts.GROUPSCMD.BLOCK_USER) { } else if (cmd === shared_consts.GROUPSCMD.BLOCK_USER) {
descr = printf(this.get__('RICHIESTA_BLOCCO_GRUPPO', lang), objmsg.descr = printf(this.get__('RICHIESTA_BLOCCO_GRUPPO', lang),
groupname, arradmins.username); groupname, singleadmin.username);
openUrl = '/grp/' + groupname; objmsg.openUrl = '/grp/' + groupname;
tag = 'blockgroups'; objmsg.tag = 'blockgroups';
} }
} }
if (userId) { if (sendnotif && objmsg.descr) {
this.sendNotificationToUser(userId, title, descr, openUrl, '', await this.sendNotifAndMsgTelegram(idapp, userId, objmsg, telegram, struserinfomsg);
tag,
actions);
} }
if (telegram) {
const telegrambot = require('../telegram/telegrambot');
const idtelegram = await User.TelegIdByUsername(idapp,
arradmins.username);
await telegrambot.sendMsgTelegramByIdTelegram(idapp, idtelegram,
descr);
}
} }
} }
} catch (e) { } catch (e) {
@@ -915,6 +963,16 @@ module.exports = {
} }
} }
if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
const reclang = await User.getRecLangAndIdByUsername(idapp, usernameOrig);
objmsg.descr = printf(this.get__('ACCETTATO_SUL_GRUPPO', reclang.lang), usernameOrig, groupname);
objmsg.openUrl = '/grp/' + groupname;
objmsg.tag = 'addgroups';
// Send to User:
await this.sendNotifAndMsgTelegram(idapp, reclang._id, objmsg, telegram);
}
}, },
// ********************** // **********************
@@ -1063,11 +1121,11 @@ module.exports = {
return ''; return '';
}, },
getLinkUserProfile: function (idapp, username) { getLinkUserProfile: function(idapp, username) {
return tools.getHostByIdApp(idapp) + '/my/' + username; return tools.getHostByIdApp(idapp) + '/my/' + username;
}, },
getLinkEditUserProfile: function (idapp) { getLinkEditUserProfile: function(idapp) {
return tools.getHostByIdApp(idapp) + '/editprofile'; return tools.getHostByIdApp(idapp) + '/editprofile';
}, },
@@ -2627,13 +2685,76 @@ module.exports = {
try { try {
return download.image({ return download.image({
url, url,
dest: filepath dest: filepath,
}); });
}catch (e) { } catch (e) {
console.error('Err download image', e); console.error('Err download image', e);
return false; return false;
} }
}, },
convertSpecialTags(user, msg) {
try {
if (!!user) {
msg = msg.replace('{username}', user.username);
msg = msg.replace('{name}', user.name ? user.name : user.username);
msg = msg.replace('{surname}', user.surname ? user.surname : '');
msg = msg.replace('{aportador_solidario}',
user.aportador_solidario ? user.aportador_solidario : '');
if (!!user.profile.link_payment)
msg = msg.replace('{link_paypalme}', user.profile.link_payment);
if (!!user.profile.revolut)
msg = msg.replace('{revolut}', user.profile.revolut);
if (!!user.profile.payeer_id)
msg = msg.replace('{payeer_id}', user.profile.payeer_id);
if (!!user.profile.advcash_id)
msg = msg.replace('{advcash_id}', user.profile.advcash_id);
if (!!user.profile.email_paypal)
msg = msg.replace('{email_paypal}', user.profile.email_paypal);
if (!!user.profile.note_payment)
msg = msg.replace('{note_payment}', user.profile.note_payment);
}
// const cl = getclTelegByidapp(user.idapp);
msg = msg.replace('{link_chathelp}', this.HELP_CHAT);
} catch (e) {
console.log(e);
}
return msg;
},
getUserInfoMsg: function(idapp, myuser, usernametelegram = '', name_telegram = '',
surname_telegram = '') {
let msg = '';
try {
const name = myuser.username +
(myuser.name ? `(${myuser.name} + ' ' + ${myuser.surname})` : '');
const linkuserprof = this.getHostByIdApp(idapp) + '/my/' +
myuser.username;
msg = `<br>Username: <b>${name}</b><br>Profilo su APP: ${linkuserprof}<br>Email: ${myuser.email}`;
let u_tg = myuser.profile && myuser.profile.hasOwnProperty('username_telegram') ? myuser.profile.username_telegram : usernametelegram;
let name_tg = myuser.profile && myuser.profile.hasOwnProperty('firstname_telegram')
? myuser.profile.firstname_telegram
: name_telegram;
let surname_tg = myuser.profile && myuser.profile.hasOwnProperty('lastname_telegram')
? myuser.profile.lastname_telegram
: surname_telegram;
if (u_tg) {
msg += '<br>Profilo su Telegram [' + name_tg + ' ' + surname_tg + ']:<br>' + 'https://t.me/' + u_tg;
}
}catch (e) {
console.error('getUserInfoMsg', e);
}
return msg;
},
}; };

View File

@@ -194,4 +194,111 @@ module.exports = {
return mytable; return mytable;
}, },
SendMsgToParam: async function(idapp, params) {
try {
const telegrambot = require('../telegram/telegrambot');
let query = {idapp};
let addquery = {};
let invia = true;
if (params.typemsg === shared_consts.TypeMsg.SEND_TO_ALL) {
addquery = {};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_SOCI) {
addquery = {'profile.socio': true};
} else if (params.typemsg ===
shared_consts.TypeMsg.SEND_TO_SOCIO_RESIDENTE) {
addquery = {'profile.socioresidente': true};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_CONSIGLIO) {
addquery = {'profile.consiglio': true};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_NON_SOCI) {
addquery = {'profile.socio': false};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_PAOLO) {
addquery = {username: 'paoloar77'};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_USER) {
addquery = {username: params.usernameDest};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_MYSELF) {
addquery = {username: params.usernameDest};
} else if (params.typemsg === shared_consts.TypeMsg.SEND_TO_GROUP) {
if (params.groupnameDest) {
addquery = {
'profile.mygroups': {
$elemMatch: {groupname: {$eq: params.groupnameDest}},
},
};
} else {
invia = false;
}
}
let numrec = 0;
let nummsgsent = 0;
if (invia) {
const allquery = {...query, ...addquery};
const arrusers = await User.find(
allquery,
{
username: 1,
'profile.teleg_id': 1,
},
).lean();
for (const user of arrusers) {
const mytitle = tools.convertSpecialTags(user, params.title);
const mycontent = tools.convertSpecialTags(user, params.content);
if (params.sendreally) {
if (tools.isBitActive(params.typesend,
shared_consts.TypeSend.PUSH_NOTIFICATION)) {
tools.sendNotificationToUser(user._id, mytitle, mycontent, params.openUrl, params.openUrl2, params.tag,
params.actions).
then(ris => {
}).
catch(e => {
console.error(e.message);
});
} else if (tools.isBitActive(params.typesend, shared_consts.TypeSend.TELEGRAM)) {
const telegid = user.profile.teleg_id;
if (telegid > 0) {
telegrambot.local_sendMsgTelegramByIdTelegram(idapp, telegid, mycontent);
}
}
}
numrec++;
if (params.sendreally) {
nummsgsent++;
}
}
}
return {
numrec,
nummsgsent,
};
} catch (e) {
console.error('SendMsgToParam', e);
}
},
SendMsgToAll: async function(idapp, params) {
params.typemsg = shared_consts.TypeMsg.SEND_TO_ALL;
params.sendreally = true;
params.typesend = shared_consts.TypeSend.PUSH_NOTIFICATION;
return this.SendMsgToParam(idapp, params);
},
}; };

View File

@@ -90,7 +90,7 @@ module.exports = {
TABLES_MYBACHECAS: 'mybachecas', TABLES_MYBACHECAS: 'mybachecas',
TABLES_MYGOODS: 'mygoods', TABLES_MYGOODS: 'mygoods',
TABLES_ENABLE_GETREC_BYID: ['mybachecas'], TABLES_ENABLE_GETREC_BYID: ['mybachecas', 'myskills', 'mygoods'],
TABLES_USER_INCLUDE_MY: ['mygroups'], TABLES_USER_INCLUDE_MY: ['mygroups'],
TABLES_GETCOMPLETEREC: ['myskills', 'mybachecas', 'mygoods'], TABLES_GETCOMPLETEREC: ['myskills', 'mybachecas', 'mygoods'],
@@ -200,6 +200,9 @@ module.exports = {
SEND_TO_CONSIGLIO: 5, SEND_TO_CONSIGLIO: 5,
SEND_TO_NON_SOCI: 10, SEND_TO_NON_SOCI: 10,
SEND_TO_PAOLO: 20, SEND_TO_PAOLO: 20,
SEND_TO_USER: 25,
SEND_TO_GROUP: 30,
SEND_TO_MYSELF: 40,
}, },
TypeMsg_Actions: { TypeMsg_Actions: {
@@ -217,6 +220,7 @@ module.exports = {
SET_VALBYTABLE: 410, SET_VALBYTABLE: 410,
ZOOM_GIA_PARTECIPATO: 510, ZOOM_GIA_PARTECIPATO: 510,
REGISTRATION: 6, REGISTRATION: 6,
RICHIESTA_GRUPPO: 10,
}, },
OrderStatus: { OrderStatus: {
@@ -245,6 +249,20 @@ module.exports = {
Need_Aportador_On_DataReg_To_Verify_Reg: 4, Need_Aportador_On_DataReg_To_Verify_Reg: 4,
}, },
MsgTeleg: {
SHARE_MSGREG: 1
},
TypeMsgTemplate: {
MSG_BENVENUTO: 2010,
MS_SHARE_LINK: 2000
},
TypeSend: {
PUSH_NOTIFICATION: 1,
TELEGRAM: 2,
},
fieldsUserToChange() { fieldsUserToChange() {
return [ return [
'_id', '_id',