summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/stream
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-06-01 15:02:57 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-06-01 15:02:57 -0400
commitbce38c295fb1551d5d1f58e1580636d24e248788 (patch)
tree58f39749ccc31c98b8a6338017630c045c107ecc /packages/backend/src/server/api/stream
parentfix withRenotes check in generateMutedUserRenotesQueryForNotes (diff)
downloadsharkey-bce38c295fb1551d5d1f58e1580636d24e248788.tar.gz
sharkey-bce38c295fb1551d5d1f58e1580636d24e248788.tar.bz2
sharkey-bce38c295fb1551d5d1f58e1580636d24e248788.zip
sync up logic between notes/bubble-timeline.ts and channels/bubble-timeline.ts
Diffstat (limited to 'packages/backend/src/server/api/stream')
-rw-r--r--packages/backend/src/server/api/stream/channel.ts3
-rw-r--r--packages/backend/src/server/api/stream/channels/bubble-timeline.ts11
2 files changed, 12 insertions, 2 deletions
diff --git a/packages/backend/src/server/api/stream/channel.ts b/packages/backend/src/server/api/stream/channel.ts
index 9af816dfbb..204ea9f705 100644
--- a/packages/backend/src/server/api/stream/channel.ts
+++ b/packages/backend/src/server/api/stream/channel.ts
@@ -65,6 +65,9 @@ export default abstract class Channel {
* ミュートとブロックされてるを処理する
*/
protected isNoteMutedOrBlocked(note: Packed<'Note'>): boolean {
+ // Ignore notes that require sign-in
+ if (note.user.requireSigninToViewContents && !this.user) return true;
+
// 流れてきたNoteがインスタンスミュートしたインスタンスが関わる
if (isInstanceMuted(note, new Set<string>(this.userProfile?.mutedInstances ?? [])) && !this.following[note.userId]) return true;
diff --git a/packages/backend/src/server/api/stream/channels/bubble-timeline.ts b/packages/backend/src/server/api/stream/channels/bubble-timeline.ts
index d29101cbc5..88cb9937b3 100644
--- a/packages/backend/src/server/api/stream/channels/bubble-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/bubble-timeline.ts
@@ -12,6 +12,7 @@ import { RoleService } from '@/core/RoleService.js';
import type { MiMeta } from '@/models/Meta.js';
import { isRenotePacked, isQuotePacked } from '@/misc/is-renote.js';
import type { JsonObject } from '@/misc/json-value.js';
+import { UtilityService } from '@/core/UtilityService.js';
import Channel, { MiChannelService } from '../channel.js';
class BubbleTimelineChannel extends Channel {
@@ -26,6 +27,7 @@ class BubbleTimelineChannel extends Channel {
constructor(
private metaService: MetaService,
private roleService: RoleService,
+ private readonly utilityService: UtilityService,
noteEntityService: NoteEntityService,
id: string,
@@ -56,12 +58,15 @@ class BubbleTimelineChannel extends Channel {
if (note.visibility !== 'public') return;
if (note.channelId != null) return;
if (note.user.host == null) return;
- if (!this.instance.bubbleInstances.includes(note.user.host)) return;
+ if (!this.utilityService.isBubbledHost(note.user.host)) return;
if (note.user.requireSigninToViewContents && this.user == null) return;
if (isRenotePacked(note) && !isQuotePacked(note) && !this.withRenotes) return;
- if (note.user.isSilenced && !this.following[note.userId] && note.userId !== this.user!.id) return;
+ if (note.user.isSilenced) {
+ if (!this.user) return;
+ if (note.userId !== this.user.id && !this.following[note.userId]) return;
+ }
if (this.isNoteMutedOrBlocked(note)) return;
@@ -88,6 +93,7 @@ export class BubbleTimelineChannelService implements MiChannelService<false> {
private metaService: MetaService,
private roleService: RoleService,
private noteEntityService: NoteEntityService,
+ private readonly utilityService: UtilityService,
) {
}
@@ -96,6 +102,7 @@ export class BubbleTimelineChannelService implements MiChannelService<false> {
return new BubbleTimelineChannel(
this.metaService,
this.roleService,
+ this.utilityService,
this.noteEntityService,
id,
connection,