summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/users
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-10-04 16:43:24 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-10-04 16:43:24 +0900
commitca515d5a7ea164582c4917c0e1f01aa66c5b6a13 (patch)
tree4f96e4a835dc6cde7cf0a9ed6053cfb0877f985b /packages/backend/src/server/api/endpoints/users
parentadd more test (diff)
downloadsharkey-ca515d5a7ea164582c4917c0e1f01aa66c5b6a13.tar.gz
sharkey-ca515d5a7ea164582c4917c0e1f01aa66c5b6a13.tar.bz2
sharkey-ca515d5a7ea164582c4917c0e1f01aa66c5b6a13.zip
tweak timelines
Diffstat (limited to 'packages/backend/src/server/api/endpoints/users')
-rw-r--r--packages/backend/src/server/api/endpoints/users/notes.ts9
1 files changed, 9 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts
index 6be391be4e..09adcf20aa 100644
--- a/packages/backend/src/server/api/endpoints/users/notes.ts
+++ b/packages/backend/src/server/api/endpoints/users/notes.ts
@@ -13,6 +13,7 @@ import { DI } from '@/di-symbols.js';
import { GetterService } from '@/server/api/GetterService.js';
import { CacheService } from '@/core/CacheService.js';
import { IdService } from '@/core/IdService.js';
+import { isUserRelated } from '@/misc/is-user-related.js';
import { ApiError } from '../../error.js';
export const meta = {
@@ -70,6 +71,12 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private idService: IdService,
) {
super(meta, paramDef, async (ps, me) => {
+ const [
+ userIdsWhoMeMuting,
+ ] = me ? await Promise.all([
+ this.cacheService.userMutingsCache.fetch(me.id),
+ ]) : [new Set<string>()];
+
let timeline: MiNote[] = [];
const limit = ps.limit + (ps.untilId ? 1 : 0); // untilIdに指定したものも含まれるため+1
@@ -118,6 +125,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
timeline = await query.getMany();
timeline = timeline.filter(note => {
+ if (me && isUserRelated(note, userIdsWhoMeMuting, true)) return false;
+
if (note.renoteId) {
if (note.text == null && note.fileIds.length === 0 && !note.hasPoll) {
if (ps.withRenotes === false) return false;