mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-12-23 04:43:09 +02:00
merge: some fixes for note edits (!437)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/437 Approved-by: Amelia Yukii <amelia.yukii@shourai.de> Approved-by: Marie <marie@kaifa.ch>
This commit is contained in:
commit
f26eb25a78
2 changed files with 14 additions and 2 deletions
|
@ -241,6 +241,14 @@ export class NoteEditService implements OnApplicationShutdown {
|
|||
throw new Error('not the author');
|
||||
}
|
||||
|
||||
// we never want to change the replyId, so fetch the original "parent"
|
||||
if (oldnote.replyId) {
|
||||
data.reply = await this.notesRepository.findOneBy({ id: oldnote.replyId });
|
||||
}
|
||||
else {
|
||||
data.reply = undefined;
|
||||
}
|
||||
|
||||
// チャンネル外にリプライしたら対象のスコープに合わせる
|
||||
// (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで)
|
||||
if (data.reply && data.channel && data.reply.channelId !== data.channel.id) {
|
||||
|
@ -435,7 +443,7 @@ export class NoteEditService implements OnApplicationShutdown {
|
|||
id: oldnote.id,
|
||||
updatedAt: data.updatedAt ? data.updatedAt : new Date(),
|
||||
fileIds: data.files ? data.files.map(file => file.id) : [],
|
||||
replyId: data.reply ? data.reply.id : null,
|
||||
replyId: oldnote.replyId,
|
||||
renoteId: data.renote ? data.renote.id : null,
|
||||
channelId: data.channel ? data.channel.id : null,
|
||||
threadId: data.reply
|
||||
|
|
|
@ -66,7 +66,11 @@ export class NoteReadService implements OnApplicationShutdown {
|
|||
noteUserId: note.userId,
|
||||
};
|
||||
|
||||
await this.noteUnreadsRepository.insert(unread);
|
||||
/* we may be called from NoteEditService, for a note that's
|
||||
already present in the `note_unread` table: `upsert` makes sure
|
||||
we don't throw a "duplicate key" error, while still updating
|
||||
the other columns if they've changed */
|
||||
await this.noteUnreadsRepository.upsert(unread,['userId', 'noteId']);
|
||||
|
||||
// 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する
|
||||
setTimeout(2000, 'unread note', { signal: this.#shutdownController.signal }).then(async () => {
|
||||
|
|
Loading…
Reference in a new issue