Commit Graph

107 Commits

Author SHA1 Message Date
Fabio Manganiello 1b9094a36b Some hysterical guy has Spotify has decided to change the playlists URI
format again in the last couple of months with no notice nor
back-compatibility plan. Normalizing playlist URIs in the new (or
old-old?) format while innerly cursing at the incompetency of Spotify
2019-02-28 16:36:11 +01:00
Fabio Manganiello 1103e417e1 Managing optional arguments properly on _exec 2019-02-13 23:50:40 +01:00
Fabio Manganiello 32cdab5530 Always handle at least one retry on mpd plugin _exec method, the TCP connection to a mopidy server can really be shaky 2019-02-13 17:35:18 +01:00
Fabio Manganiello 077bb0686b Don't break if no data is received from the Snapcast server 2019-02-07 09:05:27 +01:00
Fabio Manganiello 05a1713b92 Make sure that extra arguments on the Spotify URI are discarded during the URI parse 2019-01-30 09:08:29 +01:00
Fabio Manganiello ee0040fba6 More robust Spotify URI parsing that discards optional arguments (e.g. si=) passed to the URL 2019-01-30 09:04:18 +01:00
Fabio Manganiello 0e6f8bbb0b typo 2019-01-14 19:54:59 +01:00
Fabio Manganiello ca24243449 As python-mpd2 doesn't seem to be quite thread-safe, the mpd plugin entry-point has now got a reentrant lock 2019-01-14 19:52:54 +01:00
Fabio Manganiello 33fd226fa1 Don't throw the exception if a certain Snapcast host is not reachable 2019-01-11 11:50:37 +01:00
Fabio Manganiello 29be2945cc Log trace before attempting a Snapcast connection 2019-01-11 11:46:13 +01:00
Fabio Manganiello a190184b0c Using an auxiliary map to keep track of the playing hosts to prevent errors when the items are removed by the worker threads while iterating them 2019-01-10 18:14:41 +01:00
Fabio Manganiello 2c8099e7ae Apply stream name filtering logic also to HTTP streams 2019-01-10 18:01:24 +01:00
Fabio Manganiello f156e9c199 Refactored plugin so that errors are properly returned up the stack, client connections are lazy and re-initialized upon error 2019-01-10 17:51:33 +01:00
Fabio Manganiello 8759dafa0e Let plugin fail if unable to retrieve the status, so it can rely on the automatic reload mechanism instead of swallowing the error 2019-01-10 17:28:49 +01:00
Fabio Manganiello abe80db47e Changed default for exclude_local from True to False 2019-01-10 17:25:25 +01:00
Fabio Manganiello c619d89fa4 Added method to programmatically get the list of active Snapcast connections 2019-01-10 17:22:52 +01:00
Fabio Manganiello a349b45ba4 Removed get_plugin utils method from web server, it messes up with also with the reentrant locks as it runs in another process. Refactored Snapcast frontend to get the backend hosts asynchronously through a plugin method 2019-01-10 11:52:39 +01:00
Fabio Manganiello 544979e7ff - Added `position` argument to `music.mpd.add`
- Added RSS feed parser plugin
2019-01-09 18:43:13 +01:00
Fabio Manganiello 3c385a601f Exposing backend hosts and ports as both lists and JSON on Snapcast plugin 2019-01-08 18:24:59 +01:00
Fabio Manganiello 80bd5b684c Added support for setting/changing group streams on Snapcast 2019-01-08 17:43:20 +01:00
Fabio Manganiello 19eab381ae Weird Jinja bug broke the web panel load when using JSON parse, had to refactor it a bit to fix it 2019-01-08 13:53:21 +01:00
Fabio Manganiello d91e494940 Added group and host modals and settings to Snapcast UI 2019-01-08 12:54:33 +01:00
Fabio Manganiello 004868f526 Added skeleton UI for Snapcast plugin on web panel 2019-01-07 15:34:31 +01:00
Fabio Manganiello bbc3a9e82a Fixed Snapcast status method 2019-01-06 23:46:52 +01:00
Fabio Manganiello efad5a2bd7 Added Snapcast backend 2019-01-06 19:19:30 +01:00
Fabio Manganiello 2fba3109b3 Wrapped sample response in codeblock 2019-01-06 12:56:30 +01:00
Fabio Manganiello e97ce5d676 Added Snapcast plugin 2019-01-06 02:19:56 +01:00
Fabio Manganiello 240abb627d Fix old Spotify playlists URI format 2019-01-03 10:37:16 +01:00
Fabio Manganiello fc3f53f32b Retry logic for getting mpd status 2018-11-07 18:04:37 +01:00
Fabio Manganiello cbfcb76c21 volup/voldown fix for mpd plugin 2018-11-04 01:35:33 +01:00
Fabio Manganiello b88f7fcecc Added play_if_paused_or_stopped method to mpd plugin 2018-09-25 19:40:00 +02:00
Fabio Manganiello 38f61298f8 Support for bulk mpd add 2018-09-25 09:42:46 +02:00
Fabio Manganiello bbdf11b9ce Added shuffle method to music.mpd 2018-08-06 22:44:02 +02:00
Fabio Manganiello 66d78c8615 [#61] Plugins actions refactoring
- Using `@action` annotation to indicate methods that are allowed to be
executed as actions

- The output and errors of an action are automatically wrapped into a
`Response` object without any response build required on the plugin side
2018-07-06 02:08:38 +02:00
Fabio Manganiello ad1c87b2be Adding more plugins documentation 2018-06-25 00:49:45 +02:00
Fabio Manganiello 96e3acb20f Added MPD play_if_paused and pause_if_playing methods 2018-05-25 18:04:37 +02:00
Fabio Manganiello 2f8c74c8e3 - Added Pushbullet JS logic to show mirror notifications on web FE
- Added JS and CSS files for dashboard and widgets
2018-05-04 17:25:12 +02:00
Fabio Manganiello f717315136 Added music.mpd.searchaddplaylist method 2018-04-15 16:31:23 +02:00
Fabio Manganiello 87fb8855b7 - Show Spotify results first from MPD search, if available
- More granular calculation of the match score
2018-04-15 11:15:43 +02:00
Fabio Manganiello 73c74654d1 - Better MPD filter management - you can now pass filters as arrays like
['artist', 'Led Zeppelin', 'title', 'Stairway To Heaven'] instead of
relying on one single type-filter pair

- Improved condition matching - don't skip the last condition token if
there are still event tokens to add
2018-04-14 23:58:48 +02:00
Fabio Manganiello decadee00a Implemented music search from web panel 2018-04-12 13:04:56 +02:00
Fabio Manganiello 40efb3f9c7 Support for selecting and playing tracks and playlists in web interface 2018-02-05 09:45:35 +01:00
Fabio Manganiello 1cab75757b - Support for playlist update events handling on MPD
- Support for playlist updates on the web interface
- Support for selecting and playing tracks in the web interface
2018-02-05 00:55:19 +01:00
Fabio Manganiello de2e50fefa Implemented support for track random seek 2018-01-31 10:35:14 +01:00
Fabio Manganiello 7cd15d35e1 Return new status on random and repeat calls 2018-01-31 01:39:04 +01:00
Fabio Manganiello 968b71e946 - Implemented support for shuffle, random and set volume on the UI
- Reduced the websocket ping poll frequency to 1 second
2018-01-31 01:32:07 +01:00
Fabio Manganiello 28bc4c748e UI improvements + support for MPD playlists and folders 2018-01-30 00:54:46 +01:00
Fabio Manganiello 4fa7a08006 Added mpd backend 2018-01-13 02:52:06 +01:00
Fabio Manganiello 08189653bb s/playlistload/load/ 2017-12-29 12:48:14 +01:00
Fabio Manganiello b6733b3e6a Also start playback when adding a playlist 2017-12-29 12:44:49 +01:00
Fabio Manganiello 26c3afee68 Implemented play_or_stop in mpd 2017-12-28 13:13:09 +01:00
Fabio Manganiello 92b691041e Added more general media control plugin, #10 2017-12-27 10:19:35 +01:00
Fabio Manganiello 6928e440bc Support for Flic button events 2017-12-24 13:15:37 +01:00
Fabio Manganiello 4a04e51da7 Major refactoring #2 2017-12-18 01:10:51 +01:00
Fabio Manganiello 33c4d9fb52 s/platypush.response/platypush.message.response/g 2017-12-13 04:21:26 +01:00
Fabio Manganiello 491c2cd571 * More consistent management of responses
* Better per-plugin/per-backend logging management
2017-12-13 03:37:28 +01:00
Fabio Manganiello 6c2ea3767c s/runbullet/platypush/g 2017-12-11 20:30:57 +01:00