13 months ago, I started working on a plugin system for Funkwhale.
The idea was to allow more use cases, without increasing the maintainance burden of the core application.
Other this 13 months, I've tried and ditched 3 implementations of the plugin system.
However, the 4th seem to be one I'll keep!
I see three main use cases for plugins:
1. Notify third-party systems when something happen (e.g scrobble tracks to Last.fm)
2. Import tracks from third-party systems (e.g play your music hosted at your Nextcloud instance
3. Implement some API endpoints required by third party systems (e.g a prometheus metrics endpoint for monitoring).
I've included some screenshots below to demonstrate how the scrobller plugin is configured.
From a plugin developper perspective, it's rather easy (I think) to write a plugin. There's very little boilerplate:
- create a dir for your plugin
- create a `funkwhale_startup.py` file, that will hold your plugin configuration and allow you to override certain things during startup (such as installing dependencies)
- create a `funkwhale_ready.py` file, this is typically where you'll connect to various hooks
Plugin config looks like this:
This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!