commit eed62392848782d038d61312cfdb151996497330 Author: nin0dev Date: Sun Dec 22 22:52:16 2024 -0500 init diff --git a/index.tsx b/index.tsx new file mode 100644 index 0000000..6e24ccc --- /dev/null +++ b/index.tsx @@ -0,0 +1,68 @@ +import { definePluginSettings } from "@api/Settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { PresenceStore, Text } from "@webpack/common"; + +const settings = definePluginSettings({ + artistSeparator: { + description: "Text to use to separate artist names", + type: OptionType.STRING, + default: "; " + }, + onlyShowMainArtist: { + description: "Only show the main artist if there are multiple", + type: OptionType.BOOLEAN, + default: false + }, + showAlbumName: { + description: "Show album name under the artist name", + type: OptionType.BOOLEAN, + default: true + } +}); + +const OTHER_USER_SPOTIFY_CARD_FIND = /\.USER_PROFILE_LIVE_ACTIVITY_CARD.+action:"OPEN_SPOTIFY_ARTIST".+HOVER_ACTIVITY_CARD.+FULL_SIZE/; +const SELF_USER_SPOTIFY_CARD_FIND = new RegExp("FULL_SIZE},.=\\(0,.\\..\\)\\({activity:.,user:.}\\),.="); + +const SHARED_PATCHES: { + match: RegExp, + replace: string, + predicate?: () => boolean; +}[] = [ + { + match: /\?", "/, + replace: "?`${$self.settings.store.artistSeparator}`" + }, + { + match: /text:(\i).map(.+)(\i.length-1)/, + replace: "text:($self.settings.store.onlyShowMainArtist ? [$1[0]] : $1).map$2($self.settings.store.onlyShowMainArtist ? 1 === 2: $3)" + }, + { + match: /user:(.)(.+)(.+OPEN_SPOTIFY_TRACK"}\),\(0,.\.[a-zA-Z]{0,10}\)\((.).+)(.\(\))(.+user)/, + replace: "user:$1$2$3$5, $self.AlbumText($4)$6" + } + ]; + +export default definePlugin({ + name: "BetterSpotifyCard", + description: "Show more info on the Spotify activity card", + authors: [Devs.nin0dev], + settings, + AlbumText(presence) { + if (!settings.store.showAlbumName) return <>; + return + {presence.assets.large_text} + ; + }, + patches: [ + { + find: OTHER_USER_SPOTIFY_CARD_FIND, + replacement: SHARED_PATCHES + }, + { + find: SELF_USER_SPOTIFY_CARD_FIND, + replacement: SHARED_PATCHES + } + ] +}); +