From e458580d1d33755fe0a489eb09a82fbb92f188cf Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Tue, 4 Oct 2022 15:00:21 -0400 Subject: [PATCH] refactor: remove powercord --- .editorconfig | 2 +- .gitattributes | 1 - flake.nix | 4 - overlays/overrides.nix | 3 - subflakes/powercord/flake.lock | 1139 --------- subflakes/powercord/flake.nix | 180 -- subflakes/powercord/patches/css-toggler.patch | 13 - .../powercord/patches/remove-heygirl.patch | 68 - .../powercord/patches/remove-lmgtfy.patch | 189 -- subflakes/powercord/patches/remove-mock.patch | 38 - .../powercord/patches/remove-spotify.patch | 2271 ----------------- .../powercord/patches/remove-updater.patch | 1186 --------- users/infinidoge/config/default.nix | 10 - .../config/powercord/Badges-Everywhere.json | 10 - .../config/powercord/Better-Folders.json | 8 - .../config/powercord/Better-Replies.json | 5 - .../config/powercord/Better-Settings.json | 314 --- .../config/powercord/Custom-Timestamps.json | 5 - .../infinidoge/config/powercord/Cutecord.json | 4 - .../powercord/In-App-Notifications.json | 3 - .../config/powercord/Multitask.json | 8 - users/infinidoge/config/powercord/PinDMs.json | 111 - .../Powercord-Reverse-Image-Search.json | 9 - .../config/powercord/PronounDB.json | 11 - .../powercord/Relationships-Notifier.json | 4 - .../Replace-Timestamps---Powercord.json | 9 - .../config/powercord/Report-Messages.json | 3 - .../powercord/Role-Color-Everywhere.json | 4 - .../config/powercord/Smart-Typers.json | 3 - .../config/powercord/Staff-Tags.json | 3 - .../config/powercord/Statistics-Counter.json | 6 - .../config/powercord/Total-Members.json | 3 - .../config/powercord/User-Details.json | 3 - .../powercord/Voice-chat-utilities.json | 3 - .../powercord/better-status-indicators.json | 8 - .../powercord/css-toggler-cache/snippets.json | 93 - .../config/powercord/css-toggler.json | 93 - .../config/powercord/css-toggler.json.bak | 43 - .../config/powercord/dm-typing-indicator.json | 4 - .../config/powercord/pc-emojiUtility.json | 6 - .../config/powercord/pc-general.json | 10 - .../config/powercord/pc-moduleManager.json | 3 - .../config/powercord/pc-updater.json | 13 - .../infinidoge/config/powercord/quickcss.css | 248 -- .../config/powercord/user-birthdays.json | 7 - users/infinidoge/default.nix | 2 +- 46 files changed, 2 insertions(+), 6161 deletions(-) delete mode 100644 subflakes/powercord/flake.lock delete mode 100644 subflakes/powercord/flake.nix delete mode 100644 subflakes/powercord/patches/css-toggler.patch delete mode 100644 subflakes/powercord/patches/remove-heygirl.patch delete mode 100644 subflakes/powercord/patches/remove-lmgtfy.patch delete mode 100644 subflakes/powercord/patches/remove-mock.patch delete mode 100644 subflakes/powercord/patches/remove-spotify.patch delete mode 100644 subflakes/powercord/patches/remove-updater.patch delete mode 100644 users/infinidoge/config/powercord/Badges-Everywhere.json delete mode 100644 users/infinidoge/config/powercord/Better-Folders.json delete mode 100644 users/infinidoge/config/powercord/Better-Replies.json delete mode 100644 users/infinidoge/config/powercord/Better-Settings.json delete mode 100644 users/infinidoge/config/powercord/Custom-Timestamps.json delete mode 100644 users/infinidoge/config/powercord/Cutecord.json delete mode 100644 users/infinidoge/config/powercord/In-App-Notifications.json delete mode 100644 users/infinidoge/config/powercord/Multitask.json delete mode 100644 users/infinidoge/config/powercord/PinDMs.json delete mode 100644 users/infinidoge/config/powercord/Powercord-Reverse-Image-Search.json delete mode 100644 users/infinidoge/config/powercord/PronounDB.json delete mode 100644 users/infinidoge/config/powercord/Relationships-Notifier.json delete mode 100644 users/infinidoge/config/powercord/Replace-Timestamps---Powercord.json delete mode 100644 users/infinidoge/config/powercord/Report-Messages.json delete mode 100644 users/infinidoge/config/powercord/Role-Color-Everywhere.json delete mode 100644 users/infinidoge/config/powercord/Smart-Typers.json delete mode 100644 users/infinidoge/config/powercord/Staff-Tags.json delete mode 100644 users/infinidoge/config/powercord/Statistics-Counter.json delete mode 100644 users/infinidoge/config/powercord/Total-Members.json delete mode 100644 users/infinidoge/config/powercord/User-Details.json delete mode 100644 users/infinidoge/config/powercord/Voice-chat-utilities.json delete mode 100644 users/infinidoge/config/powercord/better-status-indicators.json delete mode 100644 users/infinidoge/config/powercord/css-toggler-cache/snippets.json delete mode 100644 users/infinidoge/config/powercord/css-toggler.json delete mode 100644 users/infinidoge/config/powercord/css-toggler.json.bak delete mode 100644 users/infinidoge/config/powercord/dm-typing-indicator.json delete mode 100644 users/infinidoge/config/powercord/pc-emojiUtility.json delete mode 100644 users/infinidoge/config/powercord/pc-general.json delete mode 100644 users/infinidoge/config/powercord/pc-moduleManager.json delete mode 100644 users/infinidoge/config/powercord/pc-updater.json delete mode 100644 users/infinidoge/config/powercord/quickcss.css delete mode 100644 users/infinidoge/config/powercord/user-birthdays.json diff --git a/.editorconfig b/.editorconfig index aa72f12..49a9770 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,7 +16,7 @@ insert_final_newline = unset trim_trailing_whitespace = unset indent_size = unset -[{.*,secrets,users/infinidoge/config/powercord}/**] +[{.*,secrets}/**] end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset diff --git a/.gitattributes b/.gitattributes index c2e734c..660acec 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ flake.lock merge=ignore -users/infinidoge/config/powercord/PinDMs.json merge=ignore diff --git a/flake.nix b/flake.nix index 0f4447b..0d9e845 100644 --- a/flake.nix +++ b/flake.nix @@ -41,10 +41,6 @@ nixos-wsl.url = "github:nix-community/NixOS-WSL"; # --- Domain-Specific Flake Inputs - # # --- Powercord - powercord-setup.url = "path:/etc/nixos/subflakes/powercord"; - powercord-setup.inputs.nixpkgs.follows = "latest"; - # # --- Minecraft nix-minecraft.url = "github:Infinidoge/nix-minecraft/develop"; nix-minecraft.inputs.nixpkgs.follows = "nixos"; diff --git a/overlays/overrides.nix b/overlays/overrides.nix index 12b55bd..5ec02d6 100644 --- a/overlays/overrides.nix +++ b/overlays/overrides.nix @@ -2,9 +2,6 @@ channels: final: prev: { __dontExport = true; # overrides clutter up actual creations - # Pin discord-canary version for powercord - # powercord = prev.powercord.override { inherit (channels.fork) discord-canary; }; - inherit (channels.latest) discord-canary polymc diff --git a/subflakes/powercord/flake.lock b/subflakes/powercord/flake.lock deleted file mode 100644 index 81f3a97..0000000 --- a/subflakes/powercord/flake.lock +++ /dev/null @@ -1,1139 +0,0 @@ -{ - "nodes": { - "discord-Custom-Volume-Range": { - "flake": false, - "locked": { - "lastModified": 1628672321, - "narHash": "sha256-Ii8nvccZFszmdAoJqhgHqfESbzhvqr3wfCerMeq/kso=", - "owner": "PandaDriver156", - "repo": "Custom-Volume-Range", - "rev": "e941faabc245644ef8d5f5942da3ac218b4315f7", - "type": "github" - }, - "original": { - "owner": "PandaDriver156", - "repo": "Custom-Volume-Range", - "type": "github" - } - }, - "discord-Discolored": { - "flake": false, - "locked": { - "lastModified": 1649415384, - "narHash": "sha256-kuYxNwiOo1MBIthL+hafcsg5xiJ0c9l2Kzzync4l4tg=", - "owner": "NYRI4", - "repo": "Discolored", - "rev": "96f59f706a020c60ca9113e1a480e9bee7bbdcd7", - "type": "github" - }, - "original": { - "owner": "NYRI4", - "repo": "Discolored", - "type": "github" - } - }, - "discord-In-app-notifs": { - "flake": false, - "locked": { - "lastModified": 1641514547, - "narHash": "sha256-lWPArT7cTG0MFfPyiPIojA3UXfvUd19tjmc1Tsu863g=", - "owner": "BenSegal855", - "repo": "In-app-notifs", - "rev": "3c48183cfc9a026bc85cb8db3b4728b9a43ba83a", - "type": "github" - }, - "original": { - "owner": "BenSegal855", - "repo": "In-app-notifs", - "type": "github" - } - }, - "discord-NSFW-tags": { - "flake": false, - "locked": { - "lastModified": 1632352862, - "narHash": "sha256-qC+qd4Tvm+SZNyPrq0OUeTiEQ62hMp+j5EIuAyfB71g=", - "owner": "E-boi", - "repo": "NSFW-tags", - "rev": "632a53bb5ec0787d883327f33a71bc9f0d1baa1f", - "type": "github" - }, - "original": { - "owner": "E-boi", - "repo": "NSFW-tags", - "type": "github" - } - }, - "discord-PowercordTwemojiEverywhere": { - "flake": false, - "locked": { - "lastModified": 1622329962, - "narHash": "sha256-LjKD3yeaZOsIMImxWUgmRb/dpAC0XFOoP1P/5kURMLs=", - "owner": "VenPlugs", - "repo": "PowercordTwemojiEverywhere", - "rev": "76ac2c69d7ddb47170caa53002e30dd779033dab", - "type": "github" - }, - "original": { - "owner": "VenPlugs", - "repo": "PowercordTwemojiEverywhere", - "type": "github" - } - }, - "discord-Quick-Bot-Invite": { - "flake": false, - "locked": { - "lastModified": 1604418765, - "narHash": "sha256-1ep6esEBeDHo0Xx/8Ai15u3CgEbaD2YTMEnW1L/ocPk=", - "owner": "A-Trash-Coder", - "repo": "Quick-Bot-Invite", - "rev": "4f1684d66ab711dc5b400e24a3c6660a0df07753", - "type": "github" - }, - "original": { - "owner": "A-Trash-Coder", - "repo": "Quick-Bot-Invite", - "type": "github" - } - }, - "discord-Quick-Channel-Mute": { - "flake": false, - "locked": { - "lastModified": 1653595190, - "narHash": "sha256-Bp4JwZ857B6UGFOHiutp5fw7uBGC1a0DkRLkguI/+xA=", - "owner": "A-Trash-Coder", - "repo": "Quick-Channel-Mute", - "rev": "d9743e040523c1a394832b7b1729ca2fda5f99ae", - "type": "github" - }, - "original": { - "owner": "A-Trash-Coder", - "repo": "Quick-Channel-Mute", - "type": "github" - } - }, - "discord-SnowflakeInfo": { - "flake": false, - "locked": { - "lastModified": 1608416482, - "narHash": "sha256-smeexgO83nNzmFVUx3AW4Wd10SSpB0oHMbWcIeXpw40=", - "owner": "NurMarvin", - "repo": "SnowflakeInfo", - "rev": "9e34cfa8e50d9083c66d0ee7149f6395a8e8847e", - "type": "github" - }, - "original": { - "owner": "NurMarvin", - "repo": "SnowflakeInfo", - "type": "github" - } - }, - "discord-Unindent": { - "flake": false, - "locked": { - "lastModified": 1622506264, - "narHash": "sha256-Cyf28MplOiROqwlJ745CQ/PUMH0TcE/pRxN7Y58i9SA=", - "owner": "VenPlugs", - "repo": "Unindent", - "rev": "006ea845dff3e54454e6f55256083813ffc83c32", - "type": "github" - }, - "original": { - "owner": "VenPlugs", - "repo": "Unindent", - "type": "github" - } - }, - "discord-badges-everywhere": { - "flake": false, - "locked": { - "lastModified": 1641679991, - "narHash": "sha256-yYVFicbo7SVmQoOteI1n7NRvVLZ0oLK3+j/mTQK31YU=", - "owner": "powercord-community", - "repo": "badges-everywhere", - "rev": "da5bbaa5764bf907a457cb701f5208adf4c8f2bb", - "type": "github" - }, - "original": { - "owner": "powercord-community", - "repo": "badges-everywhere", - "type": "github" - } - }, - "discord-better-connections": { - "flake": false, - "locked": { - "lastModified": 1630183822, - "narHash": "sha256-2T6ouo0RdTcCo82ShB1jBKXlzI+ZORi6dXchkgfxas8=", - "owner": "AAGaming00", - "repo": "better-connections", - "rev": "89f3c233cf3fa2ef8b1316ad75cff01629282650", - "type": "github" - }, - "original": { - "owner": "AAGaming00", - "repo": "better-connections", - "type": "github" - } - }, - "discord-better-folders": { - "flake": false, - "locked": { - "lastModified": 1656078577, - "narHash": "sha256-KvTRDovNwOEeHPdlQqiOZjuZhk1N14cSrVTT46L0O2o=", - "owner": "Juby210", - "repo": "better-folders", - "rev": "e0e63285ab020e1e215504629ba684ae5755e828", - "type": "github" - }, - "original": { - "owner": "Juby210", - "repo": "better-folders", - "type": "github" - } - }, - "discord-better-replies": { - "flake": false, - "locked": { - "lastModified": 1647695491, - "narHash": "sha256-Wru9PZIDl9yyhbdCK96jTMu/vDtCT3puke496ORSlv4=", - "owner": "cyyynthia", - "repo": "better-replies", - "rev": "c3e5465dd761599ed00f77cc4f6e47fef397102b", - "type": "github" - }, - "original": { - "owner": "cyyynthia", - "repo": "better-replies", - "type": "github" - } - }, - "discord-better-settings": { - "flake": false, - "locked": { - "lastModified": 1648609106, - "narHash": "sha256-Dfaw6Ec63oZvYCCKni9fDFzAQ89AOkmmpxsk1WRD9yU=", - "owner": "mr-miner1", - "repo": "better-settings", - "rev": "48ac8c7365a0b4b71d2e11904f1824a838ba0944", - "type": "github" - }, - "original": { - "owner": "mr-miner1", - "repo": "better-settings", - "type": "github" - } - }, - "discord-better-status-indicators": { - "flake": false, - "locked": { - "lastModified": 1653550870, - "narHash": "sha256-3UZtBBGNfhQZJP7Q4NptIALG0rSNe2WwabGQ5xoG0qo=", - "owner": "GriefMoDz", - "repo": "better-status-indicators", - "rev": "0186a1664a00b9438b94747b2a438a642cf25856", - "type": "github" - }, - "original": { - "owner": "GriefMoDz", - "repo": "better-status-indicators", - "type": "github" - } - }, - "discord-better-threads": { - "flake": false, - "locked": { - "lastModified": 1627600454, - "narHash": "sha256-jHCnq12I344uL3OlyDbDN8xlLUo1mFBJmZmNuoXlnOI=", - "owner": "NurMarvin", - "repo": "better-threads", - "rev": "ad929d1b076ae13e7a4405100046ec730c5453fe", - "type": "github" - }, - "original": { - "owner": "NurMarvin", - "repo": "better-threads", - "type": "github" - } - }, - "discord-betterinvites": { - "flake": false, - "locked": { - "lastModified": 1649112862, - "narHash": "sha256-KOphq69lKEmxiCsPDSfbwGaRwSrXBtxMv0j4Qarn7RE=", - "owner": "12944qwerty", - "repo": "betterinvites", - "rev": "43492ee100796a415a01c8d3af394ac372b45b4d", - "type": "github" - }, - "original": { - "owner": "12944qwerty", - "repo": "betterinvites", - "type": "github" - } - }, - "discord-block-messages": { - "flake": false, - "locked": { - "lastModified": 1605114152, - "narHash": "sha256-5lJpRvNipGCrgRqgWGUqD2tgFepm1V9FohwzmnylBQE=", - "owner": "cyyynthia", - "repo": "block-messages", - "rev": "abc8a39ed4c50fa3086730c707a7c87597209231", - "type": "github" - }, - "original": { - "owner": "cyyynthia", - "repo": "block-messages", - "type": "github" - } - }, - "discord-channel-typing": { - "flake": false, - "locked": { - "lastModified": 1634895849, - "narHash": "sha256-wlbzg2zzFcwBGCa90DAKUEAtytQBc8kYAjzXGq1J6AM=", - "owner": "powercord-community", - "repo": "channel-typing", - "rev": "8e41b085410a5bb72ddf9f372c8957eed6d2cb82", - "type": "github" - }, - "original": { - "owner": "powercord-community", - "repo": "channel-typing", - "type": "github" - } - }, - "discord-copy-avatar-url": { - "flake": false, - "locked": { - "lastModified": 1623532926, - "narHash": "sha256-QXJgyHfqeGKO+2eHMk0/WvMcfDwMqw4ymPlArNlcpRo=", - "owner": "21Joakim", - "repo": "copy-avatar-url", - "rev": "bac9d2e9c1b9c153b5842934e6a89fe548452c58", - "type": "github" - }, - "original": { - "owner": "21Joakim", - "repo": "copy-avatar-url", - "type": "github" - } - }, - "discord-copy-raw-message": { - "flake": false, - "locked": { - "lastModified": 1647266717, - "narHash": "sha256-AmZquaFo0ifk0nKJztD0URmsPnQK4nSVO8p72hhUqO0=", - "owner": "mic0ishere", - "repo": "copy-raw-message", - "rev": "34c0b1de315403f61b3050f705d2f5c271a3dd28", - "type": "github" - }, - "original": { - "owner": "mic0ishere", - "repo": "copy-raw-message", - "type": "github" - } - }, - "discord-copy-role-color": { - "flake": false, - "locked": { - "lastModified": 1618396251, - "narHash": "sha256-ucgPshBCGFBRSkJ3/FCpbuLcZT9e2kqIHPJevxOZk5M=", - "owner": "Antonio32A", - "repo": "copy-role-color", - "rev": "0daab6c9e0a851a364cd1b2177d82304f5344507", - "type": "github" - }, - "original": { - "owner": "Antonio32A", - "repo": "copy-role-color", - "type": "github" - } - }, - "discord-css-toggler": { - "flake": false, - "locked": { - "lastModified": 1644453320, - "narHash": "sha256-GhyC+Cgm/rSFzLPMd6opHsD1LqvMIk6rOGJx9Lb1s+c=", - "owner": "12944qwerty", - "repo": "css-toggler", - "rev": "3ca4a150a7800d52e0455f9716ec1df28a236d39", - "type": "github" - }, - "original": { - "owner": "12944qwerty", - "repo": "css-toggler", - "type": "github" - } - }, - "discord-custom-timestamps": { - "flake": false, - "locked": { - "lastModified": 1639189754, - "narHash": "sha256-RRjhgQV+kPuPMKusp+RqYvX4wun6dHVwUOxyYbr0bQ0=", - "owner": "TaiAurori", - "repo": "custom-timestamps", - "rev": "207197e44bff06c14d91020d42511da15affe7d5", - "type": "github" - }, - "original": { - "owner": "TaiAurori", - "repo": "custom-timestamps", - "type": "github" - } - }, - "discord-cutecord": { - "flake": false, - "locked": { - "lastModified": 1650678770, - "narHash": "sha256-qh6xQhTnaKJRe/jQ9Frj9zGQD7Q+EdYbVFVLnPgqWpc=", - "owner": "powercord-community", - "repo": "cutecord", - "rev": "11b801480443431cde91c418489248fc2cbf83a8", - "type": "github" - }, - "original": { - "owner": "powercord-community", - "repo": "cutecord", - "type": "github" - } - }, - "discord-discord-status": { - "flake": false, - "locked": { - "lastModified": 1617586260, - "narHash": "sha256-0dWmojr9mqOunZ3wYlw8jPZomkpFEDm6Ml9UiQUJnGs=", - "owner": "KableKo", - "repo": "discord-status", - "rev": "a12ff027af7eeef3be9346c800a42a54f84b0d86", - "type": "github" - }, - "original": { - "owner": "KableKo", - "repo": "discord-status", - "type": "github" - } - }, - "discord-dm-typing-indicator": { - "flake": false, - "locked": { - "lastModified": 1636586273, - "narHash": "sha256-qkrzocT7thdzbW+cmFbY0Cbu2sx2GX7AU/CS4Kzxaq8=", - "owner": "zt64", - "repo": "dm-typing-indicator", - "rev": "3622db26bcfa6f949a49c41a4d820a23401084b2", - "type": "github" - }, - "original": { - "owner": "zt64", - "repo": "dm-typing-indicator", - "type": "github" - } - }, - "discord-guild-profile": { - "flake": false, - "locked": { - "lastModified": 1642440449, - "narHash": "sha256-SySCuI/NwhlfzpCPJgqSOUdb1zIN3Fp6xcG1D16l1ks=", - "owner": "NurMarvin", - "repo": "guild-profile", - "rev": "89e59764112844d4dc51c97aa4e58978ec7436ae", - "type": "github" - }, - "original": { - "owner": "NurMarvin", - "repo": "guild-profile", - "type": "github" - } - }, - "discord-kaomoji": { - "flake": false, - "locked": { - "lastModified": 1644171071, - "narHash": "sha256-tzs987zewEyCHX+v6i3kpgtxKESpJnRjFj/nd0+TBys=", - "owner": "davidcralph", - "repo": "kaomoji", - "rev": "8eb35c661b2169d775066f9a07d778af664ed1f0", - "type": "github" - }, - "original": { - "owner": "davidcralph", - "repo": "kaomoji", - "type": "github" - } - }, - "discord-mention-cache-fix": { - "flake": false, - "locked": { - "lastModified": 1656435391, - "narHash": "sha256-8iJtCHwUuooQ0WiCsb2pYXpYTHhftmmAd2+UiTnLa8w=", - "owner": "asportnoy", - "repo": "mention-cache-fix", - "rev": "66c918b976cb8edccd719a5b1bbb3a3c217b8fa3", - "type": "github" - }, - "original": { - "owner": "asportnoy", - "repo": "mention-cache-fix", - "type": "github" - } - }, - "discord-message-link-embed": { - "flake": false, - "locked": { - "lastModified": 1634981173, - "narHash": "sha256-AB3QgVqHv6Ybt6V9kkeXTLB/jcA+51UWCTfzbIwdyZU=", - "owner": "Juby210", - "repo": "message-link-embed", - "rev": "eb41fed1e749ffda391f9b0b0c8e2991175b1a57", - "type": "github" - }, - "original": { - "owner": "Juby210", - "repo": "message-link-embed", - "type": "github" - } - }, - "discord-online-friends-count": { - "flake": false, - "locked": { - "lastModified": 1648166716, - "narHash": "sha256-Vvm33WI5MX5qU5IpqI142EsSNq0wx4icAymCAI3utVY=", - "owner": "GriefMoDz", - "repo": "online-friends-count", - "rev": "b82d4a15e1ba410192f24c9f5eeab65b0d7fc151", - "type": "github" - }, - "original": { - "owner": "GriefMoDz", - "repo": "online-friends-count", - "type": "github" - } - }, - "discord-permission-viewer": { - "flake": false, - "locked": { - "lastModified": 1649930173, - "narHash": "sha256-5Z2s5mPHl9pjqH6ZENoyGcJoiNTgItMkE4d+ofnqYPA=", - "owner": "powercord-community", - "repo": "permission-viewer", - "rev": "b96e87d4138cc6ffdb1cfbbf53135ab36d6deec2", - "type": "github" - }, - "original": { - "owner": "powercord-community", - "repo": "permission-viewer", - "type": "github" - } - }, - "discord-powercord-LinkChannels": { - "flake": false, - "locked": { - "lastModified": 1623970704, - "narHash": "sha256-C95v9S0SCErv1BMFmMb4Pww7o4B/RASjASgYmWxh4WQ=", - "owner": "E-boi", - "repo": "powercord-LinkChannels", - "rev": "6d7040ef6c04f2fcbe7dacafaa6638776ba9e72e", - "type": "github" - }, - "original": { - "owner": "E-boi", - "repo": "powercord-LinkChannels", - "type": "github" - } - }, - "discord-powercord-message-tooltips": { - "flake": false, - "locked": { - "lastModified": 1642200248, - "narHash": "sha256-OcqS2rMv/T3F0wbXVNwwsWH57AJ0mIK7C/YVxJ+5pbM=", - "owner": "lorencerri", - "repo": "powercord-message-tooltips", - "rev": "6c1e15946dd3588e7c8841f88bb8e6e40a58b031", - "type": "github" - }, - "original": { - "owner": "lorencerri", - "repo": "powercord-message-tooltips", - "type": "github" - } - }, - "discord-powercord-mute-folder": { - "flake": false, - "locked": { - "lastModified": 1642350595, - "narHash": "sha256-fCDuzzA4HnAiq+maBTAwjI/SUh2kXxXlmQXQc71BUvA=", - "owner": "notsapinho", - "repo": "powercord-mute-folder", - "rev": "7d3d1208583dcc114c1cbbcb02ae212d0af578f0", - "type": "github" - }, - "original": { - "owner": "notsapinho", - "repo": "powercord-mute-folder", - "type": "github" - } - }, - "discord-powercord-ownertags": { - "flake": false, - "locked": { - "lastModified": 1653395542, - "narHash": "sha256-c298D4ZYx2hwyt3ktA/LAjPLx5SeWs5tMQgqe4vqHzs=", - "owner": "Puyodead1", - "repo": "powercord-ownertag", - "rev": "e18cb405bc66a5abc5c0a6d977c6f811234fce24", - "type": "github" - }, - "original": { - "owner": "Puyodead1", - "repo": "powercord-ownertag", - "type": "github" - } - }, - "discord-powercord-pindms": { - "flake": false, - "locked": { - "lastModified": 1652881953, - "narHash": "sha256-6d2F0WWtCFE8kyt5Dpoa9NHjlrdkOqcJMf2qUNSdNSg=", - "owner": "Bricklou", - "repo": "powercord-pindms", - "rev": "4020cc10a50d9c730f83d7f3f085ec1e58daf4d5", - "type": "github" - }, - "original": { - "owner": "Bricklou", - "repo": "powercord-pindms", - "type": "github" - } - }, - "discord-powercord-reverse-image-search": { - "flake": false, - "locked": { - "lastModified": 1643778410, - "narHash": "sha256-9cbPhGbMVuXrArVCorv9NzfQNYAEHlfdIrItOzJMNck=", - "owner": "lorencerri", - "repo": "powercord-reverse-image-search", - "rev": "9a13f7d78d647f58ebd6489e93cda9a536766919", - "type": "github" - }, - "original": { - "owner": "lorencerri", - "repo": "powercord-reverse-image-search", - "type": "github" - } - }, - "discord-powercord-tone-indicators": { - "flake": false, - "locked": { - "lastModified": 1655480246, - "narHash": "sha256-kGhuX40u6N2os9bJTaVea8wP2Ko6EMFeCT9PXPShDm8=", - "owner": "asportnoy", - "repo": "powercord-tone-indicators", - "rev": "546aa82154caa0590bdf2505bf00fb5a210d97e2", - "type": "github" - }, - "original": { - "owner": "asportnoy", - "repo": "powercord-tone-indicators", - "type": "github" - } - }, - "discord-pronoundb-powercord": { - "flake": false, - "locked": { - "lastModified": 1647695590, - "narHash": "sha256-uT8daKWiJNAfFTeMByKPocLMIDdL5/OaUJ7Aw0PCtlA=", - "owner": "cyyynthia", - "repo": "pronoundb-powercord", - "rev": "0ad35ab408216099ff71b45168c504cfb781b125", - "type": "github" - }, - "original": { - "owner": "cyyynthia", - "repo": "pronoundb-powercord", - "type": "github" - } - }, - "discord-quick-delete-pc": { - "flake": false, - "locked": { - "lastModified": 1645295933, - "narHash": "sha256-v1un1qmqtITDwHVybxOLdgQ65AbxsC1luYZ83UDvpzs=", - "owner": "the-cord-plug", - "repo": "quick-delete-pc", - "rev": "a80db0279876e048a791f02ba2c17f222e3a7f98", - "type": "github" - }, - "original": { - "owner": "the-cord-plug", - "repo": "quick-delete-pc", - "type": "github" - } - }, - "discord-reddit-parser": { - "flake": false, - "locked": { - "lastModified": 1621484518, - "narHash": "sha256-tDvdY7i37uDDjFLprlBgLxWfQDJp+OMlLU3vVcpPrSE=", - "owner": "Rodentman87", - "repo": "reddit-parser", - "rev": "47226db29bf6a0103b7ab66bd4835316ab98e09d", - "type": "github" - }, - "original": { - "owner": "Rodentman87", - "repo": "reddit-parser", - "type": "github" - } - }, - "discord-relationship-notifier": { - "flake": false, - "locked": { - "lastModified": 1650211510, - "narHash": "sha256-xlh5mtsJLbaOWAlDTjIwbRfDJP1w4vUXqS3LDtkpTnY=", - "owner": "discord-modifications", - "repo": "relationships-notifier", - "rev": "14d0eb9838ccb935be3a00a7fd0b14224ac6022b", - "type": "github" - }, - "original": { - "owner": "discord-modifications", - "repo": "relationships-notifier", - "type": "github" - } - }, - "discord-remove-invite-from-user-context-menu": { - "flake": false, - "locked": { - "lastModified": 1616452131, - "narHash": "sha256-/3SiuzZvS4q8OcZpMvAsQV+ihKZTPYCsuH0csiP6AOg=", - "owner": "SebbyLaw", - "repo": "remove-invite-from-user-context-menu", - "rev": "083984fed0dd01bb70647bb1cf767dd208be30e0", - "type": "github" - }, - "original": { - "owner": "SebbyLaw", - "repo": "remove-invite-from-user-context-menu", - "type": "github" - } - }, - "discord-replace-timestamps-pc": { - "flake": false, - "locked": { - "lastModified": 1653588088, - "narHash": "sha256-sRUapSRz2Vh8RA4o2O9IlOwdeaTTK9D2twhztQiLj7Y=", - "owner": "SpoonMcForky", - "repo": "replace-timestamps-pc", - "rev": "15bba0527c3c1054af6f59ff31ba67c8a1df2d05", - "type": "github" - }, - "original": { - "owner": "SpoonMcForky", - "repo": "replace-timestamps-pc", - "type": "github" - } - }, - "discord-report-messages": { - "flake": false, - "locked": { - "lastModified": 1644373439, - "narHash": "sha256-BmOcIAtKrp3FB4Wb1RICEcEEBdR+sBKGlngLaLG3E3w=", - "owner": "12944qwerty", - "repo": "report-messages", - "rev": "51f923c879be589ce27568550106c8a147ae534d", - "type": "github" - }, - "original": { - "owner": "12944qwerty", - "repo": "report-messages", - "type": "github" - } - }, - "discord-rolecolor-everywhere": { - "flake": false, - "locked": { - "lastModified": 1649251116, - "narHash": "sha256-b8dbqLxHMIkX5i7tq+cRk57xEA8dIAYtYgjMDIWxDXc=", - "owner": "powercord-community", - "repo": "rolecolor-everywhere", - "rev": "1691b60364a9782692dc32e8f99c1fca498e8857", - "type": "github" - }, - "original": { - "owner": "powercord-community", - "repo": "rolecolor-everywhere", - "type": "github" - } - }, - "discord-scrollable-autocomplete": { - "flake": false, - "locked": { - "lastModified": 1651843373, - "narHash": "sha256-r8xkSp7fs1PF4zZU0UNBKTadrfhJsmlDMvjqLhlwe6Q=", - "owner": "GriefMoDz", - "repo": "scrollable-autocomplete", - "rev": "050869105d30c840424f29c2768f29b3cb4cb59a", - "type": "github" - }, - "original": { - "owner": "GriefMoDz", - "repo": "scrollable-autocomplete", - "type": "github" - } - }, - "discord-send-timestamps": { - "flake": false, - "locked": { - "lastModified": 1650290522, - "narHash": "sha256-xBmzPxFH1R9Pec/hSyZ1uIj6LOgad83YDRpsqWxTocU=", - "owner": "12944qwerty", - "repo": "send-timestamps", - "rev": "0f702da2c1df5296da511e5271572038aabd2e89", - "type": "github" - }, - "original": { - "owner": "12944qwerty", - "repo": "send-timestamps", - "type": "github" - } - }, - "discord-server-count": { - "flake": false, - "locked": { - "lastModified": 1606276576, - "narHash": "sha256-4mKU3UVggDPVyV+CqptxoRIh/UnD/12LzNcWb4aYyn0=", - "owner": "TheShadowGamer", - "repo": "Server-Count", - "rev": "0595eed44764222b76bf79e37df3aa2e900590b4", - "type": "github" - }, - "original": { - "owner": "TheShadowGamer", - "repo": "Server-Count", - "type": "github" - } - }, - "discord-showAllMessageButtons": { - "flake": false, - "locked": { - "lastModified": 1627505537, - "narHash": "sha256-/lD9zaOAwHKa+LMnm6/+5t+k1VXRoj+j47Z5cI0qklI=", - "owner": "12944qwerty", - "repo": "showAllMessageButtons", - "rev": "f1bc388b2c52dc9c813d529974d90efb94c6639e", - "type": "github" - }, - "original": { - "owner": "12944qwerty", - "repo": "showAllMessageButtons", - "type": "github" - } - }, - "discord-smart-typers": { - "flake": false, - "locked": { - "lastModified": 1641631958, - "narHash": "sha256-tKeGL2NUH5w3ct3H2TIP/KljIHOzmLycsUtyQ1c/epI=", - "owner": "GriefMoDz", - "repo": "smart-typers", - "rev": "f3d4f35c762de1ce59e0c6dab97f600e7375478a", - "type": "github" - }, - "original": { - "owner": "GriefMoDz", - "repo": "smart-typers", - "type": "github" - } - }, - "discord-total-members": { - "flake": false, - "locked": { - "lastModified": 1634895886, - "narHash": "sha256-5hqWQwvEku9wR00xPf8HHkI7F0rkTsArFP2ODxRz8Dc=", - "owner": "cyyynthia", - "repo": "total-members", - "rev": "6f8a826d1729cbddeb3dbcc988867613af5778da", - "type": "github" - }, - "original": { - "owner": "cyyynthia", - "repo": "total-members", - "type": "github" - } - }, - "discord-user-birthdays": { - "flake": false, - "locked": { - "lastModified": 1645509826, - "narHash": "sha256-n/DJo2FSREwGBjtx0zc3IknjbpVHxeMK9HmJfPMoMdw=", - "owner": "GriefMoDz", - "repo": "user-birthdays", - "rev": "9ae9b9e4e9fa5feb98d018ab6d1df6cabd6d0bb9", - "type": "github" - }, - "original": { - "owner": "GriefMoDz", - "repo": "user-birthdays", - "type": "github" - } - }, - "discord-user-details": { - "flake": false, - "locked": { - "lastModified": 1651701198, - "narHash": "sha256-EI8JDRnM8KWbPRJK2f+aknX/GiTUaaHOC72d9zFEbGU=", - "owner": "Juby210", - "repo": "user-details", - "rev": "d3e9fc097045c04de94a005f571bcd792c871aa4", - "type": "github" - }, - "original": { - "owner": "Juby210", - "repo": "user-details", - "type": "github" - } - }, - "discord-userid-info": { - "flake": false, - "locked": { - "lastModified": 1632104789, - "narHash": "sha256-sE4Scn44WV3hkPt8KK7V4j4dseZ83BpG7dLWieGR2GE=", - "owner": "webtax-gh", - "repo": "userid-info", - "rev": "acdcddffbb11beea1166828db740e075e814d9ed", - "type": "github" - }, - "original": { - "owner": "webtax-gh", - "repo": "userid-info", - "type": "github" - } - }, - "discord-vcTimer": { - "flake": false, - "locked": { - "lastModified": 1621410072, - "narHash": "sha256-Mz3YrpXLPjYbGifL1UUP534E2drbl7mx3WQnM3s+dlI=", - "owner": "RazerMoon", - "repo": "vcTimer", - "rev": "2a1860380b442f15070173a6f3c678bf60873eb1", - "type": "github" - }, - "original": { - "owner": "RazerMoon", - "repo": "vcTimer", - "type": "github" - } - }, - "discord-voice-chat-utilities": { - "flake": false, - "locked": { - "lastModified": 1623186051, - "narHash": "sha256-UVnDqeKDhQS5AoQJzSEl4bjcwsyr4l3NqqkjfJPxABQ=", - "owner": "dutake", - "repo": "voice-chat-utilities", - "rev": "ec64b0b51ca67d5771e522f609eec4d0343e8ebd", - "type": "github" - }, - "original": { - "owner": "dutake", - "repo": "voice-chat-utilities", - "type": "github" - } - }, - "discord-voice-user-count": { - "flake": false, - "locked": { - "lastModified": 1648400257, - "narHash": "sha256-hmAFsIAs7+QxFENR5bhZNqVuyGGtzQysj4shxk2wcN0=", - "owner": "tuanbinhtran", - "repo": "voice-user-count", - "rev": "3ba2c776ac8bed2589a7198c087c12c0cf03515c", - "type": "github" - }, - "original": { - "owner": "tuanbinhtran", - "repo": "voice-user-count", - "type": "github" - } - }, - "discord-webhook-tag": { - "flake": false, - "locked": { - "lastModified": 1645140737, - "narHash": "sha256-KBKRwlTDaGXkEFGq08Nbbj8Kmnmz7yuDcZts9JZAgMU=", - "owner": "BenSegal855", - "repo": "webhook-tag", - "rev": "7f573b821006d070a3ea2ec92ca822b0a3980ea9", - "type": "github" - }, - "original": { - "owner": "BenSegal855", - "repo": "webhook-tag", - "type": "github" - } - }, - "flake-utils": { - "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "fup": { - "inputs": { - "flake-utils": "flake-utils" - }, - "locked": { - "lastModified": 1652704544, - "narHash": "sha256-UTKE33tYgCmDszaVyWA33a8mtegM5xfH4fH8w4y6TxA=", - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "f8d6d1f87b6177e3bc674c29f247bdbf897ba274", - "type": "github" - }, - "original": { - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1656239181, - "narHash": "sha256-wW1xRFBn376yGloXZ4QzBE4hjipMawpV18Lshd9QSPw=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "f2537a505d45c31fe5d9c27ea9829b6f4c4e6ac5", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "powercord": { - "flake": false, - "locked": { - "lastModified": 1657230161, - "narHash": "sha256-rxeltTWsAhqnfW04YjP03xh0+htM7vly6nkb28o27/g=", - "owner": "powercord-org", - "repo": "powercord", - "rev": "59df79dbeb7140b29e1abc68ec211853d070a5a6", - "type": "github" - }, - "original": { - "owner": "powercord-org", - "repo": "powercord", - "type": "github" - } - }, - "powercord-overlay": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "powercord": [ - "powercord" - ] - }, - "locked": { - "lastModified": 1656026574, - "narHash": "sha256-fNGu2Ml6kk7teiywRnWjWMjPv8pPLI1plXeMlvuEiao=", - "owner": "Infinidoge", - "repo": "powercord-overlay", - "rev": "9de1f2ffe18ecce8b1d84804ddccda9fa42ec72e", - "type": "github" - }, - "original": { - "owner": "Infinidoge", - "repo": "powercord-overlay", - "type": "github" - } - }, - "root": { - "inputs": { - "discord-Custom-Volume-Range": "discord-Custom-Volume-Range", - "discord-Discolored": "discord-Discolored", - "discord-In-app-notifs": "discord-In-app-notifs", - "discord-NSFW-tags": "discord-NSFW-tags", - "discord-PowercordTwemojiEverywhere": "discord-PowercordTwemojiEverywhere", - "discord-Quick-Bot-Invite": "discord-Quick-Bot-Invite", - "discord-Quick-Channel-Mute": "discord-Quick-Channel-Mute", - "discord-SnowflakeInfo": "discord-SnowflakeInfo", - "discord-Unindent": "discord-Unindent", - "discord-badges-everywhere": "discord-badges-everywhere", - "discord-better-connections": "discord-better-connections", - "discord-better-folders": "discord-better-folders", - "discord-better-replies": "discord-better-replies", - "discord-better-settings": "discord-better-settings", - "discord-better-status-indicators": "discord-better-status-indicators", - "discord-better-threads": "discord-better-threads", - "discord-betterinvites": "discord-betterinvites", - "discord-block-messages": "discord-block-messages", - "discord-channel-typing": "discord-channel-typing", - "discord-copy-avatar-url": "discord-copy-avatar-url", - "discord-copy-raw-message": "discord-copy-raw-message", - "discord-copy-role-color": "discord-copy-role-color", - "discord-css-toggler": "discord-css-toggler", - "discord-custom-timestamps": "discord-custom-timestamps", - "discord-cutecord": "discord-cutecord", - "discord-discord-status": "discord-discord-status", - "discord-dm-typing-indicator": "discord-dm-typing-indicator", - "discord-guild-profile": "discord-guild-profile", - "discord-kaomoji": "discord-kaomoji", - "discord-mention-cache-fix": "discord-mention-cache-fix", - "discord-message-link-embed": "discord-message-link-embed", - "discord-online-friends-count": "discord-online-friends-count", - "discord-permission-viewer": "discord-permission-viewer", - "discord-powercord-LinkChannels": "discord-powercord-LinkChannels", - "discord-powercord-message-tooltips": "discord-powercord-message-tooltips", - "discord-powercord-mute-folder": "discord-powercord-mute-folder", - "discord-powercord-ownertags": "discord-powercord-ownertags", - "discord-powercord-pindms": "discord-powercord-pindms", - "discord-powercord-reverse-image-search": "discord-powercord-reverse-image-search", - "discord-powercord-tone-indicators": "discord-powercord-tone-indicators", - "discord-pronoundb-powercord": "discord-pronoundb-powercord", - "discord-quick-delete-pc": "discord-quick-delete-pc", - "discord-reddit-parser": "discord-reddit-parser", - "discord-relationship-notifier": "discord-relationship-notifier", - "discord-remove-invite-from-user-context-menu": "discord-remove-invite-from-user-context-menu", - "discord-replace-timestamps-pc": "discord-replace-timestamps-pc", - "discord-report-messages": "discord-report-messages", - "discord-rolecolor-everywhere": "discord-rolecolor-everywhere", - "discord-scrollable-autocomplete": "discord-scrollable-autocomplete", - "discord-send-timestamps": "discord-send-timestamps", - "discord-server-count": "discord-server-count", - "discord-showAllMessageButtons": "discord-showAllMessageButtons", - "discord-smart-typers": "discord-smart-typers", - "discord-total-members": "discord-total-members", - "discord-user-birthdays": "discord-user-birthdays", - "discord-user-details": "discord-user-details", - "discord-userid-info": "discord-userid-info", - "discord-vcTimer": "discord-vcTimer", - "discord-voice-chat-utilities": "discord-voice-chat-utilities", - "discord-voice-user-count": "discord-voice-user-count", - "discord-webhook-tag": "discord-webhook-tag", - "fup": "fup", - "nixpkgs": "nixpkgs", - "powercord": "powercord", - "powercord-overlay": "powercord-overlay" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/subflakes/powercord/flake.nix b/subflakes/powercord/flake.nix deleted file mode 100644 index fa34e67..0000000 --- a/subflakes/powercord/flake.nix +++ /dev/null @@ -1,180 +0,0 @@ -{ - description = "The powercord plugins, themes, and configuration that make up Infinidoge's setup"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - - fup.url = "github:gytis-ivaskevicius/flake-utils-plus"; - - powercord = { url = "github:powercord-org/powercord"; flake = false; }; - # powercord-overlay.url = "github:LavaDesu/powercord-overlay"; - powercord-overlay.url = "github:Infinidoge/powercord-overlay"; - powercord-overlay.inputs.nixpkgs.follows = "nixpkgs"; - powercord-overlay.inputs.powercord.follows = "powercord"; - - # --- Plugins - discord-Custom-Volume-Range = { url = "github:PandaDriver156/Custom-Volume-Range"; flake = false; }; - discord-In-app-notifs = { url = "github:BenSegal855/In-app-notifs"; flake = false; }; - discord-NSFW-tags = { url = "github:E-boi/NSFW-tags"; flake = false; }; - discord-PowercordTwemojiEverywhere = { url = "github:VenPlugs/PowercordTwemojiEverywhere"; flake = false; }; - discord-Quick-Bot-Invite = { url = "github:A-Trash-Coder/Quick-Bot-Invite"; flake = false; }; - discord-Quick-Channel-Mute = { url = "github:A-Trash-Coder/Quick-Channel-Mute"; flake = false; }; - discord-SnowflakeInfo = { url = "github:NurMarvin/SnowflakeInfo"; flake = false; }; - discord-Unindent = { url = "github:VenPlugs/Unindent"; flake = false; }; - discord-badges-everywhere = { url = "github:powercord-community/badges-everywhere"; flake = false; }; - discord-better-connections = { url = "github:AAGaming00/better-connections"; flake = false; }; - discord-better-folders = { url = "github:Juby210/better-folders"; flake = false; }; - discord-better-replies = { url = "github:cyyynthia/better-replies"; flake = false; }; - discord-better-settings = { url = "github:mr-miner1/better-settings"; flake = false; }; - discord-better-status-indicators = { url = "github:GriefMoDz/better-status-indicators"; flake = false; }; - discord-better-threads = { url = "github:NurMarvin/better-threads"; flake = false; }; - discord-betterinvites = { url = "github:12944qwerty/betterinvites"; flake = false; }; - discord-block-messages = { url = "github:cyyynthia/block-messages"; flake = false; }; - discord-channel-typing = { url = "github:powercord-community/channel-typing"; flake = false; }; - discord-copy-avatar-url = { url = "github:21Joakim/copy-avatar-url"; flake = false; }; - discord-copy-raw-message = { url = "github:mic0ishere/copy-raw-message"; flake = false; }; - discord-copy-role-color = { url = "github:Antonio32A/copy-role-color"; flake = false; }; - discord-css-toggler = { url = "github:12944qwerty/css-toggler"; flake = false; }; - discord-custom-timestamps = { url = "github:TaiAurori/custom-timestamps"; flake = false; }; - discord-cutecord = { url = "github:powercord-community/cutecord"; flake = false; }; - discord-discord-status = { url = "github:KableKo/discord-status"; flake = false; }; - discord-dm-typing-indicator = { url = "github:zt64/dm-typing-indicator"; flake = false; }; - discord-guild-profile = { url = "github:NurMarvin/guild-profile"; flake = false; }; - discord-kaomoji = { url = "github:davidcralph/kaomoji"; flake = false; }; - discord-mention-cache-fix = { url = "github:asportnoy/mention-cache-fix"; flake = false; }; - discord-message-link-embed = { url = "github:Juby210/message-link-embed"; flake = false; }; - discord-online-friends-count = { url = "github:GriefMoDz/online-friends-count"; flake = false; }; - discord-permission-viewer = { url = "github:powercord-community/permission-viewer"; flake = false; }; - discord-powercord-LinkChannels = { url = "github:E-boi/powercord-LinkChannels"; flake = false; }; - discord-powercord-message-tooltips = { url = "github:lorencerri/powercord-message-tooltips"; flake = false; }; - discord-powercord-mute-folder = { url = "github:notsapinho/powercord-mute-folder"; flake = false; }; - discord-powercord-ownertags = { url = "github:Puyodead1/powercord-ownertag"; flake = false; }; - discord-powercord-pindms = { url = "github:Bricklou/powercord-pindms"; flake = false; }; - discord-powercord-reverse-image-search = { url = "github:lorencerri/powercord-reverse-image-search"; flake = false; }; - discord-powercord-tone-indicators = { url = "github:asportnoy/powercord-tone-indicators"; flake = false; }; - discord-pronoundb-powercord = { url = "github:cyyynthia/pronoundb-powercord"; flake = false; }; - discord-quick-delete-pc = { url = "github:the-cord-plug/quick-delete-pc"; flake = false; }; - discord-reddit-parser = { url = "github:Rodentman87/reddit-parser"; flake = false; }; - discord-relationship-notifier = { url = "github:discord-modifications/relationships-notifier"; flake = false; }; - discord-remove-invite-from-user-context-menu = { url = "github:SebbyLaw/remove-invite-from-user-context-menu"; flake = false; }; - discord-replace-timestamps-pc = { url = "github:SpoonMcForky/replace-timestamps-pc"; flake = false; }; - discord-report-messages = { url = "github:12944qwerty/report-messages"; flake = false; }; - discord-rolecolor-everywhere = { url = "github:powercord-community/rolecolor-everywhere"; flake = false; }; - discord-scrollable-autocomplete = { url = "github:GriefMoDz/scrollable-autocomplete"; flake = false; }; - discord-send-timestamps = { url = "github:12944qwerty/send-timestamps"; flake = false; }; - discord-server-count = { url = "github:TheShadowGamer/Server-Count"; flake = false; }; - discord-showAllMessageButtons = { url = "github:12944qwerty/showAllMessageButtons"; flake = false; }; - discord-smart-typers = { url = "github:GriefMoDz/smart-typers"; flake = false; }; - discord-total-members = { url = "github:cyyynthia/total-members"; flake = false; }; - discord-user-birthdays = { url = "github:GriefMoDz/user-birthdays"; flake = false; }; - discord-user-details = { url = "github:Juby210/user-details"; flake = false; }; - discord-userid-info = { url = "github:webtax-gh/userid-info"; flake = false; }; - discord-vcTimer = { url = "github:RazerMoon/vcTimer"; flake = false; }; - discord-voice-chat-utilities = { url = "github:dutake/voice-chat-utilities"; flake = false; }; - discord-voice-user-count = { url = "github:tuanbinhtran/voice-user-count"; flake = false; }; - discord-webhook-tag = { url = "github:BenSegal855/webhook-tag"; flake = false; }; - - # --- Themes --- - discord-Discolored = { url = "github:NYRI4/Discolored"; flake = false; }; - }; - - outputs = inputs@{ self, nixpkgs, fup, powercord-overlay, ... }: - let - patch = name: "${./patches}/${name}.patch"; - in - fup.lib.mkFlake rec { - - inherit self inputs; - - channelsConfig = { allowUnfree = true; }; - sharedOverlays = [ powercord-overlay.overlay ]; - - overlay = final: prev: { inherit (self.packages.x86_64-linux) powercord; }; - - outputsBuilder = channels: rec { - defaultPackage = packages.powercord; - packages = with channels.nixpkgs; { - powercord = (discord-plugged.override { - patches = (map patch [ - "remove-heygirl" - "remove-lmgtfy" - "remove-mock" - "remove-spotify" - "remove-updater" - ]); - - plugins = with inputs; [ - discord-Custom-Volume-Range - discord-In-app-notifs - discord-NSFW-tags - discord-PowercordTwemojiEverywhere - discord-Quick-Bot-Invite - discord-Quick-Channel-Mute - discord-SnowflakeInfo - discord-Unindent - discord-badges-everywhere - discord-better-connections - discord-better-folders - discord-better-replies - discord-better-settings - discord-better-status-indicators - discord-better-threads - discord-betterinvites - discord-block-messages - discord-channel-typing - discord-copy-avatar-url - discord-copy-raw-message - discord-copy-role-color - (applyPatches { - src = discord-css-toggler; - patches = [ (patch "css-toggler") ]; - name = "discord-css-toggler"; - }) - discord-custom-timestamps - discord-cutecord - discord-discord-status - # discord-dm-typing-indicator - discord-guild-profile - discord-kaomoji - discord-mention-cache-fix - discord-message-link-embed - discord-online-friends-count - discord-permission-viewer - discord-powercord-LinkChannels - discord-powercord-message-tooltips - discord-powercord-mute-folder - discord-powercord-ownertags - # discord-powercord-pindms - discord-powercord-reverse-image-search - discord-powercord-tone-indicators - discord-pronoundb-powercord - discord-quick-delete-pc - discord-reddit-parser - discord-relationship-notifier - discord-remove-invite-from-user-context-menu - discord-replace-timestamps-pc - discord-report-messages - discord-rolecolor-everywhere - # discord-scrollable-autocomplete - # discord-send-timestamps - # discord-server-count - discord-showAllMessageButtons - discord-smart-typers - discord-total-members - discord-user-birthdays - discord-user-details - discord-userid-info - discord-vcTimer - discord-voice-chat-utilities - discord-voice-user-count - discord-webhook-tag - ]; - themes = with inputs; [ - discord-Discolored - ]; - }); - }; - }; - - }; -} diff --git a/subflakes/powercord/patches/css-toggler.patch b/subflakes/powercord/patches/css-toggler.patch deleted file mode 100644 index d70f52f..0000000 --- a/subflakes/powercord/patches/css-toggler.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/constants.js b/constants.js -index 6bc4317..2ae4b55 100644 ---- a/constants.js -+++ b/constants.js -@@ -11,7 +11,7 @@ module.exports = Object.freeze({ - ERROR: 0xED4245, - SUCCESS: 0x3BA55C - }, -- CACHE_FOLDER: join(__dirname, '.cache'), -+ CACHE_FOLDER: join("/home/infinidoge/.config", "powercord", 'css-toggler-cache'), - MAX_SNIPPET_TITLE_LENGTH: 32, - MAX_SNIPPET_DESCRIPTION_LENGTH: 120, - DEFAULT_SNIPPET_TITLE: 'Untitled Snippet' diff --git a/subflakes/powercord/patches/remove-heygirl.patch b/subflakes/powercord/patches/remove-heygirl.patch deleted file mode 100644 index 62da8a0..0000000 --- a/subflakes/powercord/patches/remove-heygirl.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/src/Powercord/plugins/pc-heygirl/index.js b/src/Powercord/plugins/pc-heygirl/index.js -deleted file mode 100644 -index bd97579..0000000 ---- a/src/Powercord/plugins/pc-heygirl/index.js -+++ /dev/null -@@ -1,49 +0,0 @@ --// idea based on http://heygirl.io/ (+used their images) -- --const { Plugin } = require('powercord/entities'); -- --module.exports = class HeyGirl extends Plugin { -- constructor () { -- super(); -- -- this.URLs = [].concat( -- Array(3).fill('jpg'), -- Array(2).fill('gif'), -- Array(1).fill('png'), -- Array(4).fill('gif'), -- Array(3).fill('jpg'), -- Array(1).fill('png') -- ).map((format, id) => ( -- `http://heygirl.io/img/gosling-square-${id + 1}.${format}` -- )); -- } -- -- startPlugin () { -- powercord.api.commands.registerCommand({ -- command: 'heygirl', -- description: 'Replaces every image with a random image of Ryan Gosling', -- usage: '{c}', -- executor: this.heygirl.bind(this) -- }); -- } -- -- pluginWillUnload () { -- powercord.api.commands.unregisterCommand('heygirl'); -- } -- -- getRandomURL () { -- return this.URLs[Math.floor(Math.random() * this.URLs.length)]; -- } -- -- heygirl () { -- document.querySelectorAll('[style*="background-image"]') -- .forEach(({ style }) => ( -- style.backgroundImage = `url("${this.getRandomURL()}")` -- )); -- -- document.querySelectorAll('img') -- .forEach(image => ( -- image.src = this.getRandomURL() -- )); -- } --}; -diff --git a/src/Powercord/plugins/pc-heygirl/manifest.json b/src/Powercord/plugins/pc-heygirl/manifest.json -deleted file mode 100644 -index 084c039..0000000 ---- a/src/Powercord/plugins/pc-heygirl/manifest.json -+++ /dev/null -@@ -1,7 +0,0 @@ --{ -- "name": "Heygirl", -- "version": "1.0.0", -- "description": "heygirl", -- "author": "Powercord Team", -- "license": "MIT" --} diff --git a/subflakes/powercord/patches/remove-lmgtfy.patch b/subflakes/powercord/patches/remove-lmgtfy.patch deleted file mode 100644 index 044ae5d..0000000 --- a/subflakes/powercord/patches/remove-lmgtfy.patch +++ /dev/null @@ -1,189 +0,0 @@ -diff --git a/src/Powercord/plugins/pc-lmgtfy/Settings.jsx b/src/Powercord/plugins/pc-lmgtfy/Settings.jsx -deleted file mode 100644 -index bd26ff3..0000000 ---- a/src/Powercord/plugins/pc-lmgtfy/Settings.jsx -+++ /dev/null -@@ -1,21 +0,0 @@ --const { React } = require('powercord/webpack'); --const { SwitchItem } = require('powercord/components/settings'); -- --module.exports = ({ getSetting, toggleSetting }) => ( --
-- toggleSetting('iie')} -- > -- Enable Internet Explainer -- -- toggleSetting('autocompletes')} -- > -- Display Autocompletes -- --
--); -diff --git a/src/Powercord/plugins/pc-lmgtfy/index.js b/src/Powercord/plugins/pc-lmgtfy/index.js -deleted file mode 100644 -index 1c46bfb..0000000 ---- a/src/Powercord/plugins/pc-lmgtfy/index.js -+++ /dev/null -@@ -1,143 +0,0 @@ --const { Plugin } = require('powercord/entities'); -- --const Constants = Object.freeze({ -- SEARCH_ENGINES: { -- google: 'g', -- lmgtfy: 'l', -- bing: 'b', -- yahoo: 'y', -- aol: 'a', -- ask: 'k', -- duckduckgo: 'd', -- snopes: 's', -- startpage: 't' -- }, -- SEARCH_TYPES: { -- web: 'w', -- images: 'i', -- videos: 'v', -- news: 'n', -- shopping: 's' -- } --}); -- --const Settings = require('./Settings'); -- --module.exports = class LMGTFY extends Plugin { -- startPlugin () { -- powercord.api.settings.registerSettings(this.entityID, { -- category: this.entityID, -- label: 'LMGTFY', -- render: Settings -- }); -- -- powercord.api.commands.registerCommand({ -- command: 'lmgtfy', -- description: 'Let me Google that for you...', -- usage: '{c} [--iie] [...search terms] ', -- executor: this.handleCommand.bind(this), -- autocomplete: this.handleAutocomplete.bind(this) -- }); -- } -- -- pluginWillUnload () { -- powercord.api.settings.unregisterSettings(this.entityID); -- powercord.api.commands.unregisterCommand('lmgtfy'); -- } -- -- handleCommand (args) { -- if (args.length < 1) { -- return; -- } -- -- const iie = args[0].includes('--iie') ? !!args.splice(args.indexOf('--iie'), 1) : this.settings.get('iie', false); -- const options = args.slice(-2).map(arg => arg.toLowerCase()); -- const params = {}; -- params.searchEngine = Constants.SEARCH_ENGINES.google; -- -- for (const key of Object.keys(Constants)) { -- if (key === 'SEARCH_ENGINES') { -- for (const searchEngine of Object.keys(Constants[key])) { -- for (let i = 0; i < options.length; i++) { -- const match = options[i].toLowerCase() === searchEngine; -- if (match) { -- params.searchEngine = Constants.SEARCH_ENGINES[searchEngine]; -- args.splice(args.lastIndexOf(searchEngine), 1); -- options.splice(i, 1); -- break; -- } -- } -- } -- } else if (key === 'SEARCH_TYPES') { -- for (const searchType of Object.keys(Constants[key])) { -- for (let i = 0; i < options.length; i++) { -- const match = options[i].toLowerCase() === searchType; -- if (match) { -- if (params.searchEngine === 'g') { -- params.searchType = Constants.SEARCH_TYPES[searchType]; -- args.splice(args.lastIndexOf(searchType), 1); -- } -- } -- } -- } -- } -- } -- -- const { searchEngine, searchType } = params; -- const queryString = new URLSearchParams(); -- queryString.append('q', args.join(' ')); -- if (searchType) { -- queryString.append('s', searchEngine); -- queryString.append('t', searchType); -- } else if (searchEngine !== 'g') { -- queryString.append('s', searchEngine); -- } -- -- if (iie) { -- queryString.append('iie', +iie); -- } -- -- return { -- send: true, -- result: `` -- }; -- } -- -- handleAutocomplete (args) { -- if (!this.settings.get('autocompletes', true) || args.length === 0) { -- return false; -- } -- -- if (args[1] === void 0) { -- return { -- commands: [ { -- command: 'Please input your search terms...', -- instruction: true -- } ] -- }; -- } -- -- const lastArg = args[args.length - 1]; -- const searchEngines = Object.keys(Constants.SEARCH_ENGINES); -- const searchEngine = searchEngines.find(engine => args[args.lastIndexOf(engine)] === engine); -- if (!searchEngine) { -- return { -- commands: searchEngines -- .filter(engine => engine.includes(lastArg)) -- .map(engine => ({ command: engine })), -- header: 'select a search engine...' -- }; -- } -- -- const searchTypes = Object.keys(Constants.SEARCH_TYPES); -- const searchType = searchTypes.find(type => args[args.indexOf(searchEngine) + 1] === type); -- if (searchEngine === 'google' && !searchType) { -- return { -- commands: searchTypes -- .filter(type => type.includes(lastArg)) -- .map(type => ({ command: type })), -- header: 'select a search type...' -- }; -- } -- } --}; -diff --git a/src/Powercord/plugins/pc-lmgtfy/manifest.json b/src/Powercord/plugins/pc-lmgtfy/manifest.json -deleted file mode 100644 -index 08a9989..0000000 ---- a/src/Powercord/plugins/pc-lmgtfy/manifest.json -+++ /dev/null -@@ -1,7 +0,0 @@ --{ -- "name": "LMGTFY", -- "version": "1.0.0", -- "description": "Let me Google that for you...", -- "author": "Powercord Team", -- "license": "MIT" --} diff --git a/subflakes/powercord/patches/remove-mock.patch b/subflakes/powercord/patches/remove-mock.patch deleted file mode 100644 index e3ae0cb..0000000 --- a/subflakes/powercord/patches/remove-mock.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/src/Powercord/plugins/pc-mock/index.js b/src/Powercord/plugins/pc-mock/index.js -deleted file mode 100644 -index e35988b..0000000 ---- a/src/Powercord/plugins/pc-mock/index.js -+++ /dev/null -@@ -1,19 +0,0 @@ --const { Plugin } = require('powercord/entities'); -- --module.exports = class Mock extends Plugin { -- startPlugin () { -- powercord.api.commands.registerCommand({ -- command: 'mock', -- description: 'Mock a user...', -- usage: '{c} [text to mock]', -- executor: (args) => ({ -- send: true, -- result: args.join(' ').split('').map((c, i) => i % 2 ? c.toUpperCase() : c).join('') -- }) -- }); -- } -- -- pluginWillUnload () { -- powercord.api.commands.unregisterCommand('mock'); -- } --}; -diff --git a/src/Powercord/plugins/pc-mock/manifest.json b/src/Powercord/plugins/pc-mock/manifest.json -deleted file mode 100644 -index 8b0bc06..0000000 ---- a/src/Powercord/plugins/pc-mock/manifest.json -+++ /dev/null -@@ -1,7 +0,0 @@ --{ -- "name": "Mock", -- "version": "1.0.0", -- "description": "Mock people", -- "author": "Melmsie", -- "license": "MIT" --} diff --git a/subflakes/powercord/patches/remove-spotify.patch b/subflakes/powercord/patches/remove-spotify.patch deleted file mode 100644 index 7e3d3b6..0000000 --- a/subflakes/powercord/patches/remove-spotify.patch +++ /dev/null @@ -1,2271 +0,0 @@ -diff --git a/src/Powercord/plugins/pc-spotify/SpotifyAPI.js b/src/Powercord/plugins/pc-spotify/SpotifyAPI.js -deleted file mode 100644 -index 35bbc83..0000000 ---- a/src/Powercord/plugins/pc-spotify/SpotifyAPI.js -+++ /dev/null -@@ -1,245 +0,0 @@ --const { WEBSITE } = require('powercord/constants'); --const { shell: { openExternal } } = require('electron'); --const { get, put, post, del } = require('powercord/http'); --const { getModule, http, spotify, constants: { Endpoints } } = require('powercord/webpack'); --const { SPOTIFY_BASE_URL, SPOTIFY_PLAYER_URL } = require('./constants'); --const playerStore = require('./playerStore/store'); -- --const revokedMessages = { -- SCOPES_UPDATED: 'Your Spotify account needs to be relinked to your Powercord account due to new authorizations required.', -- ACCESS_DENIED: 'Powercord is no longer able to connect to your Spotify account. Therefore, it has been automatically unlinked.' --}; -- --let usedCached = false; -- --module.exports = { -- accessToken: null, -- -- async getAccessToken () { -- if (!powercord.account) { -- await powercord.fetchAccount(); -- } -- -- if (powercord.account && powercord.account.accounts.spotify) { -- const baseUrl = powercord.settings.get('backendURL', WEBSITE); -- const resp = await get(`${baseUrl}/api/v2/users/@me/spotify`) -- .set('Authorization', powercord.account.token) -- .then(r => r.body); -- -- if (resp.revoked) { -- powercord.api.notices.sendAnnouncement('spotify-revoked', { -- color: 'orange', -- message: revokedMessages[resp.revoked], -- button: { -- text: 'Relink Spotify', -- onClick: () => openExternal(`${baseUrl}/api/v2/oauth/spotify`) -- } -- }); -- } else if (resp.token) { -- return resp.token; -- } -- } -- -- console.debug('%c[SpotifyAPI]', 'color: #1ed860', 'No Spotify account linked to Powercord; Falling back to Discord\'s token'); -- if (!usedCached) { -- const spotifyMdl = await getModule([ 'getActiveSocketAndDevice' ]); -- const active = spotifyMdl.getActiveSocketAndDevice(); -- if (active && active.socket && active.socket.accessToken) { -- usedCached = true; -- return active.socket.accessToken; -- } -- } -- -- usedCached = false; -- const spotifyUserID = await http.get(Endpoints.CONNECTIONS) -- .then(res => -- res.body.find(connection => -- connection.type === 'spotify' -- ).id -- ); -- -- return spotify.getAccessToken(spotifyUserID) -- .then(r => r.body.access_token); -- }, -- -- genericRequest (request, isConnectWeb) { -- request.set('Authorization', `Bearer ${this.accessToken}`); -- if (isConnectWeb) { -- const currentDeviceId = playerStore.getLastActiveDeviceId(); -- if (currentDeviceId) { -- request.query('device_id', currentDeviceId); -- } -- } -- return request -- .catch(async (err) => { -- if (err) { -- if (err.statusCode === 401) { -- this.accessToken = await this.getAccessToken(); -- delete request._res; -- return this.genericRequest(request); -- } -- console.error(err.body, request.opts); -- throw err; -- } -- }); -- }, -- -- getTrack (trackId) { -- return this.genericRequest( -- get(`${SPOTIFY_BASE_URL}/tracks/${trackId}`) -- ).then(r => r.body); -- }, -- -- getPlaylists (limit = 50, offset = 0) { -- return this._fetchAll(`${SPOTIFY_BASE_URL}/me/playlists`, limit, offset); -- }, -- -- getPlaylistTracks (playlistId, limit = 100, offset = 0) { -- return this._fetchAll(`${SPOTIFY_BASE_URL}/playlists/${playlistId}/tracks`, limit, offset); -- }, -- -- addToPlaylist (playlistID, songURI) { -- return this.genericRequest( -- post(`${SPOTIFY_BASE_URL}/playlists/${playlistID}/tracks`) -- .query('uris', songURI) -- ).then(r => r.body); -- }, -- -- getAlbums (limit = 50, offset = 0) { -- return this._fetchAll(`${SPOTIFY_BASE_URL}/me/albums`, limit, offset); -- }, -- -- getAlbumTracks (albumId, limit = 100, offset = 0) { -- return this._fetchAll(`${SPOTIFY_BASE_URL}/albums/${albumId}/tracks`, limit, offset); -- }, -- -- getTopSongs () { -- return this.genericRequest( -- get(`${SPOTIFY_BASE_URL}/me/top/tracks`) -- .query('limit', 50) -- ).then(r => r.body); -- }, -- -- getSongs (limit = 50, offset = 0) { -- return this._fetchAll(`${SPOTIFY_BASE_URL}/me/tracks`, limit, offset); -- }, -- -- search (query, type = 'track', limit = 20) { -- return this.genericRequest( -- get(`${SPOTIFY_BASE_URL}/search`) -- .query('q', query) -- .query('type', type) -- .query('limit', limit) -- ).then(r => r.body); -- }, -- -- play (data) { -- return this.genericRequest( -- put(`${SPOTIFY_PLAYER_URL}/play`).send(data), true -- ); -- }, -- -- pause () { -- return this.genericRequest( -- put(`${SPOTIFY_PLAYER_URL}/pause`), true -- ); -- }, -- -- seek (position) { -- return this.genericRequest( -- put(`${SPOTIFY_PLAYER_URL}/seek`).query('position_ms', position), true -- ); -- }, -- -- next () { -- return this.genericRequest( -- post(`${SPOTIFY_PLAYER_URL}/next`), true -- ); -- }, -- -- prev () { -- return this.genericRequest( -- post(`${SPOTIFY_PLAYER_URL}/previous`), true -- ); -- }, -- -- getPlayer () { -- return this.genericRequest( -- get(SPOTIFY_PLAYER_URL) -- ).then(r => r.body); -- }, -- -- getDevices () { -- return this.genericRequest( -- get(`${SPOTIFY_PLAYER_URL}/devices`) -- ).then(r => r.body); -- }, -- -- setVolume (volume) { -- return this.genericRequest( -- put(`${SPOTIFY_PLAYER_URL}/volume`).query('volume_percent', volume), true -- ); -- }, -- -- setActiveDevice (deviceID) { -- return this.genericRequest( -- put(SPOTIFY_PLAYER_URL) -- .send({ -- device_ids: [ deviceID ], -- play: true -- }) -- ); -- }, -- -- setRepeatState (state) { -- return this.genericRequest( -- put(`${SPOTIFY_PLAYER_URL}/repeat`).query('state', state), true -- ); -- }, -- -- setShuffleState (state) { -- return this.genericRequest( -- put(`${SPOTIFY_PLAYER_URL}/shuffle`).query('state', state), true -- ); -- }, -- -- addSong (songID) { -- return this.genericRequest( -- put(`${SPOTIFY_BASE_URL}/me/tracks`) -- .query('ids', songID) -- ); -- }, -- -- removeSong (songID) { -- return this.genericRequest( -- del(`${SPOTIFY_BASE_URL}/me/tracks`) -- .query('ids', songID) -- ); -- }, -- -- checkLibrary (songID) { -- return this.genericRequest( -- get(`${SPOTIFY_BASE_URL}/me/tracks/contains`) -- .query('ids', songID) -- ); -- }, -- -- async _fetchAll (url, limit, offset) { -- const items = []; -- while (url) { -- const req = get(url); -- if (limit) { -- req.query('limit', limit); -- limit = 0; -- } -- if (offset) { -- req.query('offset', offset); -- offset = 0; -- } -- const res = await this.genericRequest(req).then(r => r.body); -- items.push(...res.items); -- url = res.next; -- } -- return items; -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/album.js b/src/Powercord/plugins/pc-spotify/commands/album.js -deleted file mode 100644 -index 0d5e298..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/album.js -+++ /dev/null -@@ -1,26 +0,0 @@ --const playerStore = require('../playerStore/store'); -- --module.exports = { -- command: 'album', -- description: 'Send album of current playing song to selected channel', -- category: 'Spotify', -- executor () { -- const currentTrack = playerStore.getCurrentTrack(); -- if (!currentTrack) { -- return { -- send: false, -- result: 'You are not currently listening to anything.' -- }; -- } -- if (!currentTrack.urls.album) { -- return { -- send: false, -- result: 'The track you\'re listening to doesn\'t belong to an album.' -- }; -- } -- return { -- send: true, -- result: currentTrack.urls.album -- }; -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/find.js b/src/Powercord/plugins/pc-spotify/commands/find.js -deleted file mode 100644 -index f5d6fe9..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/find.js -+++ /dev/null -@@ -1,39 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'find', -- description: 'Searches for a song and plays it!', -- usage: '{c} {song}', -- category: 'Spotify', -- executor (args) { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- if (!args[0]) { -- return { -- send: false, -- result: 'You need to specify a song to search for and play!' -- }; -- } -- -- return SpotifyAPI.search(args.join(' '), 'track', 1).then((body) => { -- const tracksArray = body.tracks.items; -- if (tracksArray.length > 0) { -- const trackURL = tracksArray[0].uri; -- SpotifyAPI.play({ -- uris: [ trackURL ] -- }); -- return; -- } -- return { -- send: false, -- result: 'Couldn\'t find a song!' -- }; -- }); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/index.js b/src/Powercord/plugins/pc-spotify/commands/index.js -deleted file mode 100644 -index d59ce4c..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/index.js -+++ /dev/null -@@ -1,7 +0,0 @@ --require('fs') -- .readdirSync(__dirname) -- .filter((file) => file !== 'index.js' && file !== '.DS_Store') -- .forEach(filename => { -- const moduleName = filename.split('.')[0]; -- exports[moduleName] = require(`${__dirname}/${filename}`); -- }); -diff --git a/src/Powercord/plugins/pc-spotify/commands/like.js b/src/Powercord/plugins/pc-spotify/commands/like.js -deleted file mode 100644 -index 3840aac..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/like.js -+++ /dev/null -@@ -1,29 +0,0 @@ --const playerStore = require('../playerStore/store'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'like', -- description: 'Like the current playing song', -- category: 'Spotify', -- async executor () { -- if (!powercord.account || !powercord.account.accounts.spotify) { -- return { -- send: false, -- result: 'You need a Powercord account and connected Spotify account to use this feature!' -- }; -- } -- const currentTrack = playerStore.getCurrentTrack(); -- if (!currentTrack) { -- return { -- send: false, -- result: 'You are not currently listening to anything.' -- }; -- } -- const { body } = await SpotifyAPI.checkLibrary(currentTrack.id); -- SpotifyAPI[body[0] ? 'removeSong' : 'addSong'](currentTrack.id); -- return { -- send: false, -- result: `You ${body[0] ? 'removed' : 'added'} **${currentTrack.name}** by **${currentTrack.artists}** ${body[0] ? 'from' : 'to'} your Liked Songs.` -- }; -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/next.js b/src/Powercord/plugins/pc-spotify/commands/next.js -deleted file mode 100644 -index 730c4db..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/next.js -+++ /dev/null -@@ -1,20 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'next', -- aliases: [ 'skip' ], -- description: 'Skip Spotify song', -- usage: '{c}', -- category: 'Spotify', -- executor () { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- return SpotifyAPI.next(); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/pause.js b/src/Powercord/plugins/pc-spotify/commands/pause.js -deleted file mode 100644 -index 4d576d7..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/pause.js -+++ /dev/null -@@ -1,19 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'pause', -- description: 'Pause Spotify playback', -- usage: '{c}', -- category: 'Spotify', -- executor () { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- return SpotifyAPI.pause(); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/play.js b/src/Powercord/plugins/pc-spotify/commands/play.js -deleted file mode 100644 -index a857325..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/play.js -+++ /dev/null -@@ -1,38 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); --const urlRegex = /\/track\/([A-z0-9]*)/; -- --module.exports = { -- command: 'play', -- description: 'Play a Spotify URL', -- usage: '{c} ', -- category: 'Spotify', -- executor ([ url ]) { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- -- if (!url) { -- const spotifyModals = document.querySelectorAll('.embedSpotify-tvxDCr'); -- const spotifyModal = spotifyModals[spotifyModals.length - 1]; -- url = spotifyModal && spotifyModal.children[0].src; -- -- if (!url) { -- return { -- send: false, -- result: 'No URL specified.' -- }; -- } -- } -- -- SpotifyAPI.play({ -- uris: [ -- `spotify:track:${urlRegex.exec(url)[1]}` -- ] -- }); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/previous.js b/src/Powercord/plugins/pc-spotify/commands/previous.js -deleted file mode 100644 -index 8cb704d..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/previous.js -+++ /dev/null -@@ -1,20 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'previous', -- aliases: [ 'prev' ], -- description: 'Go back one Spotify song', -- usage: '{c}', -- category: 'Spotify', -- executor () { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- return SpotifyAPI.prev(); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/resume.js b/src/Powercord/plugins/pc-spotify/commands/resume.js -deleted file mode 100644 -index da6486c..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/resume.js -+++ /dev/null -@@ -1,19 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'resume', -- description: 'Resume Spotify playback', -- usage: '{c}', -- category: 'Spotify', -- executor () { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- return SpotifyAPI.play(); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/share.js b/src/Powercord/plugins/pc-spotify/commands/share.js -deleted file mode 100644 -index b5d71c5..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/share.js -+++ /dev/null -@@ -1,50 +0,0 @@ --const { open: openModal } = require('powercord/modal'); --const { React } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); --const playerStore = require('../playerStore/store'); --const ShareModal = require('../components/ShareModal'); -- --module.exports = { -- command: 'share', -- description: 'Send specified or current playing song to selected channel', -- usage: '{c} {song name/artist}', -- category: 'Spotify', -- async executor (query) { -- query = query.join(' '); -- -- if (query.length > 0) { -- const result = await SpotifyAPI.search(query, 'track', 14); -- const closestTrack = result.tracks.items[0]; -- -- if (result.tracks.items.length > 1) { -- return openModal(() => React.createElement(ShareModal, { -- tracks: result.tracks, -- query -- })); -- } else if (closestTrack) { -- return { -- send: true, -- result: closestTrack.external_urls.spotify -- }; -- } -- -- return { -- send: false, -- result: `Couldn't find "\`${query}\`". Try searching again using a different spelling or keyword.` -- }; -- } -- -- const currentTrack = playerStore.getCurrentTrack(); -- if (!currentTrack) { -- return { -- send: false, -- result: 'You are not currently listening to anything.' -- }; -- } -- -- return { -- send: true, -- result: currentTrack.urls.track -- }; -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/commands/volume.js b/src/Powercord/plugins/pc-spotify/commands/volume.js -deleted file mode 100644 -index 83fd046..0000000 ---- a/src/Powercord/plugins/pc-spotify/commands/volume.js -+++ /dev/null -@@ -1,20 +0,0 @@ --const { getModule } = require('powercord/webpack'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- command: 'volume', -- aliases: [ 'vol' ], -- description: 'Change Spotify volume', -- usage: '{c} ', -- category: 'Spotify', -- executor ([ args ]) { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- if (!isPremium) { -- return { -- send: false, -- result: 'Oops, it looks like you are not a Spotify Premium member. Unfortunately, this feature isn\'t available to you as per Spotify\'s requirements.' -- }; -- } -- return SpotifyAPI.setVolume(args); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/components/AddToPlaylist.jsx b/src/Powercord/plugins/pc-spotify/components/AddToPlaylist.jsx -deleted file mode 100644 -index 77cd1af..0000000 ---- a/src/Powercord/plugins/pc-spotify/components/AddToPlaylist.jsx -+++ /dev/null -@@ -1,124 +0,0 @@ --const { React, Flux, i18n: { Messages } } = require('powercord/webpack'); --const { FormTitle, Button, Divider, Spinner, Card, Tooltip } = require('powercord/components'); --const { Modal, Confirm } = require('powercord/components/modal'); --const { open: openModal, close: closeModal } = require('powercord/modal'); -- --const { SPOTIFY_DEFAULT_IMAGE } = require('../constants'); --const songsStore = require('../songsStore/store'); --const songsStoreActions = require('../songsStore/actions'); --const SpotifyAPI = require('../SpotifyAPI'); -- --class AddToPlaylist extends React.PureComponent { -- componentDidMount () { -- if (!this.props.loaded) { -- songsStoreActions.loadPlaylists(); -- } -- } -- -- render () { -- return ( -- -- -- Add to Playlist -- closeModal()}/> -- -- --

Where do you want to save this very nice tune?

--
-- Spotify Cover --
-- -- {this.props.track.name} -- -- -- {Messages.USER_ACTIVITY_LISTENING_ARTISTS.format({ -- artists: this.props.track.artists, -- artistsHook: t => t -- })} -- --
--
-- --
-- {!this.props.loaded -- ? -- : Object.keys(this.props.playlists).map(p => this.renderItem(p))} --
--
-- -- -- --
-- ); -- } -- -- renderItem (playlistId) { -- const playlist = this.props.playlists[playlistId]; -- if (!playlist.editable) { -- return null; -- } -- -- return ( -- -- Spotify Cover --
-- -- {playlist.name} -- -- -- {playlist.tracksLoaded -- ? `${Object.keys(playlist.tracks).length} tracks` -- : Messages.DEFAULT_INPUT_PLACEHOLDER} -- --
-- {playlist.tracksLoaded -- ? ( -- -- ) -- : ( -- -- -- -- )} --
-- ); -- } -- -- handleAddToPlaylist (playlistId) { -- closeModal(); -- const playlist = this.props.playlists[playlistId]; -- if (playlist.tracks[this.props.track.id]) { -- openModal(() => ( -- { -- SpotifyAPI.addToPlaylist(playlistId, this.props.track.uri); -- closeModal(); -- }} -- onCancel={closeModal} -- > --
-- This item is already in this playlist. Do you want to add it anyway? --
--
-- )); -- } else { -- SpotifyAPI.addToPlaylist(playlistId, this.props.track.uri); -- } -- console.log(playlistId, this.props.playlists[playlistId]); -- } --} -- --module.exports = Flux.connectStores( -- [ songsStore ], -- () => ({ -- loaded: songsStore.getPlaylistsLoaded(), -- playlists: songsStore.getPlaylists() -- }) --)(AddToPlaylist); -diff --git a/src/Powercord/plugins/pc-spotify/components/ContextMenu.jsx b/src/Powercord/plugins/pc-spotify/components/ContextMenu.jsx -deleted file mode 100644 -index 6d27bc1..0000000 ---- a/src/Powercord/plugins/pc-spotify/components/ContextMenu.jsx -+++ /dev/null -@@ -1,285 +0,0 @@ --const { clipboard, shell } = require('electron'); --const { React, Flux, getModule, messages, channels, contextMenu: { closeContextMenu }, i18n: { Messages } } = require('powercord/webpack'); --const { open: openModal } = require('powercord/modal'); --const { Menu } = require('powercord/components'); --const { formatTime } = require('powercord/util'); -- --const songsStore = require('../songsStore/store'); --const songsStoreActions = require('../songsStore/actions'); --const playerStore = require('../playerStore/store'); --const SpotifyAPI = require('../SpotifyAPI'); --const AddToPlaylist = require('./AddToPlaylist'); -- --class ContextMenu extends React.PureComponent { -- constructor (props) { -- super(props); -- this.handleVolumeSlide = global._.debounce(this.handleVolumeSlide.bind(this), 200); -- } -- -- handleVolumeSlide (volume) { -- SpotifyAPI.setVolume(Math.round(volume)); -- } -- -- componentDidMount () { -- if (powercord.account && powercord.account.accounts.spotify) { -- if (!this.props.songsLoaded) { -- songsStoreActions.loadSongs(); -- } -- if (!this.props.topSongsLoaded) { -- songsStoreActions.loadTopSongs(); -- } -- if (!this.props.albumsLoaded) { -- songsStoreActions.loadAlbums(); -- } -- } -- if (!this.props.playlistsLoaded) { -- songsStoreActions.loadPlaylists(); -- } -- } -- -- render () { -- const isPremium = getModule([ 'isSpotifyPremium' ], false).isSpotifyPremium(); -- -- return ( -- -- {isPremium && this.renderDevices()} -- {isPremium && this.renderSongs()} -- {isPremium && this.renderPlaybackSettings()} -- {isPremium && this.renderVolume()} -- {isPremium && this.renderSave()} -- {this.renderActions()} -- -- ); -- } -- -- renderDevices () { -- return ( -- -- -- {this.props.devices.sort(d => -Number(d.is_active)).map((device, i) => ( -- <> -- -- {i === 0 && } -- -- ))} -- -- -- ); -- } -- -- renderSongs () { -- const hasCoolFeatures = powercord.account && powercord.account.accounts.spotify; -- -- return ( -- -- -- {this.props.playlistsLoaded -- ? this._renderList(this.props.playlists) -- : null} -- -- {hasCoolFeatures && -- {this.props.albumsLoaded -- ? this._renderList(this.props.albums) -- : null} -- } -- {hasCoolFeatures && -- {this.props.topSongsLoaded -- ? this._renderSongs(this.props.topSongs) -- : null} -- } -- {hasCoolFeatures && -- {this.props.songsLoaded -- ? this._renderSongs(this.props.songs) -- : null} -- } -- -- ); -- } -- -- _renderList (list) { -- return Object.entries(list).map(([ id, item ]) => ( -- setTimeout(() => SpotifyAPI.play({ context_uri: item.uri }), 10)} -- > -- {item.tracksLoaded -- ? this._renderSongs(item.tracks, item.uri) -- : null} -- -- )); -- } -- -- _renderSongs (list, uri) { -- return Object.entries(list).map(([ id, item ]) => ( -- setTimeout(() => { -- if (uri) { -- SpotifyAPI.play({ -- context_uri: uri, -- offset: { uri: item.uri } -- }); -- } else { -- SpotifyAPI.play({ -- uris: [ item.uri ] -- }); -- } -- }, 10)} -- /> -- )); -- } -- -- renderPlaybackSettings () { -- if (!powercord.account || !powercord.account.accounts.spotify) { -- return null; -- } -- -- const cannotAll = !this.props.playerState.canRepeat && !this.props.playerState.canRepeatOne; -- const isOff = this.props.playerState.repeat === playerStore.RepeatState.NO_REPEAT; -- const isContext = this.props.playerState.repeat === playerStore.RepeatState.REPEAT_CONTEXT; -- const isTrack = this.props.playerState.repeat === playerStore.RepeatState.REPEAT_TRACK; -- -- return ( -- -- -- SpotifyAPI.setRepeatState('off')} -- disabled={isOff} -- /> -- SpotifyAPI.setRepeatState('context')} -- disabled={isContext || !this.props.playerState.canRepeat} -- /> -- SpotifyAPI.setRepeatState('track')} -- disabled={isTrack || !this.props.playerState.canRepeatOne} -- /> -- -- SpotifyAPI.setShuffleState(!this.props.playerState.shuffle)} -- disabled={!this.props.playerState.canShuffle} -- /> -- -- ); -- } -- -- renderVolume () { -- const Slider = getModule(m => m.render && m.render.toString().includes('sliderContainer'), false); -- return ( -- -- ( -- -- )} -- /> -- -- ); -- } -- -- renderSave () { -- if (!powercord.account || !powercord.account.accounts.spotify) { -- return null; -- } -- -- return ( -- -- {this.props.currentLibraryState === playerStore.LibraryState.IN_LIBRARY -- ? SpotifyAPI.removeSong(this.props.currentTrack.id)} -- disabled={[ playerStore.LibraryState.UNKNOWN, playerStore.LibraryState.LOCAL_SONG ].includes(this.props.currentLibraryState)} -- /> -- : SpotifyAPI.addSong(this.props.currentTrack.id)} -- disabled={[ playerStore.LibraryState.UNKNOWN, playerStore.LibraryState.LOCAL_SONG ].includes(this.props.currentLibraryState)} -- />} -- openModal(() => React.createElement(AddToPlaylist, { track: this.props.currentTrack }))} -- /> -- -- ); -- } -- -- renderActions () { -- return ( -- -- { -- const protocol = getModule([ 'isProtocolRegistered', '_dispatchToken' ], false).isProtocolRegistered(); -- shell.openExternal(protocol ? this.props.currentTrack.uri : this.props.currentTrack.urls.track); -- }} -- /> -- messages.sendMessage( -- channels.getChannelId(), -- { content: this.props.currentTrack.urls.album } -- )} -- /> -- messages.sendMessage( -- channels.getChannelId(), -- { content: this.props.currentTrack.urls.track } -- )} -- /> -- clipboard.writeText(this.props.currentTrack.urls.album)} -- /> -- clipboard.writeText(this.props.currentTrack.urls.track)} -- /> -- -- ); -- } --} -- --module.exports = Flux.connectStores( -- [ songsStore, playerStore, powercord.api.settings.store ], -- (props) => ({ -- ...songsStore.getStore(), -- ...playerStore.getStore(), -- ...powercord.api.settings._fluxProps(props.entityID) -- }) --)(ContextMenu); -diff --git a/src/Powercord/plugins/pc-spotify/components/PayUp.jsx b/src/Powercord/plugins/pc-spotify/components/PayUp.jsx -deleted file mode 100644 -index c5af79a..0000000 ---- a/src/Powercord/plugins/pc-spotify/components/PayUp.jsx -+++ /dev/null -@@ -1,47 +0,0 @@ --const { React, getModule, constants: { SpotifyEndpoints }, i18n: { Messages } } = require('powercord/webpack'); --const { FormTitle, Button } = require('powercord/components'); --const { Modal } = require('powercord/components/modal'); --const { close: closeModal } = require('powercord/modal'); -- --module.exports = React.memo( -- () => { -- const { size16 } = getModule([ 'size16' ], false); -- const { marginBottom20 } = getModule([ 'marginBottom20' ], false); -- -- return ( -- -- -- Spotify Premium Required -- closeModal()}/> -- -- --
-- To control your Spotify playback we use Spotify's "Connect Web" API, which is unfortunately locked to -- Spotify Premium users. In order for you to control Spotify's playback you'll need to get a Premium -- subscription. --
--
-- If you do happen to have a Spotify Premium subscription but you're still not seeing the buttons show up, -- it might happen that Spotify is reporting inaccurate data about your Premium status and alters the -- availability of the buttons. Try changing the playback in any way (play, pause, change track, ...) to -- trigger and update and let us get accurate data from Spotify. --
--
-- If this still did not fix it, make sure you're not in a private session as we've received a few reports -- saying this causes your Premium subscription status to not be properly sent to us. Also make sure you do -- have your Spotify account linked to your Discord account (You can tell Discord to not show it on your -- profile and not show the song you're listening to in your status, if you don't want to) --
--
-- -- -- -- --
-- ); -- } --); -diff --git a/src/Powercord/plugins/pc-spotify/components/SeekBar.jsx b/src/Powercord/plugins/pc-spotify/components/SeekBar.jsx -deleted file mode 100644 -index 48b96cb..0000000 ---- a/src/Powercord/plugins/pc-spotify/components/SeekBar.jsx -+++ /dev/null -@@ -1,121 +0,0 @@ --const { React } = require('powercord/webpack'); --const { formatTime } = require('powercord/util'); --const SpotifyAPI = require('../SpotifyAPI'); -- --class SeekBar extends React.PureComponent { -- constructor (props) { -- super(props); -- -- this.state = { -- seeking: false, -- progress: null, -- wasPlaying: false, -- listeners: {} -- }; -- -- this._overflowFired = false; -- this.seek = this.seek.bind(this); -- this.endSeek = this.endSeek.bind(this, false); -- } -- -- componentDidMount () { -- this._renderInterval = setInterval(() => this.forceUpdate(), 500); -- } -- -- componentDidUpdate (prevProps) { -- if (!this.state.seeking && this.props.progress !== prevProps.progress) { -- this.setState({ progress: null }); -- } -- } -- -- componentWillUnmount () { -- if (this.state.listeners.seek) { -- document.removeEventListener('mousemove', this.seek); -- } -- -- if (this.state.listeners.stop) { -- document.removeEventListener('mouseup', this.endSeek); -- } -- -- if (this._renderInterval) { -- clearInterval(this._renderInterval); -- } -- } -- -- async startSeek (e) { -- if (!this.props.isPremium) { -- return; -- } -- -- this.seek(e); -- document.addEventListener('mousemove', this.seek); -- document.addEventListener('mouseup', this.endSeek); -- -- this.props.onSeeking(true); -- this.setState({ -- seeking: true, -- wasPlaying: this.props.isPlaying -- }); -- if (this.props.isPlaying && !await SpotifyAPI.pause()) { -- await this.endSeek(true); -- } -- } -- -- seek ({ clientX: mouseX }) { -- const { x, width } = document.querySelector('.spotify-seek-bar').getBoundingClientRect(); -- const delta = mouseX - x; -- const seek = delta / width; -- this.setState({ progress: Math.round(this.props.duration * Math.max(0, Math.min(seek, 1))) }); -- } -- -- async endSeek (cancel) { -- document.removeEventListener('mousemove', this.seek); -- document.removeEventListener('mouseup', this.endSeek); -- -- this.props.onSeeking(false); -- this.setState({ seeking: false }); -- if (cancel) { -- this.setState({ progress: false }); -- } else { -- await SpotifyAPI.seek(this.state.progress); -- if (this.state.wasPlaying) { -- await SpotifyAPI.play(); -- } -- } -- } -- -- render () { -- const rawProgress = this.state.progress || this.props.progress; -- const progress = (this.props.isPlaying && !this.state.seeking) -- ? rawProgress + (Date.now() - this.props.progressAt) -- : rawProgress; -- const trimmedProgress = Math.min(progress, this.props.duration); -- const current = trimmedProgress / this.props.duration * 100; -- const isOverflowing = progress - trimmedProgress > 2000; -- if (isOverflowing && !this._overflowFired) { -- this._overflowFired = true; -- this.props.onDurationOverflow(); -- } else if (!isOverflowing && this._overflowFired) { -- this._overflowFired = false; -- } -- -- return ( --
--
-- -- {formatTime(progress)} -- -- -- {formatTime(this.props.duration)} -- --
--
this.startSeek(e)}> -- -- --
--
-- ); -- } --} -- --module.exports = SeekBar; -diff --git a/src/Powercord/plugins/pc-spotify/components/Settings.jsx b/src/Powercord/plugins/pc-spotify/components/Settings.jsx -deleted file mode 100644 -index 94ceb55..0000000 ---- a/src/Powercord/plugins/pc-spotify/components/Settings.jsx -+++ /dev/null -@@ -1,35 +0,0 @@ --const { React } = require('powercord/webpack'); --const { SwitchItem } = require('powercord/components/settings'); -- --module.exports = React.memo( -- ({ getSetting, toggleSetting, patch }) => ( --
-- toggleSetting('squareCovers')} -- > -- Squared covers -- -- -- toggleSetting('showControls')} -- > -- Show advanced controls -- -- -- { -- patch(getSetting('noAutoPause', true)); -- toggleSetting('noAutoPause'); -- }} -- > -- No auto pause -- --
-- ) --); -diff --git a/src/Powercord/plugins/pc-spotify/components/ShareModal.jsx b/src/Powercord/plugins/pc-spotify/components/ShareModal.jsx -deleted file mode 100644 -index dbbfd8b..0000000 ---- a/src/Powercord/plugins/pc-spotify/components/ShareModal.jsx -+++ /dev/null -@@ -1,65 +0,0 @@ --const { React, messages, channels } = require('powercord/webpack'); --const { FormTitle, Text } = require('powercord/components'); --const { Modal } = require('powercord/components/modal'); --const { close: closeModal } = require('powercord/modal'); --const { SPOTIFY_DEFAULT_IMAGE } = require('../constants'); -- --class Track extends React.PureComponent { -- handleClick (item) { -- return messages.sendMessage( -- channels.getChannelId(), -- { content: item.external_urls.spotify } -- ).then(() => closeModal()); -- } -- -- render () { -- const image = this.props.item.album.images[0] -- ? cover -- : cover; -- return ( --
this.handleClick(this.props.item)}> -- {image} -- {this.props.item.name} --
-- ); -- } --} -- --module.exports = class ShareModal extends React.PureComponent { -- constructor () { -- super(); -- -- this.state = { -- tracks: [] -- }; -- } -- -- async componentDidMount () { -- this.setState({ tracks: await this.props.tracks.items }); -- } -- -- render () { -- const { tracks } = this.state; -- const trackList = []; -- tracks.forEach(track => { -- trackList.push(); -- }); -- return ( -- -- -- Multiple tracks found - "{this.props.query}" -- closeModal()}/> -- -- -- -- Please select the track that you wish to share to the current channel. -- -- Available tracks --
-- {trackList} --
--
--
-- ); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/constants.js b/src/Powercord/plugins/pc-spotify/constants.js -deleted file mode 100644 -index 4245866..0000000 ---- a/src/Powercord/plugins/pc-spotify/constants.js -+++ /dev/null -@@ -1,21 +0,0 @@ --module.exports = Object.freeze({ -- FluxActions: { -- DEVICES_FETCHED: 'SPOTIFY_DEVICES_FETCHED', -- CURRENT_TRACK_UPDATED: 'SPOTIFY_CURRENT_TRACK_UPDATED', -- PLAYER_STATE_UPDATED: 'SPOTIFY_PLAYER_STATE_UPDATED', -- LIBRARY_STATE_UPDATED: 'SPOTIFY_LIBRARY_STATE_UPDATED', -- SONGS_LOADED: 'SPOTIFY_SONGS_LOADED', -- TOP_SONGS_LOADED: 'SPOTIFY_TOP_SONGS_LOADED', -- ALBUMS_LOADED: 'SPOTIFY_ALBUMS_LOADED', -- ALBUM_TRACKS_LOADED: 'SPOTIFY_ALBUMS_TRACKS_LOADED', -- PLAYLISTS_LOADED: 'SPOTIFY_PLAYLISTS_LOADED', -- PLAYLIST_TRACKS_LOADED: 'SPOTIFY_PLAYLISTS_TRACKS_LOADED', -- PLAYLIST_TRACK_ADDED: 'SPOTIFY_PLAYLIST_TRACK_ADDED', -- PLAYLIST_TRACK_REMOVED: 'SPOTIFY_PLAYLIST_TRACK_REMOVED', -- PURGE_SONGS: 'SPOTIFY_PURGE_SONGS' -- }, -- SPOTIFY_BASE_URL: 'https://api.spotify.com/v1', -- SPOTIFY_PLAYER_URL: 'https://api.spotify.com/v1/me/player', -- SPOTIFY_DEFAULT_IMAGE: 'https://www.scdn.co/i/_global/favicon.png', -- SPOTIFY_COLOR: '#1ed860' --}); -diff --git a/src/Powercord/plugins/pc-spotify/i18n/en-US.json b/src/Powercord/plugins/pc-spotify/i18n/en-US.json -deleted file mode 100644 -index 8174978..0000000 ---- a/src/Powercord/plugins/pc-spotify/i18n/en-US.json -+++ /dev/null -@@ -1,6 +0,0 @@ --{ -- "SPOTIFY_NOT_PREMIUM": "You are not Spotify Premium.", -- "SPOTIFY_ADD_LIKED_SONGS": "Save to Liked Songs", -- "SPOTIFY_REMOVE_LIKED_SONGS": "Remove from Liked Songs", -- "SPOTIFY_CANT_LIKE_LOCAL": "You can't add a local song to your Liked Songs" --} -diff --git a/src/Powercord/plugins/pc-spotify/i18n/index.js b/src/Powercord/plugins/pc-spotify/i18n/index.js -deleted file mode 100644 -index d59ce4c..0000000 ---- a/src/Powercord/plugins/pc-spotify/i18n/index.js -+++ /dev/null -@@ -1,7 +0,0 @@ --require('fs') -- .readdirSync(__dirname) -- .filter((file) => file !== 'index.js' && file !== '.DS_Store') -- .forEach(filename => { -- const moduleName = filename.split('.')[0]; -- exports[moduleName] = require(`${__dirname}/${filename}`); -- }); -diff --git a/src/Powercord/plugins/pc-spotify/index.js b/src/Powercord/plugins/pc-spotify/index.js -deleted file mode 100644 -index 331f773..0000000 ---- a/src/Powercord/plugins/pc-spotify/index.js -+++ /dev/null -@@ -1,260 +0,0 @@ --const { Plugin } = require('powercord/entities'); --const { React, getModule, spotify, spotifySocket } = require('powercord/webpack'); --const { inject, uninject } = require('powercord/injector'); --const { waitFor, getOwnerInstance, findInTree, sleep } = require('powercord/util'); --const playerStoreActions = require('./playerStore/actions'); --const playerStore = require('./playerStore/store'); --const songsStoreActions = require('./songsStore/actions'); --const songsStore = require('./songsStore/store'); --const i18n = require('./i18n'); --const commands = require('./commands'); -- --const SpotifyAPI = require('./SpotifyAPI'); -- --const Settings = require('./components/Settings'); --const Modal = require('./components/Modal'); -- --class Spotify extends Plugin { -- get color () { -- return '#1ed860'; -- } -- -- get playerStore () { -- return playerStore; -- } -- -- get songsStore () { -- return songsStore; -- } -- -- get SpotifyAPI () { -- return SpotifyAPI; -- } -- -- startPlugin () { -- powercord.api.i18n.loadAllStrings(i18n); -- this.loadStylesheet('style.scss'); -- this._injectSocket(); -- this._injectModal(); -- this._patchAutoPause(); -- spotify.fetchIsSpotifyProtocolRegistered(); -- -- SpotifyAPI.getPlayer() -- .then((player) => this._handlePlayerState(player)) -- .catch((e) => this.error('Failed to get player', e)); -- -- playerStoreActions.fetchDevices() -- .catch((e) => this.error('Failed to fetch devices', e)); -- -- powercord.api.settings.registerSettings('pc-spotify', { -- category: this.entityID, -- label: 'Spotify', -- render: (props) => -- React.createElement(Settings, { -- patch: this._patchAutoPause.bind(this), -- ...props -- }) -- }); -- -- Object.values(commands).forEach(cmd => powercord.api.commands.registerCommand(cmd)); -- } -- -- pluginWillUnload () { -- uninject('pc-spotify-socket'); -- uninject('pc-spotify-modal'); -- // this._applySocketChanges(); -- this._patchAutoPause(true); -- Object.values(commands).forEach(cmd => powercord.api.commands.unregisterCommand(cmd.command)); -- powercord.api.settings.unregisterSettings('pc-spotify'); -- spotifySocket.getActiveSocketAndDevice()?.socket.socket.close(); -- songsStoreActions.purgeSongs(); -- -- const { container } = getModule([ 'container', 'usernameContainer' ], false); -- const accountContainer = document.querySelector(`section > .${container}`); -- const instance = getOwnerInstance(accountContainer); -- instance.forceUpdate(); -- } -- -- async _injectSocket () { -- const { SpotifySocket } = await getModule([ 'SpotifySocket' ]); -- inject('pc-spotify-socket', SpotifySocket.prototype, 'handleMessage', ([ e ]) => this._handleSpotifyMessage(e)); -- spotifySocket.getActiveSocketAndDevice()?.socket.socket.close(); -- } -- -- async _injectModal () { -- await sleep(1e3); // It ain't stupid if it works -- const { container } = await getModule([ 'container', 'usernameContainer' ]); -- const accountContainer = await waitFor(`section > .${container}`); -- const instance = getOwnerInstance(accountContainer); -- await inject('pc-spotify-modal', instance.__proto__, 'render', (_, res) => { -- const realRes = findInTree(res, t => t.props && t.props.className === container); -- return [ -- React.createElement(Modal, { -- entityID: this.entityID, -- base: realRes -- }), -- res -- ]; -- }); -- instance.forceUpdate(); -- } -- -- _patchAutoPause (revert) { -- if (this.settings.get('noAutoPause', true)) { -- const spotifyMdl = getModule([ 'initialize', 'wasAutoPaused' ], false); -- if (revert) { -- spotifyMdl.wasAutoPaused = spotifyMdl._wasAutoPaused; -- spotify.pause = spotify._pause; -- } else { -- spotifyMdl._wasAutoPaused = spotifyMdl.wasAutoPaused; -- spotifyMdl.wasAutoPaused = () => false; -- spotify._pause = spotify.pause; -- spotify.pause = () => void 0; -- } -- } -- } -- -- _handleSpotifyMessage (msg) { -- const data = JSON.parse(msg.data); -- if (!data.type === 'message' || !data.payloads) { -- return; -- } -- -- const collectionRegex = /hm:\/\/collection\/collection\/[\w\d]+\/json/i; -- const playlistRegex = /hm:\/\/playlist\/v2\/playlist\/[\w\d]+/i; -- switch (true) { -- case data.uri === 'wss://event': -- for (const payload of data.payloads || []) { -- for (const event of payload.events || []) { -- this._handleSpotifyEvent(event); -- } -- } -- break; -- case collectionRegex.test(data.uri): { -- const currentTrack = playerStore.getCurrentTrack(); -- if (!currentTrack) { -- // Useless to further process the event -- return; -- } -- -- for (const rawPayload of data.payloads || []) { -- const payload = JSON.parse(rawPayload); -- for (const track of payload.items) { -- if (track.identifier === currentTrack.id) { -- playerStoreActions.updateCurrentLibraryState( -- track.removed ? playerStore.LibraryState.NOT_IN_LIBRARY : playerStore.LibraryState.IN_LIBRARY -- ); -- } -- } -- } -- break; -- } -- case playlistRegex.test(data.uri): -- for (const hermes of data.payloads || []) { -- const payload = this._decodePlaylistHermes(hermes); -- if (payload.added) { -- songsStoreActions.addTrack(payload.playlistId, payload.trackId); -- } else { -- songsStoreActions.deleteTrack(payload.playlistId, payload.trackId); -- } -- } -- break; -- } -- } -- -- _handleSpotifyEvent (evt) { -- switch (evt.type) { -- case 'PLAYER_STATE_CHANGED': -- this._handlePlayerState(evt.event.state); -- break; -- case 'DEVICE_STATE_CHANGED': -- playerStoreActions.fetchDevices(); -- break; -- } -- } -- -- _handlePlayerState (state) { -- if (!state.timestamp) { -- return; -- } -- -- // Handle track -- const currentTrack = playerStore.getCurrentTrack(); -- if (!currentTrack || currentTrack.id !== state.item.id) { -- if (this._libraryTimeout) { -- clearTimeout(this._libraryTimeout); -- } -- if (!state.item.is_local && powercord.account && powercord.account.accounts.spotify) { -- this._libraryTimeout = setTimeout(() => { -- SpotifyAPI.checkLibrary(state.item.id).then(r => playerStoreActions.updateCurrentLibraryState( -- r.body[0] -- ? playerStore.LibraryState.IN_LIBRARY -- : playerStore.LibraryState.NOT_IN_LIBRARY -- )); -- }, 1500); -- } else if (state.item.is_local) { -- playerStoreActions.updateCurrentLibraryState(playerStore.LibraryState.LOCAL_SONG); -- } -- playerStoreActions.updateCurrentTrack({ -- id: state.item.id, -- uri: state.item.uri, -- name: state.item.name, -- isLocal: state.item.is_local, -- duration: state.item.duration_ms, -- explicit: state.item.explicit, -- cover: state.item.album && state.item.album.images[0] ? state.item.album.images[0].url : null, -- artists: state.item.artists.map(a => a.name).join(', '), -- album: state.item.album ? state.item.album.name : null, -- urls: { -- track: state.item.external_urls.spotify, -- album: state.item.album ? state.item.album.external_urls.spotify : null -- } -- }); -- } -- -- // Handle state -- playerStoreActions.updatePlayerState({ -- repeat: state.repeat_state === 'track' -- ? playerStore.RepeatState.REPEAT_TRACK -- : state.repeat_state === 'context' -- ? playerStore.RepeatState.REPEAT_CONTEXT -- : playerStore.RepeatState.NO_REPEAT, -- shuffle: state.shuffle_state, -- canRepeat: !state.actions.disallows.toggling_repeat_context, -- canRepeatOne: !state.actions.disallows.toggling_repeat_track, -- canShuffle: !state.actions.disallows.toggling_shuffle, -- spotifyRecordedProgress: state.progress_ms, -- playing: state.is_playing, -- volume: state.device.volume_percent -- }); -- } -- -- _decodePlaylistHermes (hermes) { -- const hex = Buffer.from(hermes, 'base64').toString('hex'); -- const decoded = this._decodeHermes(hex); -- const trackDetails = this._decodeHermes(decoded[3].hex.substring(18)); -- return { -- playlistId: decoded[0].utf8.split(':').pop(), -- trackId: trackDetails[0].utf8.replace(/[\n$]/g, '').split(':').pop(), -- added: trackDetails.length === 2 -- }; -- } -- -- _decodeHermes (hex) { -- const res = []; -- for (let i = 0; i < hex.length;) { -- const length = parseInt(hex.substring(i + 2, i + 4), 16); -- const rawStr = hex.substring(i + 4, i + 4 + (length * 2)); -- i += (length * 2) + 4; -- res.push({ -- hex: rawStr, -- get utf8 () { -- return Buffer.from(rawStr, 'hex').toString('utf8'); -- } -- }); -- } -- return res; -- } --} -- --module.exports = Spotify; -diff --git a/src/Powercord/plugins/pc-spotify/manifest.json b/src/Powercord/plugins/pc-spotify/manifest.json -deleted file mode 100644 -index d3b4bf4..0000000 ---- a/src/Powercord/plugins/pc-spotify/manifest.json -+++ /dev/null -@@ -1,7 +0,0 @@ --{ -- "name": "Spotify Modal", -- "version": "2.0.0", -- "description": "Better Spotify integration in Discord", -- "author": "Powercord Team", -- "license": "MIT" --} -diff --git a/src/Powercord/plugins/pc-spotify/playerStore/actions.js b/src/Powercord/plugins/pc-spotify/playerStore/actions.js -deleted file mode 100644 -index efaa990..0000000 ---- a/src/Powercord/plugins/pc-spotify/playerStore/actions.js -+++ /dev/null -@@ -1,37 +0,0 @@ --const { FluxDispatcher } = require('powercord/webpack'); --const { FluxActions } = require('../constants'); --const SpotifyAPI = require('../SpotifyAPI'); -- --module.exports = { -- fetchDevices: async () => { -- const { devices } = await SpotifyAPI.getDevices(); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.DEVICES_FETCHED, -- devices -- }); -- }, -- -- updateCurrentTrack: (newTrack) => { -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.CURRENT_TRACK_UPDATED, -- track: newTrack -- }); -- }, -- -- updatePlayerState: (newState) => { -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.PLAYER_STATE_UPDATED, -- state: { -- ...newState, -- spotifyRecordedProgressAt: Date.now() -- } -- }); -- }, -- -- updateCurrentLibraryState: (newState) => { -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.LIBRARY_STATE_UPDATED, -- state: newState -- }); -- } --}; -diff --git a/src/Powercord/plugins/pc-spotify/playerStore/store.js b/src/Powercord/plugins/pc-spotify/playerStore/store.js -deleted file mode 100644 -index 96bb284..0000000 ---- a/src/Powercord/plugins/pc-spotify/playerStore/store.js -+++ /dev/null -@@ -1,98 +0,0 @@ --const { Flux, FluxDispatcher } = require('powercord/webpack'); --const { FluxActions } = require('../constants'); -- --const LibraryState = Object.freeze({ -- UNKNOWN: 'UNKNOWN', -- IN_LIBRARY: 'IN_LIBRARY', -- NOT_IN_LIBRARY: 'NOT_IN_LIBRARY', -- LOCAL_SONG: 'LOCAL_SONG' --}); -- --const RepeatState = Object.freeze({ -- NO_REPEAT: 'NO_REPEAT', -- REPEAT_TRACK: 'REPEAT_TRACK', -- REPEAT_CONTEXT: 'REPEAT_CONTEXT' --}); -- --let lastActiveDeviceId = null; --let devices = []; --let currentTrack = null; --let currentLibraryState = LibraryState.UNKNOWN; --let playerState = { -- repeat: RepeatState.NO_REPEAT, -- shuffle: false, -- canRepeat: true, -- canRepeatOne: true, -- canShuffle: true, -- spotifyRecordedProgress: 0, -- spotifyRecordedProgressAt: Date.now(), -- playing: false, -- volume: 100 --}; -- --function handleDevicesFetched (fetchedDevices) { -- devices = fetchedDevices; -- const activeDevice = devices.find(d => d.is_active); -- if (activeDevice) { -- lastActiveDeviceId = activeDevice.id; -- } --} -- --function handleCurrentTrackUpdated (track) { -- currentLibraryState = LibraryState.UNKNOWN; -- currentTrack = track; --} -- --function handlePlayerStateUpdated (state) { -- playerState = state; --} -- --function handleLibraryStateUpdated (state) { -- currentLibraryState = state; --} -- --class SpotifyPlayerStore extends Flux.Store { -- get LibraryState () { -- return LibraryState; -- } -- -- get RepeatState () { -- return RepeatState; -- } -- -- getStore () { -- return { -- devices, -- currentTrack, -- currentLibraryState, -- playerState -- }; -- } -- -- getDevices () { -- return devices; -- } -- -- getLastActiveDeviceId () { -- return lastActiveDeviceId; -- } -- -- getCurrentTrack () { -- return currentTrack; -- } -- -- getCurrentLibraryState () { -- return currentLibraryState; -- } -- -- getPlayerState () { -- return playerState; -- } --} -- --module.exports = new SpotifyPlayerStore(FluxDispatcher, { -- [FluxActions.DEVICES_FETCHED]: ({ devices }) => handleDevicesFetched(devices), -- [FluxActions.CURRENT_TRACK_UPDATED]: ({ track }) => handleCurrentTrackUpdated(track), -- [FluxActions.PLAYER_STATE_UPDATED]: ({ state }) => handlePlayerStateUpdated(state), -- [FluxActions.LIBRARY_STATE_UPDATED]: ({ state }) => handleLibraryStateUpdated(state) --}); -diff --git a/src/Powercord/plugins/pc-spotify/songsStore/actions.js b/src/Powercord/plugins/pc-spotify/songsStore/actions.js -deleted file mode 100644 -index 6ebeb6b..0000000 ---- a/src/Powercord/plugins/pc-spotify/songsStore/actions.js -+++ /dev/null -@@ -1,115 +0,0 @@ --const { FluxDispatcher } = require('powercord/webpack'); --const { FluxActions } = require('../constants'); --const SpotifyAPI = require('../SpotifyAPI'); -- --function formatTracks (spotifyTracks) { -- return Object.fromEntries( -- spotifyTracks.map(t => [ -- t.id || t.uri, -- { -- uri: t.uri, -- name: t.name, -- isLocal: t.is_local, -- duration: t.duration_ms, -- explicit: t.explicit -- } -- ]) -- ); --} -- --module.exports = { -- loadSongs: async () => { -- const songs = await SpotifyAPI.getSongs(); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.SONGS_LOADED, -- songs: formatTracks(songs.map(s => s.track)) -- }); -- }, -- -- loadTopSongs: async () => { -- const topSongs = await SpotifyAPI.getTopSongs(); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.TOP_SONGS_LOADED, -- topSongs: formatTracks(topSongs.items) -- }); -- }, -- -- loadAlbums: async () => { -- const albums = await SpotifyAPI.getAlbums(); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.ALBUMS_LOADED, -- albums: Object.fromEntries( -- albums.map(({ album }) => [ -- album.id, -- { -- uri: album.uri, -- name: album.name, -- tracks: formatTracks(album.tracks.items), -- tracksLoaded: !album.tracks.next -- } -- ]) -- ) -- }); -- -- albums.filter(({ album: { tracks: { next } } }) => !next).forEach(async ({ album: { id, tracks } }) => { -- const albumTracks = await SpotifyAPI.getAlbumTracks(id, tracks.limit, tracks.limit); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.ALBUM_TRACKS_LOADED, -- albumId: id, -- tracks: formatTracks(tracks.items.concat(albumTracks)) -- }); -- }); -- }, -- -- loadPlaylists: async () => { -- const playlists = await SpotifyAPI.getPlaylists(); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.PLAYLISTS_LOADED, -- playlists: Object.fromEntries( -- playlists.map(playlist => [ -- playlist.id, -- { -- uri: playlist.uri, -- name: playlist.name, -- icon: playlist.images[0] ? playlist.images[0].url : null, -- editable: playlist.owner.display_name === powercord.account.accounts.spotify || playlist.collaborative, -- tracksLoaded: false -- } -- ]) -- ) -- }); -- -- playlists.forEach(async ({ id }) => { -- const playlistTracks = await SpotifyAPI.getPlaylistTracks(id); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.PLAYLIST_TRACKS_LOADED, -- playlistId: id, -- tracks: formatTracks(playlistTracks.map(pt => pt.track)) -- }); -- }); -- }, -- -- addTrack: async (playlistId, trackId) => { -- const track = await SpotifyAPI.getTrack(trackId); -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.PLAYLIST_TRACK_ADDED, -- playlistId, -- trackId, -- trackDetails: { -- name: track.name, -- duration: track.duration_ms, -- explicit: track.explicit -- } -- }); -- }, -- -- deleteTrack: (playlistId, trackId) => { -- FluxDispatcher.dirtyDispatch({ -- type: FluxActions.PLAYLIST_TRACK_REMOVED, -- playlistId, -- trackId -- }); -- }, -- -- purgeSongs: () => FluxDispatcher.dirtyDispatch({ type: FluxActions.PURGE_SONGS }) --}; -diff --git a/src/Powercord/plugins/pc-spotify/songsStore/store.js b/src/Powercord/plugins/pc-spotify/songsStore/store.js -deleted file mode 100644 -index 1c66283..0000000 ---- a/src/Powercord/plugins/pc-spotify/songsStore/store.js -+++ /dev/null -@@ -1,161 +0,0 @@ --const { Flux, FluxDispatcher } = require('powercord/webpack'); --const { FluxActions } = require('../constants'); -- --let songsLoaded = false; --let topSongsLoaded = false; --let albumsLoaded = false; --let playlistsLoaded = false; -- --let songs = {}; --let topSongs = {}; --let albums = {}; --let playlists = {}; -- --function handleTopSongsLoaded (topSongsData) { -- topSongsLoaded = true; -- topSongs = topSongsData; --} -- --function handleSongsLoaded (songsData) { -- songsLoaded = true; -- songs = songsData; --} -- --function handleAlbumsLoaded (albumsData) { -- albumsLoaded = true; -- albums = albumsData; --} -- --function handleAlbumTracksLoaded (albumId, tracks) { -- albums = { -- ...albums, -- [albumId]: { -- ...albums[albumId], -- tracksLoaded: true, -- tracks -- } -- }; --} -- --function handlePlaylistsLoaded (playlistsData) { -- playlistsLoaded = true; -- playlists = playlistsData; --} -- --function handlePlaylistTracksLoaded (playlistId, tracks) { -- playlists = { -- ...playlists, -- [playlistId]: { -- ...playlists[playlistId], -- tracksLoaded: true, -- tracks -- } -- }; --} -- --function handlePlaylistTrackAdded (playlistId, trackId, trackDetails) { -- if (playlists[playlistId]) { // If the playlist doesn't exist it means it hasn't been loaded; Let's skip the event -- playlists = { -- ...playlists, -- [playlistId]: { -- ...playlists[playlistId], -- tracks: { -- ...playlists[playlistId].tracks, -- [trackId]: trackDetails -- } -- } -- }; -- } --} -- --function handlePlaylistTrackRemoved (playlistId, trackId) { -- if (playlists[playlistId]) { // If the playlist doesn't exist it means it hasn't been loaded; Let's skip the event -- delete playlists[playlistId].tracks[trackId]; -- playlists = global._.cloneDeep(playlists); -- } --} -- --function handlePurgeSongs () { -- songsLoaded = false; -- topSongsLoaded = false; -- albumsLoaded = false; -- playlistsLoaded = false; -- songs = {}; -- topSongs = {}; -- albums = {}; -- playlists = {}; --} -- --class SpotifyPlaylistsStore extends Flux.Store { -- getStore () { -- return { -- songsLoaded, -- topSongsLoaded, -- albumsLoaded, -- playlistsLoaded, -- songs, -- topSongs, -- albums, -- playlists -- }; -- } -- -- getSongsLoaded () { -- return songsLoaded; -- } -- -- getSongs () { -- return songs; -- } -- -- getTopSongsLoaded () { -- return topSongsLoaded; -- } -- -- getTopSongs () { -- return topSongs; -- } -- -- getPlaylistsLoaded () { -- return playlistsLoaded; -- } -- -- getPlaylists () { -- return playlists; -- } -- -- getPlaylist (playlistId) { -- return playlists[playlistId]; -- } -- -- isInPlaylist (playlistId, trackId) { -- if (!playlists[playlistId]) { -- return false; -- } -- return Object.keys(playlists[playlistId].tracks).includes(trackId); -- } -- -- getAlbumsLoaded () { -- return albumsLoaded; -- } -- -- getAlbumbs () { -- return albums; -- } -- -- getAlbum (albumId) { -- return albums[albumId]; -- } --} -- --module.exports = new SpotifyPlaylistsStore(FluxDispatcher, { -- [FluxActions.SONGS_LOADED]: ({ songs }) => handleSongsLoaded(songs), -- [FluxActions.TOP_SONGS_LOADED]: ({ topSongs }) => handleTopSongsLoaded(topSongs), -- [FluxActions.ALBUMS_LOADED]: ({ albums }) => handleAlbumsLoaded(albums), -- [FluxActions.ALBUM_TRACKS_LOADED]: ({ albumId, tracks }) => handleAlbumTracksLoaded(albumId, tracks), -- [FluxActions.PLAYLISTS_LOADED]: ({ playlists }) => handlePlaylistsLoaded(playlists), -- [FluxActions.PLAYLIST_TRACKS_LOADED]: ({ playlistId, tracks }) => handlePlaylistTracksLoaded(playlistId, tracks), -- [FluxActions.PLAYLIST_TRACK_ADDED]: ({ playlistId, trackId, trackDetails }) => handlePlaylistTrackAdded(playlistId, trackId, trackDetails), -- [FluxActions.PLAYLIST_TRACK_REMOVED]: ({ playlistId, trackId }) => handlePlaylistTrackRemoved(playlistId, trackId), -- [FluxActions.PURGE_SONGS]: () => handlePurgeSongs() --}); -diff --git a/src/Powercord/plugins/pc-spotify/style.scss b/src/Powercord/plugins/pc-spotify/style.scss -deleted file mode 100644 -index a4a742a..0000000 ---- a/src/Powercord/plugins/pc-spotify/style.scss -+++ /dev/null -@@ -1,182 +0,0 @@ --:root { -- --spotify-color: #1ed860; --} -- --.powercord-spotify { -- img { -- margin-bottom: -4px; -- } -- -- .spotify-buttons button { -- color: var(--spotify-color) !important; -- -- > div { -- color: inherit; -- } -- } -- -- .spotify-extra-controls { -- pointer-events: none; -- display: flex; -- align-items: center; -- justify-content: center; -- margin-top: -10px; -- opacity: 0; -- height: 0; -- transition: height .2s, opacity .2s; -- -- .active { -- color: var(--spotify-color) !important; -- } -- -- + .spotify-seek { -- margin-top: 3px; -- } -- } -- -- .spotify-seek { -- margin-top: -6px; -- transition: margin-top .2s; -- -- &-elements { -- display: flex; -- justify-content: space-between; -- color: var(--text-normal); -- font-size: 12px; -- padding: 0 4px 4px; -- font-weight: 500; -- opacity: 0; -- height: 4px; -- transition: height .2s, opacity .2s; -- } -- -- &-bar { -- position: relative; -- height: 2px; -- transition: height .2s; -- -- &-progress { -- height: 100%; -- display: block; -- background-color: var(--spotify-color); -- } -- -- &-cursor { -- top: 50%; -- position: absolute; -- transform: translateY(-50%) translateX(-50%); -- width: 8px; -- height: 8px; -- border-radius: 50%; -- border: 2px #b9bbbe solid; -- background-color: #fff; -- opacity: 0; -- transition: opacity .2s; -- } -- } -- -- &:not(.no-premium) { -- .spotify-seek-bar-progress, .spotify-seek-bar-cursor { -- cursor: pointer; -- } -- } -- } -- -- &.hover { -- .spotify-extra-controls { -- pointer-events: initial; -- height: 32px; -- opacity: 1; -- -- + .spotify-seek { -- margin-top: -12px; -- } -- } -- -- .spotify-seek { -- &-elements { -- opacity: 1; -- height: 12px; -- } -- -- &:not(.no-premium) { -- .spotify-seek-bar { -- height: 4px; -- -- &-cursor { -- opacity: 1; -- } -- } -- } -- } -- } --} -- --.spotify-tooltip { -- max-width: none !important; -- white-space: nowrap --} -- --.spotify-add-to-playlist { -- .playlists { -- margin-top: 20px; -- } -- -- .track, .playlist { -- display: flex; -- align-items: center; -- -- img { -- width: 48px; -- height: 48px; -- margin-right: 16px; -- } -- -- .details { -- display: flex; -- flex-direction: column; -- -- .title { -- font-size: 18px; -- color: var(--header-primary); -- margin-bottom: 4px; -- } -- -- .artist { -- font-size: 16px; -- color: var(--header-secondary); -- } -- } -- } -- -- .playlist { -- display: flex; -- padding: 16px; -- margin-bottom: 16px; -- -- .details { -- margin-right: auto; -- } -- } --} -- --#powercord-spotify-menu { -- .disabled-1WRMNA[id^='powercord-spotify-menu-devices--'], #powercord-spotify-menu-repeat + div [id*='-active'] { -- color: var(--spotify-color) !important; -- opacity: 1 !important; -- } -- -- .colorDefault-2K3EoJ .checkbox-3s5GYZ { -- color: var(--spotify-color); -- } -- -- .barFill-23-gu- { -- background-color: var(--spotify-color); -- } --} -- --.theme-dark { -- .powercord-spotify img[src*='_global/favicon.png'], .spotify-add-to-playlist img[src*='_global/favicon.png'] { -- filter: invert(1); -- } --} diff --git a/subflakes/powercord/patches/remove-updater.patch b/subflakes/powercord/patches/remove-updater.patch deleted file mode 100644 index a8b83bf..0000000 --- a/subflakes/powercord/patches/remove-updater.patch +++ /dev/null @@ -1,1186 +0,0 @@ -diff --git a/src/Powercord/plugins/pc-updater/components/Icons.jsx b/src/Powercord/plugins/pc-updater/components/Icons.jsx -deleted file mode 100644 -index dc8a71d..0000000 ---- a/src/Powercord/plugins/pc-updater/components/Icons.jsx -+++ /dev/null -@@ -1,52 +0,0 @@ --const { React } = require('powercord/webpack'); -- --module.exports = { -- UpToDate: () => -- -- , -- Update: ({ color, animated }) => -- -- -- -- , -- Paused: () => -- -- , -- Error: () => -- -- , -- -- Powercord: (props) => -- -- , -- Plugin: (props) => -- -- , -- Theme: (props) => -- -- --}; -diff --git a/src/Powercord/plugins/pc-updater/components/Settings.jsx b/src/Powercord/plugins/pc-updater/components/Settings.jsx -deleted file mode 100644 -index a1b8b9b..0000000 ---- a/src/Powercord/plugins/pc-updater/components/Settings.jsx -+++ /dev/null -@@ -1,464 +0,0 @@ --const { React, getModule, i18n: { Messages, _chosenLocale: currentLocale } } = require('powercord/webpack'); --const { Button, FormNotice, FormTitle, Tooltip, Icons: { FontAwesome } } = require('powercord/components'); --const { SwitchItem, TextInput, Category, ButtonItem } = require('powercord/components/settings'); --const { open: openModal, close: closeModal } = require('powercord/modal'); --const { Confirm } = require('powercord/components/modal'); --const { REPO_URL, CACHE_FOLDER } = require('powercord/constants'); --const { clipboard } = require('electron'); --const { readdirSync, existsSync, lstatSync } = require('fs'); -- --const Icons = require('./Icons'); --const Update = require('./Update'); -- --module.exports = class UpdaterSettings extends React.PureComponent { -- constructor () { -- super(); -- this.plugin = powercord.pluginManager.get('pc-updater'); -- this.state = { -- opened: false, -- copied: false -- }; -- } -- -- render () { -- const isUnsupported = window.GLOBAL_ENV.RELEASE_CHANNEL !== 'canary'; -- const moment = getModule([ 'momentProperties' ], false); -- // @todo: Make this be in its own store -- const awaitingReload = this.props.getSetting('awaiting_reload', false); -- const updating = this.props.getSetting('updating', false); -- const checking = this.props.getSetting('checking', false); -- const disabled = this.props.getSetting('disabled', false); -- const paused = this.props.getSetting('paused', false); -- const failed = this.props.getSetting('failed', false); -- -- const updates = this.props.getSetting('updates', []); -- const disabledEntities = this.props.getSetting('entities_disabled', []); -- const checkingProgress = this.props.getSetting('checking_progress', [ 0, 0 ]); -- const last = moment(this.props.getSetting('last_check', false)).calendar(); -- -- let icon, -- title; -- if (disabled) { -- icon = ; -- title = Messages.POWERCORD_UPDATES_DISABLED; -- } else if (paused) { -- icon = ; -- title = Messages.POWERCORD_UPDATES_PAUSED; -- } else if (checking) { -- icon = ; -- title = Messages.POWERCORD_UPDATES_CHECKING; -- } else if (updating) { -- icon = ; -- title = Messages.POWERCORD_UPDATES_UPDATING; -- } else if (failed) { -- icon = ; -- title = Messages.POWERCORD_UPDATES_FAILED; -- } else if (updates.length > 0) { -- icon = ; -- title = Messages.POWERCORD_UPDATES_AVAILABLE; -- } else { -- icon = ; -- title = Messages.POWERCORD_UPDATES_UP_TO_DATE; -- } -- -- return
-- {awaitingReload -- ? this.renderReload() -- : isUnsupported && this.renderUnsupported()} --
--
{icon}
--
--

{title}

-- {!disabled && !updating && (!checking || checkingProgress[1] > 0) &&
-- {paused -- ? Messages.POWERCORD_UPDATES_PAUSED_RESUME -- : checking -- ? Messages.POWERCORD_UPDATES_CHECKING_STATUS.format({ -- checked: checkingProgress[0], -- total: checkingProgress[1] -- }) -- : Messages.POWERCORD_UPDATES_LAST_CHECKED.format({ date: last })} --
} --
--
--
-- {Messages.POWERCORD_UPDATES_UPSTREAM} -- {powercord.gitInfos.upstream.replace(REPO_URL, Messages.POWERCORD_UPDATES_UPSTREAM_OFFICIAL)} --
--
-- {Messages.POWERCORD_UPDATES_REVISION} -- {powercord.gitInfos.revision.substring(0, 7)} --
--
-- {Messages.POWERCORD_UPDATES_BRANCH} -- {powercord.gitInfos.branch} --
--
--
--
-- {disabled || paused -- ? -- : (!checking && !updating && <> -- {updates.length > 0 && } -- -- -- -- )} --
-- {!disabled && !paused && !checking && updates.length > 0 &&
-- {updates.map(update => this.askSkipUpdate(() => this.plugin.skipUpdate(update.id, update.commits[0].id))} -- onDisable={() => this.askDisableUpdates(false, () => this.plugin.disableUpdates(update))} -- />)} --
} -- -- {disabledEntities.length > 0 && this.setState({ opened: !this.state.opened })} -- > -- {disabledEntities.map(entity =>
--
--
-- -- {React.createElement(Icons[entity.icon])} -- --
--
{entity.name}
--
-- --
--
--
)} --
} -- {Messages.OPTIONS} -- {!disabled && <> -- this.props.toggleSetting('automatic')} -- note={Messages.POWERCORD_UPDATES_OPTS_AUTO_DESC} -- > -- {Messages.POWERCORD_UPDATES_OPTS_AUTO} -- -- this.props.updateSetting('interval', (Number(val) && Number(val) >= 10) ? Math.ceil(Number(val)) : 10, 15)} -- defaultValue={this.props.getSetting('interval', 15)} -- required={true} -- > -- {Messages.POWERCORD_UPDATES_OPTS_INTERVAL} -- -- this.props.updateSetting('concurrency', (Number(val) && Number(val) >= 1) ? Math.ceil(Number(val)) : 1, 2)} -- defaultValue={this.props.getSetting('concurrency', 2)} -- required={true} -- > -- {Messages.POWERCORD_UPDATES_OPTS_CONCURRENCY} -- -- this.plugin.openChangeLogs()} -- > -- {Messages.POWERCORD_UPDATES_OPTS_CHANGE_LOGS} -- -- {/* this.askChangeChannel( -- () => this.plugin.changeBranch(powercord.gitInfos.branch === 'v2' ? 'v2-dev' : 'v2') -- )} -- > -- {Messages.POWERCORD_UPDATES_OPTS_RELEASE} -- */} -- -- this.setState({ debugInfoOpened: !this.state.debugInfoOpened })} -- > -- {this.renderDebugInfo(moment)} -- -- } --
; -- } -- -- // --- PARTS -- renderReload () { -- const body = <> --

{Messages.POWERCORD_UPDATES_AWAITING_RELOAD_DESC}

-- -- ; -- return this._renderFormNotice(Messages.POWERCORD_UPDATES_AWAITING_RELOAD_TITLE, body); -- } -- -- renderUnsupported () { -- const body =

-- {Messages.POWERCORD_UPDATES_UNSUPPORTED_DESC.format({ releaseChannel: window.GLOBAL_ENV.RELEASE_CHANNEL })} --

; -- return this._renderFormNotice(Messages.POWERCORD_UPDATES_UNSUPPORTED_TITLE, body); -- } -- -- _renderFormNotice (title, body) { -- return ; -- } -- -- // --- PROMPTS -- askSkipUpdate (callback) { -- this._ask( -- Messages.POWERCORD_UPDATES_SKIP_MODAL_TITLE, -- Messages.POWERCORD_UPDATES_SKIP_MODAL, -- Messages.POWERCORD_UPDATES_SKIP, -- callback -- ); -- } -- -- askPauseUpdates () { -- this._ask( -- Messages.POWERCORD_UPDATES_PAUSE, -- Messages.POWERCORD_UPDATES_PAUSE_MODAL, -- Messages.POWERCORD_UPDATES_PAUSE, -- () => this.props.updateSetting('paused', true) -- ); -- } -- -- askDisableUpdates (all, callback) { -- this._ask( -- Messages.POWERCORD_UPDATES_DISABLE, -- all ? Messages.POWERCORD_UPDATES_DISABLE_MODAL_ALL : Messages.POWERCORD_UPDATES_DISABLE_MODAL, -- Messages.POWERCORD_UPDATES_DISABLE, -- callback -- ); -- } -- -- askChangeChannel (callback) { -- this._ask( -- Messages.POWERCORD_UPDATES_OPTS_RELEASE_MODAL_HEADER, -- Messages.POWERCORD_UPDATES_OPTS_RELEASE_MODAL, -- Messages.POWERCORD_UPDATES_OPTS_RELEASE_SWITCH, -- callback -- ); -- } -- -- _ask (title, content, confirm, callback, red = true) { -- openModal(() => --
{content}
--
); -- } -- -- // --- DEBUG STUFF (Intentionally left english-only) -- renderDebugInfo () { -- const { getRegisteredExperiments, getExperimentOverrides } = getModule([ 'initialize', 'getExperimentOverrides' ], false); -- const { apiManager: { apis }, api: { commands: { commands }, settings: { store: settingsStore } } } = powercord; -- const superProperties = getModule([ 'getSuperPropertiesBase64' ], false).getSuperProperties(); -- const unauthorizedPlugins = Array.from(powercord.pluginManager.plugins.values()).filter(plugin => -- plugin.__shortCircuit).map(plugin => plugin.manifest.name); -- const plugins = powercord.pluginManager.getPlugins().filter(plugin => -- !powercord.pluginManager.get(plugin).isInternal && powercord.pluginManager.isEnabled(plugin) -- ); -- -- const enabledLabs = powercord.api.labs.experiments.filter(e => powercord.api.labs.isExperimentEnabled(e.id)); -- const experimentOverrides = Object.keys(getExperimentOverrides()).length; -- const availableExperiments = Object.keys(getRegisteredExperiments()).length; -- -- const discordPath = process.resourcesPath.slice(0, -10); -- const maskPath = (path) => { -- path = path.replace(/(?:\/home\/|C:\\Users\\|\/Users\/)([ \w.-]+).*/i, (path, username) => { -- const usernameIndex = path.indexOf(username); -- return [ path.slice(0, usernameIndex), username.charAt(0) + username.slice(1).replace(/[a-zA-Z]/g, '*'), -- path.slice(usernameIndex + username.length) ].join(''); -- }); -- -- return path; -- }; -- -- const cachedFiles = (existsSync(CACHE_FOLDER) && readdirSync(CACHE_FOLDER) -- .filter(d => lstatSync(`${CACHE_FOLDER}/${d}`).isDirectory()) -- .map(d => readdirSync(`${CACHE_FOLDER}/${d}`)) -- .flat().length) || 'n/a'; -- -- const createPathReveal = (title, path) => -- ; -- -- return -- -- System / Discord --
--
Locale: {currentLocale}
--
OS: {window.platform.os.family}{window.platform.os.architecture === 64 ? ' 64-bit' : ''}
--
Architecture: {superProperties.os_arch}
-- {process.platform === 'linux' && ( --
Distro: {superProperties.distro || 'n/a'}
-- )} --
Release Channel: {superProperties.release_channel}
--
App Version: {superProperties.client_version}
--
Build Number: {superProperties.client_build_number}
--
Build ID: {window.GLOBAL_ENV.SENTRY_TAGS.buildId.slice(0, 7)}
--
Experiments: {experimentOverrides} / {availableExperiments}
--
-- -- Process Versions --
--
React: {React.version}
-- {[ 'electron', 'chrome', 'node' ].map(proc => --
{proc.charAt(0).toUpperCase() + proc.slice(1)}: {process.versions[proc]}
-- )} --
-- -- Powercord --
--
Commands: {Object.keys(commands).length}
--
Settings: {Object.keys(settingsStore.getAllSettings()).length}
--
Plugins: {powercord.pluginManager.getPlugins() -- .filter(plugin => powercord.pluginManager.isEnabled(plugin)).length} / {powercord.pluginManager.plugins.size} --
--
Themes: {powercord.styleManager.getThemes() -- .filter(theme => powercord.styleManager.isEnabled(theme)).length} / {powercord.styleManager.themes.size} --
--
Labs: {enabledLabs.length} / {powercord.api.labs.experiments.length} --
--
{`Settings Sync:\n${powercord.settings.get('settingsSync', false)}`}
--
Cached Files: {cachedFiles}
--
{`Account:\n${!!powercord.account}`}
--
APIs: {apis.length}
--
-- -- Git --
--
Upstream: {powercord.gitInfos.upstream.replace(REPO_URL, 'Official')}
-- --
Branch: {powercord.gitInfos.branch}
--
{`Latest:\n${!this.props.getSetting('updates', []).find(update => update.id === 'powercord')}`}
--
-- -- Listings --
-- {createPathReveal('Powercord Path', powercord.basePath)} -- {createPathReveal('Discord Path', discordPath)} --
Experiments: {experimentOverrides > 0 ? Object.keys(getExperimentOverrides()).join(', ') : 'n/a'}
--
Labs: -- {enabledLabs.length ? enabledLabs.map(e => e.name).join(', ') : 'n/a'} --
--
-- Plugins: -- {(plugins.length > 6 ? `${(this.state.pluginsRevealed ? plugins : plugins.slice(0, 6)).join(', ')};` : plugins.join(', ')) || 'n/a'}  -- {plugins.length > 6 && -- this.setState({ pluginsRevealed: !this.state.pluginsRevealed })}> -- {this.state.pluginsRevealed ? 'Show less' : 'Show more'} -- } --
-- {unauthorizedPlugins.length > 0 &&
-- Unauthorized Plugins: -- {unauthorizedPlugins.join(', ')} --
} -- {window.bdplugins &&
-- BetterDiscord Plugins: -- {Object.keys(window.bdplugins).join(', ')} --
} --
--
-- -- } -- />; -- } -- -- handleDebugInfoCopy (plugins) { -- const extract = document.querySelector('.debug-info > code') -- .innerText.replace(/([A-Z/ ]+) (?=\s(?!C:\\).*?:)/g, '\n[$1]').replace(/(.*?):\s(.*.+)/g, '$1="$2"').replace(/[ -](\w*(?=.*=))/g, '$1'); -- -- this.setState({ copied: true }); -- clipboard.writeText( -- `\`\`\`ini -- # Debugging Information | Result created: ${new Date().toUTCString()} -- ${extract.substring(0, extract.indexOf('\nPlugins', extract.indexOf('\nPlugins') + 1))} -- Plugins="${plugins.join(', ')}"${window.bdplugins ? `\nBDPlugins="${Object.keys(window.bdplugins).join(', ')}"` : ''} -- \`\`\``.replace(/ {6}|n\/a/g, '').replace(/(?![0-9]{1,3}) \/ (?=[0-9]{1,3})/g, '/') -- ); -- setTimeout(() => this.setState({ copied: false }), 2500); -- } --}; -diff --git a/src/Powercord/plugins/pc-updater/components/Update.jsx b/src/Powercord/plugins/pc-updater/components/Update.jsx -deleted file mode 100644 -index d2d9fb7..0000000 ---- a/src/Powercord/plugins/pc-updater/components/Update.jsx -+++ /dev/null -@@ -1,45 +0,0 @@ --const { React, i18n: { Messages } } = require('powercord/webpack'); --const { Button } = require('powercord/components'); -- --const Icons = require('./Icons'); -- --module.exports = class Update extends React.PureComponent { -- constructor () { -- super(); -- this.plugin = powercord.pluginManager.get('pc-updater'); -- } -- -- render () { -- const { name, icon, repo, commits, updating, onSkip, onDisable } = this.props; -- return
--
--
-- {React.createElement(Icons[icon])} --
--
{name}
--
-- {updating -- ? -- : <> -- -- -- } --
--
--
-- {commits.map(commit =>
-- -- {commit.id.substring(0, 7)} -- -- {commit.message} - {commit.author} --
)} --
--
; -- } --}; -diff --git a/src/Powercord/plugins/pc-updater/index.js b/src/Powercord/plugins/pc-updater/index.js -deleted file mode 100644 -index 2a531d8..0000000 ---- a/src/Powercord/plugins/pc-updater/index.js -+++ /dev/null -@@ -1,371 +0,0 @@ --const { React, getModule, getModuleByDisplayName, i18n: { Messages } } = require('powercord/webpack'); --const { open: openModal, close: closeModal } = require('powercord/modal'); --const { Confirm } = require('powercord/components/modal'); --const { Plugin } = require('powercord/entities'); -- --const { join } = require('path'); --const { promisify } = require('util'); --const cp = require('child_process'); --const exec = promisify(cp.exec); -- --const Settings = require('./components/Settings.jsx'); -- --const changelog = require('../../../../changelogs.json'); -- --module.exports = class Updater extends Plugin { -- constructor () { -- super(); -- -- this.checking = false; -- this.cwd = { cwd: join(__dirname, ...Array(4).fill('..')) }; -- } -- -- async startPlugin () { -- this.settings.set('paused', false); -- this.settings.set('failed', false); -- this.settings.set('checking', false); -- this.settings.set('updating', false); -- this.settings.set('awaiting_reload', false); -- this.settings.set('checking_progress', null); -- -- this.loadStylesheet('style.scss'); -- powercord.api.settings.registerSettings('pc-updater', { -- category: this.entityID, -- label: 'Updater', // Note to self: add this string to i18n last :^) -- render: Settings -- }); -- -- let minutes = Number(this.settings.get('interval', 15)); -- if (minutes < 1) { -- this.settings.set('interval', 1); -- minutes = 1; -- } -- -- this._interval = setInterval(this.checkForUpdates.bind(this), minutes * 60 * 1000); -- setTimeout(() => { -- this.checkForUpdates(); -- }, 10e3); -- -- const lastChangelog = this.settings.get('last_changelog', ''); -- if (changelog.id !== lastChangelog) { -- this.openChangeLogs(); -- } -- } -- -- pluginWillUnload () { -- powercord.api.settings.unregisterSettings('pc-updater'); -- clearInterval(this._interval); -- } -- -- async checkForUpdates (allConcurrent = false) { -- if ( -- this.settings.get('disabled', false) || -- this.settings.get('paused', false) || -- this.settings.get('checking', false) || -- this.settings.get('updating', false) -- ) { -- return; -- } -- -- this.settings.set('checking', true); -- this.settings.set('checking_progress', [ 0, 0 ]); -- const disabled = this.settings.get('entities_disabled', []).map(e => e.id); -- const skipped = this.settings.get('entities_skipped', []); -- const plugins = [ ...powercord.pluginManager.plugins.values() ].filter(p => !p.isInternal); -- const themes = [ ...powercord.styleManager.themes.values() ]; -- -- const entities = plugins.concat(themes).filter(e => !disabled.includes(e.updateIdentifier) && e.isUpdatable()); -- if (!disabled.includes(powercord.updateIdentifier)) { -- entities.push(powercord); -- } -- -- let done = 0; -- const updates = []; -- const entitiesLength = entities.length; -- const parallel = allConcurrent ? entitiesLength : this.settings.get('concurrency', 2); -- await Promise.all(Array(parallel).fill(null).map(async () => { -- let entity; -- while ((entity = entities.shift())) { -- try { -- const repo = await entity.getGitRepo(); -- if (repo) { -- const shouldUpdate = await entity._checkForUpdates(); -- if (shouldUpdate) { -- const commits = await entity._getUpdateCommits(); -- if (commits[0] && skipped[entity.updateIdentifier] === commits[0].id) { -- continue; -- } -- updates.push({ -- id: entity.updateIdentifier, -- name: entity.manifest?.name ?? 'Powercord', -- icon: entity.constructor.name === 'Theme' || entity.constructor.name === 'Powercord' -- ? entity.constructor.name -- : 'Plugin', -- commits, -- repo -- }); -- } -- } -- } catch (e) { -- console.error('An error occurred while checking for updates for %s', entity.manifest?.name ?? 'Powercord', e); -- } finally { -- this.settings.set('checking_progress', [ ++done, entitiesLength ]); -- } -- } -- })); -- -- this.settings.set('updates', updates); -- this.settings.set('last_check', Date.now()); -- this.settings.set('checking', false); -- if (updates.length > 0) { -- if (this.settings.get('automatic', false)) { -- this.doUpdate(); -- } else if (!document.querySelector('#powercord-updater, .powercord-updater')) { -- powercord.api.notices.sendToast('powercord-updater', { -- header: Messages.POWERCORD_UPDATES_TOAST_AVAILABLE_HEADER, -- content: Messages.POWERCORD_UPDATES_TOAST_AVAILABLE_DESC, -- icon: 'wrench', -- buttons: [ { -- text: Messages.POWERCORD_UPDATES_UPDATE, -- color: 'green', -- look: 'outlined', -- onClick: () => this.doUpdate() -- }, { -- text: Messages.POWERCORD_UPDATES_OPEN_UPDATER, -- color: 'blue', -- look: 'ghost', -- onClick: async () => { -- const settingsModule = await getModule([ 'open', 'saveAccountChanges' ]); -- settingsModule.open('pc-updater'); -- } -- } ] -- }); -- } -- } -- } -- -- async doUpdate (force = false) { -- this.settings.set('failed', false); -- this.settings.set('updating', true); -- const updates = this.settings.get('updates', []); -- const failed = []; -- for (const update of [ ...updates ]) { -- let entity = powercord; -- if (update.id.startsWith('plugin')) { -- entity = powercord.pluginManager.get(update.id.replace('plugins_', '')); -- } else if (update.id.startsWith('theme')) { -- entity = powercord.styleManager.get(update.id.replace('themes_', '')); -- } -- -- const success = await entity._update(force); -- updates.shift(); -- this.settings.get('updates', updates); -- if (!success) { -- failed.push(update); -- } -- } -- -- this.settings.set('updating', false); -- if (failed.length > 0) { -- this.settings.set('failed', true); -- this.settings.set('updates', failed); -- if (!document.querySelector('#powercord-updater, .powercord-updater')) { -- powercord.api.notices.sendToast('powercord-updater', { -- header: Messages.POWERCORD_UPDATES_TOAST_FAILED, -- type: 'danger', -- buttons: [ { -- text: Messages.POWERCORD_UPDATES_FORCE, -- color: 'red', -- look: 'outlined', -- onClick: () => this.askForce() -- }, { -- text: Messages.FRIEND_REQUEST_IGNORE, -- look: 'outlined', -- color: 'grey' -- }, { -- text: Messages.POWERCORD_UPDATES_OPEN_UPDATER, -- color: 'blue', -- look: 'ghost', -- onClick: async () => { -- const settingsModule = await getModule([ 'open', 'saveAccountChanges' ]); -- settingsModule.open('pc-updater'); -- } -- } ] -- }); -- } -- } -- } -- -- // MODALS -- askForce (callback) { -- openModal(() => -- React.createElement(Confirm, { -- red: true, -- header: Messages.SUPPRESS_EMBED_TITLE, -- confirmText: Messages.POWERCORD_UPDATES_FORCE, -- cancelText: Messages.CANCEL, -- onConfirm: () => { -- if (callback) { -- // eslint-disable-next-line callback-return -- callback(); -- } -- this.doUpdate(true); -- }, -- onCancel: closeModal -- }, React.createElement('div', { className: 'powercord-text' }, Messages.POWERCORD_UPDATES_FORCE_MODAL)) -- ); -- } -- -- // UTILS -- skipUpdate (id, commit) { -- this.settings.set('entities_skipped', { -- ...this.settings.get('entities_skipped', {}), -- [id]: commit -- }); -- this._removeUpdate(id); -- } -- -- disableUpdates (entity) { -- this.settings.set('entities_disabled', [ -- ...this.settings.get('entities_disabled', []), -- { -- id: entity.id, -- name: entity.name, -- icon: entity.icon -- } -- ]); -- this._removeUpdate(entity.id); -- } -- -- enableUpdates (id) { -- this.settings.set('entities_disabled', this.settings.get('entities_disabled', []).filter(d => d.id !== id)); -- } -- -- _removeUpdate (id) { -- this.settings.set('updates', this.settings.get('updates', []).filter(u => u.id !== id)); -- } -- -- async getGitInfos () { -- const branch = await exec('git branch', this.cwd) -- .then(({ stdout }) => -- stdout -- .toString() -- .split('\n') -- .find(l => l.startsWith('*')) -- .slice(2) -- .trim() -- ); -- -- const revision = await exec(`git rev-parse ${branch}`, this.cwd) -- .then(r => r.stdout.toString().trim()); -- -- const upstream = await exec('git remote get-url origin', this.cwd) -- .then(r => r.stdout.toString().match(/github\.com[:/]([\w-_]+\/[\w-_]+)/)[1]); -- -- return { -- upstream, -- branch, -- revision -- }; -- } -- -- async changeBranch (branch) { -- await exec('git fetch origin +v2:v2', this.cwd); -- await exec(`git checkout ${branch}`, this.cwd); -- // location.reload(); -- } -- -- // Change Log -- async openChangeLogs () { -- const ChangeLog = await this._getChangeLogsComponent(); -- openModal(() => React.createElement(ChangeLog, { -- changeLog: this.formatChangeLog(changelog) -- })); -- } -- -- async _getChangeLogsComponent () { -- if (!this._ChangeLog) { -- const _this = this; -- const { video } = await getModule([ 'video', 'added' ]); -- const DiscordChangeLog = await getModuleByDisplayName('ChangelogStandardTemplate'); -- -- class ChangeLog extends DiscordChangeLog { -- constructor (props) { -- super(props); -- -- this.oldRenderHeader = this.renderHeader; -- this.renderHeader = this.renderNewHeader.bind(this); -- -- this.track = () => void 0; -- this.handleScroll = () => void 0; -- } -- -- renderNewHeader () { -- const header = this.oldRenderHeader(); -- header.props.children[0].props.children = `Powercord - ${header.props.children[0].props.children}`; -- return header; -- } -- -- renderVideo () { -- if (!changelog.image) { -- return null; -- } -- -- return React.createElement('img', { -- src: changelog.image, -- className: video, -- alt: '' -- }); -- } -- -- renderFooter () { -- const footer = super.renderFooter(); -- footer.props.children = React.createElement('span', { -- style: { color: 'var(--text-normal)' }, -- dangerouslySetInnerHTML: { -- __html: changelog.footer -- } -- }); -- return footer; -- } -- -- componentWillUnmount () { -- _this.settings.set('last_changelog', changelog.id); -- } -- } -- -- this._ChangeLog = ChangeLog; -- } -- return this._ChangeLog; -- } -- -- formatChangeLog (json) { -- let body = ''; -- const colorToClass = { -- GREEN: 'added', -- ORANGE: 'progress', -- RED: 'fixed', -- BLURPLE: 'improved' -- }; -- json.contents.forEach(item => { -- if (item.type === 'HEADER') { -- body += `${item.text.toUpperCase()} {${colorToClass[item.color]}${item.noMargin ? ' marginTop' : ''}}\n======================\n\n`; -- } else { -- if (item.text) { -- body += item.text; -- body += '\n\n'; -- } -- if (item.list) { -- body += ` * ${item.list.join('\n\n * ')}`; -- body += '\n\n'; -- } -- } -- }); -- return { -- date: json.date, -- locale: 'en-us', -- revision: 1, -- body -- }; -- } --}; -diff --git a/src/Powercord/plugins/pc-updater/manifest.json b/src/Powercord/plugins/pc-updater/manifest.json -deleted file mode 100644 -index 07e89ba..0000000 ---- a/src/Powercord/plugins/pc-updater/manifest.json -+++ /dev/null -@@ -1,7 +0,0 @@ --{ -- "name": "Updater", -- "version": "2.0.0", -- "description": "Ensure Powercord, plugins and themes are always up to date", -- "author": "Powercord Team", -- "license": "MIT" --} -diff --git a/src/Powercord/plugins/pc-updater/style.scss b/src/Powercord/plugins/pc-updater/style.scss -deleted file mode 100644 -index 55e7576..0000000 ---- a/src/Powercord/plugins/pc-updater/style.scss -+++ /dev/null -@@ -1,211 +0,0 @@ --.powercord-updater { -- .top-section { -- margin-top: 35px; -- display: flex; -- -- .icon { -- width: 64px; -- margin-right: 15px; -- flex-shrink: 0; -- } -- -- .animated path + path { -- transform-origin: 50% 50%; -- animation: rotate 1.2s infinite; -- } -- -- @keyframes rotate { -- from { -- transform: rotate(0deg); -- } -- to { -- transform: rotate(360deg); -- } -- } -- -- .status { -- display: flex; -- flex-direction: column; -- justify-content: space-evenly; -- -- h3 { -- font-size: 28px; -- } -- -- div { -- opacity: .7; -- } -- } -- -- .about { -- display: flex; -- margin-left: auto; -- flex-direction: column; -- justify-content: space-evenly; -- font-family: SourceCodePro, Consolas, Liberation Mono, Menlo, Courier, monospace; -- font-size: 14px; -- opacity: .7; -- -- div { -- display: flex; -- justify-content: space-between; -- -- span { -- margin-left: 10px; -- width: 80px; -- } -- } -- } -- } -- -- .buttons { -- display: flex; -- margin-top: 25px; -- -- button + button { -- margin-left: 15px; -- } -- } -- -- .updates { -- margin-top: 25px; -- } -- -- .update { -- margin: 15px 0; -- -- .title { -- display: flex; -- align-items: center; -- -- .icon { -- width: 28px; -- height: 28px; -- margin-right: 10px; -- } -- -- .name { -- font-size: 22px; -- } -- -- .actions { -- display: flex; -- align-items: center; -- margin-left: auto; -- -- button { -- height: 26px; -- min-height: 26px; -- padding: 2px 6px; -- -- &:not(:last-child) { -- margin-right: 10px; -- } -- } -- } -- } -- -- .summary { -- padding: 10px 55px; -- -- div { -- margin-bottom: 10px; -- } -- -- a { -- background-color: var(--background-secondary); -- margin-right: 10px; -- } -- } -- } -- -- .buttons, .update { -- padding-bottom: 15px; -- margin-bottom: 20px; -- border-bottom: 1px var(--background-modifier-accent) solid; -- } -- -- &-ft { -- margin-top: 40px; -- margin-bottom: 8px; -- } -- -- .debug-info { -- display: flex; -- color: var(--interactive-normal); -- user-select: text; -- cursor: text; -- -- &.copied b { -- color: #3ca374; -- } -- -- code { -- white-space: pre-wrap; -- font-family: inherit; -- font-size: 12px; -- } -- -- b { -- align-items: center; -- color: #7289da; -- text-transform: uppercase; -- display: flex; -- -- &::after { -- content: ""; -- margin-left: 4px; -- border: thin dashed; -- opacity: .6; -- flex: 1; -- } -- -- transition: color .2s ease; -- } -- -- .row { -- display: flex; -- flex-direction: row; -- flex-wrap: wrap; -- margin: 8px 0 8px 20px; -- } -- -- .column { -- flex-basis: 25%; -- -- &:nth-child(n+5) { -- margin-top: 8px; -- } -- } -- -- .full-column { -- flex-basis: 100%; -- -- &:nth-child(n+2) { -- margin-top: 8px; -- } -- -- &> a { -- user-select: none; -- } -- } -- -- &:hover { -- button { -- opacity: 1; -- } -- } -- -- :last-child:not(button) > :last-child { -- flex-basis: 85%; -- } -- -- button { -- opacity: 0; -- align-self: flex-end; -- transition: opacity .2s ease; -- position: absolute; -- right: 20px; -- } -- } --} diff --git a/users/infinidoge/config/default.nix b/users/infinidoge/config/default.nix index 136218f..023dee7 100644 --- a/users/infinidoge/config/default.nix +++ b/users/infinidoge/config/default.nix @@ -72,14 +72,4 @@ with lib; "blugon".source = ./blugon; }; - - home.bindmounts."${main.dotfiles.dir}/users/infinidoge/config" = mkIf main.info.graphical { - allowOther = true; - directories = [ - { - source = "powercord"; - target = ".config/powercord"; - } - ]; - }; } diff --git a/users/infinidoge/config/powercord/Badges-Everywhere.json b/users/infinidoge/config/powercord/Badges-Everywhere.json deleted file mode 100644 index d7f3ebc..0000000 --- a/users/infinidoge/config/powercord/Badges-Everywhere.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "displayHypeSquadOnline": false, - "displayHypeSquad": false, - "displayNitro": false, - "displayBoosting": false, - "displayEarly": false, - "displayHunter": false, - "messages": false, - "threads-preview": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Better-Folders.json b/users/infinidoge/config/powercord/Better-Folders.json deleted file mode 100644 index e7b9167..0000000 --- a/users/infinidoge/config/powercord/Better-Folders.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "closeAllFolders": false, - "closeOthers": true, - "forceOpen": true, - "closeAllHomeButton": false, - "folderSidebar": true, - "sidebarAnim": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Better-Replies.json b/users/infinidoge/config/powercord/Better-Replies.json deleted file mode 100644 index e76cc04..0000000 --- a/users/infinidoge/config/powercord/Better-Replies.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "--mention-cache": true, - "mention": "never", - "ping": "always" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Better-Settings.json b/users/infinidoge/config/powercord/Better-Settings.json deleted file mode 100644 index 2ea9971..0000000 --- a/users/infinidoge/config/powercord/Better-Settings.json +++ /dev/null @@ -1,314 +0,0 @@ -{ - "itemidlist": { - "MyAccount": [ - "", - 100, - "My Account" - ], - "ProfileCustomization": [ - "", - 100, - "User Profile" - ], - "PrivacynSafety": [ - "", - 100, - "Privacy & Safety" - ], - "AuthorizedApps": [ - "", - 100, - "Authorized Apps" - ], - "Connections": [ - "", - 100, - "Connections" - ], - "DiscordNitro": [ - "", - 100, - "Discord Nitro" - ], - "NitroServerBoost": [ - "", - 100, - "Server Boost" - ], - "Subscriptions": [ - "", - 100, - "Subscriptions" - ], - "LibraryInventory": [ - "", - 100, - "Gift Inventory1" - ], - "Billing": [ - "", - 100, - "Billing" - ], - "Appearance": [ - "", - 100, - "Appearance" - ], - "Accessibility": [ - "", - 100, - "Accessibility" - ], - "VoicenVideo": [ - "", - 100, - "Voice & Video" - ], - "TextnImages": [ - "", - 100, - "Text & Images" - ], - "Notifications": [ - "", - 100, - "Notifications" - ], - "Keybinds": [ - "", - 100, - "Keybinds" - ], - "Language": [ - "", - 100, - "Language" - ], - "Linux": [ - "", - 100, - "Linux Settings" - ], - "StreamerMode": [ - "", - 100, - "Streamer Mode" - ], - "Advanced": [ - "", - 100, - "Advanced" - ], - "GameActivity": [ - "", - 100, - "Activity Status" - ], - "pc-general": [ - "", - 100, - "General Settings" - ], - "pc-moduleManager-plugins": [ - "", - 100, - "Plugins" - ], - "pc-moduleManager-themes": [ - "", - 100, - "Themes" - ], - "morebadges": [ - "", - 100, - "Badges Everywhere" - ], - "Better-Folders": [ - "", - 100, - "Better Folders" - ], - "Better-Replies": [ - "", - 100, - "Better Replies" - ], - "Better-Settings": [ - "", - 100, - "Better Settings" - ], - "Better-Status-Indicators": [ - "", - 100, - "Better Status Indicators" - ], - "Custom-Timestamps": [ - "", - 100, - "Custom Timestamps" - ], - "custom-volume-range-settings": [ - "", - 100, - "Custom Volume Range" - ], - "dm-typing-indicator": [ - "", - 100, - "DM Typing Indicator" - ], - "ian-settings": [ - "", - 100, - "In App Notifications" - ], - "Message-Tooltips": [ - "", - 100, - "Message Tooltips" - ], - "PowerAliases": [ - "", - 100, - "PowerAliases" - ], - "Powercord-Reverse-Image-Search": [ - "", - 100, - "Reverse Image Search" - ], - "pronoundb": [ - "", - 100, - "PronounDB" - ], - "reddit-mentions": [ - "", - 100, - "Reddit Mentions" - ], - "relationships-notifier": [ - "", - 100, - "Relationships Notifier" - ], - "rceverywhere": [ - "", - 100, - "Role Color Everywhere" - ], - "Send-Timestamps": [ - "", - 100, - "Send Timestamps" - ], - "smart-typers": [ - "", - 100, - "Smart Typers" - ], - "Staff-Tags": [ - "", - 100, - "Staff Tags" - ], - "Total-Members": [ - "", - 100, - "Total Members" - ], - "User-Birthdays": [ - "", - 100, - "User Birthdays" - ], - "User-Details": [ - "", - 100, - "User Details" - ], - "VoiceChatUtilities": [ - "", - 100, - "Voicechat Utilities" - ], - "pc-clickableEdits": [ - "", - 100, - "Clickable Edits" - ], - "pc-hastebin": [ - "", - 100, - "Hastebin" - ], - "ppl-moe": [ - "", - 100, - "ppl.moe" - ], - "Better-Threads": [ - "", - 100, - "Better Threads" - ], - "Report-Messages": [ - "", - 100, - "Report Messages" - ], - "cutecord": [ - "", - 100, - "Cutecord" - ], - "pc-emojiUtility": [ - "", - 100, - "Emote Utility" - ], - "changelog": [ - "", - 100, - "Change Log" - ], - "HypesquadOnline": [ - "", - 100, - "HypeSquad" - ], - "logout": [ - "", - 100, - "Log Out" - ], - "Experiments": [ - "", - 100, - "Experiments" - ], - "DeveloperOptions": [ - "", - 100, - "Developer Options" - ], - "HotspotOptions": [ - "", - 100, - "Hotspot Options" - ], - "pc-updater": [ - "", - 100, - "Updater" - ] - }, - "changelog": true, - "pluginsCategory": true, - "contexttargetname": "Custom Timestamps", - "contexttarget": "Custom-Timestamps", - "baddies": "" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Custom-Timestamps.json b/users/infinidoge/config/powercord/Custom-Timestamps.json deleted file mode 100644 index c1b5b09..0000000 --- a/users/infinidoge/config/powercord/Custom-Timestamps.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "timestampSchematic": "%Y-%0M-%0D %0H:%0m:%0s, %g ago", - "timestampBubbleSchematic": "%W, %N %D, %Y %H:%0m", - "enableChatTimestamp": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Cutecord.json b/users/infinidoge/config/powercord/Cutecord.json deleted file mode 100644 index 569aa71..0000000 --- a/users/infinidoge/config/powercord/Cutecord.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "version": "3.4.0", - "customFocusDetection": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/In-App-Notifications.json b/users/infinidoge/config/powercord/In-App-Notifications.json deleted file mode 100644 index 3fa7426..0000000 --- a/users/infinidoge/config/powercord/In-App-Notifications.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "blockDesktop": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Multitask.json b/users/infinidoge/config/powercord/Multitask.json deleted file mode 100644 index 4f9aefc..0000000 --- a/users/infinidoge/config/powercord/Multitask.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "accounts": [ - { - "name": "Infinidoge#1337", - "token": "mfa.cWI4hO2bh5t6xrBLHw88syT76kPDd-cXq57XG4nlbIDhmsXd3ue6JPi8AejmT-pO8HhnlzcaPJBnSZQTbGFN" - } - ] -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/PinDMs.json b/users/infinidoge/config/powercord/PinDMs.json deleted file mode 100644 index b0991ab..0000000 --- a/users/infinidoge/config/powercord/PinDMs.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "notifsounds": {}, - "friendList": { - "sortoptions": true, - "mutualguilds": true, - "showtotal": true - }, - "general": { - "pinIcon": true, - "unreadAmount": true, - "channelAmount": true - }, - "recentOrder": { - "channelList": false, - "guildList": false - }, - "pindms": { - "dmCategories": { - "29180447426649604": { - "expanded": true, - "dms": [ - "355468263217561613", - "278993346138210305", - "191369144422105089" - ], - "id": 29180447426649604, - "name": "Family", - "pos": 0 - }, - "89099006448868140": { - "expanded": true, - "dms": [ - "478663934279155714", - "348663317486632960", - "283423992856051732", - "212382908663595009", - "537011807056035840", - "337004876347473922", - "219216785252155392", - "183915359173214208", - "98221020120354816", - "372115591248740353", - "256161387766743041", - "342128724348633131", - "285509313412464642", - "111288483330478080", - "360452650426433541", - "340921293568475136", - "448976224933511178", - "538102572716654623" - ], - "id": 89099006448868140, - "name": "Friends", - "pos": 1 - }, - "49682831504275730": { - "expanded": false, - "dms": [ - "325387620266016768", - "261302296103747584", - "207919551130763264", - "235148962103951360", - "459974928293167107", - "569019503057436684", - "799944549270814731", - "204255221017214977", - "155149108183695360", - "575252669443211264", - "530082442967646230", - "473868086773153793", - "625168398967373866", - "219251784445591553", - "448284325255839744", - "409107086526644234", - "706341689345703967", - "550613223733329920", - "471705718957801483" - ], - "id": 49682831504275730, - "name": "Bots", - "pos": 2 - }, - "79570398434530800": { - "expanded": false, - "dms": [ - "875524286411079740", - "764296108855394314", - "784444467427278868" - ], - "id": 79570398434530800, - "name": "Groups", - "pos": 3 - }, - "61742966198444390": { - "expanded": false, - "dms": [ - "742172821135818842", - "815953173800943666", - "234338160203661313", - "493538118474006551", - "233702693414109208", - "523370672869605401" - ], - "id": 61742966198444390, - "name": "Alts", - "pos": 4 - } - }, - "serverlist": [] - } -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Powercord-Reverse-Image-Search.json b/users/infinidoge/config/powercord/Powercord-Reverse-Image-Search.json deleted file mode 100644 index 557ac1a..0000000 --- a/users/infinidoge/config/powercord/Powercord-Reverse-Image-Search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "RIS-provider-google-images": false, - "RIS-provider-yandex": true, - "RIS-provider-tineye": false, - "RIS-provider-saucenao": true, - "RIS-provider-imgops": true, - "RIS-enlargeImages": true, - "RIS-convertPNG": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/PronounDB.json b/users/infinidoge/config/powercord/PronounDB.json deleted file mode 100644 index 94c34c6..0000000 --- a/users/infinidoge/config/powercord/PronounDB.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "pronouns-154058479798059009": "st", - "pronouns-479702785982464001": "st", - "pronouns-274727608954912770": "hh", - "pronouns-213326169930465282": "st", - "pronouns-241344230901940234": "sh", - "pronouns-187421759484592128": "hh", - "pronouns-348663317486632960": "hh", - "pronouns-77084495118868480": "tt", - "pronouns-421783398374440961": "tt" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Relationships-Notifier.json b/users/infinidoge/config/powercord/Relationships-Notifier.json deleted file mode 100644 index f91c594..0000000 --- a/users/infinidoge/config/powercord/Relationships-Notifier.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "textExpanded": true, - "buttonText": "Okay" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Replace-Timestamps---Powercord.json b/users/infinidoge/config/powercord/Replace-Timestamps---Powercord.json deleted file mode 100644 index 8c22364..0000000 --- a/users/infinidoge/config/powercord/Replace-Timestamps---Powercord.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "t": true, - "char": "t", - "d": true, - "T": true, - "F": true, - "f": true, - "D": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Report-Messages.json b/users/infinidoge/config/powercord/Report-Messages.json deleted file mode 100644 index 12fbb44..0000000 --- a/users/infinidoge/config/powercord/Report-Messages.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "who-safe": "friends" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Role-Color-Everywhere.json b/users/infinidoge/config/powercord/Role-Color-Everywhere.json deleted file mode 100644 index 587e6a4..0000000 --- a/users/infinidoge/config/powercord/Role-Color-Everywhere.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": false, - "messages": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Smart-Typers.json b/users/infinidoge/config/powercord/Smart-Typers.json deleted file mode 100644 index cc54b7d..0000000 --- a/users/infinidoge/config/powercord/Smart-Typers.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "userAvatars": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Staff-Tags.json b/users/infinidoge/config/powercord/Staff-Tags.json deleted file mode 100644 index cdaaeb0..0000000 --- a/users/infinidoge/config/powercord/Staff-Tags.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lastChangeLogVersion": "1.0.14" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Statistics-Counter.json b/users/infinidoge/config/powercord/Statistics-Counter.json deleted file mode 100644 index a54b86d..0000000 --- a/users/infinidoge/config/powercord/Statistics-Counter.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pending": false, - "blocked": false, - "lastCounter": "GUILDS", - "preserveLastCounter": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Total-Members.json b/users/infinidoge/config/powercord/Total-Members.json deleted file mode 100644 index 2d695d7..0000000 --- a/users/infinidoge/config/powercord/Total-Members.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "displayMode": 0 -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/User-Details.json b/users/infinidoge/config/powercord/User-Details.json deleted file mode 100644 index 9992d54..0000000 --- a/users/infinidoge/config/powercord/User-Details.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "custom": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/Voice-chat-utilities.json b/users/infinidoge/config/powercord/Voice-chat-utilities.json deleted file mode 100644 index c90bb1c..0000000 --- a/users/infinidoge/config/powercord/Voice-chat-utilities.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "voicechatcopyids": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/better-status-indicators.json b/users/infinidoge/config/powercord/better-status-indicators.json deleted file mode 100644 index 18ed756..0000000 --- a/users/infinidoge/config/powercord/better-status-indicators.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "enabledModules": [ - "status-everywhere" - ], - "se-mobileStatus": "self+others", - "se-reducedStatuses": true, - "statusDisplay": "default" -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/css-toggler-cache/snippets.json b/users/infinidoge/config/powercord/css-toggler-cache/snippets.json deleted file mode 100644 index eaf4337..0000000 --- a/users/infinidoge/config/powercord/css-toggler-cache/snippets.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "id": "865809923878682634", - "author": "717884197678874767", - "content": ".emoji.jumboable {\n width: 10rem;\n height 10rem;\n min-height: 10rem;\n}", - "timestamp": 1636734264000, - "details": { - "title": "Large Jumbo Emotes" - } - }, - { - "id": "780838821662294068", - "author": "265924886461939712", - "channel": "755015869914152981", - "content": ".anchor-3Z-8Bb[href=\"https://support.discord.com\"] { display: none; }", - "timestamp": 1636867215000, - "details": { - "title": "Remove Help Button" - } - }, - { - "id": "907333488779354112", - "author": "457579346282938368", - "content": ".members-2upGyL {\n height: 100%;\n}\n.toolbar-1t6TWx>.iconWrapper-2OrFZ1.selected-1GqIat:nth-of-type(4)~:last-child {\n margin-right: 56px;\n}\n.container-2PDP7D>.tabs-3L9Rgq {\n height: 0;\n padding: 0;\n border: none;\n}\n.container-2PDP7D>.tabs-3L9Rgq>.tab-XC_yrg {\n font-size: 0;\n position: absolute;\n right: 6px;\n top: -36px;\n width: 40px;\n height: 24px;\n margin: 0 8px;\n padding: 0;\n z-index: 2;\n border-radius: 12px;\n background-color: hsl(218, calc(var(--saturation-factor, 1) * 4.6%), 46.9%) !important;\n}\n.container-2PDP7D>.tabs-3L9Rgq>.tab-XC_yrg::after {\n position: absolute;\n top: 3px;\n width: 18px;\n height: 18px;\n background-color: white;\n border-radius: 50%;\n}\n.container-2PDP7D>.tabs-3L9Rgq>.tab-XC_yrg:first-of-type::after {\n content: url(\"data:image/svg+xml;utf8,\");\n right: 3px; \n}\n.container-2PDP7D>.tabs-3L9Rgq>.tab-XC_yrg:last-of-type::after {\n content: url(\"data:image/svg+xml;utf8,\");\n left: 3px;\n}\n.container-2PDP7D>.tabs-3L9Rgq>.tab-XC_yrg.active-2SVYP5 {\n pointer-events: none;\n opacity: 0;\n}", - "timestamp": 1636761890000, - "details": { - "title": "Channel Banner Switch", - "description": "Replaces the channel banner tabs with a single switch" - } - }, - { - "id": "949001991567343616", - "author": "250322741406859265", - "content": ".form-3gdLxP {\n padding: 0px;\n}\n\n.inner-NQg18Y {\n padding-top: 4px;\n}\n\n.channelTextArea-1VQBuV {\n margin-bottom: 0px;\n}\n\n.base-3bcbY3 {\n top: -24px;\n left: 0px;\n width: fit-content;\n padding-right: 9px;\n border-radius: 0 8px 0 0;\n background-color: var(--channeltextarea-background);\n}\n\n.scrollableContainer-15eg7h {\n border-radius: 0px;\n min-height: 53px;\n}", - "timestamp": 1646708812000, - "details": { - "title": "Expand Text Bar", - "description": "Expands the text bar to be the width of the message screen, and aligns it with the user modal." - } - }, - { - "id": "885158901673230376", - "author": "169456051920437248", - "content": "/* the main bit! */\n.container-3baos1 {\n position: fixed;\n left: 4px;\n top: calc(100% - 52px);\n width: 292px;\n background-color: var(--background-tertiary);\n}\n\n/* PATCH for scrollers above the user panel to make space */\n.guilds-1SWlCJ, /* servers */\n.sidebar-2K8pFh /* channels */ {\n height: calc(100% - 52px);\n}", - "timestamp": 1636733943000, - "details": { - "title": "Extended User Panel" - } - }, - { - "id": "898512654849687592", - "author": "845535118285602866", - "content": ".sidebarRegion-VFTUkN {\n flex: 0;\n}\n\n.contentColumnDefault-1VQkGM {\n margin: 0 auto;\n}", - "timestamp": 1636733790000, - "details": { - "title": "Wide Settings" - } - }, - { - "id": "875021875120582676", - "author": "457579346282938368", - "content": ".guildSection-1EoFKd > .flex-1xMQg5 > svg {\n flex-shrink: 0;\n}", - "timestamp": 1636734029000, - "details": { - "title": "Stop Server Icon Shrinking" - } - }, - { - "id": "865701620201685012", - "author": "158296466119458816", - "content": "[class*=\"chat-\"] > [class*=\"title-\"] > [class*=\"children-\"] > [class*=\"topic-\"] {\n white-space: normal;\n max-height: 2.4em;\n font-size: .9em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n position: relative;\n}\n[class*=\"chat-\"] > [class*=\"title-\"] > [class*=\"children-\"]::after {\n content; unset;\n}\n[class*=\"chat-\"] > [class*=\"title-\"] > [class*=\"children-\"] > [class*=\"topic-\"]::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n right: 0;\n height: 1em;\n background: linear-gradient(to right, transparent, var(--background-primary), var(--background-primary)) !important;\n display: flex;\n width: 130px;\n}", - "timestamp": 1636734269000, - "details": { - "title": "2-Lined Channel Topic" - } - }, - { - "id": "863870341537071197", - "author": "574870314928832533", - "content": ".roleColor-rz2vM0::after {\n content: '';\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n opacity: 0.125;\n background: currentColor;\n}\n.member-3-YXUe .badges {\n z-index: 0;\n}\n.member-3-YXUe.selected-aXhQR6 .roleColor-rz2vM0::after {\n border-radius: 4px;\n}\n.membersGroup-v9BXpm + .member-3-YXUe {\n margin-top: 5px;\n}\n.membersGroup-v9BXpm + .member-3-YXUe .roleColor-rz2vM0::after {\n border-radius: 5px 5px 0 0;\n}", - "timestamp": 1636734299000, - "details": { - "title": "Colorful Member List", - "description": "Makes the member list more colorful by adding a semi-transparent colored rectangle around users" - } - }, - { - "id": "907442893608869888", - "author": "288362986991648778", - "content": ".icon-22AiRD [d=\"M6 1C3.243 1 1 3.244 1 6c0 2.758 2.243 5 5 5s5-2.242 5-5c0-2.756-2.243-5-5-5zm0 2.376a.625.625 0 110 1.25.625.625 0 010-1.25zM7.5 8.5h-3v-1h1V6H5V5h1a.5.5 0 01.5.5v2h1v1z\"] {\n d: path(\"M 7 4.003 C 7 5.1055 6.103 6.003 5 6.003 C 3.8975 6.003 3 5.1055 3 4.003 C 3 2.9005 3.897 2.003 5 2.003 C 6.103 2.003 7 2.9005 7 4.003 Z M 1 9.503 C 1 7.7365 2.645 6.503 5 6.503 C 7.3555 6.503 9 7.7365 9 9.503 V 10.003 H 1 V 9.503 Z M 10 10.003 H 11 V 9.503 C 11 8.2217 10.1349 7.2207 8.7607 6.7676 C 9.5311 7.4563 10 8.403 10 9.503 V 10.003 Z M 7.4417 5.9539 C 8.3329 5.7522 9 4.9539 9 4 C 9 2.9846 8.2347 2.1411 7.2485 2.0183 C 7.7161 2.5476 8 3.2426 8 4 C 8 4.7244 7.7444 5.3871 7.3189 5.9051 C 7.3601 5.9209 7.4011 5.9371 7.4417 5.9539 Z\");\n}", - "timestamp": 1636761712000 - } -] \ No newline at end of file diff --git a/users/infinidoge/config/powercord/css-toggler.json b/users/infinidoge/config/powercord/css-toggler.json deleted file mode 100644 index a568d75..0000000 --- a/users/infinidoge/config/powercord/css-toggler.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "snippetDetails": { - "780838821662294068": { - "title": "Remove Help Button" - }, - "907333488779354112": { - "title": "Channel Banner Switch", - "description": "Replaces the channel banner tabs with a single switch" - }, - "907442893608869888": { - "title": "Revert Channel Members Icon" - }, - "864076332505497641": { - "title": "Make Grey toggle switch Red" - }, - "865809923878682634": { - "title": "Large Jumbo Emotes" - }, - "870054555025543219": { - "title": "Resizeable Thread Sidebar" - }, - "885158901673230376": { - "title": "Extended User Panel" - }, - "875021875120582676": { - "title": "Stop Server Icon Shrinking" - }, - "870552834410680370": { - "title": "Colorful Context Menu" - }, - "863870341537071197": { - "title": "Colorful Member List", - "description": "Makes the member list more colorful by adding a semi-transparent colored rectangle around users" - }, - "865701620201685012": { - "title": "2-Lined Channel Topic" - }, - "898512654849687592": { - "title": "Wide Settings" - }, - "921928336802971699": { - "title": "Horizontally Listed Media" - }, - "929485841229815859": { - "title": "Fix Server List Lag", - "description": "Fixes the server list lagging on many Linux distros" - }, - "929440925791449148": { - "title": "Jump to Message Buttons", - "description": "Replaces message links with a 'Jump to Message' button" - }, - "931904851586195476": { - "title": "Make PronounDB match timestamps", - "description": "Adjusts font size and weight of PronounDB's pronouns in chat to make them identical to timestamps, and makes it so that " - }, - "949006652944834560": { - "title": "Unclamp About Me Length" - }, - "949001991567343616": { - "title": "Expand Text Bar", - "description": "Expands the text bar to be the width of the message screen, and aligns it with the user modal." - }, - "951894639596666940": { - "title": "Readd Media Opening Animation" - }, - "988930072675246080": { - "title": "About Me Pronouns" - } - }, - "collapsedSnippets": [ - "870552834410680370", - "870054555025543219", - "864076332505497641", - "865809923878682634", - "780838821662294068", - "907333488779354112", - "929485841229815859", - "929440925791449148", - "949001991567343616", - "931904851586195476", - "921928336802971699", - "949006652944834560", - "951894639596666940", - "885158901673230376", - "898512654849687592", - "875021875120582676", - "865701620201685012", - "863870341537071197", - "907442893608869888", - "988930072675246080" - ], - "show-quick-header": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/css-toggler.json.bak b/users/infinidoge/config/powercord/css-toggler.json.bak deleted file mode 100644 index af0ac3b..0000000 --- a/users/infinidoge/config/powercord/css-toggler.json.bak +++ /dev/null @@ -1,43 +0,0 @@ -{ - "snippetDetails": { - "780838821662294068": { - "title": "Remove Help Button" - }, - "907333488779354112": { - "title": "Channel Banner Switch", - "description": "Replaces the channel banner tabs with a single switch" - }, - "907442893608869888": { - "title": "Revert Channel Members Icon" - }, - "864076332505497641": { - "title": "Make Grey toggle switch Red" - }, - "865809923878682634": { - "title": "Large Jumbo Emotes" - }, - "870054555025543219": { - "title": "Resizeable Thread Sidebar" - }, - "885158901673230376": { - "title": "Extended User Panel" - }, - "875021875120582676": { - "title": "Stop Server Icon Shrinking" - }, - "870552834410680370": { - "title": "Colorful Context Menu" - }, - "863870341537071197": { - "title": "Colorful Member List", - "description": "Makes the member list more colorful by adding a semi-transparent colored rectangle around users" - }, - "865701620201685012": { - "title": "2-Lined Channel Topic" - }, - "898512654849687592": { - "title": "Wide Settings" - } - }, - "collapsedSnippets": [] -} diff --git a/users/infinidoge/config/powercord/dm-typing-indicator.json b/users/infinidoge/config/powercord/dm-typing-indicator.json deleted file mode 100644 index 2d34fa0..0000000 --- a/users/infinidoge/config/powercord/dm-typing-indicator.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "indicatorStyle": "both", - "ignoreNonFriend": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/pc-emojiUtility.json b/users/infinidoge/config/powercord/pc-emojiUtility.json deleted file mode 100644 index 543aa1f..0000000 --- a/users/infinidoge/config/powercord/pc-emojiUtility.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "useEmbeds": false, - "displayLink": true, - "includeIdForSavedEmojis": true, - "defaultCloneIdUseCurrent": false -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/pc-general.json b/users/infinidoge/config/powercord/pc-general.json deleted file mode 100644 index 4203074..0000000 --- a/users/infinidoge/config/powercord/pc-general.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "advancedSettings": false, - "experiments": true, - "disabledPlugins": [ - "pc-lmgtfy", - "pc-spotify", - "pc-heygirl", - "Better-Settings" - ] -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/pc-moduleManager.json b/users/infinidoge/config/powercord/pc-moduleManager.json deleted file mode 100644 index 231845e..0000000 --- a/users/infinidoge/config/powercord/pc-moduleManager.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "cm-height": 1164 -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/pc-updater.json b/users/infinidoge/config/powercord/pc-updater.json deleted file mode 100644 index 11eba57..0000000 --- a/users/infinidoge/config/powercord/pc-updater.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "paused": false, - "failed": false, - "checking": false, - "updating": false, - "awaiting_reload": false, - "checking_progress": null, - "last_changelog": "updates-26-04-20", - "updates": [], - "last_check": 1636564355304, - "automatic": false, - "disabled": true -} \ No newline at end of file diff --git a/users/infinidoge/config/powercord/quickcss.css b/users/infinidoge/config/powercord/quickcss.css deleted file mode 100644 index 08bf296..0000000 --- a/users/infinidoge/config/powercord/quickcss.css +++ /dev/null @@ -1,248 +0,0 @@ -/** - * Snippet from #css-snippets applied the Nov 12, 2021 at 11:22:53 AM - * Created by mr_miner#9699 (678541597654253600) - * Snippet ID: 870552834410680370 - */ -#message-actions-pin, #message-pin, #message-unpin{ - color: skyblue; -} -#message-actions-pin:hover, #message-pin:hover, #message-unpin:hover { - background-color: #67a7c0; - color: #fff; -} -#message-actions-reply, #message-reply { - color: khaki; -} -#message-actions-reply:hover, #message-reply:hover { - background-color: #c5bb5d; - color: #fff; -} -#message-actions-thread, #message-thread { - color: #69c069; -} -#message-actions-thread:hover, #message-thread:hover { - background-color: #5dbd5d; - color: #fff; -} -#message-actions-mark-unread, #message-mark-unread { - color: plum; -} -#message-actions-mark-unread:hover, #message-mark-unread:hover { - background-color: #c27ec2; - color: #fff; -} -#message-actions-copy-link, #message-copy-link { - color: lightseagreen; -} -#message-actions-copy-link:hover, #message-copy-link:hover { - background-color: #199c96; - color: #fff; -} -#message-actions-tts, #message-tts{ - color: var(--brand-experiment); -} -#message-actions-tts:hover, #message-tts:hover{ - background-color: var(--brand-experiment); - color: #fff; -} -#message-actions-copy-id, #message-devmode-copy-id { - color: lightsalmon; -} -#message-actions-copy-id:hover #message-devmode-copy-id:hover{ - background-color: lightsalmon; - color: #fff; -} -#message-edit, #message-actions-edit{ - color: steelblue; -} -#message-edit:hover, #message-actions-edit:hover{ - background-color: steelblue; - color: #fff; -} -#message-add-reaction{ - color: goldenrod; -} -#message-add-reaction:hover{ - background-color: goldenrod; - color: #fff; -} -/** 870552834410680370 */ - -/** - * Snippet from #css-snippets applied the Nov 12, 2021 at 11:23:11 AM - * Created by Hekky#6869 (346338830011596800) - * Snippet ID: 870054555025543219 - */ -:root { - --sidebar-width: 240px; /* change if your theme resizes the sidebar */ -} -.chat-3bRxxu.threadSidebarOpen-vdkwIh { - resize: horizontal; - min-width: 400px; - max-width: calc(100vw - var(--sidebar-width) - 72px - 400px); -} -.chat-3bRxxu:not(.threadSidebarOpen-vdkwIh) { - width: unset !important; - flex: 1 1 auto; -} -.threadSidebar-1o3BTy { - width: unset; - flex: 1 1 auto; -} -/** 870054555025543219 */ - - - - - -/** - * Snippet from #css-snippets applied the Nov 12, 2021 at 11:24:53 AM - * Created by mr_miner#9699 (678541597654253600) - * Snippet ID: 864076332505497641 - */ -.container-3auIfb[style*="opacity: 1; background-color: hsl(218, calc(var(--saturation-factor, 1) * 4.6%), 46.9%);"]{ - background-color: #c13a3a !important; - fill: #c13a3a !important; -} -.container-3auIfb[style*="opacity: 1; background-color: hsl(218, calc(var(--saturation-factor, 1) * 4.6%), 46.9%);"] path{ - fill: #c13a3a !important; -} -/** 864076332505497641 */ - - - - - - - -/** - * Snippet from #css-snippets applied the Dec 22, 2021 at 2:53:56 PM - * Created by Freeplay#5676 (158296466119458816) - * Snippet ID: 921928336802971699 - */ -/* Horizontally listed media */ -[id*="message-accessories-"] { - display: flex; - flex-wrap: wrap; -} -[id*="message-accessories-"] > * { - margin-right: .4em !important; - min-height: 100% !important; -} -[id*="message-accessories-"] > div > a { - display: flex; - align-items: center; - min-height: 100%; - background-color: var(--background-secondary); -} -[id*="message-reactions"] { - width: 100%; -} -/** 921928336802971699 */ - -/** - * Snippet from #css-snippets applied the Jan 9, 2022 at 12:34:26 AM - * Created by ThatOtherAndrew#8134 (650459420635168769) - * Snippet ID: 929440925791449148 - */ -[title^="https://discord.com/channels/"], [title^="https://ptb.discord.com/channels/"], [title^="https://canary.discord.com/channels/"] { - line-height: 0; - font-size: 0; - text-decoration-color: #fff !important; -} -[title^="https://discord.com/channels/"]::before, [title^="https://ptb.discord.com/channels/"]::before, [title^="https://canary.discord.com/channels/"]::before { - content: "✉ Jump to Message"; - font-size: 16px; - user-select: text; - font-weight: 500; - transition: background-color 50ms ease-out, color 50ms ease-out; - cursor: pointer; - border-radius: 3px; - padding: 0 2px; - background: hsla(235, calc(var(--saturation-factor, 1) * 85.6%), 64.7%, 0.3); - color: hsl(236, calc(var(--saturation-factor, 1) * 83.3%), 92.9%); -} -[title^="https://discord.com/channels/"]:hover::before, [title^="https://ptb.discord.com/channels/"]:hover::before, [title^="https://canary.discord.com/channels/"]:hover::before { - background-color: hsl(235, calc(var(--saturation-factor, 1) * 85.6%), 64.7%); - color: #fff; -} -/** 929440925791449148 */ - -/** - * Snippet from #css-snippets applied the Jan 9, 2022 at 12:34:48 AM - * Created by george.#0550 (590224302578860065) - * Snippet ID: 929485841229815859 - */ -.wrapper-28eC3z svg { - overflow: hidden; -} -/** 929485841229815859 */ - -/** - * Snippet from #css-snippets applied the Jan 16, 2022 at 12:09:04 AM - * Created by 5h3i1ah#6253 (268947234861744130) - * Snippet ID: 931904851586195476 - */ -.pronoundb-pronouns { - font-size: 0.75rem !important; - height: 1.25rem; - cursor: default; - font-weight: 500; -} -/** 931904851586195476 */ - -/** - * Snippet from #css-snippets applied the 7 Mar 2022 at 22:05:26 - * Created by katlyn#9607 (250322741406859265) - * Snippet ID: 949006652944834560 - */ -.clamped-2ZePhX { - -webkit-line-clamp: unset; -} -/** 949006652944834560 */ - -/** - * Snippet from #css-snippets applied the 11 Mar 2022 at 15:48:07 - * Created by Davri#0015 (457579346282938368) - * Snippet ID: 951894639596666940 - */ -.modal-3Crloo .wrapper-2bCXfR { - opacity: 0; - animation: mediapopup 190ms ease-out forwards; - animation-delay: 80ms; -} -@keyframes mediapopup { - 0% { - transform: scale(0.65); - } - 70% { - opacity: 1; - transform: scale(1.012); - } - 100% { - opacity: 1; - transform: scale(1); - } -} -/** 951894639596666940 */ - -/** - * Snippet from #css-snippets applied the 21 Jun 2022 at 18:39:11 - * Created by Snare-Hawk#6331 (301082610438897664) - * Snippet ID: 988930072675246080 - */ -/* adds horizontal lines to space out pronouns in about me */ -.pronoundb-pronouns.aboutMeBody-1J8rhz, -.aboutMeBody-1J8rhz.markup-eYLPri.clamped-2ZePhX { - --separation: 10px 0; - --borders: 1px var(--background-modifier-accent) solid; - font-size: 14px !important; - margin: var(--separation); - padding: var(--separation); - border-top: var(--borders); - border-bottom: var(--borders); -} -.aboutMeTitle-3pjiS7 { - display: none; -} -/** 988930072675246080 */ \ No newline at end of file diff --git a/users/infinidoge/config/powercord/user-birthdays.json b/users/infinidoge/config/powercord/user-birthdays.json deleted file mode 100644 index 7b85bba..0000000 --- a/users/infinidoge/config/powercord/user-birthdays.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "alertSound": "", - "alertToasts": true, - "alertDesktop": false, - "friendsToolbarIcon": true, - "toolbarIcon": true -} \ No newline at end of file diff --git a/users/infinidoge/default.nix b/users/infinidoge/default.nix index 4a0c347..fb3af5a 100644 --- a/users/infinidoge/default.nix +++ b/users/infinidoge/default.nix @@ -46,7 +46,7 @@ in # libreoffice-fresh - discord-canary # FIXME: powercord + discord-canary (lib.optional main.modules.hardware.form.desktop qbittorrent) ])