1
0
mirror of https://github.com/MisskeyIO/misskey synced 2024-11-23 14:46:40 +09:00

fix(backend): リノートの評価の順番を変更、isQuote・isQuotePackedの挙動を修正 (MisskeyIO#622)

This commit is contained in:
まっちゃとーにゅ 2024-04-29 07:23:34 +09:00 committed by GitHub
parent ba037963e8
commit dc9a839626
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 15 additions and 11 deletions

View File

@ -791,7 +791,7 @@ export class NoteCreateService implements OnApplicationShutdown {
private isQuote(note: Option): note is Option & { renote: MiNote } & (
{ text: string } | { cw: string } | { reply: MiNote } | { poll: IPoll } | { files: MiDriveFile[] }
) {
// NOTE: SYNC WITH misc/is-quote.ts
// NOTE: SYNC WITH misc/is-renote.ts
return note.renote != null && (
note.text != null ||
note.reply != null ||

View File

@ -29,11 +29,13 @@ export function isRenote(note: MiNote): note is Renote {
export function isQuote(note: Renote): note is Quote {
// NOTE: SYNC WITH NoteCreateService.isQuote
return note.text != null ||
return note.renoteId != null && (
note.text != null ||
note.cw != null ||
note.replyId != null ||
note.hasPoll ||
note.fileIds.length > 0;
note.fileIds.length > 0
);
}
type PackedRenote =
@ -59,9 +61,11 @@ export function isRenotePacked(note: Packed<'Note'>): note is PackedRenote {
}
export function isQuotePacked(note: PackedRenote): note is PackedQuote {
return note.text != null ||
return note.renoteId != null && (
note.text != null ||
note.cw != null ||
note.replyId != null ||
note.poll != null ||
(note.fileIds != null && note.fileIds.length > 0);
(note.fileIds != null && note.fileIds.length > 0)
);
}

View File

@ -67,7 +67,7 @@ class GlobalTimelineChannel extends Channel {
}
// 純粋なリノート(引用リノートでないリノート)の場合
if (isRenotePacked(note) && !isQuotePacked(note) && note.renote) {
if (note.renote && isRenotePacked(note) && !isQuotePacked(note)) {
if (!this.withRenotes) return;
if (note.renote.reply) {
const reply = note.renote.reply;

View File

@ -71,7 +71,7 @@ class HomeTimelineChannel extends Channel {
}
// 純粋なリノート(引用リノートでないリノート)の場合
if (isRenotePacked(note) && !isQuotePacked(note) && note.renote) {
if (note.renote && isRenotePacked(note) && !isQuotePacked(note)) {
if (!this.withRenotes) return;
if (note.renote.reply) {
const reply = note.renote.reply;

View File

@ -85,7 +85,7 @@ class HybridTimelineChannel extends Channel {
}
// 純粋なリノート(引用リノートでないリノート)の場合
if (isRenotePacked(note) && !isQuotePacked(note) && note.renote) {
if (note.renote && isRenotePacked(note) && !isQuotePacked(note)) {
if (!this.withRenotes) return;
if (note.renote.reply) {
const reply = note.renote.reply;

View File

@ -70,7 +70,7 @@ class LocalTimelineChannel extends Channel {
}
// 純粋なリノート(引用リノートでないリノート)の場合
if (isRenotePacked(note) && !isQuotePacked(note) && note.renote) {
if (note.renote && isRenotePacked(note) && !isQuotePacked(note)) {
if (!this.withRenotes) return;
if (note.renote.reply) {
const reply = note.renote.reply;

View File

@ -54,7 +54,7 @@ class RoleTimelineChannel extends Channel {
}
// 純粋なリノート(引用リノートでないリノート)の場合
if (isRenotePacked(note) && !isQuotePacked(note) && note.renote) {
if (note.renote && isRenotePacked(note) && !isQuotePacked(note)) {
if (note.renote.reply) {
const reply = note.renote.reply;
// 自分のフォローしていないユーザーの visibility: followers な投稿への返信のリノートは弾く

View File

@ -110,7 +110,7 @@ class UserListChannel extends Channel {
}
// 純粋なリノート(引用リノートでないリノート)の場合
if (isRenotePacked(note) && !isQuotePacked(note) && note.renote) {
if (note.renote && isRenotePacked(note) && !isQuotePacked(note)) {
if (!this.withRenotes) return;
if (note.renote.reply) {
const reply = note.renote.reply;