summaryrefslogtreecommitdiff
path: root/src/server/api/stream
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-24 15:23:48 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-24 15:23:48 +0900
commit723d3e6871a6039330e870d94d187367e9c579aa (patch)
tree637cbe640d99d6f0fc8890fdc85497a31817596f /src/server/api/stream
parentMerge branch 'develop' (diff)
parent11.3.0 (diff)
downloadmisskey-723d3e6871a6039330e870d94d187367e9c579aa.tar.gz
misskey-723d3e6871a6039330e870d94d187367e9c579aa.tar.bz2
misskey-723d3e6871a6039330e870d94d187367e9c579aa.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/stream')
-rw-r--r--src/server/api/stream/channels/global-timeline.ts7
-rw-r--r--src/server/api/stream/channels/hashtag.ts5
-rw-r--r--src/server/api/stream/channels/home-timeline.ts3
-rw-r--r--src/server/api/stream/channels/hybrid-timeline.ts8
-rw-r--r--src/server/api/stream/channels/local-timeline.ts8
-rw-r--r--src/server/api/stream/channels/user-list.ts3
6 files changed, 22 insertions, 12 deletions
diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts
index bfb7697ba7..1271aae3a2 100644
--- a/src/server/api/stream/channels/global-timeline.ts
+++ b/src/server/api/stream/channels/global-timeline.ts
@@ -1,8 +1,9 @@
import autobind from 'autobind-decorator';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { Notes } from '../../../../models';
+import { PackedNote } from '../../../../models/repositories/note';
export default class extends Channel {
public readonly chName = 'globalTimeline';
@@ -21,7 +22,9 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
+ private async onNote(note: PackedNote) {
+ if (note.visibility !== 'public') return;
+
// リプライなら再pack
if (note.replyId != null) {
note.reply = await Notes.pack(note.replyId, this.user, {
diff --git a/src/server/api/stream/channels/hashtag.ts b/src/server/api/stream/channels/hashtag.ts
index 36c56c7ab6..e55a508328 100644
--- a/src/server/api/stream/channels/hashtag.ts
+++ b/src/server/api/stream/channels/hashtag.ts
@@ -2,6 +2,7 @@ import autobind from 'autobind-decorator';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
import { Notes } from '../../../../models';
+import { PackedNote } from '../../../../models/repositories/note';
export default class extends Channel {
public readonly chName = 'hashtag';
@@ -20,8 +21,8 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
- const noteTags = note.tags.map((t: string) => t.toLowerCase());
+ private async onNote(note: PackedNote) {
+ const noteTags = note.tags ? note.tags.map((t: string) => t.toLowerCase()) : [];
const matched = this.q.some(tags => tags.every(tag => noteTags.includes(tag.toLowerCase())));
if (!matched) return;
diff --git a/src/server/api/stream/channels/home-timeline.ts b/src/server/api/stream/channels/home-timeline.ts
index 61960657b4..9aa4dc1c0f 100644
--- a/src/server/api/stream/channels/home-timeline.ts
+++ b/src/server/api/stream/channels/home-timeline.ts
@@ -2,6 +2,7 @@ import autobind from 'autobind-decorator';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
import { Notes } from '../../../../models';
+import { PackedNote } from '../../../../models/repositories/note';
export default class extends Channel {
public readonly chName = 'homeTimeline';
@@ -15,7 +16,7 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
+ private async onNote(note: PackedNote) {
// その投稿のユーザーをフォローしていなかったら弾く
if (this.user!.id !== note.userId && !this.following.includes(note.userId)) return;
diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts
index a8020bfcfa..b9feb70258 100644
--- a/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/src/server/api/stream/channels/hybrid-timeline.ts
@@ -1,8 +1,10 @@
import autobind from 'autobind-decorator';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { Notes } from '../../../../models';
+import { PackedNote } from '../../../../models/repositories/note';
+import { PackedUser } from '../../../../models/repositories/user';
export default class extends Channel {
public readonly chName = 'hybridTimeline';
@@ -19,12 +21,12 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
+ private async onNote(note: PackedNote) {
// 自分自身の投稿 または その投稿のユーザーをフォローしている または 全体公開のローカルの投稿 の場合だけ
if (!(
this.user!.id === note.userId ||
this.following.includes(note.userId) ||
- (note.user.host == null && note.visibility === 'public')
+ ((note.user as PackedUser).host == null && note.visibility === 'public')
)) return;
if (['followers', 'specified'].includes(note.visibility)) {
diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts
index 4aec2d66b4..24cbc0a7bf 100644
--- a/src/server/api/stream/channels/local-timeline.ts
+++ b/src/server/api/stream/channels/local-timeline.ts
@@ -1,8 +1,10 @@
import autobind from 'autobind-decorator';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { Notes } from '../../../../models';
+import { PackedNote } from '../../../../models/repositories/note';
+import { PackedUser } from '../../../../models/repositories/user';
export default class extends Channel {
public readonly chName = 'localTimeline';
@@ -21,8 +23,8 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
- if (note.user.host !== null) return;
+ private async onNote(note: PackedNote) {
+ if ((note.user as PackedUser).host !== null) return;
if (note.visibility === 'home') return;
if (['followers', 'specified'].includes(note.visibility)) {
diff --git a/src/server/api/stream/channels/user-list.ts b/src/server/api/stream/channels/user-list.ts
index f5434b8f08..119bacf6ec 100644
--- a/src/server/api/stream/channels/user-list.ts
+++ b/src/server/api/stream/channels/user-list.ts
@@ -3,6 +3,7 @@ import Channel from '../channel';
import { Notes, UserListJoinings } from '../../../../models';
import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import { User } from '../../../../models/entities/user';
+import { PackedNote } from '../../../../models/repositories/note';
export default class extends Channel {
public readonly chName = 'userList';
@@ -38,7 +39,7 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
+ private async onNote(note: PackedNote) {
if (!this.listUsers.includes(note.userId)) return;
if (['followers', 'specified'].includes(note.visibility)) {