summaryrefslogtreecommitdiff
path: root/src/server/api/stream
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-04-23 22:35:26 +0900
committerGitHub <noreply@github.com>2019-04-23 22:35:26 +0900
commit0463c6bb0f8fd32740ceb61ccce04c662272a618 (patch)
treea28cbdf6c9cdc14648b8c0e46248665a3ad7e5af /src/server/api/stream
parentFix #4768 (diff)
downloadsharkey-0463c6bb0f8fd32740ceb61ccce04c662272a618.tar.gz
sharkey-0463c6bb0f8fd32740ceb61ccce04c662272a618.tar.bz2
sharkey-0463c6bb0f8fd32740ceb61ccce04c662272a618.zip
Refactor API (#4770)
* wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * Update description.ts * wip
Diffstat (limited to 'src/server/api/stream')
-rw-r--r--src/server/api/stream/channels/global-timeline.ts3
-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.ts6
-rw-r--r--src/server/api/stream/channels/local-timeline.ts6
-rw-r--r--src/server/api/stream/channels/user-list.ts3
6 files changed, 17 insertions, 9 deletions
diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts
index 3aaadc1a4a..7af6719d29 100644
--- a/src/server/api/stream/channels/global-timeline.ts
+++ b/src/server/api/stream/channels/global-timeline.ts
@@ -3,6 +3,7 @@ import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
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,7 @@ export default class extends Channel {
}
@autobind
- private async onNote(note: any) {
+ private async onNote(note: PackedNote) {
if (note.visibility !== 'public') return;
// リプライなら再pack
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..a1e5bf238e 100644
--- a/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/src/server/api/stream/channels/hybrid-timeline.ts
@@ -3,6 +3,8 @@ import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
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..82b957afa4 100644
--- a/src/server/api/stream/channels/local-timeline.ts
+++ b/src/server/api/stream/channels/local-timeline.ts
@@ -3,6 +3,8 @@ import shouldMuteThisNote from '../../../../misc/should-mute-this-note';
import Channel from '../channel';
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)) {