mirror of
https://git.sr.ht/~emerson/reflectionircd
synced 2025-04-13 09:59:52 +00:00
add notice for encrypted messages
This commit is contained in:
parent
394a22738e
commit
8214668f14
1 changed files with 24 additions and 3 deletions
|
@ -196,6 +196,9 @@ export class Server {
|
||||||
case 'm.room.canonical_alias':
|
case 'm.room.canonical_alias':
|
||||||
this.updateRoomName(nextEvent, targetChannel);
|
this.updateRoomName(nextEvent, targetChannel);
|
||||||
break;
|
break;
|
||||||
|
case 'm.room.encrypted':
|
||||||
|
this.handleEncryptedMessage(nextEvent, targetChannel);
|
||||||
|
break;
|
||||||
case 'm.room.guest_access':
|
case 'm.room.guest_access':
|
||||||
this.handleMatrixGuestAccess(nextEvent, targetChannel);
|
this.handleMatrixGuestAccess(nextEvent, targetChannel);
|
||||||
break;
|
break;
|
||||||
|
@ -208,10 +211,9 @@ export class Server {
|
||||||
case 'm.room.member':
|
case 'm.room.member':
|
||||||
this.handleMatrixMember(nextEvent, targetChannel);
|
this.handleMatrixMember(nextEvent, targetChannel);
|
||||||
break;
|
break;
|
||||||
case 'm.room.message': {
|
case 'm.room.message':
|
||||||
this.handleMatrixMessage(nextEvent, targetChannel);
|
this.handleMatrixMessage(nextEvent, targetChannel);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case 'm.room.power_levels':
|
case 'm.room.power_levels':
|
||||||
this.handleMatrixPL(nextEvent, targetChannel);
|
this.handleMatrixPL(nextEvent, targetChannel);
|
||||||
break;
|
break;
|
||||||
|
@ -250,7 +252,8 @@ export class Server {
|
||||||
case 'org.matrix.msc3381.poll.start':
|
case 'org.matrix.msc3381.poll.start':
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.log(`${targetChannel.name}: ${nextEvent}`);
|
console.log(`${targetChannel.name}:`);
|
||||||
|
console.log(nextEvent);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -303,6 +306,24 @@ export class Server {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleEncryptedMessage(event: any, targetChannel: Channel) {
|
||||||
|
const sourceUser = this.getOrCreateMatrixUser(event["sender"]);
|
||||||
|
if (!targetChannel.matrixUsers.has(sourceUser.nick)) {
|
||||||
|
targetChannel.matrixUsers.set(sourceUser.nick, sourceUser);
|
||||||
|
const prefix = sourceUser.getMask();
|
||||||
|
const joinTags = new Map([["account", sourceUser.accountName], ['time', new Date(event["origin_server_ts"]).toISOString()]])
|
||||||
|
this.sendToAllWithCap('extended-join', prefix, "JOIN", [targetChannel.name, sourceUser.accountName, sourceUser.realname], joinTags);
|
||||||
|
this.sendToAllWithoutCap('extended-join', prefix, "JOIN", [targetChannel.name], joinTags);
|
||||||
|
}
|
||||||
|
const messageTags = new Map();
|
||||||
|
messageTags.set('msgid', event["event_id"]);
|
||||||
|
messageTags.set('time', new Date(event["origin_server_ts"]).toISOString());
|
||||||
|
messageTags.set('account', sourceUser.accountName);
|
||||||
|
this.clients.forEach((channel) => {
|
||||||
|
channel.sendMessage(sourceUser.getMask(), 'NOTICE', [targetChannel.name, "Sent an encrypted message, use another client to view"], messageTags);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
handleMatrixGuestAccess(event: any, targetChannel: Channel) {
|
handleMatrixGuestAccess(event: any, targetChannel: Channel) {
|
||||||
const rule = event["content"]?.["guest_access"];
|
const rule = event["content"]?.["guest_access"];
|
||||||
if (!rule) {
|
if (!rule) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue