summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-01-21 00:32:54 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-01-21 00:32:54 +0900
commit977a4373c52790265a69cf72f31137dfd2cb79c9 (patch)
treecdd8b6ccacb66ab83ea413ba3cdbf960e928e145
parentソーシャルタイムラインにフォロワー限定投稿が含まれ... (diff)
downloadsharkey-977a4373c52790265a69cf72f31137dfd2cb79c9.tar.gz
sharkey-977a4373c52790265a69cf72f31137dfd2cb79c9.tar.bz2
sharkey-977a4373c52790265a69cf72f31137dfd2cb79c9.zip
[Server] Fix #2745
-rw-r--r--CHANGELOG.md1
-rw-r--r--src/server/api/endpoints/notes/user-list-timeline.ts18
-rw-r--r--src/server/api/stream/channels/user-list.ts7
3 files changed, 19 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 35575f2725..b4cf191478 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ unreleased
* ハッシュタグ判定の強化
* ストーク機能の廃止
* ソーシャルタイムラインにフォロワー限定投稿が含まれていない問題を修正
+* リストタイムラインでフォロワー限定投稿が含まれていない問題を修正
* ストリームで投稿が流れてきたとき、返信先が「この投稿は非公開です」となる問題を修正
* 関係のない返信がタイムラインに流れる問題を修正
* 常にメディアを閲覧注意として投稿するオプションが機能していなかった問題を修正
diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts
index eab3b9788a..99b063377f 100644
--- a/src/server/api/endpoints/notes/user-list-timeline.ts
+++ b/src/server/api/endpoints/notes/user-list-timeline.ts
@@ -4,6 +4,7 @@ import Mute from '../../../../models/mute';
import { packMany } from '../../../../models/note';
import UserList from '../../../../models/user-list';
import define from '../../define';
+import { getFriends } from '../../common/get-friends';
export const meta = {
desc: {
@@ -101,7 +102,7 @@ export const meta = {
};
export default define(meta, (ps, user) => new Promise(async (res, rej) => {
- const [list, mutedUserIds] = await Promise.all([
+ const [list, followings, mutedUserIds] = await Promise.all([
// リストを取得
// Fetch the list
UserList.findOne({
@@ -109,6 +110,10 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
userId: user._id
}),
+ // フォローを取得
+ // Fetch following
+ getFriends(user._id, true, false),
+
// ミュートしているユーザーを取得
Mute.find({
muterId: user._id
@@ -146,16 +151,17 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
}]
}));
- const visibleQuery = user == null ? [{
- visibility: { $in: [ 'public', 'home' ] }
- }] : [{
- visibility: { $in: [ 'public', 'home' ] }
+ const visibleQuery = [{
+ visibility: { $in: ['public', 'home'] }
}, {
// myself (for specified/private)
userId: user._id
}, {
// to me (for specified)
- visibleUserIds: { $in: [ user._id ] }
+ visibleUserIds: { $in: [user._id] }
+ }, {
+ visibility: 'followers',
+ userId: { $in: followings.map(f => f.id) }
}];
const query = {
diff --git a/src/server/api/stream/channels/user-list.ts b/src/server/api/stream/channels/user-list.ts
index dbdd8afb0a..5debf41770 100644
--- a/src/server/api/stream/channels/user-list.ts
+++ b/src/server/api/stream/channels/user-list.ts
@@ -1,5 +1,6 @@
import autobind from 'autobind-decorator';
import Channel from '../channel';
+import { pack } from '../../../../models/note';
export default class extends Channel {
public readonly chName = 'userList';
@@ -11,7 +12,11 @@ export default class extends Channel {
const listId = params.listId as string;
// Subscribe stream
- this.subscriber.on(`userListStream:${listId}`, data => {
+ this.subscriber.on(`userListStream:${listId}`, async data => {
+ // 再パック
+ if (data.type == 'note') data.body = await pack(data.body.id, this.user, {
+ detail: true
+ });
this.send(data);
});
}