* Move the shelf next to the editor
Fixing a couple of bugs and issues and moving the shelf with pictures beside the image editor for better usage and much better look from the previous scroller implementation
* misc
---------
Co-authored-by: thororen <78185467+thororen1234@users.noreply.github.com>
This had a bad interaction with SupportHelper, where it could be used to add a "Run Snippet" button
to any linked message, which when clicked would run code contained in that message
Reported by Kaede
* BetterImageEditor: keep your own pictures in the image picker and cropper
Discord archives past avatars only after cropping and keeps nothing for
banners. This holds the file you chose before the cropper touches it,
remembers how you framed it, and puts both on a shelf in the picker and
under the crop window.
* Take over Discord's recent avatars slot instead of sitting above it
* Trim comments
* Do not offer a cropped copy of a picture that already is one
* List every image slot in the description
* Drop decorations from the description
* Serialise library writes and tighten the editor types
Index writers now take turns, so saving a crop and adding its cropped copy
cannot overwrite each other. Imported cropped copies point at their new
source ids. A picture only counts as worn once the cropper confirms it, and
reset or close clears it. Classes use the vc-bie- prefix and the editor
props are typed instead of any.
* Listen for profile events through the flux field
* Move the shelf into its own file and drop the comments
* Run clear through the write queue
* Fixed another bunch of bugs because I am stupid.
* Keep imported crop links only when they point somewhere real
A cropped picture remembers the id of the original it was cut from. On import
that id used to be kept as-is whenever the original was not in the file, but an
id from someone else's library matches nothing here, so cropping the same
picture again piled up another copy instead of replacing the previous one. The
link now survives only when it remaps to an imported picture or already names an
entry in this library.
* the last bunch of fixes, so Reptile isn’t screaming at me anymore
* Tie a cropped picture to its original by signature
The link stored the original's id, and ids die when a picture is trimmed off
the shelf, forgotten, or carried into another library. A crop left pointing at a
dead id no longer matched its original, so re-cropping stacked up copies instead
of replacing the previous one. A signature is the same for the same bytes, so
the link now survives all three, and the import no longer has to remap ids.
* Keep crop links working when the library predates the signature change
Old libraries and old exports store the original's id in from, which stopped matching anything once crops were linked by signature. Imports now translate an id back to its signature, and add() accepts either.
* Drop a crop's source link when the import can't resolve it
An old file can hold a crop whose original was left out, and there is nothing in the file that says which picture that id was. Keeping it stored a link that could never match. A signature is recognisable on sight, so anything that isn't one and isn't in the file is dropped.
* Update index.tsx
* Update plugin description for BetterImageEditor
* Update index.tsx
* Removal of the query selector. Now the plugin shouldn't have any
* Update src/equicordplugins/betterImageEditor/index.tsx
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Use pluralise for the toast counts
---------
Co-authored-by: thororen <78185467+thororen1234@users.noreply.github.com>
Co-authored-by: Just_Me <github@angel-dust.8shield.net>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* feat(iRememberYou): show server and DM group ID next to name in menu
* feat(iRememberYou): add tt to authors list
* fix(iRememberYou): only render server ID on guilds (oops: thought DM collections had valid group IDs)
* feat(RichPresence): Add Navidrome RPC integration
* fix: Update Star123451 ID
* Implement Subsonic GetNowPlaying for album art
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(Navidrome): address PR review comments, remove Uguu.se plugin violation
* fix(Navidrome) Fix clearing activities, add standard music RPC default config
* fix(Navidrome) Patched Credential Leak in cover art fallback code, fix non-selectable settings entries
* fix(Navidrome) fix settings cache bug, implement typescript hygiene suggestion, and make fetching album art a toggle, added note that grabbing album art exposes server URL and Navidrome username to Discord.
* fix(Navidrome): Changed cachedSettingsJSON to only affect Navidrome-specific settings, updated polling interval slider to take affect during runtime, not just start up
* feat(RichPresence): overhaul Navidrome RPC with formatting system and activity types, add fast.fm album art fetching, update settings to instantly update
* fix(RichPresence) Fix last.fm cache leak, add privacy disclosure for last.fm album fetch method, remove dead settings
* fix(RichPresence): remove unused import and fix default activity type inconsistency
* fix(RichPresence): add parseUrl valdiation to serverUrl/publicUrl, fix SwitchSetting regression, strip auth param from getCoverArt, added abort signal to prevent accidental presence revival when disabled, remove "as const" rule violation for settings.use()
* fix(RichPresense): Fix forceUpdate orphan timer leaks, correct MD5 behavior for passwords using accented characters
* fix(RichPresence): remove MD5 auth for simpler hex auth, include optional space to provide a last.fm API key, implement lodash.debounce in place of setTimeout, fixed navidrome intersepting settings from other RPC included in the plugin
* fix(RichPresence): fix hex auth code to support special characters
* fix(RichPresence): fix lastFmCache invalidation code
* fix(RichPresence): remove unused lodash import from SettingsPanel.tsx
* chore(richPresence): remove violating comments in navidrome.ts
* chore(richPresence): update navidrome.ts
* fix(richPresence): change settings to use settings.plain, fix flicker found when changing non-related plugin settings, correct || vs ?? rule violations, fetch large and small image concurrently to speed up presence update
* feat(richPresence): add status display type option for navidrome rich presence
* fix(richPresence): add lastMinutesAgo cache to detect if the same song is on repeat in order to reset song progress bar
* fix(richPresence): Fix to only show music of the username given in navidrome settings
* fix(richPresence): remove stale onServiceChange import
* fix(richPresence): fix stale activity cache when same track is replayed
* fix(richPresence): omit end property when no media duration is known
* chore(richPresence): add instance-based album art fetching disclaimer for local instances
* chore(richPresence): centralize get_activity() and forceUpdate() JSON.stringify usage
* fix(richPresence): removed unused settings migration in migrartion.ts, remove empty lines in SettingsPanel, revert syncServices to use settings.store, remove local ip instances support
* fix(richPresence): revert to md5 implementation in utils.ts for secure auth, fix album fetching from navidrome instances
* chore(richPrecence): switch to ts-md5 source for a robust MD5 implementation
* richPresence(fix): simplify public instance checking
* boom
* richPresence(fix): fix md5 implementation and revert back to getCoverArt for navidrome instance album art fetching
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: thororen1234 <78185467+thororen1234@users.noreply.github.com>
* feat(plugin): ExtraConnectionLinks
* feat(EquicordHelper): add being able to open links to more connections
* Remove unused connectionLinks from EquicordHelper
Removed unused connectionLinks array and its related logic.
* Remove ConnectionLink interface from utils.tsx
Removed the ConnectionLink interface and its documentation.
---------
Co-authored-by: thororen <78185467+thororen1234@users.noreply.github.com>