Fabio Manganiello
|
4bfd6baab2
|
Removed old assistant google web plugin
|
2019-06-08 13:38:18 +02:00 |
|
Fabio Manganiello
|
bb4cc80262
|
Added assistant.google plugin in new webpanel
|
2019-06-08 13:25:40 +02:00 |
|
Fabio Manganiello
|
41d8ae48e1
|
Removed old jQuery music.mpd plugin
|
2019-06-07 23:13:07 +02:00 |
|
Fabio Manganiello
|
b7a625097d
|
Added playlist editor in music.mpd web panel
|
2019-06-07 23:07:36 +02:00 |
|
Fabio Manganiello
|
1ad72a2695
|
Implemented support for adding tracks to playlists
|
2019-06-07 17:17:58 +02:00 |
|
Fabio Manganiello
|
0b6b29f043
|
Improved support for multiple modals and added ability to search for albums and artists on the fly from tracks in music.mpd - vue.js refactoring WIP
|
2019-06-07 00:43:39 +02:00 |
|
Fabio Manganiello
|
7df0cec14e
|
Implemented support for modals and music.mpd search and item info
|
2019-06-06 02:08:36 +02:00 |
|
Fabio Manganiello
|
611a137ff6
|
music.mpd vue.js refactoring WIP: Implemented playlist track move feature
|
2019-06-04 15:59:07 +02:00 |
|
Fabio Manganiello
|
d3ecb7b871
|
music.mpd vue.js refactoring WIP
|
2019-06-03 23:53:37 +02:00 |
|
Fabio Manganiello
|
85bdd54f7e
|
music.mpd vue.js refactoring WIP
|
2019-06-03 23:37:19 +02:00 |
|
Fabio Manganiello
|
e1ddf7bb3b
|
music.mpd vue.js refactoring WIP
|
2019-06-02 00:54:49 +02:00 |
|
Fabio Manganiello
|
0f3987aaf2
|
Reverted scrollbar style override
|
2019-05-30 02:19:20 +02:00 |
|
Fabio Manganiello
|
7a74b83c76
|
music.mpd plugin vue.js refactoring - WIP
|
2019-05-30 02:07:28 +02:00 |
|
Fabio Manganiello
|
444fe6331d
|
New support for notifications in webpanel in vue.js
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
e1c3951456
|
Added events and websocket support in webpanel refactoring and removed old light.hue templates and scripts
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
197a5805be
|
Made nav header fixed
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
01b111f436
|
Webpanel refactoring in progress
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
897338399f
|
Synchronize all lights toggles when scenes are selected
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
e72d4de581
|
vue.js refactor part 1 - prepared webpanel logic and migrated light.hue plugin
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
8b478ede45
|
vue.js migration commit - WIP
|
2019-05-28 19:16:55 +02:00 |
|
Fabio Manganiello
|
1ad86428c8
|
Added support for custom webhooks
|
2019-05-17 14:55:29 +00:00 |
|
Fabio Manganiello
|
9fc243c93d
|
Use startTime instead of endTime as a time indicator to identify new records
|
2019-03-29 10:14:46 +00:00 |
|
Fabio Manganiello
|
24d395ce49
|
Use endTime
|
2019-03-28 14:37:26 +01:00 |
|
Fabio Manganiello
|
c84a6047ed
|
Using modifiedTime instead of startTime to track new data points
|
2019-03-28 14:17:43 +01:00 |
|
Fabio Manganiello
|
c3b2212972
|
Storing last processed timestamp per fit metric instead of a single timestamp for all the metrics to prevent new data points from being masked from newer ones from other metrics
|
2019-03-28 02:36:16 +01:00 |
|
Fabio Manganiello
|
68f985d2c6
|
Copy websockets list before iterating over it to prevent race conditions upon list changed upon iteration
|
2019-03-27 02:25:06 +01:00 |
|
Fabio Manganiello
|
387ed23e86
|
No need for snapcast-settings-btn class on snapcast-host-container
|
2019-03-27 00:49:53 +01:00 |
|
Fabio Manganiello
|
67fd88950a
|
Fixed modal madness in Snapcast frontend
|
2019-03-27 00:41:19 +01:00 |
|
Fabio Manganiello
|
31108b21e5
|
Don't define Snapcast modal open elements on the highest level, or modals will pop up even when clicking on other elements than the name
|
2019-03-21 18:30:32 +01:00 |
|
Fabio Manganiello
|
92f1f3eea7
|
Wrap Google Fit checks in try-catch block to prevent the backend from crashing with no reload
|
2019-03-20 10:48:07 +00:00 |
|
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 |
|
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
|
382866b1a4
|
Added content to Snapcast group modal
|
2019-01-08 10:13:13 +01:00 |
|
Fabio Manganiello
|
fd8c3bb846
|
Connected the wires between Snapcast backend and frontend
|
2019-01-08 01:47:16 +01:00 |
|
Fabio Manganiello
|
a346442246
|
Draft for Snapcast UI style
|
2019-01-07 16:50:51 +01:00 |
|
Fabio Manganiello
|
004868f526
|
Added skeleton UI for Snapcast plugin on web panel
|
2019-01-07 15:34:31 +01:00 |
|
Fabio Manganiello
|
efad5a2bd7
|
Added Snapcast backend
|
2019-01-06 19:19:30 +01:00 |
|
Fabio Manganiello
|
9328566235
|
Selecting the default light group tab on web panel load if configured
|
2019-01-02 21:24:07 +01:00 |
|
Fabio Manganiello
|
5b9c54748e
|
Do not propagate a null response message back to the bus to prevent backends from breaking
|
2019-01-02 09:29:27 +01:00 |
|
Fabio Manganiello
|
62045c2b5c
|
Support for multiple resource_dirs on the HTTP backend
It is now possible to map multiple static resource directories to the
Flask HTTP server
|
2018-12-30 18:40:03 +01:00 |
|
Fabio Manganiello
|
9e28379203
|
Prevent js errors upon null artist or album
|
2018-12-30 15:43:09 +01:00 |
|
Fabio Manganiello
|
01006046e0
|
Don't try to push a Pushbullet note body to the bus if it's not a valid JSON
|
2018-12-27 22:45:31 +01:00 |
|
Fabio Manganiello
|
54c3381ae3
|
- Added frames throttling support on Leap Motion backend
- Moved the Leap listener to another process to prevent it from hanging the other backends
- Added support for sound and mix frequency analysis
|
2018-12-27 20:24:51 +01:00 |
|
Fabio Manganiello
|
cff4563dae
|
Rewritten Pushbullet backend using pushbullet.py for better stability
|
2018-12-27 02:29:44 +01:00 |
|
Fabio Manganiello
|
c445763979
|
- Support for sound "release" (removal from active stream)
- Added `query_ports` method to MIDI plugin
|
2018-12-27 00:09:05 +01:00 |
|
Fabio Manganiello
|
3554968468
|
Support for multiple sounds on the same stream
|
2018-12-26 16:10:14 +01:00 |
|
Fabio Manganiello
|
f53d1c06dc
|
No need to be verbose upon Pushbullet websocket temporary disconnections
|
2018-12-24 14:33:27 +01:00 |
|
Fabio Manganiello
|
ef241b3769
|
More robust Pushbullet reconnection logic
|
2018-12-24 12:31:38 +01:00 |
|
Fabio Manganiello
|
b911d46315
|
Create a new event loop in the Pushbullet backend
|
2018-12-24 11:37:18 +01:00 |
|
Fabio Manganiello
|
6a48a53c0d
|
Typo
|
2018-12-24 11:30:10 +01:00 |
|