Fabio Manganiello
|
7072a19829
|
Print timestamps in human readable format
|
2019-03-19 11:32:06 +00:00 |
|
Fabio Manganiello
|
eb7b9c066c
|
Logging info about processed Fit entries to debug why we don't always get all the new events
|
2019-03-19 11:29:53 +00:00 |
|
Fabio Manganiello
|
af97f7b6a5
|
Tentative fix for Google Fit data points timestamp tracking
|
2019-03-18 11:58:40 +00:00 |
|
Fabio Manganiello
|
9d36688a61
|
Don't fail hard if it's not possible yet to retrieve the mopidy status in the backend constructor
|
2019-03-17 02:06:56 +01:00 |
|
Fabio Manganiello
|
a1c31a9fb9
|
Better handling for last_timestamp reads from Google Fit backend
|
2019-03-17 00:31:32 +01:00 |
|
Fabio Manganiello
|
9153b1e9c4
|
Added __init__.py init backend.google
|
2019-03-16 19:36:46 +01:00 |
|
Fabio Manganiello
|
f201f039e9
|
Extended and normalized key names in GoogleFitEvent type
|
2019-03-16 19:28:47 +01:00 |
|
Fabio Manganiello
|
87d63d7cb3
|
Added Google Fit backend
|
2019-03-16 01:22:42 +01:00 |
|
Fabio Manganiello
|
022262eb78
|
Handle MQTT listeners by host with lists of topics, so we only need one listener thread per host
|
2019-03-07 23:03:12 +01:00 |
|
Fabio Manganiello
|
84099b2ab7
|
Added support for multiple listeners on multiple servers and topics for general-purpose messaging on the MQTT backend
|
2019-03-07 22:52:02 +01:00 |
|
Fabio Manganiello
|
38ebe87220
|
Get the device_id after initializing/creating the device
|
2019-03-07 20:11:32 +01:00 |
|
Fabio Manganiello
|
9324ad3f9b
|
Create a device if it doesn't exist
|
2019-03-07 20:05:40 +01:00 |
|
Fabio Manganiello
|
fb93aec3ec
|
Added empty __init__.py to plugins to let importlib correctly find the submodules
|
2019-03-06 02:21:26 +01:00 |
|
Fabio Manganiello
|
0596d77403
|
Support for camera snapshot and stream endpoints and for disabling logging on response and event messages
|
2019-03-06 02:01:17 +01:00 |
|
Fabio Manganiello
|
619c750f3b
|
Don't fail hard if status is not available
|
2019-03-03 12:42:31 +01:00 |
|
Fabio Manganiello
|
a9fb6a38dd
|
New API for firing events and registering/unregistering event handlers
both for plugins and backends
|
2019-02-28 01:21:25 +01:00 |
|
Fabio Manganiello
|
811af1bf9d
|
Removed conflict leftovers
|
2019-02-26 23:55:00 +01:00 |
|
Fabio Manganiello
|
17367f5b3e
|
Added camera plugin over cv2
|
2019-02-26 23:50:48 +01:00 |
|
Fabio Manganiello
|
150d95d0dc
|
Support for launching uWSGI directly from the HTTP backend
|
2019-02-25 10:52:48 +01:00 |
|
Fabio Manganiello
|
0104037ada
|
Dashboard background image added to static/resources
|
2019-02-24 20:10:58 +01:00 |
|
Fabio Manganiello
|
2adab13d50
|
Added favicon
|
2019-02-24 19:59:08 +01:00 |
|
Fabio Manganiello
|
8ef3aafb52
|
Added missing doc line in backend.http
|
2019-02-24 15:53:01 +01:00 |
|
Fabio Manganiello
|
8153d8476f
|
Added uWSGI optional dependency for HTTP backend
|
2019-02-24 12:35:26 +01:00 |
|
Fabio Manganiello
|
e3fcebe4b6
|
Made a separate uWSGI startup script for the webapp
|
2019-02-24 00:17:31 +01:00 |
|
Fabio Manganiello
|
c74b939660
|
Renamed app->application for the main Flask webapp to make sure that the default uwsgi configuration can pick it up
|
2019-02-24 00:11:35 +01:00 |
|
Fabio Manganiello
|
d5c31d938b
|
Run each message handling logic on the bus on a separate thread to make sure that messages don't queue up too much
|
2019-02-23 23:58:43 +01:00 |
|
Fabio Manganiello
|
0e794cd1b0
|
Refactored HTTP server to split the routes on separate files and keep the main Flask app object in a separate file as well so it can be easily wrapped by a WSGI instance
|
2019-02-23 21:19:00 +01:00 |
|
Fabio Manganiello
|
73383ab80f
|
Panel and modal close bindings should refer the target element in the event, not $(this)
|
2019-02-21 20:13:31 +01:00 |
|
Fabio Manganiello
|
6e1b6686c2
|
Revert "Running Flask webserver in another thread instead than another process"
This reverts commit 0a5c42fdfd .
|
2019-02-21 16:15:06 +01:00 |
|
Fabio Manganiello
|
0a5c42fdfd
|
Running Flask webserver in another thread instead than another process
|
2019-02-21 14:33:41 +01:00 |
|
Fabio Manganiello
|
97e1dfacdf
|
Made VLC template symlink
|
2019-02-21 01:38:21 +01:00 |
|
Fabio Manganiello
|
fd18bd84ca
|
Don't download subtitles for magnet links (until the media file/metadata is ready at least)
|
2019-02-19 10:37:29 +01:00 |
|
Fabio Manganiello
|
151e2e56d9
|
typo
|
2019-02-19 01:05:44 +01:00 |
|
Fabio Manganiello
|
11af83f88f
|
Added symlink media.mpv.html -> media.html
|
2019-02-19 00:19:48 +01:00 |
|
Fabio Manganiello
|
a21a11d499
|
Only proceed with subtitles loading when the list of subs is not empty
|
2019-02-17 16:29:39 +01:00 |
|
Fabio Manganiello
|
7d1c9275f5
|
Make it 10 seconds when it comes to poll time
|
2019-02-16 20:21:04 +01:00 |
|
Fabio Manganiello
|
55f1a33d90
|
Keep a sleep between polls to the Snapcast servers
|
2019-02-16 20:17:15 +01:00 |
|
Fabio Manganiello
|
6ac62b0161
|
Reset the time-seek indicator also on the web panel
|
2019-02-13 18:01:56 +01:00 |
|
Fabio Manganiello
|
4503eb31ed
|
Clear track elapsed time display on stop event
|
2019-02-13 17:53:57 +01:00 |
|
Fabio Manganiello
|
a287a10bcc
|
Propagate a MusicStopEvent upon playback stop even when the context of the current track is not available
|
2019-02-13 17:38:58 +01:00 |
|
Fabio Manganiello
|
7c817ba0c6
|
Position is expressed in milliseconds on mopidy websocket, convert to seconds
|
2019-02-13 17:25:56 +01:00 |
|
Fabio Manganiello
|
0a81b43f1d
|
startStreaming should always return a map
|
2019-02-13 10:15:18 +01:00 |
|
Fabio Manganiello
|
09f5c92541
|
Passing url from the promise in the right way
|
2019-02-13 09:38:40 +01:00 |
|
Fabio Manganiello
|
34e2dffe99
|
Catching music stop events both on track_playback_ended and playback_state_changed
|
2019-02-13 00:58:40 +01:00 |
|
Fabio Manganiello
|
8a9c868f77
|
Bringing more consistency in music.mpd.js regardless of the backend
|
2019-02-13 00:50:58 +01:00 |
|
Fabio Manganiello
|
0697598a86
|
Fixed music.js widget as well for the new mopidy backend
|
2019-02-13 00:32:14 +01:00 |
|
Fabio Manganiello
|
3190d3c6c8
|
Fixing music.mpd.js both for mpd and mopidy backends
|
2019-02-13 00:27:36 +01:00 |
|
Fabio Manganiello
|
f0f6d43990
|
Using the right naming for length and elapsed variables
|
2019-02-12 23:59:13 +01:00 |
|
Fabio Manganiello
|
71c6ba2d34
|
More compatibility between TCP-based mpd and websocket-based mopidy backends when it comes to how the track time is reported
|
2019-02-12 23:48:18 +01:00 |
|
Fabio Manganiello
|
77a76370a5
|
Returning flat representation for artist and renamed 'name' attribute for consistency with the mpd backend
|
2019-02-12 23:24:16 +01:00 |
|
Fabio Manganiello
|
1c4edf93bf
|
Another typo
|
2019-02-12 23:19:36 +01:00 |
|
Fabio Manganiello
|
97855b1535
|
state might not always be provided in a music event
|
2019-02-12 23:11:37 +01:00 |
|
Fabio Manganiello
|
18d2c51b4e
|
Forgot an enumerate
|
2019-02-12 23:08:48 +01:00 |
|
Fabio Manganiello
|
e5c169a549
|
on_message requires two arguments
|
2019-02-12 23:00:16 +01:00 |
|
Fabio Manganiello
|
6024eddd2d
|
on_open requires ws as a parameter
|
2019-02-12 22:58:22 +01:00 |
|
Fabio Manganiello
|
c18515bd3c
|
Few more fixes on mopidy backend
|
2019-02-12 22:57:09 +01:00 |
|
Fabio Manganiello
|
ee3df8fe8c
|
Switched mopidy backend from websockets to websocket-client
|
2019-02-12 22:52:29 +01:00 |
|
Fabio Manganiello
|
b555777cc8
|
Use another event loop for the synchronous websocket communication method
|
2019-02-12 20:49:10 +01:00 |
|
Fabio Manganiello
|
73d7e9a3ef
|
Fixes on mopidy backend
|
2019-02-12 20:45:40 +01:00 |
|
Fabio Manganiello
|
148d25f1cb
|
Added mopidy backend functionalities
|
2019-02-12 20:34:17 +01:00 |
|
Fabio Manganiello
|
7b99842225
|
Added draft for mopidy backend over websocket
|
2019-02-12 17:29:24 +01:00 |
|
Fabio Manganiello
|
f68efc0d68
|
Attempt to support subtitles on Chromecast media too
|
2019-02-12 11:13:19 +01:00 |
|
Fabio Manganiello
|
5cbd0fdfe7
|
Added support for VTT subtitles and subtitles toggling both in local and browser media players
|
2019-02-12 01:30:55 +01:00 |
|
Fabio Manganiello
|
41c34b4bc5
|
Attempt to support subtitle tracks in web player
|
2019-02-11 18:46:25 +01:00 |
|
Fabio Manganiello
|
34f0264d5e
|
Subtitles support
- Added support for local and OpenSubtitles media subs
- Added management of media events in web panel
|
2019-02-11 00:55:20 +01:00 |
|
Fabio Manganiello
|
630850ee9a
|
Reset the connection to a Snapcast server if it starts failing
|
2019-02-10 11:08:04 +01:00 |
|
Fabio Manganiello
|
cd49f22d5c
|
Introduced floating panel with options on element click instead of the double-click-to-play logic on media elements
|
2019-02-09 01:53:17 +01:00 |
|
Fabio Manganiello
|
e2b0bf8462
|
More consistent management of media devices icons and added devices refresh button
|
2019-02-08 19:48:18 +01:00 |
|
Fabio Manganiello
|
b3f2974c4c
|
Support for streaming media to browser
|
2019-02-08 00:43:43 +01:00 |
|
Fabio Manganiello
|
9ec3365413
|
Support for media streaming over internal HTTP server
Dropped the additional node.js dependency of localstream and relied
instead on a built-in solution to stream files
|
2019-02-07 14:27:14 +01:00 |
|
Fabio Manganiello
|
d15b21ddfa
|
Added support for remote cast on the web media panel
|
2019-02-06 09:47:00 +01:00 |
|
Fabio Manganiello
|
d297b5cc42
|
Trying to make a more resiliant assistant error handling
|
2019-02-05 11:59:04 +01:00 |
|
Fabio Manganiello
|
caa48ad056
|
Better error handling on the assistant
|
2019-02-05 11:26:03 +01:00 |
|
Fabio Manganiello
|
63b423cf75
|
Refactored mplayer and omxplayer under the same media player
|
2019-02-02 00:06:28 +01:00 |
|
Fabio Manganiello
|
2d6dfc86ac
|
typo
|
2019-01-30 10:04:42 +01:00 |
|
Fabio Manganiello
|
2956a9ca63
|
Restart the assistant connection on error
|
2019-01-30 09:21:35 +01:00 |
|
Fabio Manganiello
|
7a80cd08ce
|
Handling dashboards widget configuration as a list instead of a hash to preserve the order of the widgets
|
2019-01-28 23:14:12 +01:00 |
|
Fabio Manganiello
|
e1920700ec
|
Handle backend stop/disconnection on MQTT
|
2019-01-18 04:10:27 +01:00 |
|
Fabio Manganiello
|
122978c6f0
|
Support for extra args/kwargs passed to light.hue actions
|
2019-01-19 23:23:58 +01:00 |
|
Fabio Manganiello
|
2b38f1b03f
|
Added alarm, timer and error event handlers on assistant backend
|
2019-01-19 01:55:32 +01:00 |
|
Fabio Manganiello
|
03bdf5c547
|
Implemented get_timeout/get_timeouts/get_interval/get_intervals util methods
|
2019-01-14 20:44:40 +01:00 |
|
Fabio Manganiello
|
f38b2db273
|
Fixed interaction with modal dialogs to prevent browser race conditions when touchscreen events are involved
|
2019-01-13 23:45:03 +01:00 |
|
Fabio Manganiello
|
2d8b2ba55a
|
Removed pp- prefix from the name of the spawned processes and threads
|
2019-01-13 20:41:15 +01:00 |
|
Fabio Manganiello
|
3587fa7cb4
|
Force music.mpd plugin reload when the mpd backend fails to get the state
|
2019-01-12 02:15:24 +01:00 |
|
Fabio Manganiello
|
78d44364cf
|
Casting data to number whenever possible on FeedUpdateEvent as well
|
2019-01-12 01:58:35 +01:00 |
|
Fabio Manganiello
|
ca855fce5d
|
Improved Adafruit IO data handling
|
2019-01-12 01:38:17 +01:00 |
|
Fabio Manganiello
|
1087dae197
|
Added Adafruit IO backend
|
2019-01-12 01:07:38 +01:00 |
|
Fabio Manganiello
|
fbf3600e91
|
Setting thread and process names properly through prctl
|
2019-01-10 23:45:13 +01:00 |
|
Fabio Manganiello
|
56c7258c74
|
Setting names for threads
|
2019-01-10 23:08:29 +01:00 |
|
Fabio Manganiello
|
0bbfaf4498
|
If the mpd frontend receives an empty PlaylistChangeEvent, trigger an initPlaylist to update the playlist
|
2019-01-10 22:27:44 +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
|
c1b05226a9
|
Made the mpd backend a bit more resiliant
|
2019-01-10 01:28:12 +01:00 |
|
Fabio Manganiello
|
6150e07fc9
|
Prevent toggle button id clash because of Snapcast using the MAC address of a device as a client (and therefore the same client connected to multiple servers may lead to inconsistent behaviour)
|
2019-01-10 00:29:22 +01:00 |
|
Fabio Manganiello
|
89ea4798bf
|
Restored retry logic in mpd backend
|
2019-01-09 22:20:01 +01:00 |
|
Fabio Manganiello
|
156e2e8b5a
|
Don't go crazy with plugin reload logic in the mpd backend in case of corrupted received messages
|
2019-01-09 22:05:53 +01:00 |
|
Fabio Manganiello
|
464f84805f
|
Added empty __init__.py to lib module
|
2019-01-09 15:13:10 +01:00 |
|
Fabio Manganiello
|
43ff0d4e25
|
Added hooks on light.hue web panel tab to synchronize light statuses with LightStatusChangeEvent events
|
2019-01-09 15:08:16 +01:00 |
|
Fabio Manganiello
|
d50d92e99e
|
Added Philips Hue lights backend to monitor status changes to the lights
|
2019-01-09 09:21:48 +01:00 |
|
Fabio Manganiello
|
9ba7a68578
|
Fixed modal height and positioning on screen
|
2019-01-08 19:23:06 +01:00 |
|
Fabio Manganiello
|
80bd5b684c
|
Added support for setting/changing group streams on Snapcast
|
2019-01-08 17:43:20 +01:00 |
|