activitypub: remove sending read receipts for chat
Changelog: Removed
This commit is contained in:
parent
6501c542b2
commit
1098b3a038
3 changed files with 2 additions and 30 deletions
|
@ -10,7 +10,6 @@ import { toArray } from '@/prelude/array.js';
|
||||||
import { renderReadActivity } from '@/remote/activitypub/renderer/read.js';
|
import { renderReadActivity } from '@/remote/activitypub/renderer/read.js';
|
||||||
import { renderActivity } from '@/remote/activitypub/renderer/index.js';
|
import { renderActivity } from '@/remote/activitypub/renderer/index.js';
|
||||||
import { deliver } from '@/queue/index.js';
|
import { deliver } from '@/queue/index.js';
|
||||||
import orderedCollection from '@/remote/activitypub/renderer/ordered-collection.js';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark messages as read
|
* Mark messages as read
|
||||||
|
@ -133,18 +132,3 @@ export async function readGroupMessagingMessage(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deliverReadActivity(user: { id: User['id']; host: null; }, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) {
|
|
||||||
const contents = toArray(messages)
|
|
||||||
.filter(x => x.uri)
|
|
||||||
.map(x => renderReadActivity(user, x));
|
|
||||||
|
|
||||||
if (contents.length > 1) {
|
|
||||||
const collection = orderedCollection(null, contents.length, undefined, undefined, contents);
|
|
||||||
deliver(user, renderActivity(collection), recipient.inbox);
|
|
||||||
} else {
|
|
||||||
for (const content of contents) {
|
|
||||||
deliver(user, renderActivity(content), recipient.inbox);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import define from '@/server/api/define.js';
|
||||||
import { ApiError } from '@/server/api/error.js';
|
import { ApiError } from '@/server/api/error.js';
|
||||||
import { getUser } from '@/server/api/common/getters.js';
|
import { getUser } from '@/server/api/common/getters.js';
|
||||||
import { makePaginationQuery } from '@/server/api/common/make-pagination-query.js';
|
import { makePaginationQuery } from '@/server/api/common/make-pagination-query.js';
|
||||||
import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '@/server/api/common/read-messaging-message.js';
|
import { readUserMessagingMessage, readGroupMessagingMessage } from '@/server/api/common/read-messaging-message.js';
|
||||||
|
|
||||||
export const meta = {
|
export const meta = {
|
||||||
tags: ['messaging'],
|
tags: ['messaging'],
|
||||||
|
@ -75,11 +75,6 @@ export default define(meta, paramDef, async (ps, user) => {
|
||||||
// Mark all as read
|
// Mark all as read
|
||||||
if (ps.markAsRead) {
|
if (ps.markAsRead) {
|
||||||
readUserMessagingMessage(user.id, recipient.id, messages.filter(m => m.recipientId === user.id).map(x => x.id));
|
readUserMessagingMessage(user.id, recipient.id, messages.filter(m => m.recipientId === user.id).map(x => x.id));
|
||||||
|
|
||||||
// リモートユーザーとのメッセージだったら既読配信
|
|
||||||
if (Users.isLocalUser(user) && Users.isRemoteUser(recipient)) {
|
|
||||||
deliverReadActivity(user, recipient, messages);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, {
|
return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { UserGroupJoinings, Users, MessagingMessages } from '@/models/index.js';
|
import { UserGroupJoinings, Users, MessagingMessages } from '@/models/index.js';
|
||||||
import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js';
|
import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js';
|
||||||
import { UserGroup } from '@/models/entities/user-group.js';
|
import { UserGroup } from '@/models/entities/user-group.js';
|
||||||
import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '@/server/api/common/read-messaging-message.js';
|
import { readUserMessagingMessage, readGroupMessagingMessage } from '@/server/api/common/read-messaging-message.js';
|
||||||
import Channel from '@/server/api/stream/channel.js';
|
import Channel from '@/server/api/stream/channel.js';
|
||||||
import { StreamMessages } from '@/server/api/stream/types.js';
|
import { StreamMessages } from '@/server/api/stream/types.js';
|
||||||
|
|
||||||
|
@ -69,13 +69,6 @@ export default class extends Channel {
|
||||||
case 'read':
|
case 'read':
|
||||||
if (this.otherpartyId) {
|
if (this.otherpartyId) {
|
||||||
readUserMessagingMessage(this.user!.id, this.otherpartyId, [body.id]);
|
readUserMessagingMessage(this.user!.id, this.otherpartyId, [body.id]);
|
||||||
|
|
||||||
// リモートユーザーからのメッセージだったら既読配信
|
|
||||||
if (Users.isLocalUser(this.user!) && Users.isRemoteUser(this.otherparty!)) {
|
|
||||||
MessagingMessages.findOneBy({ id: body.id }).then(message => {
|
|
||||||
if (message) deliverReadActivity(this.user as ILocalUser, this.otherparty as IRemoteUser, message);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else if (this.groupId) {
|
} else if (this.groupId) {
|
||||||
readGroupMessagingMessage(this.user!.id, this.groupId, [body.id]);
|
readGroupMessagingMessage(this.user!.id, this.groupId, [body.id]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue