From 726fdb86a20b7dc2c52cdf16064e709f72480626 Mon Sep 17 00:00:00 2001 From: Key Date: Sun, 29 Mar 2026 03:32:31 +0100 Subject: [PATCH] FileUpload: allow configuration of cors proxy (#940) --- src/equicordplugins/fileUpload/constants.ts | 8 ++++++-- src/equicordplugins/fileUpload/settings.tsx | 19 +++++++++++++++++++ src/equicordplugins/fileUpload/utils/s3.ts | 3 ++- .../fileUpload/utils/upload.ts | 8 +++++--- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/equicordplugins/fileUpload/constants.ts b/src/equicordplugins/fileUpload/constants.ts index 9742e2dbe..5934a3be9 100644 --- a/src/equicordplugins/fileUpload/constants.ts +++ b/src/equicordplugins/fileUpload/constants.ts @@ -6,6 +6,10 @@ export const CORS_PROXY = "https://cors.keiran0.workers.dev"; -export function toProxiedUrl(url: string): string { - return `${CORS_PROXY}?url=${encodeURIComponent(url)}`; +export function normalizeCorsProxyUrl(url?: string): string { + return (url?.trim() || CORS_PROXY).replace(/\/+$/, ""); +} + +export function toProxiedUrl(url: string, corsProxyUrl = CORS_PROXY): string { + return `${normalizeCorsProxyUrl(corsProxyUrl)}?url=${encodeURIComponent(url)}`; } diff --git a/src/equicordplugins/fileUpload/settings.tsx b/src/equicordplugins/fileUpload/settings.tsx index acebee402..b1aceb041 100644 --- a/src/equicordplugins/fileUpload/settings.tsx +++ b/src/equicordplugins/fileUpload/settings.tsx @@ -12,6 +12,7 @@ import { useForceUpdater } from "@utils/react"; import { OptionType } from "@utils/types"; import { React, Select, showToast, TextArea, TextInput, Toasts } from "@webpack/common"; +import { CORS_PROXY } from "./constants"; import { ServiceType } from "./types"; import { parseShareXConfig } from "./utils/sharex"; @@ -196,6 +197,12 @@ export const settings = definePluginSettings({ default: false, hidden: true }, + corsProxyUrl: { + type: OptionType.STRING, + description: "CORS proxy URL used for browser uploads", + default: CORS_PROXY, + hidden: true + }, apngToGif: { type: OptionType.BOOLEAN, description: "Convert APNG uploads to GIF", @@ -482,6 +489,18 @@ export function SettingsComponent() { /> + store.corsProxyUrl = v} + placeholder="https://your-cors-proxy.example.com" + /> + + + codeberg.org/key/corsproxy + +