Commit Graph

183 Commits

Author SHA1 Message Date
jeffvli 82a566aee1 add artist release type configuration, fix page configurations 2025-12-29 20:54:58 -08:00
Leonardo Salgueiro df0d4b7032 feat: adding setting to show/hide user ratings (#1426)
* adding show/hide user ratings setting
2025-12-28 01:04:50 -08:00
BatteredBunny 63015195b0 feat: Add DISABLE_AUTO_UPDATES env variable for disabling updates in the application entirely (#1446) 2025-12-28 00:50:55 -08:00
jeffvli f904aafd4a add isEnabled property for playback filters 2025-12-27 18:12:14 -08:00
jeffvli 8205eeed22 split lyrics settings by key (#1389) 2025-12-25 01:29:31 -08:00
jeffvli 5eb2cff6e9 add additional configuration to player sidebar
- allow reordering of panels
- allow separation between lyrics and visualizer panels
- allow resize of panels
2025-12-24 23:20:00 -08:00
jeffvli ce570eddd2 improve auto dj to trigger on remaining songs change 2025-12-23 21:05:40 -08:00
farfromrefuge a322717e0e feat: add artist radio and track radio (in context menu) (#1437)
* Add API support for artist radio and track radio features

* Add translation strings and settings UI for artist radio count

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-23 20:46:19 -08:00
Jeff 25bfb65b6d Add image URL generation at runtime to allow for dynamic image sizes (#1439)
* add getImageUrl to domain endpoints

* add new ItemImage component and hooks to generate image url

* add configuration for image resolution based on types
2025-12-23 20:18:52 -08:00
jeffvli 96d2699a2d add migration to clear all original store settings (#1396) 2025-12-15 19:07:12 -08:00
jeffvli 3c2af4bd1a more minor theme adjustments 2025-12-14 19:33:03 -08:00
jeffvli 649f541077 reorder theme settings to the top of general 2025-12-14 14:55:10 -08:00
jeffvli 69de9a98f0 add new app themes 2025-12-14 06:06:27 -08:00
Jeff 7ed847fecb Add internet radio (#1384) 2025-12-13 21:26:33 -08:00
jeffvli 65a7c3440b add player autodj (#7) 2025-12-07 15:04:39 -08:00
jeffvli 512a769742 add log level setting 2025-12-07 00:50:09 -08:00
jeffvli dace0259aa move settings page back into modal 2025-12-05 18:54:36 -08:00
jeffvli b72af98a1b maintain defined order on reorder configurations (#1322) 2025-12-04 21:43:08 -08:00
jeffvli 4d626377ef fix mediasession controls 2025-12-04 01:31:57 -08:00
jeffvli ccdd16292a add player filters to omit songs from queue based on criteria 2025-12-03 22:11:18 -08:00
jeffvli 5540ca4e32 improve handlers for artist / sidebar configuration 2025-12-03 20:51:10 -08:00
jeffvli a27ddfe746 add genres to home route configuration 2025-12-03 20:22:49 -08:00
jeffvli ee5d2b12c1 add setting to follow current song on playqueue 2025-12-03 20:11:38 -08:00
jeffvli 355257104d reorganize external link settings 2025-12-02 20:25:42 -08:00
jeffvli cab16b0893 add configuration for audio status fade 2025-12-02 16:59:36 -08:00
jeffvli c7bf0d8fb8 add visualizer to sidebar 2025-11-30 18:14:05 -08:00
Kendall Garner dd3d05c813 add web audio, replaygain, visualizer (#1289)
* add web audio, replaygain, visualizer

* remove volume multiplication in gain

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2025-11-30 03:25:12 -08:00
jeffvli cb3c0fe0d4 add favorites list 2025-11-30 01:12:29 -08:00
jeffvli 108ba53be2 lint all files 2025-11-29 19:33:42 -08:00
jeffvli 96e9d54f4e add sidebar panel lyrics 2025-11-29 19:33:41 -08:00
jeffvli 6094a520e2 support custom smart playlist tags 2025-11-29 19:33:41 -08:00
jeffvli 9e1cdcc93e remove max width from list pages 2025-11-29 19:33:40 -08:00
jeffvli ffa9d165f2 refactor shuffle all modal for styles and loading state 2025-11-29 19:33:39 -08:00
jeffvli 778d878349 add umami analytics integration 2025-11-29 19:33:39 -08:00
jeffvli 8ad5e26c2f move remote settings to window tab 2025-11-29 19:33:39 -08:00
jeffvli a2926ef47e reorganize and redesign settings 2025-11-29 19:33:38 -08:00
jeffvli 54a8c8c3a4 move settings page to modal instead of route 2025-11-29 19:33:37 -08:00
jeffvli 0dff13c43f crossfade player enhancements, reorganize settings 2025-11-29 19:33:35 -08:00
jeffvli 31d9ab048d fix container ref instances 2025-11-29 19:33:32 -08:00
jeffvli 8eb90ebf06 add new context menu implementation 2025-11-29 19:32:24 -08:00
jeffvli 9e508f0a02 fix crossfade settings to update player store 2025-11-29 19:30:47 -08:00
jeffvli 9fd4abec25 re-implement mpv with new player 2025-11-29 19:30:47 -08:00
jeffvli 550ba4f768 temporarily remove old player implementations to prevent broken app 2025-11-29 19:30:46 -08:00
jeffvli b685ec370a remove barrel files in renderer 2025-11-02 01:39:01 -07:00
Xudong Zhou 829c27a5e9 Prevent Media Session Handling on MPV (#1212)
* Remove MediaSession Handling on MPV

* Add playbackType to config.json for Main Thread Access

* Disabling settings without Hiding
2025-11-01 18:26:16 -07:00
jeffvli 3d66a15ae6 fix setting description for sidebar (collapsed) nav (#1218) 2025-10-31 17:28:36 -07:00
Xudong Zhou dd34888961 Fix Lyric Translation Not Resetting (#1208)
* Refactor lyrics translation and index handling

* Add auto translation toggle to lyric settings

* Add enableAutoTranslation setting to lyrics
2025-10-31 17:08:10 -07:00
Jake King a9f2b083fa Import / Export Feishin Settings (#1163)
* Create a shared DragDrop Zone

- This zone allows the dropping of files
- The zone allows validation by parent
- The zone allows customisation like icon shown

* Import Settings

- Ability to import settings from a JSON file
- Validation to ensure file compatibility
- Visualiser for viewing string differences

* i18n

- Moved all hardcoded values to be en localised

* Zod / Validation

This commit contains the code to move settings to using ZOD, the reason for this is so that we can validate the settings schema that is being imported.

This commit also adds various validation and transforms to ensure the settings being reimported match values we expect.

I also removed the original crude validation and replaced it with the new ZOD parser that will handle this for us.

Finally the "styles-settings" component will listen to any external content updates and update its value, the reasoning is the external import wouldn't update the existing value.


- Split Settings schema into two parts, schema that is validated on import and schema that is not
- Schemas are merged to make the full SettingsStateSchema

* Migrate during validation

- Migration is done as part of validation
- Updated the store version to v10 as there has been changes to the settings
- Migrate will now add the fields from v9 to v10


- the build was failing due to ids not being mapped to their enum values

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2025-10-28 20:54:13 -07:00
Tarulia a9af1e91d4 Disable Media Keys with MediaSession on Windows (#1207)
In f07393c8 we enabled the MediaSession API, which from Chromium's side
brings its own native way of handling Global Media Keys. However, it
turns out having this enabled seemingly conflicts with Windows 11's SMTC
implementation when we also bind the Media Keys using Electron's Global
Hotkeys API (Windows 10 is apparently fine, but now EOL).

Globally passing `HardwareMediaKeyHandling` to `disable-features` was
considered, however using the MediaSession API requires
`HardwareMediaKeyHandling` to be enabled, so this is not an option.

Instead, with MediaSession enabled we need to let Chromium handle the
Media Keys, while without MediaSession we bind our own Global Hot Keys
for users that have them enabled in the settings.

Co-authored-by: Xudong Zhou <godzmichael@outlook.com>
2025-10-21 21:48:09 -07:00
jeffvli b16e57710b hide mediasession setting for non-desktop 2025-10-13 12:06:03 -07:00