From 8ba9c96f2075f5245a9fec369046559d6a1e107c Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 11 Nov 2022 00:11:44 +0100 Subject: [PATCH] Fix most plugins --- src/plugins/pronoundb/index.ts | 6 ++-- src/plugins/reverseImageSearch.tsx | 2 +- src/plugins/{settings.ts => settings.tsx} | 39 +++++++++++++---------- src/plugins/spotifyControls/index.tsx | 2 +- 4 files changed, 27 insertions(+), 22 deletions(-) rename src/plugins/{settings.ts => settings.tsx} (68%) diff --git a/src/plugins/pronoundb/index.ts b/src/plugins/pronoundb/index.ts index 68fa2654..5dfeda5c 100644 --- a/src/plugins/pronoundb/index.ts +++ b/src/plugins/pronoundb/index.ts @@ -38,7 +38,7 @@ export default definePlugin({ { find: "showCommunicationDisabledStyles", replacement: { - match: /(?<=return\s+\w{1,3}\.createElement\(.+!\w{1,3}&&)(\w{1,3}.createElement\(.+?\{.+?\}\))/, + match: /(?<=return\s*\(0,\w{1,3}\.jsxs?\)\(.+!\w{1,3}&&)(\(0,\w{1,3}.jsxs?\)\(.+?\{.+?\}\))/, replace: "[$1, Vencord.Plugins.plugins.PronounDB.PronounsChatComponent(e)]" } }, @@ -46,8 +46,8 @@ export default definePlugin({ { find: ".headerTagUsernameNoNickname", replacement: { - match: /""!==(.{1,2})&&(r\.createElement\(r\.Fragment.+?\.Messages\.USER_POPOUT_PRONOUNS.+?pronounsText.+?\},\1\)\))/, - replace: (_, __, fragment) => `Vencord.Plugins.plugins.PronounDB.PronounsProfileWrapper(e, ${fragment})` + match: /(?<=""!==(.{1,2})&&).+?children:\1.+?(?=,)/, + replace: "Vencord.Plugins.plugins.PronounDB.PronounsProfileWrapper(e, $1)" } } ], diff --git a/src/plugins/reverseImageSearch.tsx b/src/plugins/reverseImageSearch.tsx index 3bcefba8..cbe72d8e 100644 --- a/src/plugins/reverseImageSearch.tsx +++ b/src/plugins/reverseImageSearch.tsx @@ -36,7 +36,7 @@ export default definePlugin({ patches: [{ find: "open-native-link", replacement: { - match: /key:"open-native-link".{0,200}\(\{href:(.{0,3}),.{0,200}\}\)/, + match: /id:"open-native-link".{0,200}\(\{href:(.{0,3}),.{0,200}\},"open-native-link"\)/, replace: (m, src) => `${m},Vencord.Plugins.plugins.ReverseImageSearch.makeMenu(${src}, arguments[2])` } diff --git a/src/plugins/settings.ts b/src/plugins/settings.tsx similarity index 68% rename from src/plugins/settings.ts rename to src/plugins/settings.tsx index f8ef7d81..d80b0ffa 100644 --- a/src/plugins/settings.ts +++ b/src/plugins/settings.tsx @@ -16,6 +16,8 @@ * along with this program. If not, see . */ +import React from "react"; + import gitHash from "~git-hash"; import { Devs } from "../utils/constants"; @@ -30,22 +32,10 @@ export default definePlugin({ find: "().versionHash", replacement: [ { - match: /\w\.createElement\(.{1,2}.Fragment,.{0,30}\{[^}]+\},"Host ".+?\):null/, - replace: m => { - const idx = m.indexOf("Host") - 1; - const template = m.slice(0, idx); - const additionalInfo = IS_WEB - ? " (Web)" - : IS_STANDALONE - ? " (Standalone)" - : ""; - - let r = `${m}, ${template}"Vencord ", "${gitHash}${additionalInfo}"), " ")`; - if (!IS_WEB) { - r += `,${template} "Electron ",VencordNative.getVersions().electron)," "),`; - r += `${template} "Chrome ",VencordNative.getVersions().chrome)," ")`; - } - return r; + match: /\[\(0,.{1,3}\.jsxs?\)\((.{1,10}),(\{[^{}}]+\{.{0,20}\(\)\.versionHash,.+?\})\)," "/, + replace: (m, component, props) => { + props = props.replace(/children:\[.+\]/, ""); + return `${m},Vencord.Plugins.plugins.Settings.makeInfoElements(${component}, ${props})`; } } ] @@ -66,5 +56,20 @@ export default definePlugin({ ); } } - }] + }], + + makeInfoElements(Component: React.ComponentType, props: React.PropsWithChildren) { + const additionalInfo = IS_WEB + ? " (Web)" + : IS_STANDALONE + ? " (Standalone)" + : ""; + return ( + <> + Vencord {gitHash}{additionalInfo} + Electron {VencordNative.getVersions().electron} + Chromium {VencordNative.getVersions().chrome} + + ); + } }); diff --git a/src/plugins/spotifyControls/index.tsx b/src/plugins/spotifyControls/index.tsx index 18bced9e..6bf66253 100644 --- a/src/plugins/spotifyControls/index.tsx +++ b/src/plugins/spotifyControls/index.tsx @@ -40,7 +40,7 @@ export default definePlugin({ find: "showTaglessAccountPanel:", replacement: { // return React.createElement(AccountPanel, { ..., showTaglessAccountPanel: blah }) - match: /return (.{0,30}\(.{1,3},\{[^}]+?,showTaglessAccountPanel:.+?\}\))/, + match: /return ?(.{0,30}\(.{1,3},\{[^}]+?,showTaglessAccountPanel:.+?\}\))/, // return [Player, Panel] replace: "return [Vencord.Plugins.plugins.SpotifyControls.renderPlayer(),$1]" }