aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author1024x22024-02-16 22:04:43 +0000
committer1024x22024-02-16 22:04:43 +0000
commit5ccb126decfdebe16db32a2df22d9e75e4949654 (patch)
tree67f5990a52c25b4bd9d8da49ed5d4be8f8b62544
Initial commit
-rw-r--r--0001-Remove-donator-badges.patch150
-rw-r--r--0002-Small-rebrand.patch150
-rw-r--r--0003-Experiments-Re-add-staging-banner.patch45
-rw-r--r--0004-Updater-don-t-prompt-for-updates-when-on-a-local-bra.patch27
-rw-r--r--0005-Enable-CSP-bypass-on-stock-discord-desktop-client.patch29
-rw-r--r--README.md5
6 files changed, 406 insertions, 0 deletions
diff --git a/0001-Remove-donator-badges.patch b/0001-Remove-donator-badges.patch
new file mode 100644
index 0000000..1af5b96
--- /dev/null
+++ b/0001-Remove-donator-badges.patch
@@ -0,0 +1,150 @@
+From 191cf11a7bb70b3a213be50e85bbb0ccdbfbcf67 Mon Sep 17 00:00:00 2001
+From: 1024x2 <2pow11@gmail.com>
+Date: Mon, 9 Oct 2023 17:46:41 +0100
+Subject: [PATCH 1/5] Remove donator badges
+
+It makes a request to an API hosted by the Vencord developer, without
+any option to turn it off. This raises privacy concerns.
+It's easiest to just get rid of the feature entirely.
+---
+ src/api/Badges.ts | 3 +-
+ src/plugins/_api/badges.tsx | 97 +------------------------------------
+ 2 files changed, 2 insertions(+), 98 deletions(-)
+
+diff --git a/src/api/Badges.ts b/src/api/Badges.ts
+index b50016c..3529693 100644
+--- a/src/api/Badges.ts
++++ b/src/api/Badges.ts
+@@ -79,8 +79,7 @@ export function _getBadges(args: BadgeUserArgs) {
+ : badges.push({ ...badge, ...args });
+ }
+ }
+- const donorBadges = (Plugins.BadgeAPI as unknown as typeof import("../plugins/_api/badges").default).getDonorBadges(args.user.id);
+- if (donorBadges) badges.unshift(...donorBadges);
++ void Plugins.BadgeAPI; // If I don't reference this everything breaks???
+
+ return badges;
+ }
+diff --git a/src/plugins/_api/badges.tsx b/src/plugins/_api/badges.tsx
+index 16b244a..4328925 100644
+--- a/src/plugins/_api/badges.tsx
++++ b/src/plugins/_api/badges.tsx
+@@ -44,19 +44,6 @@ const ContributorBadge: ProfileBadge = {
+ link: "https://github.com/Vendicated/Vencord"
+ };
+
+-let DonorBadges = {} as Record<string, Array<Record<"tooltip" | "badge", string>>>;
+-
+-async function loadBadges(noCache = false) {
+- DonorBadges = {};
+-
+- const init = {} as RequestInit;
+- if (noCache)
+- init.cache = "no-cache";
+-
+- DonorBadges = await fetch("https://badges.vencord.dev/badges.json", init)
+- .then(r => r.json());
+-}
+-
+ export default definePlugin({
+ name: "BadgeAPI",
+ description: "API to add badges to users.",
+@@ -91,94 +78,12 @@ export default definePlugin({
+ }
+ ],
+
+- toolboxActions: {
+- async "Refetch Badges"() {
+- await loadBadges(true);
+- Toasts.show({
+- id: Toasts.genId(),
+- message: "Successfully refetched badges!",
+- type: Toasts.Type.SUCCESS
+- });
+- }
+- },
+-
+ async start() {
+ Vencord.Api.Badges.addBadge(ContributorBadge);
+- await loadBadges();
+ },
+
+ renderBadgeComponent: ErrorBoundary.wrap((badge: ProfileBadge & BadgeUserArgs) => {
+ const Component = badge.component!;
+ return <Component {...badge} />;
+- }, { noop: true }),
+-
+-
+- getDonorBadges(userId: string) {
+- return DonorBadges[userId]?.map(badge => ({
+- image: badge.badge,
+- description: badge.tooltip,
+- position: BadgePosition.START,
+- props: {
+- style: {
+- borderRadius: "50%",
+- transform: "scale(0.9)" // The image is a bit too big compared to default badges
+- }
+- },
+- onClick() {
+- const modalKey = openModal(props => (
+- <ErrorBoundary noop onError={() => {
+- closeModal(modalKey);
+- VencordNative.native.openExternal("https://github.com/sponsors/Vendicated");
+- }}>
+- <Modals.ModalRoot {...props}>
+- <Modals.ModalHeader>
+- <Flex style={{ width: "100%", justifyContent: "center" }}>
+- <Forms.FormTitle
+- tag="h2"
+- style={{
+- width: "100%",
+- textAlign: "center",
+- margin: 0
+- }}
+- >
+- <Heart />
+- Vencord Donor
+- </Forms.FormTitle>
+- </Flex>
+- </Modals.ModalHeader>
+- <Modals.ModalContent>
+- <Flex>
+- <img
+- role="presentation"
+- src="https://cdn.discordapp.com/emojis/1026533070955872337.png"
+- alt=""
+- style={{ margin: "auto" }}
+- />
+- <img
+- role="presentation"
+- src="https://cdn.discordapp.com/emojis/1026533090627174460.png"
+- alt=""
+- style={{ margin: "auto" }}
+- />
+- </Flex>
+- <div style={{ padding: "1em" }}>
+- <Forms.FormText>
+- This Badge is a special perk for Vencord Donors
+- </Forms.FormText>
+- <Forms.FormText className={Margins.top20}>
+- Please consider supporting the development of Vencord by becoming a donor. It would mean a lot!!
+- </Forms.FormText>
+- </div>
+- </Modals.ModalContent>
+- <Modals.ModalFooter>
+- <Flex style={{ width: "100%", justifyContent: "center" }}>
+- <DonateButton />
+- </Flex>
+- </Modals.ModalFooter>
+- </Modals.ModalRoot>
+- </ErrorBoundary>
+- ));
+- },
+- }));
+- }
++ }, { noop: true })
+ });
+--
+2.43.1
+
diff --git a/0002-Small-rebrand.patch b/0002-Small-rebrand.patch
new file mode 100644
index 0000000..1052397
--- /dev/null
+++ b/0002-Small-rebrand.patch
@@ -0,0 +1,150 @@
+From 50d952d0728b6ec9a096acb36e6096f862e185b4 Mon Sep 17 00:00:00 2001
+From: 1024x2 <2pow11@gmail.com>
+Date: Tue, 13 Feb 2024 21:26:56 +0000
+Subject: [PATCH 2/5] Small rebrand
+
+There's a litevex in here! It's got my gun!!! AHHHHHHHH
+---
+ README.md | 46 ++++++++-----------
+ src/components/VencordSettings/VencordTab.tsx | 4 +-
+ src/plugins/vencordToolbox/index.tsx | 10 ++--
+ 3 files changed, 26 insertions(+), 34 deletions(-)
+
+diff --git a/README.md b/README.md
+index a43c9f8..1f4f970 100644
+--- a/README.md
++++ b/README.md
+@@ -1,20 +1,21 @@
+-# Vencord
++# Vexcord
+
+ [![Codeberg Mirror](https://img.shields.io/static/v1?style=for-the-badge&label=Codeberg%20Mirror&message=codeberg.org/Vee/cord&color=2185D0&logo=data:image/png;base64,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)](https://codeberg.org/Vee/cord)
+
+-The cutest Discord client mod
++The porniest Discord client mod
+
+-| ![image](https://github.com/Vendicated/Vencord/assets/45497981/706722b1-32de-4d99-bee9-93993b504334) |
++| ![image](https://media.tenor.com/BxmwtK6R-10AAAAC/litevex-litevx.gif) |
+ |:--:|
+-| A screenshot of vencord showcasing the [vencord-theme](https://github.com/synqat/vencord-theme) |
++| A screenshot of vexcord showcasing the [pornliker](https://litevex.staropa.net/) |
+
+ ## Features
+
+-- Super easy to install (Download Installer, open, click install button, done)
++- ![No anime](https://i.kym-cdn.com/photos/images/original/001/408/771/8e3.jpg)
++- Despite the questionable branding, no porn.
+ - 100+ plugins built in: [See a list](https://vencord.dev/plugins)
+ - Some highlights: SpotifyControls, MessageLogger, Experiments, GameActivityToggle, Translate, NoTrack, QuickReply, Free Emotes/Stickers, PermissionsViewer, CustomCommands, ShowHiddenChannels, PronounDB
+ - Fairly lightweight despite the many inbuilt plugins
+-- Excellent Browser Support: Run Vencord in your Browser via extension or UserScript
++- Excellent Browser Support: Run Vexcord in your Browser via extension or UserScript
+ - Works on any Discord branch: Stable, Canary or PTB all work (though for the best experience I recommend stable!)
+ - Custom CSS and Themes: Inbuilt css editor with support to import any css files (including BetterDiscord themes)
+ - Privacy friendly, blocks Discord analytics & crash reporting out of the box and has no telemetry
+@@ -22,46 +23,37 @@ The cutest Discord client mod
+ - Settings sync: Keep your plugins and their settings synchronised between devices / apps (optional)
+
+
+-## Installing / Uninstalling
++## Installing
+
+-Visit https://vencord.dev/download
++Don't
++
++## Uninstalling
++
++Why did you install this
+
+ ## Join our Support/Community Server
+
+-https://discord.gg/D9uwnFnqmd
++https://discord.gg/QKv6vwGBpk
+
+ ## Sponsors
+
+-| **Thanks a lot to all Vencord [sponsors](https://github.com/sponsors/Vendicated)!!** |
+-|:--:|
+-| [![](https://meow.vendicated.dev/sponsors.png)](https://github.com/sponsors/Vendicated) |
+-| *generated using [github-sponsor-graph](https://github.com/Vendicated/github-sponsor-graph)* |
+-
++WHY WOULD YOU PAY MONEY FOR THIS??
+
+ ## Star History
+
+-<a href="https://star-history.com/#Vendicated/Vencord&Timeline">
+- <picture>
+- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Vendicated/Vencord&type=Timeline&theme=dark" />
+- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Vendicated/Vencord&type=Timeline" />
+- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Vendicated/Vencord&type=Timeline" />
+- </picture>
+-</a>
++![Star History Chart](https://media.tenor.com/t4_mbIafxxIAAAAC/litevex-litevx.gif)
+
+ ## Disclaimer
+
+ Discord is trademark of Discord Inc. and solely mentioned for the sake of descriptivity.
+ Mention of it does not imply any affiliation with or endorsement by Discord Inc.
++This is a fork of Vencord, which calls itself the "cutest" client mod.
+
+ <details>
+-<summary>Using Vencord violates Discord's terms of service</summary>
++<summary>Using Vexcord violates Discord's terms of service</summary>
+
+ Client modifications are against Discord’s Terms of Service.
+
+-However, Discord is pretty indifferent about them and there are no known cases of users getting banned for using client mods! So you should generally be fine as long as you don’t use any plugins that implement abusive behaviour. But no worries, all inbuilt plugins are safe to use!
+-
+-Regardless, if your account is very important to you and it getting disabled would be a disaster for you, you should probably not use any client mods (not exclusive to Vencord), just to be safe
+-
+-Additionally, make sure not to post screenshots with Vencord in a server where you might get banned for it
++However, I do not care.
+
+ </details>
+diff --git a/src/components/VencordSettings/VencordTab.tsx b/src/components/VencordSettings/VencordTab.tsx
+index ab910ea..8bf18f2 100644
+--- a/src/components/VencordSettings/VencordTab.tsx
++++ b/src/components/VencordSettings/VencordTab.tsx
+@@ -31,8 +31,8 @@ import { SettingsTab, wrapTab } from "./shared";
+
+ const cl = classNameFactory("vc-settings-");
+
+-const DEFAULT_DONATE_IMAGE = "https://cdn.discordapp.com/emojis/1026533090627174460.png";
+-const SHIGGY_DONATE_IMAGE = "https://media.discordapp.net/stickers/1039992459209490513.png";
++const DEFAULT_DONATE_IMAGE = "https://i.kym-cdn.com/photos/images/original/001/442/330/d6a.jpg";
++const SHIGGY_DONATE_IMAGE = "https://media.tenor.com/BxmwtK6R-10AAAAC/litevex-litevx.gif";
+
+ type KeysOfType<Object, Type> = {
+ [K in keyof Object]: Object[K] extends Type ? K : never;
+diff --git a/src/plugins/vencordToolbox/index.tsx b/src/plugins/vencordToolbox/index.tsx
+index 0a805a0..a8e2d87 100644
+--- a/src/plugins/vencordToolbox/index.tsx
++++ b/src/plugins/vencordToolbox/index.tsx
+@@ -85,10 +85,10 @@ function VencordPopout(onClose: () => void) {
+ );
+ }
+
+-function VencordPopoutIcon(isShown: boolean) {
++function VexcordPopoutIcon() {
+ return (
+- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 27" width={24} height={24}>
+- <path fill="currentColor" d={isShown ? "M9 0h1v1h1v2h1v2h3V3h1V1h1V0h1v2h1v2h1v7h-1v-1h-3V9h1V6h-1v4h-3v1h1v-1h2v1h3v1h-1v1h-3v2h1v1h1v1h1v3h-1v4h-2v-1h-1v-4h-1v4h-1v1h-2v-4H9v-3h1v-1h1v-1h1v-2H9v-1H8v-1h3V6h-1v3h1v1H8v1H7V4h1V2h1M5 19h2v1h1v1h1v3H4v-1h2v-1H4v-2h1m15-1h2v1h1v2h-2v1h2v1h-5v-3h1v-1h1m4 3h4v1h-4" : "M0 0h7v1H6v1H5v1H4v1H3v1H2v1h5v1H0V6h1V5h1V4h1V3h1V2h1V1H0m13 2h5v1h-1v1h-1v1h-1v1h3v1h-5V7h1V6h1V5h1V4h-3m8 5h1v5h1v-1h1v1h-1v1h1v-1h1v1h-1v3h-1v1h-2v1h-1v1h1v-1h2v-1h1v2h-1v1h-2v1h-1v-1h-1v1h-6v-1h-1v-1h-1v-2h1v1h2v1h3v1h1v-1h-1v-1h-3v-1h-4v-4h1v-2h1v-1h1v-1h1v2h1v1h1v-1h1v1h-1v1h2v-2h1v-2h1v-1h1M8 14h2v1H9v4h1v2h1v1h1v1h1v1h4v1h-6v-1H5v-1H4v-5h1v-1h1v-2h2m17 3h1v3h-1v1h-1v1h-1v2h-2v-2h2v-1h1v-1h1m1 0h1v3h-1v1h-2v-1h1v-1h1"} />
++ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width={24} height={24}>
++ <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M81.2304 40.1913C74.2574 40.5281 65.6603 43.0958 60.9962 46.2344C52.5977 51.8854 47.9515 57.3708 45.8233 64.1477C44.7901 67.4362 44.238 68.2563 42.068 69.7224C40.1606 71.0114 39.5938 72.2313 40.2805 73.5686C40.9482 74.8681 42.1557 75.2016 47.2056 75.4797C54.3919 75.8752 54.8838 76.3022 53.1891 80.6699C52.2944 82.9765 51.1025 86.8213 49.887 91.3249C49.4761 92.8468 48.7098 95.517 48.1833 97.2583C44.2134 110.398 44.9124 118.742 50.612 126.247C53.0384 129.441 53.118 130.165 51.4561 133.924C49.5225 138.297 48.6994 141.361 48.3397 145.521C48.2259 146.833 47.9264 149.151 47.6738 150.673C46.2431 159.293 46.5426 170.599 48.4548 180.137C49.7301 186.499 49.7988 186.934 50.1386 190.843C50.3125 192.837 50.6537 195.457 50.8973 196.664C51.1409 197.871 51.4001 199.352 51.4741 199.955L51.6077 201.053H54.5525H57.4969L57.3822 198.906C57.3192 197.725 57.0576 195.686 56.8007 194.374C56.5444 193.062 56.2363 191.044 56.1164 189.889C55.9965 188.735 55.7766 187.146 55.6269 186.359C55.1335 183.758 55.3051 182.769 56.3188 182.382C57.1296 182.073 66.8693 181.927 96.0688 181.788L124.64 181.652L127.673 181.053C136.142 179.381 138.966 179.08 139.971 179.742C141.751 180.915 141.589 186.426 139.53 194.646C139.134 196.228 138.752 198.08 138.681 198.763C138.611 199.445 138.508 200.239 138.453 200.528L138.353 201.053H141.211C142.784 201.053 144.07 201.022 144.07 200.983C144.07 200.683 145.105 195.943 145.555 194.183C146.935 188.782 147.105 174.389 145.862 168.134C142.856 153.011 141.002 145.785 139.016 141.453C137.429 137.992 137.482 137.644 140.1 134.329C144.664 128.546 149.515 117.544 151.12 109.331C152.777 100.849 151.686 94.3233 147.057 85.0451C143.139 77.1905 142.26 77.7692 158.408 77.5741C170.855 77.4238 172.967 77.337 174.5 76.91C177.156 76.171 177.681 73.259 175.414 71.8401C174.539 71.2924 173.115 71.2772 148.311 71.5453C132.631 71.7151 132.713 71.718 132.222 70.926C132.106 70.7381 132.03 68.1132 132.026 64.1315C132.018 56.8943 131.839 55.4554 130.624 52.841C128.251 47.7353 120.946 42.9002 112.322 40.7266C109.847 40.103 90.0933 39.7629 81.2304 40.1913ZM113.361 47.0273C119.897 49.3622 124.415 52.913 125.655 56.6891C126.427 59.0397 127.032 69.7935 126.454 70.8807C125.912 71.9002 124.605 72.0386 119.901 71.5753C118.337 71.4217 115.897 71.2939 114.478 71.2915C111.18 71.2867 107.642 71.0014 104.641 70.4991C101.62 69.9934 100.275 70.0091 95.7318 70.6021C93.6988 70.8678 90.3293 71.1756 88.2442 71.2858C86.159 71.3964 83.5573 71.5711 82.4626 71.6736C76.9345 72.1913 65.0286 71.5639 58.7674 70.4246C57.3599 70.1684 55.5686 69.8617 54.7866 69.7434C51.3674 69.2243 50.7258 67.9434 52.0091 64.1973C53.9749 58.4567 61.6326 51.5958 69.1933 48.8011C75.7929 46.3618 76.127 46.3308 95.2579 46.3594L111.56 46.3842L113.361 47.0273ZM96.9858 50.1226C95.6394 50.6727 94.3675 51.5858 92.225 53.5404C88.3048 57.117 87.9864 57.1199 83.7895 53.6225C79.2675 49.8535 76.4388 51.3277 75.0905 58.1552C74.8754 59.2429 74.5238 60.646 74.3091 61.2733C72.2789 67.1991 77.052 69.4123 79.7296 63.7871C81.0527 61.0081 81.8119 60.9089 84.3895 63.1778C87.4788 65.8976 89.0654 65.6558 92.4956 61.9422C95.574 58.6103 96.6498 58.6776 97.2644 62.2404C98.0274 66.6619 100.287 69.0425 102.366 67.6142C103.799 66.63 103.866 66.089 103.405 59.2505C102.833 50.7724 101.174 48.4123 96.9858 50.1226ZM107.674 76.8117C111.461 77.2941 117.607 77.5698 125.114 77.5937C136.474 77.6299 137.197 77.7573 138.248 79.9032C140.457 84.4187 143.97 91.9108 144.498 93.2351C147.705 101.272 146.195 111.098 139.768 124.036C136.001 131.619 131.326 135.242 123.235 136.845C120.865 137.314 117.549 138.055 113.748 138.963C110.337 139.779 99.8036 140.064 89.3815 139.622L85.9694 139.478L80.9461 138C69.9188 134.757 63.552 131.228 57.1908 124.835C50.5234 118.135 49.8059 111.14 54.3308 96.9582C54.799 95.4907 55.4392 93.258 55.7539 91.9966C57.6192 84.5089 58.4651 82.4618 60.5654 80.3521C63.2164 77.6896 63.5098 77.6361 75.8279 77.5951C84.8141 77.5646 90.1227 77.3332 92.9832 76.8466C96.3479 76.2741 96.2659 76.2793 100.566 76.349C103.103 76.3905 105.68 76.5579 107.674 76.8117ZM80.9162 91.2343C79.9049 91.7872 79.1585 93.7041 78.4737 97.5093C77.4221 103.353 77.9368 106.019 80.1172 106.019C82.954 106.019 84.6112 101.741 84.3027 95.215C84.1392 91.7562 82.8128 90.1971 80.9162 91.2343ZM109.096 91.677C105.147 94.111 102.345 105.379 105.246 107.159C107.508 108.547 109.135 106.741 110.511 101.315C110.906 99.7563 111.453 97.7201 111.727 96.7898C112.851 92.9641 111.444 90.2295 109.096 91.677ZM76.2734 116.131C73.5034 116.525 72.0907 118.213 73.0973 119.929C73.9546 121.39 75.1194 121.655 80.7565 121.669C90.1829 121.693 95.3385 121.973 98.3857 122.625C105.613 124.172 111.125 122.863 110.133 119.836C109.581 118.152 108.384 117.708 103.756 117.465C101.676 117.357 99.6482 117.137 98.6378 116.911C95.2627 116.156 79.8751 115.619 76.2734 116.131ZM64.1472 137.61C66.2897 138.717 69.8454 140.349 72.049 141.237C77.9084 143.597 77.8567 143.539 77.061 146.887C76.3179 150.016 76.1298 154.113 76.3184 163.077C76.6227 177.552 77.8363 176.314 63.1055 176.552C52.3759 176.726 53.3687 177.312 53.0498 170.615C52.6256 161.714 53.0147 152.532 54.1137 145.521C55.7539 135.054 57.1173 133.978 64.1472 137.61ZM131.5 141.885C133.488 142.793 135.523 147.419 137.045 154.49C137.169 155.067 137.604 156.999 138.01 158.784C141.43 173.789 141.417 173.862 135.366 174.16C132.882 174.282 131.324 174.464 129.795 174.808C122.531 176.446 116.979 176.747 115.252 175.597C113.934 174.718 113.958 174.957 113.863 161.36C113.809 153.467 113.704 148.819 113.563 148.028C113.311 146.618 113.522 145.674 114.187 145.236C114.683 144.908 120.502 143.34 122.365 143.031C123.095 142.911 124.673 142.569 125.872 142.272C129.415 141.396 130.298 141.335 131.5 141.885ZM87.5807 145.337C88.5712 145.442 93.2202 145.606 97.9118 145.7C102.881 145.801 106.656 145.955 106.953 146.07C108.095 146.51 108.068 146.231 108.056 157.282C108.05 163.239 108.134 168.465 108.262 170.043C108.753 176.122 108.09 176.434 94.6893 176.419C83.4194 176.407 83.1848 176.309 82.573 171.378C82.4166 170.119 82.1896 168.359 82.0683 167.466C81.701 164.765 81.7493 153.776 82.1432 150.482C82.781 145.151 83.0886 144.86 87.5807 145.337Z" />
+ </svg>
+ );
+ }
+@@ -109,8 +109,8 @@ function VencordPopoutButton() {
+ <HeaderBarIcon
+ className="vc-toolbox-btn"
+ onClick={() => setShow(v => !v)}
+- tooltip={isShown ? null : "Vencord Toolbox"}
+- icon={() => VencordPopoutIcon(isShown)}
++ tooltip={isShown ? null : "Vexcord Toolbox"}
++ icon={VexcordPopoutIcon}
+ selected={isShown}
+ />
+ )}
+--
+2.43.1
+
diff --git a/0003-Experiments-Re-add-staging-banner.patch b/0003-Experiments-Re-add-staging-banner.patch
new file mode 100644
index 0000000..4beacd8
--- /dev/null
+++ b/0003-Experiments-Re-add-staging-banner.patch
@@ -0,0 +1,45 @@
+From e652044d200bd28b1a6fb214f2a8f33797471238 Mon Sep 17 00:00:00 2001
+From: 1024x2 <2pow11@gmail.com>
+Date: Thu, 26 Oct 2023 00:48:25 +0100
+Subject: [PATCH 3/5] Experiments: Re-add staging banner
+
+(it's funny)
+---
+ src/plugins/experiments/index.tsx | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/src/plugins/experiments/index.tsx b/src/plugins/experiments/index.tsx
+index f8ea4b0..dc4f78f 100644
+--- a/src/plugins/experiments/index.tsx
++++ b/src/plugins/experiments/index.tsx
+@@ -33,6 +33,12 @@ const settings = definePluginSettings({
+ type: OptionType.BOOLEAN,
+ default: false,
+ restartNeeded: true
++ },
++ forceStagingBanner: {
++ description: "Whether to force Staging banner under user area.",
++ type: OptionType.BOOLEAN,
++ default: false,
++ restartNeeded: true
+ }
+ });
+
+@@ -77,6 +83,14 @@ export default definePlugin({
+ }
+ ]
+ },
++ {
++ find: ".Messages.DEV_NOTICE_STAGING",
++ predicate: () => settings.store.forceStagingBanner,
++ replacement: {
++ match: /window\.GLOBAL_ENV\.RELEASE_CHANNEL/,
++ replace: "\"staging\""
++ }
++ },
+ {
+ find: 'H1,title:"Experiments"',
+ replacement: {
+--
+2.43.1
+
diff --git a/0004-Updater-don-t-prompt-for-updates-when-on-a-local-bra.patch b/0004-Updater-don-t-prompt-for-updates-when-on-a-local-bra.patch
new file mode 100644
index 0000000..b90d0c7
--- /dev/null
+++ b/0004-Updater-don-t-prompt-for-updates-when-on-a-local-bra.patch
@@ -0,0 +1,27 @@
+From 917df10a7d166fdfb4479ee28c40cb884bfc37dc Mon Sep 17 00:00:00 2001
+From: 1024x2 <2pow11@gmail.com>
+Date: Wed, 11 Oct 2023 15:55:03 +0100
+Subject: [PATCH 4/5] Updater: don't prompt for updates when on a local branch
+
+---
+ src/main/updater/git.ts | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/main/updater/git.ts b/src/main/updater/git.ts
+index 2ff3ba5..21f33d1 100644
+--- a/src/main/updater/git.ts
++++ b/src/main/updater/git.ts
+@@ -49,9 +49,7 @@ async function getRepo() {
+ async function calculateGitChanges() {
+ await git("fetch");
+
+- const branch = await git("branch", "--show-current");
+-
+- const res = await git("log", `HEAD...origin/${branch.stdout.trim()}`, "--pretty=format:%an/%h/%s");
++ const res = await git("log", "HEAD...@{u}", "--pretty=format:%an/%h/%s");
+
+ const commits = res.stdout.trim();
+ return commits ? commits.split("\n").map(line => {
+--
+2.43.1
+
diff --git a/0005-Enable-CSP-bypass-on-stock-discord-desktop-client.patch b/0005-Enable-CSP-bypass-on-stock-discord-desktop-client.patch
new file mode 100644
index 0000000..7be02d7
--- /dev/null
+++ b/0005-Enable-CSP-bypass-on-stock-discord-desktop-client.patch
@@ -0,0 +1,29 @@
+From a88292149ce6bf585d2340774ab605ac88ebb742 Mon Sep 17 00:00:00 2001
+From: 1024x2 <2pow11@gmail.com>
+Date: Wed, 27 Dec 2023 15:05:44 +0000
+Subject: [PATCH 5/5] Enable CSP bypass on stock discord desktop client
+
+---
+ src/main/index.ts | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/main/index.ts b/src/main/index.ts
+index 481736a..33dbe3f 100644
+--- a/src/main/index.ts
++++ b/src/main/index.ts
+@@ -23,10 +23,11 @@ import { ensureSafePath, getSettings } from "./ipcMain";
+ import { IS_VANILLA, THEMES_DIR } from "./utils/constants";
+ import { installExt } from "./utils/extensions";
+
+-if (IS_VESKTOP || !IS_VANILLA) {
++{
+ app.whenReady().then(() => {
+ // Source Maps! Maybe there's a better way but since the renderer is executed
+ // from a string I don't think any other form of sourcemaps would work
++ if (IS_VESKTOP || !IS_VANILLA)
+ protocol.registerFileProtocol("vencord", ({ url: unsafeUrl }, cb) => {
+ let url = unsafeUrl.slice("vencord://".length);
+ if (url.endsWith("/")) url = url.slice(0, -1);
+--
+2.43.1
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3604afc
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# Vexcord
+The porniest client mod.
+
+Soft fork of [Vencord](https://vencord.dev/), the self-proclaimed "cutest Discord client mod".
+Mainly seeks to remove porno (despite the name) and tweak some small things.