mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-27 15:33:08 +02:00
notes/local-timeline と notes/global-timeline のサインインを不要に
This commit is contained in:
parent
06e77a4f16
commit
43eb8bd99b
3 changed files with 36 additions and 29 deletions
|
@ -515,7 +515,6 @@ const endpoints: Endpoint[] = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'notes/local-timeline',
|
name: 'notes/local-timeline',
|
||||||
withCredential: true,
|
|
||||||
limit: {
|
limit: {
|
||||||
duration: ms('10minutes'),
|
duration: ms('10minutes'),
|
||||||
max: 100
|
max: 100
|
||||||
|
@ -523,7 +522,6 @@ const endpoints: Endpoint[] = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'notes/global-timeline',
|
name: 'notes/global-timeline',
|
||||||
withCredential: true,
|
|
||||||
limit: {
|
limit: {
|
||||||
duration: ms('10minutes'),
|
duration: ms('10minutes'),
|
||||||
max: 100
|
max: 100
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { pack } from '../../../../models/note';
|
||||||
/**
|
/**
|
||||||
* Get timeline of global
|
* Get timeline of global
|
||||||
*/
|
*/
|
||||||
module.exports = async (params, user, app) => {
|
module.exports = async (params, user) => {
|
||||||
// Get 'limit' parameter
|
// Get 'limit' parameter
|
||||||
const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
|
const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
|
||||||
if (limitErr) throw 'invalid limit param';
|
if (limitErr) throw 'invalid limit param';
|
||||||
|
@ -36,9 +36,9 @@ module.exports = async (params, user, app) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ミュートしているユーザーを取得
|
// ミュートしているユーザーを取得
|
||||||
const mutedUserIds = (await Mute.find({
|
const mutedUserIds = user ? (await Mute.find({
|
||||||
muterId: user._id
|
muterId: user._id
|
||||||
})).map(m => m.muteeId);
|
})).map(m => m.muteeId) : null;
|
||||||
|
|
||||||
//#region Construct query
|
//#region Construct query
|
||||||
const sort = {
|
const sort = {
|
||||||
|
@ -46,18 +46,24 @@ module.exports = async (params, user, app) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const query = {
|
const query = {
|
||||||
// mute
|
// public only
|
||||||
userId: {
|
visibility: 'public'
|
||||||
$nin: mutedUserIds
|
|
||||||
},
|
|
||||||
'_reply.userId': {
|
|
||||||
$nin: mutedUserIds
|
|
||||||
},
|
|
||||||
'_renote.userId': {
|
|
||||||
$nin: mutedUserIds
|
|
||||||
}
|
|
||||||
} as any;
|
} as any;
|
||||||
|
|
||||||
|
if (mutedUserIds && mutedUserIds.length > 0) {
|
||||||
|
query.userId = {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
};
|
||||||
|
|
||||||
|
query['_reply.userId'] = {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
};
|
||||||
|
|
||||||
|
query['_renote.userId'] = {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (sinceId) {
|
if (sinceId) {
|
||||||
sort._id = 1;
|
sort._id = 1;
|
||||||
query._id = {
|
query._id = {
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { pack } from '../../../../models/note';
|
||||||
/**
|
/**
|
||||||
* Get timeline of local
|
* Get timeline of local
|
||||||
*/
|
*/
|
||||||
module.exports = async (params, user, app) => {
|
module.exports = async (params, user) => {
|
||||||
// Get 'limit' parameter
|
// Get 'limit' parameter
|
||||||
const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
|
const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
|
||||||
if (limitErr) throw 'invalid limit param';
|
if (limitErr) throw 'invalid limit param';
|
||||||
|
@ -36,9 +36,9 @@ module.exports = async (params, user, app) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ミュートしているユーザーを取得
|
// ミュートしているユーザーを取得
|
||||||
const mutedUserIds = (await Mute.find({
|
const mutedUserIds = user ? (await Mute.find({
|
||||||
muterId: user._id
|
muterId: user._id
|
||||||
})).map(m => m.muteeId);
|
})).map(m => m.muteeId) : null;
|
||||||
|
|
||||||
//#region Construct query
|
//#region Construct query
|
||||||
const sort = {
|
const sort = {
|
||||||
|
@ -46,17 +46,6 @@ module.exports = async (params, user, app) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const query = {
|
const query = {
|
||||||
// mute
|
|
||||||
userId: {
|
|
||||||
$nin: mutedUserIds
|
|
||||||
},
|
|
||||||
'_reply.userId': {
|
|
||||||
$nin: mutedUserIds
|
|
||||||
},
|
|
||||||
'_renote.userId': {
|
|
||||||
$nin: mutedUserIds
|
|
||||||
},
|
|
||||||
|
|
||||||
// public only
|
// public only
|
||||||
visibility: 'public',
|
visibility: 'public',
|
||||||
|
|
||||||
|
@ -64,6 +53,20 @@ module.exports = async (params, user, app) => {
|
||||||
'_user.host': null
|
'_user.host': null
|
||||||
} as any;
|
} as any;
|
||||||
|
|
||||||
|
if (mutedUserIds && mutedUserIds.length > 0) {
|
||||||
|
query.userId = {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
};
|
||||||
|
|
||||||
|
query['_reply.userId'] = {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
};
|
||||||
|
|
||||||
|
query['_renote.userId'] = {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (sinceId) {
|
if (sinceId) {
|
||||||
sort._id = 1;
|
sort._id = 1;
|
||||||
query._id = {
|
query._id = {
|
||||||
|
|
Loading…
Reference in a new issue