From 1176a15bf59524c3137b9a5470d7336726d9be67 Mon Sep 17 00:00:00 2001 From: AmaseCocoa Date: Tue, 7 Jan 2025 17:01:48 +0900 Subject: [PATCH] =?UTF-8?q?fix(backend):=20/fetch-rss=E5=81=B4=E3=81=A7URL?= =?UTF-8?q?=E3=82=92=E3=83=87=E3=82=B3=E3=83=BC=E3=83=89=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/src/core/HttpRequestService.ts | 5 ++--- packages/backend/src/server/api/endpoints/fetch-rss.ts | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/backend/src/core/HttpRequestService.ts b/packages/backend/src/core/HttpRequestService.ts index 7e52b80cb0..083153940a 100644 --- a/packages/backend/src/core/HttpRequestService.ts +++ b/packages/backend/src/core/HttpRequestService.ts @@ -283,7 +283,6 @@ export class HttpRequestService { }, ): Promise { const timeout = args.timeout ?? 5000; - const decodedUrl = decodeURIComponent(url); const controller = new AbortController(); setTimeout(() => { @@ -292,7 +291,7 @@ export class HttpRequestService { const isLocalAddressAllowed = args.isLocalAddressAllowed ?? false; - const res = await fetch(decodedUrl, { + const res = await fetch(url, { method: args.method ?? 'GET', headers: { 'User-Agent': this.config.userAgent, @@ -300,7 +299,7 @@ export class HttpRequestService { }, body: args.body, size: args.size ?? 10 * 1024 * 1024, - agent: (decodedUrl) => this.getAgentByUrl(decodedUrl, false, isLocalAddressAllowed), + agent: (url) => this.getAgentByUrl(url, false, isLocalAddressAllowed), signal: controller.signal, }); diff --git a/packages/backend/src/server/api/endpoints/fetch-rss.ts b/packages/backend/src/server/api/endpoints/fetch-rss.ts index 562092ea07..c941657493 100644 --- a/packages/backend/src/server/api/endpoints/fetch-rss.ts +++ b/packages/backend/src/server/api/endpoints/fetch-rss.ts @@ -7,7 +7,6 @@ import Parser from 'rss-parser'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; import { HttpRequestService } from '@/core/HttpRequestService.js'; -import { URL } from 'url'; const rssParser = new Parser(); @@ -220,7 +219,7 @@ export default class extends Endpoint { // eslint- private httpRequestService: HttpRequestService, ) { super(meta, paramDef, async (ps, me) => { - const res = await this.httpRequestService.send(ps.url, { + const res = await this.httpRequestService.send(decodeURIComponent(ps.url), { method: 'GET', headers: { Accept: 'application/rss+xml, */*',