summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/stream
diff options
context:
space:
mode:
authorMar0xy <marie@kaifa.ch>2023-10-18 07:29:16 +0200
committerMar0xy <marie@kaifa.ch>2023-10-18 07:29:16 +0200
commitc21d2556043e8833426c5523b753593b0fa196ae (patch)
treeb367acc3d46f890ab09bfdcb0ce933271891f349 /packages/backend/src/server/api/stream
parentfix: reports not sending email (diff)
downloadsharkey-c21d2556043e8833426c5523b753593b0fa196ae.tar.gz
sharkey-c21d2556043e8833426c5523b753593b0fa196ae.tar.bz2
sharkey-c21d2556043e8833426c5523b753593b0fa196ae.zip
add: Bot Trending Toggle, Hide Bot in Timeline client option
Diffstat (limited to 'packages/backend/src/server/api/stream')
-rw-r--r--packages/backend/src/server/api/stream/channels/global-timeline.ts3
-rw-r--r--packages/backend/src/server/api/stream/channels/hybrid-timeline.ts3
-rw-r--r--packages/backend/src/server/api/stream/channels/local-timeline.ts3
3 files changed, 9 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/stream/channels/global-timeline.ts b/packages/backend/src/server/api/stream/channels/global-timeline.ts
index c499d1787e..58e53fdd8c 100644
--- a/packages/backend/src/server/api/stream/channels/global-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/global-timeline.ts
@@ -20,6 +20,7 @@ class GlobalTimelineChannel extends Channel {
public static requireCredential = false;
private withRenotes: boolean;
private withFiles: boolean;
+ private withBots: boolean;
constructor(
private metaService: MetaService,
@@ -40,6 +41,7 @@ class GlobalTimelineChannel extends Channel {
this.withRenotes = params.withRenotes ?? true;
this.withFiles = params.withFiles ?? false;
+ this.withBots = params.withBots ?? true;
// Subscribe events
this.subscriber.on('notesStream', this.onNote);
@@ -48,6 +50,7 @@ class GlobalTimelineChannel extends Channel {
@bindThis
private async onNote(note: Packed<'Note'>) {
if (this.withFiles && (note.fileIds == null || note.fileIds.length === 0)) return;
+ if (!this.withBots && note.user.isBot) return;
if (note.visibility !== 'public') return;
if (note.channelId != null) return;
diff --git a/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts b/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts
index 83f0bccd90..fd9079849d 100644
--- a/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts
@@ -20,6 +20,7 @@ class HybridTimelineChannel extends Channel {
public static requireCredential = true;
private withRenotes: boolean;
private withReplies: boolean;
+ private withBots: boolean;
private withFiles: boolean;
constructor(
@@ -41,6 +42,7 @@ class HybridTimelineChannel extends Channel {
this.withRenotes = params.withRenotes ?? true;
this.withReplies = params.withReplies ?? false;
+ this.withBots = params.withBots ?? true;
this.withFiles = params.withFiles ?? false;
// Subscribe events
@@ -50,6 +52,7 @@ class HybridTimelineChannel extends Channel {
@bindThis
private async onNote(note: Packed<'Note'>) {
if (this.withFiles && (note.fileIds == null || note.fileIds.length === 0)) return;
+ if (!this.withBots && note.user.isBot) return;
// チャンネルの投稿ではなく、自分自身の投稿 または
// チャンネルの投稿ではなく、その投稿のユーザーをフォローしている または
diff --git a/packages/backend/src/server/api/stream/channels/local-timeline.ts b/packages/backend/src/server/api/stream/channels/local-timeline.ts
index a211041134..1e15ed0feb 100644
--- a/packages/backend/src/server/api/stream/channels/local-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/local-timeline.ts
@@ -19,6 +19,7 @@ class LocalTimelineChannel extends Channel {
public static requireCredential = false;
private withRenotes: boolean;
private withReplies: boolean;
+ private withBots: boolean;
private withFiles: boolean;
constructor(
@@ -40,6 +41,7 @@ class LocalTimelineChannel extends Channel {
this.withRenotes = params.withRenotes ?? true;
this.withReplies = params.withReplies ?? false;
+ this.withBots = params.withBots ?? true;
this.withFiles = params.withFiles ?? false;
// Subscribe events
@@ -49,6 +51,7 @@ class LocalTimelineChannel extends Channel {
@bindThis
private async onNote(note: Packed<'Note'>) {
if (this.withFiles && (note.fileIds == null || note.fileIds.length === 0)) return;
+ if (!this.withBots && note.user.isBot) return;
if (note.user.host !== null) return;
if (note.visibility !== 'public') return;