Fabio Manganiello
68c52fe102
- Importing Flask.request as http_request to prevent name clashes with
...
SQLAlchemy's request module
- All SQLAlchemy engine and connection setup done within get_new_items
to prevent different threads from creating and using the db instance
- Added check_same_thread to sqlite connection line to prevent
different-thread exceptions when the Flask main thread does some cleanup
2018-04-28 19:11:14 +02:00
Fabio Manganiello
e9425236a9
Removed additional file_name parameter
2018-04-26 15:54:40 +02:00
Fabio Manganiello
63b3d196e8
Video icons fixes
2018-04-26 15:29:10 +02:00
Fabio Manganiello
797d6a0fe8
Added an icon to the video results to show the type
2018-04-26 15:23:10 +02:00
Fabio Manganiello
7fb0a5bb55
Set download_dir only if specified
2018-04-25 12:03:15 +02:00
Fabio Manganiello
efe4f32409
Implemented torrent search, download and streaming in OMXPlayer plugin
2018-04-25 11:29:03 +02:00
Fabio Manganiello
34405b96f6
Removed unused mandatory parameters for VideoEvent constructor
2018-04-25 01:04:51 +02:00
Fabio Manganiello
acd06c2193
Implemented OMXPlayer file search and unified all searches under one method
2018-04-25 00:13:17 +02:00
Fabio Manganiello
77da94769e
Implemented file search method in OMXPlayer plugin
2018-04-24 21:28:42 +02:00
Fabio Manganiello
e5e1270380
Exposed a global context.get_bus() method to allow plugins to send events to the main bus
2018-04-24 20:07:16 +02:00
Fabio Manganiello
9052e18f9c
Commented OMXPlayer handlers initialization part as the plugin object has no access to the bus
2018-04-24 14:56:31 +02:00
Fabio Manganiello
9492243fd5
Transform a [0,100] volume range in the volume range expected by the OMXPlayer API
2018-04-24 14:54:01 +02:00
Fabio Manganiello
dd254b65cb
Implemented YouTube videos search and controls web FE
2018-04-24 14:36:05 +02:00
Fabio Manganiello
4d45284131
Style fixes
2018-04-24 09:17:09 +02:00
Fabio Manganiello
1bda7b8346
Handlers & buttons
2018-04-24 01:30:04 +02:00
Fabio Manganiello
27398030e4
Fixed form name in CSS
2018-04-24 01:26:00 +02:00
Fabio Manganiello
e310ef0a04
Finalized video.omxplayer FE plugin
2018-04-24 01:23:06 +02:00
Fabio Manganiello
b5b61f0442
Wrong extension..
2018-04-24 01:05:37 +02:00
Fabio Manganiello
ebed6adf57
Added video.omxplayer frontend plugin
2018-04-24 01:03:50 +02:00
Fabio Manganiello
53f8f88bac
Added inotify files and paths monitoring backend
2018-04-23 16:32:35 +02:00
Fabio Manganiello
c4401b25be
Reload logic on media.ctrl in case the connection with the media plugin has been reset
2018-04-22 23:39:23 +02:00
Fabio Manganiello
6ef97e9ddc
Assign the recursive output of _thread_func to response to make sure that the latest response is always returned - that means the successful response in case the previous one was a failure
2018-04-22 21:26:53 +02:00
Fabio Manganiello
60c9c7476e
Fixed a missing parenthesis
2018-04-20 15:20:23 +02:00
Fabio Manganiello
a783efd0d7
Added status method to media.ctrl plugin
2018-04-20 15:18:20 +02:00
Fabio Manganiello
ded4ac3b95
- Introduced a more consistent Enum for managing playing states across different players
...
- media.ctrl can now spot which player is playing and control only the right one
- Extended video.omxplayer plugin methods
2018-04-20 12:17:27 +02:00
Fabio Manganiello
cc506b3340
Final (?) regex fix
2018-04-20 10:04:29 +02:00
Fabio Manganiello
eaec9ac51f
Final (?) regex fix
2018-04-20 10:00:01 +02:00
Fabio Manganiello
8e5a27d74c
Regex fix
2018-04-20 09:52:55 +02:00
Fabio Manganiello
2459506964
Regex typo
2018-04-20 09:41:52 +02:00
Fabio Manganiello
7e119654f9
Retry with the next YouTube video until some of the ones from the search can be played without errors
2018-04-20 09:38:04 +02:00
Fabio Manganiello
4db2f62c17
typo #2
2018-04-20 09:30:19 +02:00
Fabio Manganiello
3f3ec08af2
typo
2018-04-20 09:27:57 +02:00
Fabio Manganiello
6135089d60
Encoding POST data as bytes
2018-04-19 23:46:47 +02:00
Fabio Manganiello
02f6e163bf
Variable typo
2018-04-19 23:42:10 +02:00
Fabio Manganiello
51d6bec51c
Forgot an import
2018-04-19 23:40:49 +02:00
Fabio Manganiello
14aa4f6454
Implemented torrent search
2018-04-19 23:35:19 +02:00
Fabio Manganiello
95b537dee4
s/music/video/
2018-04-19 22:45:40 +02:00
Fabio Manganiello
2fdb8c50da
Added support for video events
2018-04-19 22:42:28 +02:00
Fabio Manganiello
84ab37e44e
Added YouTube search only method
2018-04-19 10:18:46 +02:00
Fabio Manganiello
23095bc18d
Log the YT videos being played/searched
2018-04-19 00:39:59 +02:00
Fabio Manganiello
61e851dd8e
Fixes
2018-04-19 00:32:20 +02:00
Fabio Manganiello
12295f2f77
youtube_search_and_play moved back to video.omxplayer
2018-04-19 00:30:43 +02:00
Fabio Manganiello
a58fa23173
Websocket client-side timeout: 5 -> 30 seconds
2018-04-18 10:13:53 +02:00
Fabio Manganiello
d2b881fee7
YouTube search and play code moved to media.ctrl plugin
2018-04-18 00:50:19 +02:00
Fabio Manganiello
ab19e258bb
Implemented YouTube videos search and play with support for queuse
2018-04-18 00:23:12 +02:00
Fabio Manganiello
02e951bd57
- Added hidden plugins configuration for plugins that shouldn't be shown
...
on the web panel as tabs
- Added support for popup notifications on the web panel
- Added voice assistant interactive notifications to the web panel
- Added new playing music notifications to the web panel
2018-04-17 23:10:49 +02:00
Fabio Manganiello
fcdc4d1af8
Reload the MPD plugin in case of any errors during the status retrieval
2018-04-17 16:43:39 +02:00
Fabio Manganiello
15a233a927
Keep reloading the MPD plugin in the MPD backend if the plugin crashed or keeps being null
2018-04-17 09:27:41 +02:00
Fabio Manganiello
2186336bbc
Added plugin for supporting MCP3008 ADC for analog sensors
2018-04-17 01:03:02 +02:00
Fabio Manganiello
40d1b7481a
Added TTS web plugin
2018-04-16 14:38:13 +02:00
Fabio Manganiello
607ec2812c
Run get_plugin at every iteration of the mpd backend in case the plugin lost the connection and has been reloaded
2018-04-16 09:38:34 +02:00
Fabio Manganiello
1a01b336b7
Brought server side ping timeout to 60 seconds
2018-04-15 22:36:45 +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
400943b74b
Cleaner management of MPD search filters on the frontend
2018-04-15 10:03:34 +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
82200bb150
Better logging management, solves #26
2018-04-14 01:00:00 +02:00
Fabio Manganiello
e83b21ad33
No outline on the ZeroBorg div when focused
2018-04-13 23:45:29 +02:00
Fabio Manganiello
b863213bd7
More rational management of ZeroBorg auto pilot mode together with sensor - no longer limited to gpio.sensor.distance alone, but including any kind of GpioSensorPlugin. Thresholds, timeouts and actions are configured in config.yaml instead of being hardcoded
2018-04-13 15:49:10 +02:00
Fabio Manganiello
b597097be3
Better management of motor power settings in gpio.zerborg - no more offsets multiplied for max_power and hardcoded power coefficients, just pass the motor power in the configuration
2018-04-13 15:12:31 +02:00
Fabio Manganiello
0cfd67be51
Changed behaviour on playlist track click. Click twice to play instace of long pressing to prevent tracks from playing while scrolling the pane
2018-04-12 20:07:28 +02:00
Fabio Manganiello
cf2b362947
Support for robot control through keyboard
2018-04-12 18:42:01 +02:00
Fabio Manganiello
25e601ca4d
More granular control of the motors left/right directions
2018-04-12 17:18:32 +02:00
Fabio Manganiello
de7a8067cb
Better filtering of music results
2018-04-12 14:28:20 +02:00
Fabio Manganiello
abdc5a5ed0
Inverted search priority order
2018-04-12 14:22:24 +02:00
Fabio Manganiello
b400597a1b
Refresh the status as well upon successful search results play/add
2018-04-12 13:53:04 +02:00
Fabio Manganiello
decadee00a
Implemented music search from web panel
2018-04-12 13:04:56 +02:00
Fabio Manganiello
f3d725c890
Making the websocket reconnect client-side logic a bit more consistent
2018-04-10 19:49:37 +02:00
Fabio Manganiello
10bf54f961
A more consistent a bug-free handling of websocket reconnection cycles
2018-04-10 15:56:00 +02:00
Fabio Manganiello
4efbcc50dd
Server-side websocket timeout: 3 -> 5 seconds
2018-04-10 00:10:03 +02:00
Fabio Manganiello
ef1843fdbc
s/1 second/3 seconds/
2018-04-09 23:58:54 +02:00
Fabio Manganiello
cb6894b6f8
s/5 seconds/1 second/
2018-04-09 23:56:43 +02:00
Fabio Manganiello
c81e969097
Reverted 10 msec wait to prevent sys resources flooding on retries
2018-04-09 23:26:14 +02:00
Fabio Manganiello
ce5db9a9c6
Reconnect to the websocket immediately in case of normal closure
2018-04-09 23:21:19 +02:00
Fabio Manganiello
d380e0f398
Keep trying to connect in case the websocket goes down
2018-04-09 23:15:15 +02:00
Fabio Manganiello
75e958bb38
Added auto pilot and stop controls to ZeroBorg web UI
2018-04-09 18:12:53 +02:00
Fabio Manganiello
cb44f864cc
Added ZeroBorg plugin web UI for motors control
2018-04-09 15:45:14 +02:00
Fabio Manganiello
4bd69d1d68
Making the header a bit more proportioned
2018-04-09 10:22:07 +02:00
Fabio Manganiello
fe2930dfdc
Increased font size for datetime div
2018-04-09 10:20:32 +02:00
Fabio Manganiello
248b1c37b2
typo
2018-04-09 02:04:07 +02:00
Fabio Manganiello
fa4ed7c95c
light.hue.on/off wants an array
2018-04-09 01:53:25 +02:00
Fabio Manganiello
a3fbce1082
Support for global and individual color and power switches on Philips Hue interface
2018-04-09 01:24:02 +02:00
Fabio Manganiello
2bf4ff136b
Exposing serial data functionally through a plugin
2018-04-08 18:16:24 +02:00
Fabio Manganiello
8ae22726ed
Added serial device backend
2018-04-07 03:08:52 +02:00
Fabio Manganiello
2be2677963
Added light sensor backend
2018-04-06 17:19:08 +02:00
Fabio Manganiello
10a78a1f21
Frontend plugin for Philips Hue
2018-03-27 23:13:47 +02:00
Fabio Manganiello
7dd3bb9915
Always call stop_playback even when there is no user request
2018-03-26 00:32:03 +02:00
Fabio Manganiello
1f2b5432b3
Extended Pi camera options
2018-03-24 14:43:18 +01:00
Fabio Manganiello
b5567c289f
- Added Pi camera stream over TCP backend
...
- More consistent event handling for the pushtotalk assistant
- Added general GPIO module
2018-03-24 03:05:46 +01:00
Fabio Manganiello
a14d6fe652
- Stop assistant playback only if there was a user request. This
...
prevents a PortAudio write on input-only stream error in the Assistant
SDK, see https://github.com/googlesamples/assistant-sdk-python/issues/185
- Make sure that user_request is always defined before returning it
- Use assistant.google.pushtotalk as a fallback if assistant.google is
not configured/available
2018-03-21 23:21:41 +01:00
Fabio Manganiello
d5f73023ea
Support for custom hotword detection through Snowboy
2018-03-20 23:34:36 +01:00
Fabio Manganiello
6309f5301e
- Power offsets now passed through conf instead of source code
...
- More robust handling of temporary sensor failures
2018-03-17 17:16:20 +01:00
Fabio Manganiello
dcd4f9eddf
Threshold obstacle distance increased to 40 cm
2018-03-06 02:44:44 +01:00
Fabio Manganiello
8674626934
- Implemented auto_toggle command for Zeroborg
...
- Recalibrated power offsets
2018-03-05 23:27:20 +01:00
Fabio Manganiello
8b733fb859
- Added IR sensor backend
...
- Fixed default power offsets
- Changed threshold distance for ultrasound sensor
- Fixed power multiplier coefficient
2018-03-04 17:55:48 +01:00
Fabio Manganiello
0f97678a78
Throttling power
2018-03-03 03:24:08 +01:00
Fabio Manganiello
da0d715d49
Getting distance synchronously
2018-03-02 16:02:04 +01:00
Fabio Manganiello
df6790cde9
Changed default distance
2018-03-02 14:37:14 +01:00
Fabio Manganiello
cf83f07f79
Implemented auto pilot with distance sensors
2018-02-26 11:31:06 +01:00
Fabio Manganiello
a8254181b2
Fixed ZeroBorg power offsets
2018-02-26 01:01:07 +01:00
Fabio Manganiello
6508f0baf3
Zeroborg plugin
2018-02-25 23:45:31 +01:00
Fabio Manganiello
48363c94e4
s/ModuleNotFoundError/ImportError/g
2018-02-20 22:58:13 +01:00
Fabio Manganiello
779a907ebd
Made the ZeroBorg module Python3-friendly
2018-02-20 20:41:56 +01:00
Fabio Manganiello
f16719f575
Added ZeroBorg plugin draft
2018-02-20 20:09:29 +01:00
Fabio Manganiello
e8891f0c12
Filter implementation for music.mpd
2018-02-09 20:54:02 +01:00
Fabio Manganiello
0d2a1e5932
onopen logging message
2018-02-07 22:52:16 +01:00
Fabio Manganiello
b675f631e9
- Websocket ping interval 1 -> 5 seconds
...
- JS client websocket reconnect logic
2018-02-07 22:14:38 +01:00
Fabio Manganiello
c47d910465
Removed comma
2018-02-05 10:35:24 +01: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
9cf9135eae
Making the mpd interface fit in a smaller screen without overflows
2018-02-01 01:12:47 +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
fc608317fd
Give some breath to the websocket ping loop
2018-01-29 21:21:40 +01:00
Fabio Manganiello
07219bef89
Player style fixes
2018-01-29 21:18:31 +01:00
Fabio Manganiello
90f49b0964
Player style fixes
2018-01-29 21:15:57 +01:00
Fabio Manganiello
22e4a44fdb
Fixed js glitch
2018-01-29 17:09:53 +01:00
Fabio Manganiello
e007d26896
Version bump
2018-01-29 16:34:52 +01:00
Fabio Manganiello
75fac37984
Fixed tests
2018-01-29 16:34:00 +01:00
Fabio Manganiello
0ff5adc4c1
Removed swap file
2018-01-29 16:29:36 +01:00
Fabio Manganiello
ae3ee8ada5
Music player styles
2018-01-29 16:28:32 +01:00
Fabio Manganiello
6ad7f85e76
A more clever way to get the static dirs
2018-01-29 15:08:29 +01:00
Fabio Manganiello
6ff1552063
Fixed websocket
2018-01-29 14:46:31 +01:00
Fabio Manganiello
72af7adb46
#51 first web panel iteration
2018-01-29 13:47:21 +01:00
Fabio Manganiello
615573f932
Changed format for HTTP backend requests to something more consistent
2018-01-28 14:49:59 +01:00
Fabio Manganiello
6aec6380d8
MIMEBase import is needed here
2018-01-28 03:08:19 +01:00
Fabio Manganiello
6bfb6d934d
Support for multiple attachments and binary application attachments in GMail
2018-01-28 02:59:19 +01:00
Fabio Manganiello
55eb689121
Support for RSS digest generation either in HTML or PDF format
2018-01-28 02:01:54 +01:00
Fabio Manganiello
91dd975413
mkdir_p replaced with os.makedirs
2018-01-27 13:54:15 +01:00
Fabio Manganiello
22b3f8e9b9
Removed redundant variable
2018-01-27 04:46:28 +01:00
Fabio Manganiello
a87b6cfaf0
Version bump
2018-01-27 04:37:34 +01:00
Fabio Manganiello
14afbcad3a
Support for RSS feeds update events, solves #48
2018-01-27 04:32:44 +01:00
Fabio Manganiello
834b700d5f
Added GMail actions support, solves #49
2018-01-17 03:16:59 +01:00
Fabio Manganiello
d629fc897f
Start the cron scheduler only if there are crons configured
2018-01-15 22:53:48 +01:00
Fabio Manganiello
a16d92ae8e
Version bump
2018-01-15 22:46:41 +01:00
Fabio Manganiello
b9c4cefb59
Better format for crons
2018-01-15 22:44:57 +01:00
Fabio Manganiello
14b511034f
Support for cron actions, solves #47
2018-01-15 22:37:01 +01:00
Fabio Manganiello
f6d16366eb
Changed assistant stop_conv logic on match
2018-01-15 13:37:48 +01:00
Fabio Manganiello
0e6de85b8d
Added pylast to the optional dependencies;
...
Version bump.
2018-01-15 02:41:54 +01:00
Fabio Manganiello
ac15e581ce
Added last.fm scrobbler plugin, solves #21
2018-01-15 02:40:22 +01:00
Fabio Manganiello
632255d2dc
typo
2018-01-15 01:43:35 +01:00
Fabio Manganiello
4fa7a08006
Added mpd backend
2018-01-13 02:52:06 +01:00
Fabio Manganiello
76f7bbc529
Refactored HTTP request plugin and fixed bug on the plugin name
2018-01-12 15:18:06 +01:00
Fabio Manganiello
b1f42c22ae
Added Booking.com endpoints automation
2018-01-11 19:31:44 +01:00
Fabio Manganiello
959296b15a
Support for context variables and constants
2018-01-10 18:47:25 +01:00
Fabio Manganiello
19cfafb2c7
Making the HTTP poll events work
2018-01-10 03:14:27 +01:00
Fabio Manganiello
d0759765b2
Removed booking module
2018-01-10 00:20:48 +01:00
Fabio Manganiello
2ea06f7708
Making JSON HTTP poll requests work
2018-01-09 18:44:45 +01:00