From c41ccf7821c1729c1fdde09d4f62f5d6ba4f79bc Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Wed, 11 Jul 2018 14:33:03 +0900
Subject: [PATCH] Fix bug

---
 src/server/api/stream/hybrid-timeline.ts | 2 +-
 src/server/api/stream/local-timeline.ts  | 2 +-
 src/server/api/streaming.ts              | 2 ++
 src/services/note/create.ts              | 2 +-
 src/stream.ts                            | 2 +-
 5 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/server/api/stream/hybrid-timeline.ts b/src/server/api/stream/hybrid-timeline.ts
index 55f9fbb788..513af9c1d4 100644
--- a/src/server/api/stream/hybrid-timeline.ts
+++ b/src/server/api/stream/hybrid-timeline.ts
@@ -12,7 +12,7 @@ export default async function(
 	user: IUser
 ) {
 	// Subscribe stream
-	subscriber.subscribe(`misskey:hybrid-timeline:${user._id}`);
+	subscriber.subscribe('misskey:hybrid-timeline', `misskey:hybrid-timeline:${user._id}`);
 
 	const mute = await Mute.find({ muterId: user._id });
 	const mutedUserIds = mute.map(m => m.muteeId.toString());
diff --git a/src/server/api/stream/local-timeline.ts b/src/server/api/stream/local-timeline.ts
index 8f6a445be0..32718810dc 100644
--- a/src/server/api/stream/local-timeline.ts
+++ b/src/server/api/stream/local-timeline.ts
@@ -12,7 +12,7 @@ export default async function(
 	user: IUser
 ) {
 	// Subscribe stream
-	subscriber.subscribe(`misskey:local-timeline`);
+	subscriber.subscribe('misskey:local-timeline');
 
 	const mute = await Mute.find({ muterId: user._id });
 	const mutedUserIds = mute.map(m => m.muteeId.toString());
diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts
index 7c2245703e..afa0de2ce1 100644
--- a/src/server/api/streaming.ts
+++ b/src/server/api/streaming.ts
@@ -5,6 +5,7 @@ import config from '../../config';
 
 import homeStream from './stream/home';
 import localTimelineStream from './stream/local-timeline';
+import hybridTimelineStream from './stream/hybrid-timeline';
 import globalTimelineStream from './stream/global-timeline';
 import userListStream from './stream/user-list';
 import driveStream from './stream/drive';
@@ -64,6 +65,7 @@ module.exports = (server: http.Server) => {
 		const channel: any =
 			request.resourceURL.pathname === '/' ? homeStream :
 			request.resourceURL.pathname === '/local-timeline' ? localTimelineStream :
+			request.resourceURL.pathname === '/hybrid-timeline' ? hybridTimelineStream :
 			request.resourceURL.pathname === '/global-timeline' ? globalTimelineStream :
 			request.resourceURL.pathname === '/user-list' ? userListStream :
 			request.resourceURL.pathname === '/drive' ? driveStream :
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index cc7474292f..d29b628119 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -269,7 +269,7 @@ export default async (user: IUser, data: {
 				// Publish note to local and hybrid timeline stream
 				if (note.visibility != 'home') {
 					publishLocalTimelineStream(noteObj);
-					publishHybridTimelineStream(noteObj);
+					publishHybridTimelineStream(null, noteObj);
 				}
 			}
 		}
diff --git a/src/stream.ts b/src/stream.ts
index b2aa4f0e2a..cec5fcf0f3 100644
--- a/src/stream.ts
+++ b/src/stream.ts
@@ -50,7 +50,7 @@ class MisskeyEvent {
 	}
 
 	public publishHybridTimelineStream(userId: ID, note: any): void {
-		this.redisClient.publish(`misskey:hybrid-timeline:${userId}`, JSON.stringify(note));
+		this.redisClient.publish(userId ? `misskey:hybrid-timeline:${userId}` : 'misskey:hybrid-timeline', JSON.stringify(note));
 	}
 
 	public publishGlobalTimelineStream(note: any): void {