1
0
mirror of https://github.com/MisskeyIO/misskey synced 2024-11-27 14:28:49 +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 } & ( private isQuote(note: Option): note is Option & { renote: MiNote } & (
{ text: string } | { cw: string } | { reply: MiNote } | { poll: IPoll } | { files: MiDriveFile[] } { 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 && ( return note.renote != null && (
note.text != null || note.text != null ||
note.reply != 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 { export function isQuote(note: Renote): note is Quote {
// NOTE: SYNC WITH NoteCreateService.isQuote // NOTE: SYNC WITH NoteCreateService.isQuote
return note.text != null || return note.renoteId != null && (
note.text != null ||
note.cw != null || note.cw != null ||
note.replyId != null || note.replyId != null ||
note.hasPoll || note.hasPoll ||
note.fileIds.length > 0; note.fileIds.length > 0
);
} }
type PackedRenote = type PackedRenote =
@ -59,9 +61,11 @@ export function isRenotePacked(note: Packed<'Note'>): note is PackedRenote {
} }
export function isQuotePacked(note: PackedRenote): note is PackedQuote { export function isQuotePacked(note: PackedRenote): note is PackedQuote {
return note.text != null || return note.renoteId != null && (
note.text != null ||
note.cw != null || note.cw != null ||
note.replyId != null || note.replyId != null ||
note.poll != 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 (!this.withRenotes) return;
if (note.renote.reply) { if (note.renote.reply) {
const reply = 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 (!this.withRenotes) return;
if (note.renote.reply) { if (note.renote.reply) {
const reply = 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 (!this.withRenotes) return;
if (note.renote.reply) { if (note.renote.reply) {
const reply = 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 (!this.withRenotes) return;
if (note.renote.reply) { if (note.renote.reply) {
const reply = 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) { if (note.renote.reply) {
const reply = note.renote.reply; const reply = note.renote.reply;
// 自分のフォローしていないユーザーの visibility: followers な投稿への返信のリノートは弾く // 自分のフォローしていないユーザーの 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 (!this.withRenotes) return;
if (note.renote.reply) { if (note.renote.reply) {
const reply = note.renote.reply; const reply = note.renote.reply;