From 01c464e0c4a8ad7a5c06ae1cd51857cd347ce675 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:06:05 -0400 Subject: [PATCH] Security: Drop A Lot Of Plugins Thank you V --- src/equicordplugins/chatButtonsPlus/index.tsx | 298 -------------- .../chatButtonsPlus/styles.css | 78 ---- .../gensokyoRadioRPC/index.tsx | 104 ----- .../gensokyoRadioRPC/native.ts | 20 - src/equicordplugins/gensokyoRadioRPC/types.ts | 48 --- .../identity.discordDesktop/index.tsx | 149 ------- .../identity.discordDesktop/native.ts | 29 -- .../DependencyModal.tsx | 115 ------ .../mediaDownloader.desktop/index.tsx | 339 ---------------- .../mediaDownloader.desktop/native.ts | 312 --------------- .../mediaDownloader.desktop/style.css | 9 - src/equicordplugins/repeatMessage/index.tsx | 127 ------ .../shakeSpearean.dev/index.ts | 40 -- .../shakeSpearean.dev/native.ts | 76 ---- src/equicordplugins/teX/index.tsx | 93 ----- src/equicordplugins/teX/katexLoader.ts | 29 -- src/equicordplugins/teX/style.css | 8 - .../zipPreview/FilePreview.tsx | 377 ------------------ src/equicordplugins/zipPreview/ZipPreview.tsx | 128 ------ .../zipPreview/assets/arrow-expand-down.svg | 1 - .../zipPreview/assets/arrow-expand-up.svg | 1 - .../zipPreview/assets/close.svg | 1 - .../zipPreview/assets/content-copy.svg | 1 - .../zipPreview/assets/download.svg | 1 - .../assets/folder-arrow-left-outline.svg | 1 - src/equicordplugins/zipPreview/index.tsx | 193 --------- src/equicordplugins/zipPreview/styles.css | 347 ---------------- src/equicordplugins/zipPreview/unzip.ts | 130 ------ src/plugins/imageZoom/index.tsx | 211 +--------- 29 files changed, 15 insertions(+), 3251 deletions(-) delete mode 100644 src/equicordplugins/chatButtonsPlus/index.tsx delete mode 100644 src/equicordplugins/chatButtonsPlus/styles.css delete mode 100644 src/equicordplugins/gensokyoRadioRPC/index.tsx delete mode 100644 src/equicordplugins/gensokyoRadioRPC/native.ts delete mode 100644 src/equicordplugins/gensokyoRadioRPC/types.ts delete mode 100644 src/equicordplugins/identity.discordDesktop/index.tsx delete mode 100644 src/equicordplugins/identity.discordDesktop/native.ts delete mode 100644 src/equicordplugins/mediaDownloader.desktop/DependencyModal.tsx delete mode 100644 src/equicordplugins/mediaDownloader.desktop/index.tsx delete mode 100644 src/equicordplugins/mediaDownloader.desktop/native.ts delete mode 100644 src/equicordplugins/mediaDownloader.desktop/style.css delete mode 100644 src/equicordplugins/repeatMessage/index.tsx delete mode 100644 src/equicordplugins/shakeSpearean.dev/index.ts delete mode 100644 src/equicordplugins/shakeSpearean.dev/native.ts delete mode 100644 src/equicordplugins/teX/index.tsx delete mode 100644 src/equicordplugins/teX/katexLoader.ts delete mode 100644 src/equicordplugins/teX/style.css delete mode 100644 src/equicordplugins/zipPreview/FilePreview.tsx delete mode 100644 src/equicordplugins/zipPreview/ZipPreview.tsx delete mode 100644 src/equicordplugins/zipPreview/assets/arrow-expand-down.svg delete mode 100644 src/equicordplugins/zipPreview/assets/arrow-expand-up.svg delete mode 100644 src/equicordplugins/zipPreview/assets/close.svg delete mode 100644 src/equicordplugins/zipPreview/assets/content-copy.svg delete mode 100644 src/equicordplugins/zipPreview/assets/download.svg delete mode 100644 src/equicordplugins/zipPreview/assets/folder-arrow-left-outline.svg delete mode 100644 src/equicordplugins/zipPreview/index.tsx delete mode 100644 src/equicordplugins/zipPreview/styles.css delete mode 100644 src/equicordplugins/zipPreview/unzip.ts diff --git a/src/equicordplugins/chatButtonsPlus/index.tsx b/src/equicordplugins/chatButtonsPlus/index.tsx deleted file mode 100644 index f36e4f838..000000000 --- a/src/equicordplugins/chatButtonsPlus/index.tsx +++ /dev/null @@ -1,298 +0,0 @@ -/* - * Vencord, a Discord client mod - * Copyright (c) 2024 Vendicated and contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import "./styles.css"; - -import { ChatBarButton } from "@api/ChatButtons"; -import { DataStore } from "@api/index"; -import { definePluginSettings } from "@api/Settings"; -import { FormSwitch } from "@components/FormSwitch"; -import { Heading } from "@components/Heading"; -import { Paragraph } from "@components/Paragraph"; -import { EquicordDevs } from "@utils/constants"; -import { getCurrentChannel, sendMessage } from "@utils/discord"; -import { useForceUpdater } from "@utils/react"; -import definePlugin, { OptionType } from "@utils/types"; -import { Button, React, TextInput } from "@webpack/common"; - -type ButtonEntry = { - id: string; - label: string; - message: string; - svg: string; - enabled: boolean; -}; - -let buttonEntries: ButtonEntry[] = []; -const BUTTON_ENTRIES_KEY = "ChatButtonsPlus_buttonEntries"; - -function generateId(): string { - return Date.now().toString(36) + Math.random().toString(36).substring(2); -} - -async function handleButtonClick(context: string) { - const currentChannel = getCurrentChannel(); - - if (!currentChannel) return; - - sendMessage(currentChannel.id, { content: context }); -} - -async function addButtonEntry(forceUpdate: () => void) { - try { - buttonEntries.push({ - id: generateId(), - label: "New Button", - message: "Hello!", - svg: '', - enabled: true - }); - await DataStore.set(BUTTON_ENTRIES_KEY, buttonEntries); - forceUpdate(); - } catch (error) { - console.error("ChatButtonsPlus: Failed to add button entry:", error); - } -} - -async function removeButtonEntry(id: string, forceUpdate: () => void) { - try { - const index = buttonEntries.findIndex(entry => entry.id === id); - if (index !== -1) { - buttonEntries.splice(index, 1); - await DataStore.set(BUTTON_ENTRIES_KEY, buttonEntries); - forceUpdate(); - } - } catch (error) { - console.error("ChatButtonsPlus: Failed to remove button entry:", error); - } -} - -async function resetAllButtons(forceUpdate: () => void) { - try { - buttonEntries.length = 0; - await DataStore.set(BUTTON_ENTRIES_KEY, []); - forceUpdate(); - } catch (error) { - console.error("ChatButtonsPlus: Failed to reset buttons:", error); - } -} - -function ButtonEntries() { - const update = useForceUpdater(); - - React.useEffect(() => { - const loadEntries = async () => { - try { - const storedEntries = await DataStore.get(BUTTON_ENTRIES_KEY) ?? []; - buttonEntries = storedEntries; - update(); - } catch (error) { - console.error("ChatButtonsPlus: Failed to load entries:", error); - } - }; - loadEntries(); - }, []); - - async function setLabel(id: string, value: string) { - try { - const index = buttonEntries.findIndex(entry => entry.id === id); - if (index !== -1) { - buttonEntries[index].label = value.trim() || "Button"; - await DataStore.set(BUTTON_ENTRIES_KEY, buttonEntries); - update(); - } - } catch (error) { - console.error("ChatButtonsPlus: Failed to update label:", error); - } - } - - async function setMessage(id: string, value: string) { - try { - const index = buttonEntries.findIndex(entry => entry.id === id); - if (index !== -1) { - buttonEntries[index].message = value; - await DataStore.set(BUTTON_ENTRIES_KEY, buttonEntries); - update(); - } - } catch (error) { - console.error("ChatButtonsPlus: Failed to update message:", error); - } - } - - async function setSvg(id: string, value: string) { - try { - const index = buttonEntries.findIndex(entry => entry.id === id); - if (index !== -1) { - if (value.trim() === "" || isValidSvg(value.trim())) { - buttonEntries[index].svg = value.trim(); - await DataStore.set(BUTTON_ENTRIES_KEY, buttonEntries); - update(); - } - } - } catch (error) { - console.error("ChatButtonsPlus: Failed to update SVG:", error); - } - } - - async function setEnabled(id: string, value: boolean) { - try { - const index = buttonEntries.findIndex(entry => entry.id === id); - if (index !== -1) { - buttonEntries[index].enabled = value; - await DataStore.set(BUTTON_ENTRIES_KEY, buttonEntries); - update(); - } - } catch (error) { - console.error("ChatButtonsPlus: Failed to update enabled state:", error); - } - } - - function isValidSvg(svg: string): boolean { - if (!svg) return true; - - const dangerousPatterns = [ - /