WebContextMenus: only force png on copy image, not save image

This commit is contained in:
Vendicated 2024-01-18 00:58:40 +01:00 committed by Luna
parent 9198263316
commit 66b6a1e2d9

View file

@ -49,7 +49,7 @@ const settings = definePluginSettings({
const MEDIA_PROXY_URL = "https://media.discordapp.net"; const MEDIA_PROXY_URL = "https://media.discordapp.net";
const CDN_URL = "https://cdn.discordapp.com"; const CDN_URL = "https://cdn.discordapp.com";
function fixImageUrl(urlString: string) { function fixImageUrl(urlString: string, explodeWebp: boolean) {
const url = new URL(urlString); const url = new URL(urlString);
if (url.origin === CDN_URL) return urlString; if (url.origin === CDN_URL) return urlString;
if (url.origin === MEDIA_PROXY_URL) return CDN_URL + url.pathname; if (url.origin === MEDIA_PROXY_URL) return CDN_URL + url.pathname;
@ -57,7 +57,9 @@ function fixImageUrl(urlString: string) {
url.searchParams.delete("width"); url.searchParams.delete("width");
url.searchParams.delete("height"); url.searchParams.delete("height");
url.searchParams.set("quality", "lossless"); url.searchParams.set("quality", "lossless");
if (url.searchParams.get("format") === "webp") url.searchParams.set("format", "png"); if (explodeWebp && url.searchParams.get("format") === "webp")
url.searchParams.set("format", "png");
return url.toString(); return url.toString();
} }
@ -197,7 +199,7 @@ export default definePlugin({
], ],
async copyImage(url: string) { async copyImage(url: string) {
url = fixImageUrl(url); url = fixImageUrl(url, true);
let imageData = await fetch(url).then(r => r.blob()); let imageData = await fetch(url).then(r => r.blob());
if (imageData.type !== "image/png") { if (imageData.type !== "image/png") {
@ -229,7 +231,7 @@ export default definePlugin({
}, },
async saveImage(url: string) { async saveImage(url: string) {
url = fixImageUrl(url); url = fixImageUrl(url, false);
const data = await fetchImage(url); const data = await fetchImage(url);
if (!data) return; if (!data) return;