Commit Graph

165 Commits

Author SHA1 Message Date
Fabio Manganiello ce882381c0 Fixes to torrent search + SASS library migration
- Support for custom PopcornTime API mirror/base URL.

- Full support for TV series search.

- Fixed torrent search (now using a different PopcornTime API mirror).

- Migrated SASS engine from `node-sass` (currently deprecated and broken on Node 16) to `sass`.

- Fixed alignment of Z-Wave UI header on Chrome/Webkit.
2021-05-06 23:18:47 +02:00
Fabio Manganiello 2a78f81a7b Major LINT fixes 2021-04-05 00:58:44 +02:00
Fabio Manganiello 99831bf0c7 Fix compatibility with all versions of websocket-client, regardless of the list of arguments required by the callbacks (either ws as a first argument or not) 2021-04-02 19:27:25 +02:00
Fabio Manganiello 4313b6e883 media.vlc.status should synchronize on _stop_lock, or it may fail in the middle of its execution if the VLC session is being freed 2021-03-24 15:02:05 +01:00
Fabio Manganiello 9e46ab0b60 Wait for _on_stop_event in media.vlc.stop before releasing the instance 2021-03-16 22:34:03 +01:00
Fabio Manganiello f92d19a24e media.vlc.stop should be synchronized on the _stop_lock and should call _reset_state instead of simply setting self._player = None 2021-03-16 19:42:59 +01:00
Fabio Manganiello 0e3845ef88 The vlc _reset_state logic should be wrapped within a lock context to make sure that two threads don't try to deallocate the context at the same time 2021-02-28 20:56:32 +01:00
Fabio Manganiello 833f810d4b Fixed stop handler for vlc plugin.
For some reason, vlc event handlers are not re-entrant (https://github.com/oaubert/python-vlc/issues/44#issuecomment-378520074).

This means that the vlc API can't be used from an event handler,
and that an event handler that reacts to stop/end-of-stream by
releasing the player and the vlc instance will likely get stuck
and the app may eventually die with SIGSEGV.

Because of this design limitation on the vlc side, the plugin has
to run another thread in the main app that monitors the stop event
set by the event handler and releases the resources appropriately.
2021-02-28 13:03:10 +01:00
Fabio Manganiello d190560536 Support for media.vlc.play toggling paused state if called with no arguments, and MediaPlayRequestEvent should have player and plugin attributes set 2021-02-28 01:40:29 +01:00
Fabio Manganiello e0e3081eb1 VLC volume should strictly be an integer 2021-02-28 01:31:00 +01:00
Fabio Manganiello b27c9ee630 Make sure to always run .quit() on the _player instance on stop/exit event, even if the player is already stopped, otherwise the OMXPlayer session may be hanging in the background and prevent new DBus connections 2021-02-22 14:22:45 +01:00
Fabio Manganiello 6b5b50d186 Migrated switches plugin 2021-02-19 20:47:29 +01:00
Fabio Manganiello 2abfb2964c Merge branch 'master' into vuejs 2021-02-04 01:57:36 +01:00
Fabio Manganiello 4858dbc060 Back/forward seek changed from 60 to 30 2021-02-04 01:56:28 +01:00
Fabio Manganiello 2834ed2a7c Refactored and fixed many bugs on the media.omxplayer plugin 2021-02-04 01:44:21 +01:00
Fabio Manganiello 7f24b82281 Removed deprecated media.ctrl plugin 2021-02-03 22:13:10 +01:00
Fabio Manganiello 7e1d232942 Another fix bites the dust 2021-02-03 17:47:33 +01:00
Fabio Manganiello 31a7ecee03 Quick fix 2021-02-03 17:46:05 +01:00
Fabio Manganiello 346bd9602d The whole get_plugin/.status() block should be under try/except 2021-02-03 17:44:40 +01:00
Fabio Manganiello 673351db51 Don't fail if a media plugin can't be imported 2021-02-03 17:43:26 +01:00
Fabio Manganiello 86ebc4fae9 Get the plugin name, not the object 2021-02-03 17:42:20 +01:00
Fabio Manganiello 118540db8c Fixed unreferenced var 2021-02-03 17:41:06 +01:00
Fabio Manganiello a1d6c4fbe4 Added missing Config import 2021-02-03 17:39:55 +01:00
Fabio Manganiello 2bb07ae191 Fixed base class name 2021-02-03 17:39:16 +01:00
Fabio Manganiello 1920bd80a3 First search among the configured media plugins in media.ctrl plugin 2021-02-03 17:34:33 +01:00
Fabio Manganiello 370a7d4c15 Added frontend support for Plex 2021-01-18 01:28:10 +01:00
Fabio Manganiello 85f56cf98c New media panel [WIP] 2021-01-14 00:15:35 +01:00
Fabio Manganiello 6ae76f1f38 Migrating media plugins [WIP] 2021-01-05 00:50:24 +01:00
Fabio Manganiello c7711d75a1 New pychromecast has replaced host/port with uri 2020-11-11 03:07:42 +01:00
Fabio Manganiello 711ea543bb Use youtube-dl to extract the video URL instead of streaming its content to a local sock file 2020-11-11 03:07:23 +01:00
Fabio Manganiello 9e6c40d393 media.gstreamer added to the list of compatible media plugins 2020-09-29 15:37:46 +02:00
Fabio Manganiello 05b0a7f14d Added GStreamer media plugin [closes #151] 2020-09-29 15:32:40 +02:00
Fabio Manganiello 907bc0f75b Added rtorrent integration [closes #120] 2020-09-03 13:08:42 +02:00
Fabio Manganiello 65bac0ccc5 Fix for pychromecast.get_chromecasts new return type.
On newer versions of pychromecast get_chromecasts returns
a tuple (devices, browser_service) instead of a list. The
software should be robust enough with both older and newer
versions of pychromecast.
2020-07-25 01:35:06 +02:00
Fabio Manganiello adc94349c7 Missing commas 2020-07-04 00:31:24 +02:00
Fabio Manganiello b716b1a0c1 More robust URL query for YouTube 2020-07-04 00:25:49 +02:00
Fabio Manganiello 93ac6c8af9 Regex format fix 2020-07-04 00:18:45 +02:00
Fabio Manganiello 03dc524f80 Fixed response type 2020-07-04 00:15:44 +02:00
Fabio Manganiello c943acb9c2 Smarter logic for parsing YouTube URLs in Kodi 2020-07-04 00:12:16 +02:00
Fabio Manganiello a9dbda455f Support for default media player volume 2020-02-21 18:40:46 +01:00
Fabio Manganiello 70fe2459de _event_callbacks is a protected attribute of mpv.MPV 2020-02-21 18:29:40 +01:00
Fabio Manganiello a0ceb560b4 Implemented alarm/timer plugin (closes #111) 2020-02-17 19:37:22 +01:00
Fabio Manganiello 8248b5353f Added status action to MediaPlugin interface 2020-02-17 18:12:40 +01:00
Fabio Manganiello 4c3140c9b5 Fixed docs 2020-01-09 23:40:59 +01:00
Fabio Manganiello f378fa8832 MPV.Event.IDLE should also be treated as a player stop event 2019-12-07 17:16:48 +01:00
Fabio Manganiello d38746d278 Moved imports for extra dependencies inside the methods where they are actually used 2019-12-01 23:35:05 +01:00
Fabio Manganiello 09991b2e8a Use a filesystem FIFO for YouTube media content instead of playing the *.googlevideo.com URL directly
Google Video URLs now return 403 if played directly. Let youtube-dl
handle the heavylifting and use a FIFO to stream the media
2019-09-30 18:06:30 +02:00
Fabio Manganiello e9c7104242 Keep track of the newly inserted token records in media.local.search, or we can experience UniqueConstraint violations upon session commit because of duplicate records 2019-09-02 23:05:16 +02:00
Fabio Manganiello fa9b816d06 Return the parsed raw YouTube URL only if available, otherwise the original URL 2019-08-04 17:36:06 +02:00
Fabio Manganiello aebeadbcf7 args can be either a list or a tuple - treat accordingly 2019-08-04 17:17:09 +02:00