summaryrefslogtreecommitdiff
path: root/src/server/api/stream
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-01-16 02:30:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-01-16 02:30:55 +0900
commitc2f6b099692520548bd4218ae37a4917c60343af (patch)
treedddb51c4c80cecac1563fa14b5b3c0345c716012 /src/server/api/stream
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-c2f6b099692520548bd4218ae37a4917c60343af.tar.gz
sharkey-c2f6b099692520548bd4218ae37a4917c60343af.tar.bz2
sharkey-c2f6b099692520548bd4218ae37a4917c60343af.zip
disableLocalTimeline機能を強化
* ストリームだけではなくAPIも無効に * モデレーターは無効の場合でも見れるように * グローバルタイムラインも無効に(連合数が少ないインスタンスではグローバルタイムラインは実質的にローカルタイムラインと同一なので)
Diffstat (limited to 'src/server/api/stream')
-rw-r--r--src/server/api/stream/channels/global-timeline.ts6
-rw-r--r--src/server/api/stream/channels/hybrid-timeline.ts4
-rw-r--r--src/server/api/stream/channels/local-timeline.ts6
3 files changed, 16 insertions, 0 deletions
diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts
index c5499801ed..611d5a6aef 100644
--- a/src/server/api/stream/channels/global-timeline.ts
+++ b/src/server/api/stream/channels/global-timeline.ts
@@ -3,6 +3,7 @@ import Mute from '../../../../models/mute';
import { pack } from '../../../../models/note';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
+import fetchMeta from '../../../../misc/fetch-meta';
export default class extends Channel {
public readonly chName = 'globalTimeline';
@@ -13,6 +14,11 @@ export default class extends Channel {
@autobind
public async init(params: any) {
+ const meta = await fetchMeta();
+ if (meta.disableLocalTimeline) {
+ if (this.user == null || (!this.user.isAdmin && !this.user.isModerator)) return;
+ }
+
// Subscribe events
this.subscriber.on('globalTimeline', this.onNote);
diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts
index 15a516b0c0..e573d27ee8 100644
--- a/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/src/server/api/stream/channels/hybrid-timeline.ts
@@ -3,6 +3,7 @@ import Mute from '../../../../models/mute';
import { pack } from '../../../../models/note';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
+import fetchMeta from '../../../../misc/fetch-meta';
export default class extends Channel {
public readonly chName = 'hybridTimeline';
@@ -13,6 +14,9 @@ export default class extends Channel {
@autobind
public async init(params: any) {
+ const meta = await fetchMeta();
+ if (meta.disableLocalTimeline && !this.user.isAdmin && !this.user.isModerator) return;
+
// Subscribe events
this.subscriber.on('hybridTimeline', this.onNewNote);
this.subscriber.on(`hybridTimeline:${this.user._id}`, this.onNewNote);
diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts
index a26f71af8e..8e490677d3 100644
--- a/src/server/api/stream/channels/local-timeline.ts
+++ b/src/server/api/stream/channels/local-timeline.ts
@@ -3,6 +3,7 @@ import Mute from '../../../../models/mute';
import { pack } from '../../../../models/note';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
+import fetchMeta from '../../../../misc/fetch-meta';
export default class extends Channel {
public readonly chName = 'localTimeline';
@@ -13,6 +14,11 @@ export default class extends Channel {
@autobind
public async init(params: any) {
+ const meta = await fetchMeta();
+ if (meta.disableLocalTimeline) {
+ if (this.user == null || (!this.user.isAdmin && !this.user.isModerator)) return;
+ }
+
// Subscribe events
this.subscriber.on('localTimeline', this.onNote);