[Server] Fix #2745
This commit is contained in:
parent
e559417cab
commit
977a4373c5
3 changed files with 19 additions and 7 deletions
|
@ -14,6 +14,7 @@ unreleased
|
||||||
* ハッシュタグ判定の強化
|
* ハッシュタグ判定の強化
|
||||||
* ストーク機能の廃止
|
* ストーク機能の廃止
|
||||||
* ソーシャルタイムラインにフォロワー限定投稿が含まれていない問題を修正
|
* ソーシャルタイムラインにフォロワー限定投稿が含まれていない問題を修正
|
||||||
|
* リストタイムラインでフォロワー限定投稿が含まれていない問題を修正
|
||||||
* ストリームで投稿が流れてきたとき、返信先が「この投稿は非公開です」となる問題を修正
|
* ストリームで投稿が流れてきたとき、返信先が「この投稿は非公開です」となる問題を修正
|
||||||
* 関係のない返信がタイムラインに流れる問題を修正
|
* 関係のない返信がタイムラインに流れる問題を修正
|
||||||
* 常にメディアを閲覧注意として投稿するオプションが機能していなかった問題を修正
|
* 常にメディアを閲覧注意として投稿するオプションが機能していなかった問題を修正
|
||||||
|
|
|
@ -4,6 +4,7 @@ import Mute from '../../../../models/mute';
|
||||||
import { packMany } from '../../../../models/note';
|
import { packMany } from '../../../../models/note';
|
||||||
import UserList from '../../../../models/user-list';
|
import UserList from '../../../../models/user-list';
|
||||||
import define from '../../define';
|
import define from '../../define';
|
||||||
|
import { getFriends } from '../../common/get-friends';
|
||||||
|
|
||||||
export const meta = {
|
export const meta = {
|
||||||
desc: {
|
desc: {
|
||||||
|
@ -101,7 +102,7 @@ export const meta = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export default define(meta, (ps, user) => new Promise(async (res, rej) => {
|
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
|
// Fetch the list
|
||||||
UserList.findOne({
|
UserList.findOne({
|
||||||
|
@ -109,6 +110,10 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
|
||||||
userId: user._id
|
userId: user._id
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// フォローを取得
|
||||||
|
// Fetch following
|
||||||
|
getFriends(user._id, true, false),
|
||||||
|
|
||||||
// ミュートしているユーザーを取得
|
// ミュートしているユーザーを取得
|
||||||
Mute.find({
|
Mute.find({
|
||||||
muterId: user._id
|
muterId: user._id
|
||||||
|
@ -146,16 +151,17 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
|
||||||
}]
|
}]
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const visibleQuery = user == null ? [{
|
const visibleQuery = [{
|
||||||
visibility: { $in: [ 'public', 'home' ] }
|
visibility: { $in: ['public', 'home'] }
|
||||||
}] : [{
|
|
||||||
visibility: { $in: [ 'public', 'home' ] }
|
|
||||||
}, {
|
}, {
|
||||||
// myself (for specified/private)
|
// myself (for specified/private)
|
||||||
userId: user._id
|
userId: user._id
|
||||||
}, {
|
}, {
|
||||||
// to me (for specified)
|
// to me (for specified)
|
||||||
visibleUserIds: { $in: [ user._id ] }
|
visibleUserIds: { $in: [user._id] }
|
||||||
|
}, {
|
||||||
|
visibility: 'followers',
|
||||||
|
userId: { $in: followings.map(f => f.id) }
|
||||||
}];
|
}];
|
||||||
|
|
||||||
const query = {
|
const query = {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import autobind from 'autobind-decorator';
|
import autobind from 'autobind-decorator';
|
||||||
import Channel from '../channel';
|
import Channel from '../channel';
|
||||||
|
import { pack } from '../../../../models/note';
|
||||||
|
|
||||||
export default class extends Channel {
|
export default class extends Channel {
|
||||||
public readonly chName = 'userList';
|
public readonly chName = 'userList';
|
||||||
|
@ -11,7 +12,11 @@ export default class extends Channel {
|
||||||
const listId = params.listId as string;
|
const listId = params.listId as string;
|
||||||
|
|
||||||
// Subscribe stream
|
// 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);
|
this.send(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue