summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/web
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-03-22 09:55:38 +0900
committerGitHub <noreply@github.com>2023-03-22 09:55:38 +0900
commit1e67e9c6616c6e87ae85ece71e5401006df2dd34 (patch)
treea0d6df03a3d0ac2edf1fda7ed4bfb789b5a29720 /packages/backend/src/server/web
parentMerge pull request #10218 from misskey-dev/develop (diff)
parentfix drive-cleaner (diff)
downloadmisskey-1e67e9c6616c6e87ae85ece71e5401006df2dd34.tar.gz
misskey-1e67e9c6616c6e87ae85ece71e5401006df2dd34.tar.bz2
misskey-1e67e9c6616c6e87ae85ece71e5401006df2dd34.zip
Merge pull request #10342 from misskey-dev/develop
Release: 13.10.0
Diffstat (limited to 'packages/backend/src/server/web')
-rw-r--r--packages/backend/src/server/web/ClientServerService.ts5
-rw-r--r--packages/backend/src/server/web/UrlPreviewService.ts35
-rw-r--r--packages/backend/src/server/web/views/base.pug2
3 files changed, 20 insertions, 22 deletions
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index 98cdd31206..fb76f07e48 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -195,11 +195,6 @@ export class ClientServerService {
//#region static assets
fastify.register(fastifyStatic, {
- root: _dirname,
- serve: false,
- });
-
- fastify.register(fastifyStatic, {
root: staticAssets,
prefix: '/static-assets/',
maxAge: ms('7 days'),
diff --git a/packages/backend/src/server/web/UrlPreviewService.ts b/packages/backend/src/server/web/UrlPreviewService.ts
index 2ce7293a52..b3e193cd34 100644
--- a/packages/backend/src/server/web/UrlPreviewService.ts
+++ b/packages/backend/src/server/web/UrlPreviewService.ts
@@ -1,7 +1,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { summaly } from 'summaly';
import { DI } from '@/di-symbols.js';
-import type { UsersRepository } from '@/models/index.js';
import type { Config } from '@/config.js';
import { MetaService } from '@/core/MetaService.js';
import { HttpRequestService } from '@/core/HttpRequestService.js';
@@ -9,6 +8,7 @@ import type Logger from '@/logger.js';
import { query } from '@/misc/prelude/url.js';
import { LoggerService } from '@/core/LoggerService.js';
import { bindThis } from '@/decorators.js';
+import { ApiError } from '@/server/api/error.js';
import type { FastifyRequest, FastifyReply } from 'fastify';
@Injectable()
@@ -19,9 +19,6 @@ export class UrlPreviewService {
@Inject(DI.config)
private config: Config,
- @Inject(DI.usersRepository)
- private usersRepository: UsersRepository,
-
private metaService: MetaService,
private httpRequestService: HttpRequestService,
private loggerService: LoggerService,
@@ -43,23 +40,23 @@ export class UrlPreviewService {
@bindThis
public async handle(
- request: FastifyRequest<{ Querystring: { url: string; lang: string; } }>,
+ request: FastifyRequest<{ Querystring: { url: string; lang?: string; } }>,
reply: FastifyReply,
- ) {
+ ): Promise<object | undefined> {
const url = request.query.url;
if (typeof url !== 'string') {
reply.code(400);
return;
}
-
+
const lang = request.query.lang;
if (Array.isArray(lang)) {
reply.code(400);
return;
}
-
+
const meta = await this.metaService.fetch();
-
+
this.logger.info(meta.summalyProxy
? `(Proxy) Getting preview of ${url}@${lang} ...`
: `Getting preview of ${url}@${lang} ...`);
@@ -81,26 +78,32 @@ export class UrlPreviewService {
this.logger.succ(`Got preview of ${url}: ${summary.title}`);
- if (summary.url && !(summary.url.startsWith('http://') || summary.url.startsWith('https://'))) {
+ if (!(summary.url.startsWith('http://') || summary.url.startsWith('https://'))) {
throw new Error('unsupported schema included');
}
- if (summary.player?.url && !(summary.player.url.startsWith('http://') || summary.player.url.startsWith('https://'))) {
+ if (summary.player.url && !(summary.player.url.startsWith('http://') || summary.player.url.startsWith('https://'))) {
throw new Error('unsupported schema included');
}
-
+
summary.icon = this.wrap(summary.icon);
summary.thumbnail = this.wrap(summary.thumbnail);
-
+
// Cache 7days
reply.header('Cache-Control', 'max-age=604800, immutable');
-
+
return summary;
} catch (err) {
this.logger.warn(`Failed to get preview of ${url}: ${err}`);
- reply.code(200);
+ reply.code(422);
reply.header('Cache-Control', 'max-age=86400, immutable');
- return {};
+ return {
+ error: new ApiError({
+ message: 'Failed to get preview',
+ code: 'URL_PREVIEW_FAILED',
+ id: '09d01cb5-53b9-4856-82e5-38a50c290a3b',
+ }),
+ };
}
}
}
diff --git a/packages/backend/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug
index 8d6897c46d..a9a0dfd4ee 100644
--- a/packages/backend/src/server/web/views/base.pug
+++ b/packages/backend/src/server/web/views/base.pug
@@ -36,7 +36,7 @@ html
link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg')
link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg')
//- https://github.com/misskey-dev/misskey/issues/9842
- link(rel='stylesheet' href='/assets/tabler-icons/tabler-icons.min.css?v2.2.0')
+ link(rel='stylesheet' href='/assets/tabler-icons/tabler-icons.min.css?v2.10.0')
link(rel='modulepreload' href=`/vite/${clientEntry.file}`)
if !config.clientManifestExists