aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/betterGifAltText.ts
diff options
context:
space:
mode:
authorVendicated <vendicated@riseup.net>2022-09-28 13:09:18 +0200
committerVendicated <vendicated@riseup.net>2022-09-28 13:09:18 +0200
commit48477e19594f6333cddf32efa4d210ab62aea371 (patch)
tree60698a401d3d3b51af56537e1ba789cdede78e62 /src/plugins/betterGifAltText.ts
parent02ed954ce4f9a78478c9f93ff22fa7863917879f (diff)
downloadVencord-48477e19594f6333cddf32efa4d210ab62aea371.tar.gz
Vencord-48477e19594f6333cddf32efa4d210ab62aea371.tar.bz2
Vencord-48477e19594f6333cddf32efa4d210ab62aea371.zip
BetterGifAltText
Diffstat (limited to 'src/plugins/betterGifAltText.ts')
-rw-r--r--src/plugins/betterGifAltText.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/plugins/betterGifAltText.ts b/src/plugins/betterGifAltText.ts
new file mode 100644
index 0000000..c49b3a1
--- /dev/null
+++ b/src/plugins/betterGifAltText.ts
@@ -0,0 +1,41 @@
+import definePlugin from "../utils/types";
+
+export default definePlugin({
+ name: "BetterGifAltText",
+ author: "Vendicated",
+ description:
+ "Change GIF alt text from simply being 'GIF' to containing the gif tags / filename",
+ patches: [
+ {
+ find: "onCloseImage=",
+ replacement: {
+ match: /(return .{1,2}\.createElement.{0,50}isWindowFocused)/,
+ replace:
+ "Vencord.Plugins.plugins.BetterGifAltText.altify(e);$1",
+ },
+ },
+ {
+ find: 'preload:"none","aria',
+ replacement: {
+ match: /\?.{0,5}\.Messages\.GIF/,
+ replace:
+ "?(e.alt='GIF',Vencord.Plugins.plugins.BetterGifAltText.altify(e))",
+ },
+ },
+ ],
+
+ altify(props: any) {
+ if (props.alt !== "GIF") return;
+
+ const url = props.original || props.src;
+ const name = url
+ .slice(url.lastIndexOf("/") + 1)
+ .replace(/\d/g, "") // strip numbers
+ .replace(/.gif$/, "") // strip extension
+ .replace(/[,-_ ]+/g, " "); // Replace common delimiters with space
+
+ if (name.length) props.alt += ` - ${name}`;
+
+ return props.alt;
+ },
+});