Notifica Telegram e Push quando mandi la stretta di mano

This commit is contained in:
Surya Paolo
2023-06-07 10:14:57 +02:00
parent 84328e7bcd
commit 9e499b8f43
7 changed files with 106 additions and 52 deletions

View File

@@ -25,3 +25,7 @@ Gio 05/01 ORE 19:28: USER [paoloar77]: vai al sito
Gio 05/01 ORE 19:28: USER [paoloar77]: link da condividere Gio 05/01 ORE 19:28: USER [paoloar77]: link da condividere
Gio 16/02 ORE 18:14: USER [paoloar77]: vai al sito Gio 16/02 ORE 18:14: USER [paoloar77]: vai al sito
Mar 06/06 ORE 19:39: USER [paoloar77]: ciaooooooooooooooooo
Mar 06/06 ORE 19:54: USER [paoloar77]: dasjdalksjdasdklasjkldasjlkdjasl

13
logevents.txt Normal file
View File

@@ -0,0 +1,13 @@
Mar 06/06 ORE 19:06: 🤖: Da Sùrya (Paolo) undefined (paoloar77):
✅ SuryaArena2 è stato Abilitato correttamente (da paoloar77)!
Mar 06/06 ORE 19:07: 🤖: Da Sùrya (Paolo) undefined (paoloar77):
✅ SuryaArena2 è stato Abilitato correttamente (da paoloar77)!
Mar 06/06 ORE 19:38: 🤖: Da Sùrya (Paolo) undefined (paoloar77):
✅ SuryaArena2 è stato Abilitato correttamente (da paoloar77)!
Mar 06/06 ORE 19:39: 🤖: Da Sùrya (Paolo) undefined (paoloar77):
ciaooooooooooooooooo
Mar 06/06 ORE 19:49: 🤖: Da Sùrya (Paolo) undefined (paoloar77):
✅ SuryaArena2 è stato Abilitato correttamente (da paoloar77)!
Mar 06/06 ORE 19:54: 🤖: Da Sùrya (Paolo) undefined (paoloar77):
dasjdalksjdasdklasjkldasjlkdjasl

View File

@@ -14,6 +14,8 @@
"✅ %s accepted your Friendship request !": "✅ %s ha accettato la tua richiesta di Amicizia !", "✅ %s accepted your Friendship request !": "✅ %s ha accettato la tua richiesta di Amicizia !",
"✅ You have accepted %s' Friendship request!": "✅ Hai accettato la richiesta di Amicizia di %s !", "✅ You have accepted %s' Friendship request!": "✅ Hai accettato la richiesta di Amicizia di %s !",
"HANDSHAKE_SET": "<strong>%s</strong> ha comunicato che ti conosce personalmente e ha fiducia in te.", "HANDSHAKE_SET": "<strong>%s</strong> ha comunicato che ti conosce personalmente e ha fiducia in te.",
"HANDSHAKE_CONFIRMED": "🤝 Hai contraccambiato la fiducia in <strong>%s</strong>!",
"HANDSHAKE_ACCEPTED": "🤝 <strong>%s</strong> ha contraccambiato la fiducia in te !",
"GROUPS_ACCEPTED": "✅ Sei stato accettato a far parte del Gruppo %s (da parte di %s)", "GROUPS_ACCEPTED": "✅ Sei stato accettato a far parte del Gruppo %s (da parte di %s)",
"GROUPS_REFUSED": "❌ Ti è stato rifiutato l'accesso da %s a far parte del Gruppo %s. Se pensi sia un'errore, contatta l'amministratore del Gruppo.", "GROUPS_REFUSED": "❌ Ti è stato rifiutato l'accesso da %s a far parte del Gruppo %s. Se pensi sia un'errore, contatta l'amministratore del Gruppo.",
"GROUPS_REMOVED": "❌ l'utente %s è stato rimosso del Gruppo %s (da parte di %s)", "GROUPS_REMOVED": "❌ l'utente %s è stato rimosso del Gruppo %s (da parte di %s)",
@@ -95,5 +97,5 @@
"EVENT_SEND_MSG": "%s ha mandato un messaggio sull'evento %s: \n%s", "EVENT_SEND_MSG": "%s ha mandato un messaggio sull'evento %s: \n%s",
"SET_ATTEND": "%s ha detto che Parteciperà all'evento: %s", "SET_ATTEND": "%s ha detto che Parteciperà all'evento: %s",
"SET_ATTEND_OTHERS": "%s e altre %s persone hanno detto che Parteciperanno all'evento: %s", "SET_ATTEND_OTHERS": "%s e altre %s persone hanno detto che Parteciperanno all'evento: %s",
"CLICCA_QUI": "CLICCA_QUI" "CLICCA_QUI": "CLICCA QUI"
} }

