Deluan
095ab6becf
docs: update README to reflect JSON configuration format for plugins
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
422c1617bc
feat(plugins): add Library Inspector plugin for periodic library inspection and file size logging
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
1ad824c724
feat(library): add Library service for metadata access and filesystem integration
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
aa83d3af6c
docs: update READMEs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
505b3c529f
refactor(plugins): introduce ToggleEnabledSwitch for managing plugin enable/disable state
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
5201f8a5eb
refactor(plugins): update newWebSocketService to use WebSocketPermission for allowed hosts
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
17d0e48a01
refactor(plugins): streamline error handling and improve plugin retrieval logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
e769ddf76c
refactor(plugins): break manager.go into smaller, focused files
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
bad9e1fb5e
refactor(plugins): enhance debug logging for plugin actions and recompile logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
6321dc1622
feat(plugins): add subsonicRouter to Manager and refactor host service registration
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
7c6c49c7a1
refactor(plugins): update GetManager to accept DataStore parameter
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
3605d5bf08
refactor(plugins): inject PluginManager into native API
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
064e73f958
feat(plugins UI): add error handling for plugin enable/disable actions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
dd6d18de0a
feat(plugins UI): refactor to use MUI and RA components
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
78f5ffce99
feat(plugins UI): enhance PluginShow with author, website, and permissions display
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
0cd44d2960
refactor(plugins UI): improve PluginList structure
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
2cfa902123
feat(plugins): optimize plugin change detection
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
2cc29793a6
feat(plugins UI): add PluginList and PluginShow components with plugin management functionality
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
690785120a
feat(plugins UI): implement plugin synchronization with database for add, update, and remove actions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
9c626183d0
feat(plugins UI): add plugin management routes and middleware
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
52c3985508
feat(plugins UI): add plugin repository and database support
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
f66c888e09
test: move purgeCacheBySize unit tests
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
8e9737ab95
feat: implement plugin cache purging functionality
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
a05fddbf7d
add trace message for plugin recompiles
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
18723c6aa8
feat: extend plugin watcher with improved logging and debounce duration adjustment
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
97a10e8728
docs: update README to include WebSocket callback schema in plugin documentation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
6107063517
feat: enable parallel loading of plugins during startup
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
980df67445
feat: add Webhook Scrobbler plugin in Rust to send HTTP notifications on scrobble events
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
9fbcf6ceb3
feat: update Python plugin documentation and usage instructions for host function wrappers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
cbd74a3a96
feat: add generated host function wrappers for Scheduler and SubsonicAPI services
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
08b952ef50
feat: generate Python client wrappers for various host services
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
37f3b838d2
feat: add Now Playing Logger plugin to showcase calling host functions from Python plugins
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
3b9d426c5c
feat: add trace logging for plugin availability and error handling in agents
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
Deluan
38d80a07de
feat: include plugin capabilities in loading log message
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
83eaad7292
feat: update Makefile and README to clarify Go plugin usage
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
870cd49307
feat: add Cover Art Archive plugin as an example of Python plugin
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
513c969c40
feat: add help target to Makefile for plugin usage instructions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
dd238e74fb
refactor: rename fake plugins to test plugins for clarity in integration tests
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
06e6c09882
refactor: error handling in various plugins to convert response.Error to Go errors
...
- Updated error handling in `nd_host_scheduler.go`, `nd_host_websocket.go`, `nd_host_artwork.go`, `nd_host_cache.go`, and `nd_host_subsonicapi.go` to convert string errors from responses into Go errors.
- Removed redundant error checks in test data plugins for cleaner code.
- Ensured consistent error handling across all plugins to improve reliability and maintainability.
2025-12-31 17:06:29 -05:00
Deluan
cab656dbe5
refactor: host function wrappers to use structured request and response types
...
- Updated the host function signatures in `nd_host_artwork.go`, `nd_host_scheduler.go`, `nd_host_subsonicapi.go`, and `nd_host_websocket.go` to accept a single parameter for JSON requests.
- Introduced structured request and response types for various cache operations in `nd_host_cache.go`.
- Modified cache functions to marshal requests to JSON and unmarshal responses, improving error handling and code clarity.
- Removed redundant memory allocation for string parameters in favor of JSON marshaling.
- Enhanced error handling in WebSocket and cache operations to return structured error responses.
2025-12-31 17:06:29 -05:00
Deluan
b9fceac12c
feat: add Discord Rich Presence example plugin for Navidrome integration
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
f0d6fd4bc8
feat: add Cache service for in-memory TTL-based caching in plugins
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
66c396413c
refactor: moved public URL builders to avoid import cycles
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
a78bbca741
feat: implement Artwork service for generating artwork URLs in Navidrome plugins - WIP
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
e60efde4d4
refactor: simplify schedule cloning in Close method and enhance plugin cleanup error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
e200b70ea6
refactor: rename pluginInstance to plugin for consistency across the codebase
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
8bfb14814e
refactor: rename plugin.create() to plugin.instance()
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
20c7e6c915
fix: use context.Background() in invokeCallback for scheduled tasks
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
9da40af6fb
feat: add Crypto Ticker example plugin for real-time cryptocurrency price updates via Coinbase WebSocket API
...
Also add the lifecycle capability
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
d1225b7828
feat: implement WebSocket service for plugin integration and connection management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00