Deluan
b35928e598
fix: update return types in minimalPlugin and wikimediaPlugin methods to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:24:54 -05:00
Deluan
3c83c44dc7
feat: add unit tests for Discord plugin and RPC functionality
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:15:35 -05:00
Deluan
9522b060d5
feat: add PDK abstraction layer with mock support for non-WASM builds
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 15:44:32 -05:00
Deluan
a2ace6e84e
refactor: Discord RPC struct to encapsulate WebSocket logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 21:02:01 -05:00
Deluan
6698e94a9c
fix(plugins): update IsAuthorized method to return boolean instead of response object
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4678da1e5b
docs: update plugin registration docs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
59085145f5
refactor(plugins): rename scheduler callback methods for consistency and clarity
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e6e2582abf
refactor(plugins): update macro names for websocket and metadata registration to improve clarity and consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
06d75476f6
refactor(plugins): update Discord Rich Presence and Library Inspector plugins to use nd-pdk for service calls and implement lifecycle management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4f260c058d
refactor(plugins): reorganize Rust output structure to follow standard conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
67ab3dc81a
feat: implement Rust PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ae41164c1f
refactor(plugins): consolidate PDK module path and update Go version to 1.25
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4ea54fe176
build: mark .wasm files as intermediate for cleanup after building .ndp
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
7cad08ad09
refactor(plugins): update function signatures to return values directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
11d99ef673
refactor(plugins): update error handling for methods to return errors directly
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
f1b85e6a19
refactor(plugins): update scrobbler interface to return errors directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
d43724c571
refactor(plugins): streamline plugin function signatures and error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
301b2c850c
refactor(plugins): consistent naming/types across PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
547363eab7
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 5
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
2e716ed780
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 3
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6d3c29912b
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 2 (2)
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
cd3ee136f4
feat(plugins): generate Go client stubs for non-WASM platforms
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
3692a274b4
feat(plugins): add Go client library with host function wrappers and documentation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
13ca6149a9
feat(plugins): enhance Rust code generation with typed struct support and improved type handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:31 -05:00
Deluan
7fd996b600
refactor(plugins): update JSON field names to camelCase for consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:31 -05:00
Deluan
8dad4f4a9c
feat(plugins): add Rust host function library and example implementation of Discord Rich Presence plugin in Rust
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:31 -05:00
Deluan
2c6eef168c
docs: enhance README with Extism plugin development resources and recommendations
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:31 -05:00
Deluan
4e392f7b07
docs: update README for .ndp plugin packaging and installation instructions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:31 -05:00
Deluan
e52b757cd4
feat(plugins): add support for .ndp plugin packages and update build process
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:31 -05:00
Deluan
b592b1f2fa
fix(build): update target to wasm32-wasip1 for improved WASI support
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:30 -05:00
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
aa83d3af6c
docs: update READMEs
...
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
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
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
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
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
1a7ba7f293
feat: rewrite the wikimedia plugin using the XTP CLI
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
7a9a63b219
fix: update wasm build rule to include all Go files in the directory
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
1733129537
refactor(plugins): clean up manifest struct and improve plugin loading logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
876ecb29c8
feat(plugins): enhance plugin logging and set User-Agent header
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
5ddc763bb4
feat(plugins): add Wikimedia plugin for Navidrome to fetch artist metadata
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
b3ec005fa2
feat(plugins): implement new plugin system with using Extism
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00