summaryrefslogtreecommitdiff
path: root/src/server/api/stream/channels
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-01-30 04:37:25 +0900
committerGitHub <noreply@github.com>2020-01-30 04:37:25 +0900
commitf6154dc0af1a0d65819e87240f4385f9573095cb (patch)
tree699a5ca07d6727b7f8497d4769f25d6d62f94b5a /src/server/api/stream/channels
parentAdd Event activity-type support (#5785) (diff)
downloadsharkey-f6154dc0af1a0d65819e87240f4385f9573095cb.tar.gz
sharkey-f6154dc0af1a0d65819e87240f4385f9573095cb.tar.bz2
sharkey-f6154dc0af1a0d65819e87240f4385f9573095cb.zip
v12 (#5712)
Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com> Co-authored-by: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com>
Diffstat (limited to 'src/server/api/stream/channels')
-rw-r--r--src/server/api/stream/channels/antenna.ts41
-rw-r--r--src/server/api/stream/channels/ap-log.ts25
-rw-r--r--src/server/api/stream/channels/hybrid-timeline.ts2
-rw-r--r--src/server/api/stream/channels/index.ts6
-rw-r--r--src/server/api/stream/channels/notes-stats.ts38
5 files changed, 44 insertions, 68 deletions
diff --git a/src/server/api/stream/channels/antenna.ts b/src/server/api/stream/channels/antenna.ts
new file mode 100644
index 0000000000..714edb502d
--- /dev/null
+++ b/src/server/api/stream/channels/antenna.ts
@@ -0,0 +1,41 @@
+import autobind from 'autobind-decorator';
+import Channel from '../channel';
+import { Notes } from '../../../../models';
+import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
+
+export default class extends Channel {
+ public readonly chName = 'antenna';
+ public static shouldShare = false;
+ public static requireCredential = false;
+ private antennaId: string;
+
+ @autobind
+ public async init(params: any) {
+ this.antennaId = params.antennaId as string;
+
+ // Subscribe stream
+ this.subscriber.on(`antennaStream:${this.antennaId}`, this.onEvent);
+ }
+
+ @autobind
+ private async onEvent(data: any) {
+ const { type, body } = data;
+
+ if (type === 'note') {
+ const note = await Notes.pack(body.id, this.user, { detail: true });
+
+ // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
+ if (shouldMuteThisNote(note, this.muting)) return;
+
+ this.send('note', note);
+ } else {
+ this.send(type, body);
+ }
+ }
+
+ @autobind
+ public dispose() {
+ // Unsubscribe events
+ this.subscriber.off(`antennaStream:${this.antennaId}`, this.onEvent);
+ }
+}
diff --git a/src/server/api/stream/channels/ap-log.ts b/src/server/api/stream/channels/ap-log.ts
deleted file mode 100644
index 867fd3670b..0000000000
--- a/src/server/api/stream/channels/ap-log.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import autobind from 'autobind-decorator';
-import Channel from '../channel';
-
-export default class extends Channel {
- public readonly chName = 'apLog';
- public static shouldShare = true;
- public static requireCredential = false;
-
- @autobind
- public async init(params: any) {
- // Subscribe events
- this.subscriber.on('apLog', this.onLog);
- }
-
- @autobind
- private async onLog(log: any) {
- this.send('log', log);
- }
-
- @autobind
- public dispose() {
- // Unsubscribe events
- this.subscriber.off('apLog', this.onLog);
- }
-}
diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts
index b9feb70258..e32f4111c2 100644
--- a/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/src/server/api/stream/channels/hybrid-timeline.ts
@@ -50,7 +50,7 @@ export default class extends Channel {
detail: true
});
}
- }
+ }
// 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (shouldMuteThisNote(note, this.muting)) return;
diff --git a/src/server/api/stream/channels/index.ts b/src/server/api/stream/channels/index.ts
index 4527fb1e46..6efad078c6 100644
--- a/src/server/api/stream/channels/index.ts
+++ b/src/server/api/stream/channels/index.ts
@@ -3,15 +3,14 @@ import homeTimeline from './home-timeline';
import localTimeline from './local-timeline';
import hybridTimeline from './hybrid-timeline';
import globalTimeline from './global-timeline';
-import notesStats from './notes-stats';
import serverStats from './server-stats';
import queueStats from './queue-stats';
import userList from './user-list';
+import antenna from './antenna';
import messaging from './messaging';
import messagingIndex from './messaging-index';
import drive from './drive';
import hashtag from './hashtag';
-import apLog from './ap-log';
import admin from './admin';
import gamesReversi from './games/reversi';
import gamesReversiGame from './games/reversi-game';
@@ -22,15 +21,14 @@ export default {
localTimeline,
hybridTimeline,
globalTimeline,
- notesStats,
serverStats,
queueStats,
userList,
+ antenna,
messaging,
messagingIndex,
drive,
hashtag,
- apLog,
admin,
gamesReversi,
gamesReversiGame
diff --git a/src/server/api/stream/channels/notes-stats.ts b/src/server/api/stream/channels/notes-stats.ts
deleted file mode 100644
index 0c6b84d6cf..0000000000
--- a/src/server/api/stream/channels/notes-stats.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import autobind from 'autobind-decorator';
-import Xev from 'xev';
-import Channel from '../channel';
-
-const ev = new Xev();
-
-export default class extends Channel {
- public readonly chName = 'notesStats';
- public static shouldShare = true;
- public static requireCredential = false;
-
- @autobind
- public async init(params: any) {
- ev.addListener('notesStats', this.onStats);
- }
-
- @autobind
- private onStats(stats: any) {
- this.send('stats', stats);
- }
-
- @autobind
- public onMessage(type: string, body: any) {
- switch (type) {
- case 'requestLog':
- ev.once(`notesStatsLog:${body.id}`, statsLog => {
- this.send('statsLog', statsLog);
- });
- ev.emit('requestNotesStatsLog', body.id);
- break;
- }
- }
-
- @autobind
- public dispose() {
- ev.removeListener('notesStats', this.onStats);
- }
-}