View File

@@ -122,6 +122,7 @@ const SiteSchema = new Schema({
enableRegMultiChoice: { type: Boolean }, enableRegMultiChoice: { type: Boolean },
enableDebugOn: { type: Boolean }, enableDebugOn: { type: Boolean },
enabledRegNeedTelegram: { type: Boolean }, enabledRegNeedTelegram: { type: Boolean },
showViewEventi: { type: Boolean },
showViewGroups: { type: Boolean }, showViewGroups: { type: Boolean },
showViewCircuits: { type: Boolean }, showViewCircuits: { type: Boolean },
showViewUsers: { type: Boolean }, showViewUsers: { type: Boolean },

View File

@@ -2165,7 +2165,7 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
//} //}
} else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) { } else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) {
// Aggiungo la Stretta di mano a lui // Aggiungo la Stretta di mano a lui
const foundIfAlreadyFriend = await User.findOne({ const foundIfAlreadyHandshake = await User.findOne({
idapp, idapp,
username: usernameDest, username: usernameDest,
'profile.handshake': { 'profile.handshake': {
@@ -2175,7 +2175,7 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
let rec = null; let rec = null;
if (!foundIfAlreadyFriend) { if (!foundIfAlreadyHandshake) {
update = { update = {
$push: { $push: {
'profile.handshake': { 'profile.handshake': {
@@ -2186,12 +2186,28 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
}; };
rec = await User.updateOne({ idapp, username: usernameDest }, update); rec = await User.updateOne({ idapp, username: usernameDest }, update);
if (!disablenotif) { tools.sendNotificationByUsername(idapp, usernameDest, cmd, true, usernameOrig);
// Send a notification to the DESTINATION HANDSHAKE ! let req = tools.getReqByPar(idapp, usernameOrig);
let req = tools.getReqByPar(idapp, usernameOrig);
await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest }, true, shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE, if (rec) {
shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED); try {
if (!disablenotif) {
const userDest = await User.getRecLangAndIdByUsername(idapp, usernameDest);
const user = await User.getRecLangAndIdByUsername(idapp, usernameOrig);
const msgDest = i18n.__({ phrase: 'HANDSHAKE_CONFIRMED', locale: userDest.lang }, usernameDest);
const msgOrig = i18n.__({ phrase: 'HANDSHAKE_ACCEPTED', locale: user.lang }, usernameOrig);
await telegrambot.sendMsgTelegram(idapp, usernameOrig, msgDest);
await telegrambot.sendMsgTelegram(idapp, usernameDest, msgOrig);
}
} catch (e) {
console.error('Notification : ', e);
}
} }
// Send a notification to the DESTINATION HANDSHAKE !
// await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest }, false, shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE,
// shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED);
} }
const userprofile = await User.getInfoFriendByUsername(idapp, usernameDest); const userprofile = await User.getInfoFriendByUsername(idapp, usernameDest);
@@ -3409,8 +3425,8 @@ UserSchema.statics.getNameSurnameById = async function (idapp, userId) {
UserSchema.statics.getusersManagers = async function (idapp) { UserSchema.statics.getusersManagers = async function (idapp) {
const User = this; const User = this;
// Int32 mongodb 6.0
return await User.find({ idapp, 'profile.manage_telegram': true }, return await User.find({ idapp, 'profile.manage_telegram': true , perm: { $bitsAnySet: 0b010 } },
{ username: 1, 'profile.teleg_id': 1, perm: 1 }).then((arrrec) => { { username: 1, 'profile.teleg_id': 1, perm: 1 }).then((arrrec) => {
return (!!arrrec) ? arrrec : null; return (!!arrrec) ? arrrec : null;
}).catch((e) => { }).catch((e) => {
@@ -3418,6 +3434,19 @@ UserSchema.statics.getusersManagers = async function (idapp) {
}); });
}; };
UserSchema.statics.getusersAdmin = async function (idapp) {
const User = this;
// Int32 mongodb 6.0
return await User.find({ idapp, 'profile.manage_telegram': true, perm: { $bitsAnySet: 0b001 } },
{ username: 1, 'profile.teleg_id': 1, perm: 1 }).then((arrrec) => {
return (!!arrrec) ? arrrec : null;
}).catch((e) => {
console.error('getusersAdmin', e);
});
};
UserSchema.statics.getusersRespList = async function (idapp) { UserSchema.statics.getusersRespList = async function (idapp) {
const User = this; const User = this;
@@ -3500,7 +3529,7 @@ UserSchema.statics.isManagerByIdTeleg = async function (idapp, idtelegram) {
}, { 'profile.teleg_id': 1 }).then((rec) => { }, { 'profile.teleg_id': 1 }).then((rec) => {
return (!!rec && rec.profile.teleg_id === idtelegram); return (!!rec && rec.profile.teleg_id === idtelegram);
}).catch((e) => { }).catch((e) => {
console.error('getusersManagers', e); console.error('isManagerByIdTeleg', e);
return false; return false;
}); });
}; };

View File

@@ -709,7 +709,7 @@ const MyTelegramBot = {
MyForm = null) { MyForm = null) {
if (!idtelegram) if (!idtelegram)
return; return {text: ''};
const cl = getclTelegByidapp(idapp); const cl = getclTelegByidapp(idapp);
if (cl && idtelegram) { if (cl && idtelegram) {
@@ -718,6 +718,8 @@ const MyTelegramBot = {
chat_id, ripr_menuPrec); chat_id, ripr_menuPrec);
} }
return {text: ''};
}, },
deleteRecInMemByUsername: function (idapp, username_bo) { deleteRecInMemByUsername: function (idapp, username_bo) {
@@ -977,14 +979,14 @@ const MyTelegramBot = {
} else if (myfunc === shared_consts.CallFunz.RICHIESTA_HANDSHAKE) { } else if (myfunc === shared_consts.CallFunz.RICHIESTA_HANDSHAKE) {
sendnotif = true; sendnotif = true;
typedir = shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE; typedir = shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE;
typeid = shared_consts.TypeNotifs.ID_HANDSHAKE_NEW_REC; typeid = shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED;
paramsObj = { usernameDest: userDest }; paramsObj = { usernameDest: userDest };
domanda = printf(tools.gettranslate('RICHIESTA_HANDSHAKE', langdest), myuser.username) + '<br>' + struserinfomsg; domanda = printf(tools.gettranslate('RICHIESTA_HANDSHAKE', langdest), myuser.username) + '<br>' + struserinfomsg;
keyb = cl.getInlineKeyboard(myuser.lang, [ keyb = cl.getInlineKeyboard(myuser.lang, [
{ {
text: '✅🤝 Ricambia la fiducia', text: '✅🤝 Ricambia la stretta di mano',
callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + userDest + tools.SEP + '', callback_data: InlineConferma.RISPOSTA_SI + myfunc + tools.SEP + myuser.username + tools.SEP + userDest + tools.SEP + '',
}, },
]); ]);
@@ -1153,7 +1155,7 @@ sendMsgTelegramToTheAdminAllSites: async function (text, senzaintestazione) {
}, },
sendMsgTelegramToTheAdmin: async function (idapp, text, senzaintestazione) { sendMsgTelegramToTheAdmin: async function (idapp, text, senzaintestazione) {
const usersmanagers = await User.getusersManagers(idapp); const usersmanagers = await User.getusersAdmin(idapp);
let intestaz = emo.ROBOT_FACE + '[BOT-ADMIN]' + emo.ADMIN + ': '; let intestaz = emo.ROBOT_FACE + '[BOT-ADMIN]' + emo.ADMIN + ': ';
if (senzaintestazione) if (senzaintestazione)
@@ -1300,39 +1302,6 @@ sendMsgFromSiteToBotTelegram: async function (idapp, user, params) {
}; };
async function sendMsgTelegramToTheAdmin(idapp, text, msg) {
const usersmanagers = await User.getusersManagers(idapp);
const clorig = getclTelegByidapp(idapp);
const rec = clorig.getRecInMem(msg);
let username = '';
if (!!rec) {
username = rec.username_bo;
} else {
username = msg.chat.username;
}
text = emo.ROBOT_FACE + '[BOT-ADMIN]' + emo.ADMIN + ': Da ' +
msg.chat.first_name + ' ' + msg.chat.last_name + ' [' + username +
']: \n' + text;
tools.writeEventsLog(text);
if (usersmanagers) {
for (const rec of usersmanagers) {
if (User.isAdmin(rec.perm)) {
const idtelegram = rec.profile.teleg_id;
const cl = getclTelegByidapp(idapp);
if (cl && idtelegram) {
await cl.sendMsg(idtelegram, text);
}
await tools.snooze(300);
}
}
}
return true;
}
async function setVerifiedReg(idapp, lang, usernameorig, usernameDest) { async function setVerifiedReg(idapp, lang, usernameorig, usernameDest) {
try { try {
await User.setVerifiedByAportador(idapp, usernameorig, true); await User.setVerifiedByAportador(idapp, usernameorig, true);
@@ -1384,6 +1353,32 @@ async function local_sendMsgTelegramToTheManagers(
} }
return true; return true;
}
async function local_sendMsgTelegramToTheAdmin(
idapp, text, msg, username_bo) {
const usersAdmin = await User.getusersAdmin(idapp);
let username = msg.chat.username;
if (username_bo)
username = username_bo;
text = emo.ROBOT_FACE + ': Da ' + msg.chat.first_name + ' ' +
msg.chat.last_name + ' (' + username + '): \n' + text;
tools.writeEventsLog(text);
if (usersAdmin) {
for (const rec of usersAdmin) {
const idtelegram = rec.profile.teleg_id;
const cl = getclTelegByidapp(idapp);
if (cl && idtelegram) {
await cl.sendMsg(idtelegram, text, undefined, undefined, undefined,
undefined, true);
}
await tools.snooze(100);
}
}
return true;
} }
async function local_sendMsgTelegram(idapp, username, text) { async function local_sendMsgTelegram(idapp, username, text) {
@@ -3090,9 +3085,12 @@ class Telegram {
} }
const rec = this.getRecInMem(msg); const rec = this.getRecInMem(msg);
let testo = msg.text.toLowerCase().trim();
status = this.getstatus(rec); status = this.getstatus(rec);
if (status === Status.WAITFOR_USERNAME_TELEGRAM && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) { if (testo === Menu.EXIT_TELEGRAM) {
await this.menuExitToTelegram(msg);
}else if (status === Status.WAITFOR_USERNAME_TELEGRAM && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) {
// await this.setUsernameBo(msg); // await this.setUsernameBo(msg);
await this.settotheDatabase(msg); await this.settotheDatabase(msg);
} else if (status === Status.WAITFOR_USERNAME_INVITANTE && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) { } else if (status === Status.WAITFOR_USERNAME_INVITANTE && !this.selectMenuHelp(msg) && !this.selectMenuLang(msg)) {
@@ -4037,6 +4035,8 @@ if (true) {
await local_sendMsgTelegram(user.idapp, data.username, msgOrig); await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
await local_sendMsgTelegram(user.idapp, data.userDest, msgDest); await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
// Invia questo msg anche all'Admin
await local_sendMsgTelegramToTheAdmin(user.idapp, msgDest, msg, data.userDest);
} }
} else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.REGISTRATION) { } else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.REGISTRATION) {
@@ -4136,12 +4136,12 @@ if (true) {
if (userDest) { if (userDest) {
cmd = shared_consts.FRIENDSCMD.SETHANDSHAKE; cmd = shared_consts.FRIENDSCMD.SETHANDSHAKE;
const foundIfAlreadyFriend = await User.isMyHandShake(user.idapp, data.username, data.userDest); const foundIfAlreadyFriend = await User.isMyHandShake(user.idapp, data.userDest, data.username);
if (!foundIfAlreadyFriend) { if (!foundIfAlreadyFriend) {
// Aggiungilo nelle HandShake // Aggiungilo nelle HandShake
const req = tools.getReqByPar(user.idapp, username_action); const req = tools.getReqByPar(user.idapp, username_action);
const ris = await User.setFriendsCmd(req, user.idapp, data.username, data.userDest, cmd); const ris = await User.setFriendsCmd(req, user.idapp, data.userDest, data.username, cmd);
} }

View File

@@ -922,7 +922,12 @@ module.exports = {
} }
} else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) { } else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) {
// const foundIfAlready = await User.isMyHandShake(idapp, username, usernameOrig); const userrecDest = await User.getUserShortDataByUsername(idapp, usernameOrig);
const foundIfAlready = await User.isMyHandShake(idapp, username, usernameOrig);
if (!foundIfAlready) {
telegrambot.askConfirmationUserFriend(idapp, shared_consts.CallFunz.RICHIESTA_HANDSHAKE, userrecDest, username, usernameOrig);
}
} }
} }