Passive private receipt support

This commit is contained in:
greentore 2023-02-06 18:10:37 +01:00
parent a6fb44e1ab
commit f008c7285b
2 changed files with 16 additions and 10 deletions

View file

@ -383,18 +383,20 @@ class Notifications extends EventEmitter {
});
this.matrixClient.on('Room.receipt', (mEvent, room) => {
if (mEvent.getType() === 'm.receipt') {
if (room.isSpaceRoom()) return;
if (mEvent.getType() !== 'm.receipt' || room.isSpaceRoom()) return;
const content = mEvent.getContent();
const readedEventId = Object.keys(content)[0];
const readerUserId = Object.keys(content[readedEventId]['m.read'])[0];
if (readerUserId !== this.matrixClient.getUserId()) return;
const userId = this.matrixClient.getUserId();
Object.keys(content).forEach((eventId) => {
Object.entries(content[eventId]).forEach(([receiptType, receipt]) => {
if (!cons.supportReceiptTypes.includes(receiptType)) return;
if (Object.keys(receipt || {}).includes(userId)) {
this.deleteNoti(room.roomId);
this._deletePopupRoomNotis(room.roomId);
}
});
});
});
this.matrixClient.on('Room.myMembership', (room, membership) => {
if (membership === 'leave' && this.hasNoti(room.roomId)) {

View file

@ -19,6 +19,10 @@ const cons = {
'm.room.member',
'm.sticker',
],
supportReceiptTypes: [
'm.read',
'm.read.private',
],
notifs: {
DEFAULT: 'default',
ALL_MESSAGES: 'all_messages',