summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-09 14:50:38 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-02-09 14:50:38 +0900
commit5f985ee832eed61e31ceb51eaa1c51810ad6de39 (patch)
tree60cd65d92e377ea0a0f0d2bc3b767f8f26196310 /packages/backend/src/server/api
parentMerge branch 'develop' (diff)
parent12.104.0 (diff)
downloadmisskey-5f985ee832eed61e31ceb51eaa1c51810ad6de39.tar.gz
misskey-5f985ee832eed61e31ceb51eaa1c51810ad6de39.tar.bz2
misskey-5f985ee832eed61e31ceb51eaa1c51810ad6de39.zip
Merge branch 'develop'
Diffstat (limited to 'packages/backend/src/server/api')
-rw-r--r--packages/backend/src/server/api/call.ts18
-rw-r--r--packages/backend/src/server/api/common/generate-replies-query.ts4
-rw-r--r--packages/backend/src/server/api/define.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/admin/show-user.ts138
-rw-r--r--packages/backend/src/server/api/endpoints/announcements.ts6
-rw-r--r--packages/backend/src/server/api/endpoints/channels/timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/active-users.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/ap-request.ts (renamed from packages/backend/src/server/api/endpoints/charts/network.ts)6
-rw-r--r--packages/backend/src/server/api/endpoints/charts/drive.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/federation.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/hashtag.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/instance.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/notes.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/user/drive.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/user/following.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/user/notes.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/user/reactions.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/charts/users.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/create.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/following/create.ts7
-rw-r--r--packages/backend/src/server/api/endpoints/following/requests/cancel.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/i/update.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/notes/global-timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/notes/local-timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/notes/timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/stats.ts8
-rw-r--r--packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts2
-rw-r--r--packages/backend/src/server/api/service/discord.ts8
-rw-r--r--packages/backend/src/server/api/service/github.ts8
-rw-r--r--packages/backend/src/server/api/service/twitter.ts10
-rw-r--r--packages/backend/src/server/api/stream/channels/global-timeline.ts2
-rw-r--r--packages/backend/src/server/api/stream/channels/home-timeline.ts2
-rw-r--r--packages/backend/src/server/api/stream/channels/hybrid-timeline.ts2
-rw-r--r--packages/backend/src/server/api/stream/channels/local-timeline.ts2
-rw-r--r--packages/backend/src/server/api/stream/types.ts5
-rw-r--r--packages/backend/src/server/api/streaming.ts2
39 files changed, 87 insertions, 196 deletions
diff --git a/packages/backend/src/server/api/call.ts b/packages/backend/src/server/api/call.ts
index 5bc7d2f25e..18143340ae 100644
--- a/packages/backend/src/server/api/call.ts
+++ b/packages/backend/src/server/api/call.ts
@@ -79,18 +79,28 @@ export default async (endpoint: string, user: User | null | undefined, token: Ac
// Cast non JSON input
if (ep.meta.requireFile && ep.meta.params) {
- const body = (ctx!.request as any).body;
for (const k of Object.keys(ep.meta.params)) {
const param = ep.meta.params[k];
- if (['Boolean', 'Number'].includes(param.validator.name) && typeof body[k] === 'string') {
- body[k] = JSON.parse(body[k]);
+ if (['Boolean', 'Number'].includes(param.validator.name) && typeof data[k] === 'string') {
+ try {
+ data[k] = JSON.parse(data[k]);
+ } catch (e) {
+ throw new ApiError({
+ message: 'Invalid param.',
+ code: 'INVALID_PARAM',
+ id: '0b5f1631-7c1a-41a6-b399-cce335f34d85',
+ }, {
+ param: k,
+ reason: `cannot cast to ${param.validator.name}`,
+ })
+ }
}
}
}
// API invoking
const before = performance.now();
- return await ep.exec(data, user, token, ctx!.file).catch((e: Error) => {
+ return await ep.exec(data, user, token, ctx?.file).catch((e: Error) => {
if (e instanceof ApiError) {
throw e;
} else {
diff --git a/packages/backend/src/server/api/common/generate-replies-query.ts b/packages/backend/src/server/api/common/generate-replies-query.ts
index fbc41b2c25..249064d589 100644
--- a/packages/backend/src/server/api/common/generate-replies-query.ts
+++ b/packages/backend/src/server/api/common/generate-replies-query.ts
@@ -1,7 +1,7 @@
import { User } from '@/models/entities/user';
import { Brackets, SelectQueryBuilder } from 'typeorm';
-export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) {
+export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: Pick<User, 'id' | 'showTimelineReplies'> | null) {
if (me == null) {
q.andWhere(new Brackets(qb => { qb
.where(`note.replyId IS NULL`) // 返信ではない
@@ -10,7 +10,7 @@ export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: { id: User
.andWhere('note.replyUserId = note.userId');
}));
}));
- } else {
+ } else if(!me.showTimelineReplies) {
q.andWhere(new Brackets(qb => { qb
.where(`note.replyId IS NULL`) // 返信ではない
.orWhere('note.replyUserId = :meId', { meId: me.id }) // 返信だけど自分のノートへの返信
diff --git a/packages/backend/src/server/api/define.ts b/packages/backend/src/server/api/define.ts
index 71e5fadde0..e0720e2adb 100644
--- a/packages/backend/src/server/api/define.ts
+++ b/packages/backend/src/server/api/define.ts
@@ -9,6 +9,7 @@ type NonOptional<T> = T extends undefined ? never : T;
type SimpleUserInfo = {
id: ILocalUser['id'];
+ createdAt: ILocalUser['createdAt'];
host: ILocalUser['host'];
username: ILocalUser['username'];
uri: ILocalUser['uri'];
diff --git a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts
index b00457f092..a47b69ec1a 100644
--- a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts
+++ b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts
@@ -36,9 +36,9 @@ export default define(meta, async (ps, me) => {
if (ps.forward && report.targetUserHost != null) {
const actor = await getInstanceActor();
- const targetUser = await Users.findOne(report.targetUserId);
+ const targetUser = await Users.findOneOrFail(report.targetUserId);
- deliver(actor, renderActivity(renderFlag(actor, [targetUser.uri], report.comment)), targetUser.inbox);
+ deliver(actor, renderActivity(renderFlag(actor, [targetUser.uri!], report.comment)), targetUser.inbox);
}
await AbuseUserReports.update(report.id, {
diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts
index c2a6a294b5..0d0cc9087a 100644
--- a/packages/backend/src/server/api/endpoints/admin/show-user.ts
+++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts
@@ -18,144 +18,6 @@ export const meta = {
res: {
type: 'object',
nullable: false, optional: false,
- properties: {
- id: {
- type: 'string',
- nullable: false, optional: false,
- format: 'id',
- },
- createdAt: {
- type: 'string',
- nullable: false, optional: false,
- format: 'date-time',
- },
- updatedAt: {
- type: 'string',
- nullable: true, optional: false,
- format: 'date-time',
- },
- lastFetchedAt: {
- type: 'string',
- nullable: true, optional: false,
- },
- username: {
- type: 'string',
- nullable: false, optional: false,
- },
- name: {
- type: 'string',
- nullable: true, optional: false,
- },
- folowersCount: {
- type: 'number',
- nullable: false, optional: true,
- },
- followingCount: {
- type: 'number',
- nullable: false, optional: false,
- },
- notesCount: {
- type: 'number',
- nullable: false, optional: false,
- },
- avatarId: {
- type: 'string',
- nullable: true, optional: false,
- },
- bannerId: {
- type: 'string',
- nullable: true, optional: false,
- },
- tags: {
- type: 'array',
- nullable: false, optional: false,
- items: {
- type: 'string',
- nullable: false, optional: false,
- },
- },
- avatarUrl: {
- type: 'string',
- nullable: true, optional: false,
- format: 'url',
- },
- bannerUrl: {
- type: 'string',
- nullable: true, optional: false,
- format: 'url',
- },
- avatarBlurhash: {
- type: 'any',
- nullable: true, optional: false,
- default: null,
- },
- bannerBlurhash: {
- type: 'any',
- nullable: true, optional: false,
- default: null,
- },
- isSuspended: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isSilenced: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isLocked: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isBot: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isCat: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isAdmin: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isModerator: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- emojis: {
- type: 'array',
- nullable: false, optional: false,
- items: {
- type: 'string',
- nullable: false, optional: false,
- },
- },
- host: {
- type: 'string',
- nullable: true, optional: false,
- },
- inbox: {
- type: 'string',
- nullable: true, optional: false,
- },
- sharedInbox: {
- type: 'string',
- nullable: true, optional: false,
- },
- featured: {
- type: 'string',
- nullable: true, optional: false,
- },
- uri: {
- type: 'string',
- nullable: true, optional: false,
- },
- token: {
- type: 'string',
- nullable: true, optional: false,
- default: '<MASKED>',
- },
- },
},
} as const;
diff --git a/packages/backend/src/server/api/endpoints/announcements.ts b/packages/backend/src/server/api/endpoints/announcements.ts
index 0bd29607d6..22c13743a8 100644
--- a/packages/backend/src/server/api/endpoints/announcements.ts
+++ b/packages/backend/src/server/api/endpoints/announcements.ts
@@ -89,5 +89,9 @@ export default define(meta, async (ps, user) => {
}
}
- return ps.withUnreads ? announcements.filter((a: any) => !a.isRead) : announcements;
+ return (ps.withUnreads ? announcements.filter((a: any) => !a.isRead) : announcements).map((a) => ({
+ ...a,
+ createdAt: a.createdAt.toISOString(),
+ updatedAt: a.updatedAt?.toISOString() ?? null,
+ }));
});
diff --git a/packages/backend/src/server/api/endpoints/channels/timeline.ts b/packages/backend/src/server/api/endpoints/channels/timeline.ts
index 927ce7c741..2639095f8a 100644
--- a/packages/backend/src/server/api/endpoints/channels/timeline.ts
+++ b/packages/backend/src/server/api/endpoints/channels/timeline.ts
@@ -80,7 +80,7 @@ export default define(meta, async (ps, user) => {
const timeline = await query.take(ps.limit!).getMany();
- if (user) activeUsersChart.update(user);
+ if (user) activeUsersChart.read(user);
return await Notes.packMany(timeline, user);
});
diff --git a/packages/backend/src/server/api/endpoints/charts/active-users.ts b/packages/backend/src/server/api/endpoints/charts/active-users.ts
index f7eadc7089..a51cd00351 100644
--- a/packages/backend/src/server/api/endpoints/charts/active-users.ts
+++ b/packages/backend/src/server/api/endpoints/charts/active-users.ts
@@ -22,7 +22,7 @@ export const meta = {
},
},
- res: convertLog(activeUsersChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/network.ts b/packages/backend/src/server/api/endpoints/charts/ap-request.ts
index c5a39bbd76..38bbddb27a 100644
--- a/packages/backend/src/server/api/endpoints/charts/network.ts
+++ b/packages/backend/src/server/api/endpoints/charts/ap-request.ts
@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '@/services/chart/core';
-import { networkChart } from '@/services/chart/index';
+import { apRequestChart } from '@/services/chart/index';
export const meta = {
tags: ['charts'],
@@ -22,10 +22,10 @@ export const meta = {
},
},
- res: convertLog(networkChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps) => {
- return await networkChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null);
+ return await apRequestChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null);
});
diff --git a/packages/backend/src/server/api/endpoints/charts/drive.ts b/packages/backend/src/server/api/endpoints/charts/drive.ts
index 364279da95..4bbb9861f8 100644
--- a/packages/backend/src/server/api/endpoints/charts/drive.ts
+++ b/packages/backend/src/server/api/endpoints/charts/drive.ts
@@ -22,7 +22,7 @@ export const meta = {
},
},
- res: convertLog(driveChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/federation.ts b/packages/backend/src/server/api/endpoints/charts/federation.ts
index 6feb82b6d9..237678ffed 100644
--- a/packages/backend/src/server/api/endpoints/charts/federation.ts
+++ b/packages/backend/src/server/api/endpoints/charts/federation.ts
@@ -22,7 +22,7 @@ export const meta = {
},
},
- res: convertLog(federationChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/hashtag.ts b/packages/backend/src/server/api/endpoints/charts/hashtag.ts
index 99dc77998e..6c12cb063e 100644
--- a/packages/backend/src/server/api/endpoints/charts/hashtag.ts
+++ b/packages/backend/src/server/api/endpoints/charts/hashtag.ts
@@ -26,7 +26,7 @@ export const meta = {
},
},
- res: convertLog(hashtagChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/instance.ts b/packages/backend/src/server/api/endpoints/charts/instance.ts
index 23e6fbf2b0..32a10d5a28 100644
--- a/packages/backend/src/server/api/endpoints/charts/instance.ts
+++ b/packages/backend/src/server/api/endpoints/charts/instance.ts
@@ -26,7 +26,7 @@ export const meta = {
},
},
- res: convertLog(instanceChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/notes.ts b/packages/backend/src/server/api/endpoints/charts/notes.ts
index dcbd80c3e9..09255f1d2d 100644
--- a/packages/backend/src/server/api/endpoints/charts/notes.ts
+++ b/packages/backend/src/server/api/endpoints/charts/notes.ts
@@ -22,7 +22,7 @@ export const meta = {
},
},
- res: convertLog(notesChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/user/drive.ts b/packages/backend/src/server/api/endpoints/charts/user/drive.ts
index 94787b4a57..89379858d1 100644
--- a/packages/backend/src/server/api/endpoints/charts/user/drive.ts
+++ b/packages/backend/src/server/api/endpoints/charts/user/drive.ts
@@ -27,7 +27,7 @@ export const meta = {
},
},
- res: convertLog(perUserDriveChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/user/following.ts b/packages/backend/src/server/api/endpoints/charts/user/following.ts
index effe0c54b9..26c3f5c126 100644
--- a/packages/backend/src/server/api/endpoints/charts/user/following.ts
+++ b/packages/backend/src/server/api/endpoints/charts/user/following.ts
@@ -27,7 +27,7 @@ export const meta = {
},
},
- res: convertLog(perUserFollowingChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/user/notes.ts b/packages/backend/src/server/api/endpoints/charts/user/notes.ts
index df68a5fe52..ecf85becfa 100644
--- a/packages/backend/src/server/api/endpoints/charts/user/notes.ts
+++ b/packages/backend/src/server/api/endpoints/charts/user/notes.ts
@@ -27,7 +27,7 @@ export const meta = {
},
},
- res: convertLog(perUserNotesChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/user/reactions.ts b/packages/backend/src/server/api/endpoints/charts/user/reactions.ts
index dcd067305f..6e08d07511 100644
--- a/packages/backend/src/server/api/endpoints/charts/user/reactions.ts
+++ b/packages/backend/src/server/api/endpoints/charts/user/reactions.ts
@@ -27,7 +27,7 @@ export const meta = {
},
},
- res: convertLog(perUserReactionsChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/charts/users.ts b/packages/backend/src/server/api/endpoints/charts/users.ts
index d32e14ad61..15a9ec038e 100644
--- a/packages/backend/src/server/api/endpoints/charts/users.ts
+++ b/packages/backend/src/server/api/endpoints/charts/users.ts
@@ -22,7 +22,7 @@ export const meta = {
},
},
- res: convertLog(usersChart.schema),
+ // TODO: response definition
} as const;
// eslint-disable-next-line import/no-default-export
diff --git a/packages/backend/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts
index 877e76677e..ac7863ec7e 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/create.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/create.ts
@@ -86,7 +86,9 @@ export default define(meta, async (ps, user, _, file, cleanup) => {
const driveFile = await addFile({ user, path: file.path, name, comment: ps.comment, folderId: ps.folderId, force: ps.force, sensitive: ps.isSensitive });
return await DriveFiles.pack(driveFile, { self: true });
} catch (e) {
- apiLogger.error(e);
+ if (e instanceof Error || typeof e === 'string') {
+ apiLogger.error(e);
+ }
throw new ApiError();
} finally {
cleanup!();
diff --git a/packages/backend/src/server/api/endpoints/following/create.ts b/packages/backend/src/server/api/endpoints/following/create.ts
index 96aede4550..b840ab7696 100644
--- a/packages/backend/src/server/api/endpoints/following/create.ts
+++ b/packages/backend/src/server/api/endpoints/following/create.ts
@@ -6,6 +6,7 @@ import define from '../../define';
import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
import { Followings, Users } from '@/models/index';
+import { IdentifiableError } from '@/misc/identifiable-error';
export const meta = {
tags: ['following', 'users'],
@@ -92,8 +93,10 @@ export default define(meta, async (ps, user) => {
try {
await create(follower, followee);
} catch (e) {
- if (e.id === '710e8fb0-b8c3-4922-be49-d5d93d8e6a6e') throw new ApiError(meta.errors.blocking);
- if (e.id === '3338392a-f764-498d-8855-db939dcf8c48') throw new ApiError(meta.errors.blocked);
+ if (e instanceof IdentifiableError) {
+ if (e.id === '710e8fb0-b8c3-4922-be49-d5d93d8e6a6e') throw new ApiError(meta.errors.blocking);
+ if (e.id === '3338392a-f764-498d-8855-db939dcf8c48') throw new ApiError(meta.errors.blocked);
+ }
throw e;
}
diff --git a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts
index 19ed02c152..c9abbf36de 100644
--- a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts
+++ b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts
@@ -5,6 +5,7 @@ import define from '../../../define';
import { ApiError } from '../../../error';
import { getUser } from '../../../common/getters';
import { Users } from '@/models/index';
+import { IdentifiableError } from '@/misc/identifiable-error';
export const meta = {
tags: ['following', 'account'],
@@ -51,7 +52,9 @@ export default define(meta, async (ps, user) => {
try {
await cancelFollowRequest(followee, user);
} catch (e) {
- if (e.id === '17447091-ce07-46dd-b331-c1fd4f15b1e7') throw new ApiError(meta.errors.followRequestNotFound);
+ if (e instanceof IdentifiableError) {
+ if (e.id === '17447091-ce07-46dd-b331-c1fd4f15b1e7') throw new ApiError(meta.errors.followRequestNotFound);
+ }
throw e;
}
diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts
index 6b7e53aa1f..eb57aa2bfc 100644
--- a/packages/backend/src/server/api/endpoints/i/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/update.ts
@@ -96,6 +96,10 @@ export const meta = {
validator: $.optional.bool,
},
+ showTimelineReplies: {
+ validator: $.optional.bool,
+ },
+
injectFeaturedNote: {
validator: $.optional.bool,
},
@@ -197,6 +201,7 @@ export default define(meta, async (ps, _user, token) => {
if (typeof ps.hideOnlineStatus === 'boolean') updates.hideOnlineStatus = ps.hideOnlineStatus;
if (typeof ps.publicReactions === 'boolean') profileUpdates.publicReactions = ps.publicReactions;
if (typeof ps.isBot === 'boolean') updates.isBot = ps.isBot;
+ if (typeof ps.showTimelineReplies === 'boolean') updates.showTimelineReplies = ps.showTimelineReplies;
if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot;
if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed;
if (typeof ps.noCrawle === 'boolean') profileUpdates.noCrawle = ps.noCrawle;
diff --git a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts
index cac8b7d8a9..cdd110994e 100644
--- a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts
+++ b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts
@@ -96,7 +96,7 @@ export default define(meta, async (ps, user) => {
process.nextTick(() => {
if (user) {
- activeUsersChart.update(user);
+ activeUsersChart.read(user);
}
});
diff --git a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts
index 9683df4611..b438491026 100644
--- a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts
+++ b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts
@@ -153,7 +153,7 @@ export default define(meta, async (ps, user) => {
process.nextTick(() => {
if (user) {
- activeUsersChart.update(user);
+ activeUsersChart.read(user);
}
});
diff --git a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts
index 7776644124..ce0bcbeb7b 100644
--- a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts
+++ b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts
@@ -122,7 +122,7 @@ export default define(meta, async (ps, user) => {
process.nextTick(() => {
if (user) {
- activeUsersChart.update(user);
+ activeUsersChart.read(user);
}
});
diff --git a/packages/backend/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts
index 8be2861aec..f8cd083249 100644
--- a/packages/backend/src/server/api/endpoints/notes/timeline.ts
+++ b/packages/backend/src/server/api/endpoints/notes/timeline.ts
@@ -145,7 +145,7 @@ export default define(meta, async (ps, user) => {
process.nextTick(() => {
if (user) {
- activeUsersChart.update(user);
+ activeUsersChart.read(user);
}
});
diff --git a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts
index 89de73fb9d..3512fb3638 100644
--- a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts
+++ b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts
@@ -142,7 +142,7 @@ export default define(meta, async (ps, user) => {
const timeline = await query.take(ps.limit!).getMany();
- activeUsersChart.update(user);
+ activeUsersChart.read(user);
return await Notes.packMany(timeline, user);
});
diff --git a/packages/backend/src/server/api/endpoints/stats.ts b/packages/backend/src/server/api/endpoints/stats.ts
index 9879ef2adf..17281888a6 100644
--- a/packages/backend/src/server/api/endpoints/stats.ts
+++ b/packages/backend/src/server/api/endpoints/stats.ts
@@ -56,8 +56,6 @@ export default define(meta, async () => {
reactionsCount,
//originalReactionsCount,
instances,
- driveUsageLocal,
- driveUsageRemote,
] = await Promise.all([
Notes.count({ cache: 3600000 }), // 1 hour
Notes.count({ where: { userHost: null }, cache: 3600000 }),
@@ -66,8 +64,6 @@ export default define(meta, async () => {
NoteReactions.count({ cache: 3600000 }), // 1 hour
//NoteReactions.count({ where: { userHost: null }, cache: 3600000 }),
federationChart.getChart('hour', 1, null).then(chart => chart.instance.total[0]),
- driveChart.getChart('hour', 1, null).then(chart => chart.local.totalSize[0]),
- driveChart.getChart('hour', 1, null).then(chart => chart.remote.totalSize[0]),
]);
return {
@@ -78,7 +74,7 @@ export default define(meta, async () => {
reactionsCount,
//originalReactionsCount,
instances,
- driveUsageLocal,
- driveUsageRemote,
+ driveUsageLocal: 0,
+ driveUsageRemote: 0,
};
});
diff --git a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
index d67625e624..72e79c8824 100644
--- a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
+++ b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
@@ -114,4 +114,6 @@ export default define(meta, async (ps, me) => {
return await Users.packMany(users, me, { detail: !!ps.detail });
}
+
+ return [];
});
diff --git a/packages/backend/src/server/api/service/discord.ts b/packages/backend/src/server/api/service/discord.ts
index f574fe3878..dd731c422e 100644
--- a/packages/backend/src/server/api/service/discord.ts
+++ b/packages/backend/src/server/api/service/discord.ts
@@ -11,18 +11,18 @@ import { fetchMeta } from '@/misc/fetch-meta';
import { Users, UserProfiles } from '@/models/index';
import { ILocalUser } from '@/models/entities/user';
-function getUserToken(ctx: Koa.Context) {
+function getUserToken(ctx: Koa.BaseContext): string | null {
return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1];
}
-function compareOrigin(ctx: Koa.Context) {
- function normalizeUrl(url: string) {
+function compareOrigin(ctx: Koa.BaseContext): boolean {
+ function normalizeUrl(url?: string): string {
return url ? url.endsWith('/') ? url.substr(0, url.length - 1) : url : '';
}
const referer = ctx.headers['referer'];
- return (normalizeUrl(referer) == normalizeUrl(config.url));
+ return (normalizeUrl(referer) === normalizeUrl(config.url));
}
// Init router
diff --git a/packages/backend/src/server/api/service/github.ts b/packages/backend/src/server/api/service/github.ts
index 5e0839df93..b23219986a 100644
--- a/packages/backend/src/server/api/service/github.ts
+++ b/packages/backend/src/server/api/service/github.ts
@@ -11,18 +11,18 @@ import { fetchMeta } from '@/misc/fetch-meta';
import { Users, UserProfiles } from '@/models/index';
import { ILocalUser } from '@/models/entities/user';
-function getUserToken(ctx: Koa.Context) {
+function getUserToken(ctx: Koa.BaseContext): string | null {
return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1];
}
-function compareOrigin(ctx: Koa.Context) {
- function normalizeUrl(url: string) {
+function compareOrigin(ctx: Koa.BaseContext): boolean {
+ function normalizeUrl(url?: string): string {
return url ? url.endsWith('/') ? url.substr(0, url.length - 1) : url : '';
}
const referer = ctx.headers['referer'];
- return (normalizeUrl(referer) == normalizeUrl(config.url));
+ return (normalizeUrl(referer) === normalizeUrl(config.url));
}
// Init router
diff --git a/packages/backend/src/server/api/service/twitter.ts b/packages/backend/src/server/api/service/twitter.ts
index 8659b82cbe..bca00b7924 100644
--- a/packages/backend/src/server/api/service/twitter.ts
+++ b/packages/backend/src/server/api/service/twitter.ts
@@ -10,18 +10,18 @@ import { fetchMeta } from '@/misc/fetch-meta';
import { Users, UserProfiles } from '@/models/index';
import { ILocalUser } from '@/models/entities/user';
-function getUserToken(ctx: Koa.Context) {
+function getUserToken(ctx: Koa.BaseContext): string | null {
return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1];
}
-function compareOrigin(ctx: Koa.Context) {
- function normalizeUrl(url: string) {
- return url.endsWith('/') ? url.substr(0, url.length - 1) : url;
+function compareOrigin(ctx: Koa.BaseContext): boolean {
+ function normalizeUrl(url?: string): string {
+ return url == null ? '' : url.endsWith('/') ? url.substr(0, url.length - 1) : url;
}
const referer = ctx.headers['referer'];
- return (normalizeUrl(referer) == normalizeUrl(config.url));
+ return (normalizeUrl(referer) === normalizeUrl(config.url));
}
// Init router
diff --git a/packages/backend/src/server/api/stream/channels/global-timeline.ts b/packages/backend/src/server/api/stream/channels/global-timeline.ts
index f14f597aac..ecd87d093d 100644
--- a/packages/backend/src/server/api/stream/channels/global-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/global-timeline.ts
@@ -43,7 +43,7 @@ export default class extends Channel {
}
// 関係ない返信は除外
- if (note.reply) {
+ if (note.reply && !this.user!.showTimelineReplies) {
const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
diff --git a/packages/backend/src/server/api/stream/channels/home-timeline.ts b/packages/backend/src/server/api/stream/channels/home-timeline.ts
index 3bd491421d..445db5c382 100644
--- a/packages/backend/src/server/api/stream/channels/home-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/home-timeline.ts
@@ -54,7 +54,7 @@ export default class extends Channel {
}
// 関係ない返信は除外
- if (note.reply) {
+ if (note.reply && !this.user!.showTimelineReplies) {
const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
diff --git a/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts b/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts
index 0ae19aa7ce..c0be71fe2d 100644
--- a/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts
@@ -62,7 +62,7 @@ export default class extends Channel {
if (isInstanceMuted(note, new Set<string>(this.userProfile?.mutedInstances ?? []))) return;
// 関係ない返信は除外
- if (note.reply) {
+ if (note.reply && !this.user!.showTimelineReplies) {
const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
diff --git a/packages/backend/src/server/api/stream/channels/local-timeline.ts b/packages/backend/src/server/api/stream/channels/local-timeline.ts
index 3178b1d511..ae8f62ba61 100644
--- a/packages/backend/src/server/api/stream/channels/local-timeline.ts
+++ b/packages/backend/src/server/api/stream/channels/local-timeline.ts
@@ -43,7 +43,7 @@ export default class extends Channel {
}
// 関係ない返信は除外
- if (note.reply) {
+ if (note.reply && !this.user!.showTimelineReplies) {
const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
diff --git a/packages/backend/src/server/api/stream/types.ts b/packages/backend/src/server/api/stream/types.ts
index e70c26f5e5..e2f1c6fc9c 100644
--- a/packages/backend/src/server/api/stream/types.ts
+++ b/packages/backend/src/server/api/stream/types.ts
@@ -105,7 +105,10 @@ export interface NoteStreamTypes {
};
reacted: {
reaction: string;
- emoji?: Emoji;
+ emoji?: {
+ name: string;
+ url: string;
+ } | null;
userId: User['id'];
};
unreacted: {
diff --git a/packages/backend/src/server/api/streaming.ts b/packages/backend/src/server/api/streaming.ts
index ad87311064..b706b1b8df 100644
--- a/packages/backend/src/server/api/streaming.ts
+++ b/packages/backend/src/server/api/streaming.ts
@@ -59,7 +59,7 @@ module.exports = (server: http.Server) => {
});
connection.on('message', async (data) => {
- if (data.utf8Data === 'ping') {
+ if (data.type === 'utf8' && data.utf8Data === 'ping') {
connection.send('pong');
}
});