Fabio Manganiello
27b97e584f
Added support for MIDI real-time events
2018-05-23 19:49:54 +02:00
Fabio Manganiello
306faff4af
Default tolerance for hand palm motion on Leap should be zero
2018-05-23 19:48:59 +02:00
Fabio Manganiello
57722fce2a
Added support for Leap Motion device events
2018-05-23 17:07:15 +02:00
Fabio Manganiello
a8015addbf
Only take the first component of formatted_address
2018-05-23 08:06:52 +00:00
Fabio Manganiello
3ce6cf8b41
Just use formatted_address from the Google geocode response instead of considering all the cases of address formatting
2018-05-22 21:43:21 +00:00
Fabio Manganiello
2c7880874d
Logging geocode response
2018-05-22 21:34:06 +00:00
Fabio Manganiello
f4da6ebb1b
Redis plugin added and Redis backend made more robust to work also with single-quoted JSON-like strings returned by the Redis lib
2018-05-22 14:44:17 +00:00
Fabio Manganiello
18efdb1c70
Make sure the summary is always there
2018-05-21 09:47:50 +02:00
Fabio Manganiello
0accbfa66e
Logging traces on RSS parse
2018-05-21 09:27:13 +02:00
Fabio Manganiello
4643c10e11
Added Redis backend, issue #55
2018-05-14 20:09:25 +02:00
Fabio Manganiello
9923742e74
Prevent plugins from breaking in case of concatenations with None elements
2018-05-14 19:06:11 +02:00
Fabio Manganiello
21ac8d7899
Build the address as street + street_number if they are both available
2018-05-13 20:15:25 +00:00
Fabio Manganiello
6c0dc9a4dc
Added GMaps geocode plugin and geo update event
2018-05-13 21:42:26 +02:00
Fabio Manganiello
0878e5a3d1
Time to give Platypush a version bump
2018-05-13 14:32:25 +02:00
Fabio Manganiello
d0ca6b8e93
Replaced the YouTube search results parsing logic that relied on BeautifulSoup with a simpler logic that only uses regexes to parse video results. It greatly improves the performance of YouTube video search and removes the dependency on BeautifulSoul and lxml
2018-05-13 14:29:31 +02:00
Fabio Manganiello
01c5bbadcd
Type should actually always be there
2018-05-13 11:49:42 +02:00
Fabio Manganiello
5e3b41c3ad
Made the Pushbullet backend more resilient in case of rogue messages with no type specified
2018-05-13 11:39:59 +02:00
Fabio Manganiello
d75326bbe8
Added Switchbot web plugin
2018-05-08 17:07:01 +02:00
Fabio Manganiello
598c917eda
Added Switchbot plugin
2018-05-08 15:51:47 +02:00
Fabio Manganiello
b94764436d
Added WeMo switch plugin for web panel
2018-05-08 09:59:43 +02:00
Fabio Manganiello
36c9437172
Added method to get WeMo available devices
2018-05-08 09:14:02 +02:00
Fabio Manganiello
bd761d420e
RSS digests are now optional
2018-05-07 19:44:34 +02:00
Fabio Manganiello
a3b83e8c57
Fixed sensors position
2018-05-07 19:21:58 +02:00
Fabio Manganiello
44596a6cfb
Improved style for temp/humidity sensors on the widget
2018-05-07 19:16:25 +02:00
Fabio Manganiello
20a9224ab5
Included support for temperature/humidity display on weather widget from sensor events
2018-05-07 18:55:50 +02:00
Fabio Manganiello
e4269a8d5d
Skip RSS items if published_parsed is not defined
2018-05-07 18:33:44 +02:00
Fabio Manganiello
f322f71447
- News widget max items is now configurable
...
- Update the news list whenever the loop over the current list is done
2018-05-07 18:16:30 +02:00
Fabio Manganiello
1b1016fba2
Added background blurred image if width < height
2018-05-07 17:18:01 +02:00
Fabio Manganiello
37c6e25ac3
Finally got a proper scaling for carousel widget pictures
2018-05-07 14:50:08 +02:00
Fabio Manganiello
e671a1294c
Reset min-width when cloning the element
2018-05-07 09:57:35 +02:00
Fabio Manganiello
19268f66a8
border-radius fix
2018-05-07 09:56:31 +02:00
Fabio Manganiello
af11358a76
Image carousel widget improvements
2018-05-07 09:54:30 +02:00
Fabio Manganiello
2483c6d612
Simplified websockets keep-alive logic. Just wait on recv() and clean up the websocket in case of a ConnectionClosed exception
2018-05-06 11:38:24 +02:00
Fabio Manganiello
177a359e4a
Only do article fade-in without fade-out+fade-in dance
2018-05-06 00:42:46 +02:00
Fabio Manganiello
27d5f674c5
Added __init__.py
2018-05-06 00:17:18 +02:00
Fabio Manganiello
31f2cbf8b1
Added __init__.py
2018-05-06 00:14:42 +02:00
Fabio Manganiello
0252cc03c4
Added __init__.py
2018-05-06 00:12:57 +02:00
Fabio Manganiello
88c5bc16f5
- Added rss-news dashboard widget
...
- Added summary field to the RSS entry
- Added support for custom dashboard backgrounds
- UX fixes + font change
2018-05-05 23:59:43 +02:00
Fabio Manganiello
ac958f98da
Added images carousel web widget
2018-05-05 04:37:22 +02:00
Fabio Manganiello
e1e4d824ad
- Added web widget for Google Calendar integration
...
- UX improvements on the dashboard
2018-05-05 00:57:41 +02:00
Fabio Manganiello
f6306c6015
Added Google Calendar plugin
2018-05-04 19:20:23 +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
d83c2c903f
- Added support for /dashboard page with customizable widgets under the web server
...
- Introduced Redis to pass messages between the Flask process and the
main application. It now syncs messages with the bus and connected websockets
- Added support to programmatically modify dashboard widgets through POST request like Dashing
- Added weather forecast plugin
2018-05-04 03:24:35 +02:00
Fabio Manganiello
a67b301cd6
s/albumartist/album/g
2018-05-03 02:17:31 +02:00
Fabio Manganiello
dca41ea86e
A more robust logic for spotting new RSS items
2018-05-01 10:13:41 +02:00
Fabio Manganiello
d12ebe8810
Bold font for sensor values
2018-04-30 10:20:12 +02:00
Fabio Manganiello
79bfed3a1d
FE fixes on the sensors panel
2018-04-30 10:04:37 +02:00
Fabio Manganiello
b4bd1cb7bb
Added web UI for MCP3008 analog sensors values
2018-04-30 09:40:44 +02:00
Fabio Manganiello
b8cba8ec0c
Forgot an assignment
2018-04-30 01:43:23 +02:00
Fabio Manganiello
c0ef9e2373
poll_seconds should not have a default value
2018-04-29 23:58:33 +02:00
Fabio Manganiello
bd8d4649c5
Added MCP3008 backend
2018-04-29 23:51:53 +02:00
Fabio Manganiello
2f6565ec87
Added support for if-else constructs in procedures
2018-04-29 22:25:31 +02:00
Fabio Manganiello
ef75339fef
Fixed missing output= argument
2018-04-29 16:38:05 +02:00
Fabio Manganiello
cbe676a29f
Get the JSON/string output out of the Response object
2018-04-29 16:28:01 +02:00
Fabio Manganiello
cddd740666
Removed reference to self.device in backend.serial
2018-04-29 16:26:12 +02:00
Fabio Manganiello
cfe78dfa23
Fixed name clash
2018-04-29 16:19:26 +02:00
Fabio Manganiello
4462f9590f
Forgot an import
2018-04-29 16:18:27 +02:00
Fabio Manganiello
4f19cd1324
Removed old reference to serial.Serial
2018-04-29 16:17:09 +02:00
Fabio Manganiello
a907c9ad63
Refactored serial, the entry point for querying serial devices should be the serial plugin, the backend should only be a client. Also, if the serial output is a JSON, parse it
2018-04-29 16:14:46 +02:00
Fabio Manganiello
514eb3d4e4
No need for a comma there
2018-04-29 12:32:25 +02:00
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
Fabio Manganiello
c1ab3f5a14
google-assistant-library now requires device_model_id
2018-01-09 14:16:09 +01:00
Fabio Manganiello
b074e03d45
- Support for workdir
...
- Prepared draft for HttpPoll backend
2018-01-09 01:27:19 +01:00
Fabio Manganiello
ed28a2c3ec
Include should occur only once in the file
2018-01-08 10:20:32 +01:00
Fabio Manganiello
7963b5e11f
Support for include directive in config.yaml, #32
2018-01-08 10:08:55 +01:00
Fabio Manganiello
d6807bd85b
Version bump
2018-01-08 02:43:46 +01:00
Fabio Manganiello
d4ef2bf59e
Implemented for loops support in procedures, #44
2018-01-08 02:41:24 +01:00
Fabio Manganiello
252f503e4d
Better management of the context and support for proper expression expansion from the context in the action execution through eval
2018-01-07 23:31:19 +01:00
Fabio Manganiello
2871583c75
Fixed events being triggered as priority even if they had no preset priority
2018-01-07 17:10:59 +01:00
Fabio Manganiello
bad5ff339f
Latest push received in the last 5 seconds instead of 2
2018-01-07 13:18:01 +01:00
Fabio Manganiello
305dcfe530
Version bump
2018-01-07 02:49:43 +01:00
Fabio Manganiello
3c13625e63
Better logic for db inserts
2018-01-07 01:35:27 +00:00
Fabio Manganiello
694d7ca62d
Support for PushBullet events on notifications, #36
2018-01-07 00:58:03 +01:00
Fabio Manganiello
ae8ba3fda1
Version bump
2018-01-06 22:53:08 +01:00
Fabio Manganiello
32dcb0c829
Added database plugin, #43
2018-01-06 22:52:24 +01:00
Fabio Manganiello
dfee3f5004
Recursively expand the context of a request over the nested arguments
2018-01-06 12:40:22 +01:00
Fabio Manganiello
6b31ed3b1a
Added __init__.py
2018-01-06 11:10:55 +01:00
Fabio Manganiello
f83aedf0f1
Support for synchronous and asynchronous procedures
2018-01-06 00:21:25 +01:00
Fabio Manganiello
b98fe01352
Implemented sequential execution of tasks in procedures, response context parsing and procedure response returned on the bus as well, #37
2018-01-05 23:20:39 +01:00
Fabio Manganiello
b7854cb5dd
Version bump
2018-01-05 20:10:18 +01:00
Fabio Manganiello
1df10bc97e
Added HTTP requests plugin, #42
2018-01-05 20:00:15 +01:00
Fabio Manganiello
109805fd8d
Don't stop the conversation on hook match if the hook match was a priority one
2018-01-05 10:09:02 +01:00
Fabio Manganiello
5461bf532c
Copy the arguments before creating the action and re-create the action every time to make sure that the context is not polluted by previous executions
2018-01-04 23:10:53 +01:00
Fabio Manganiello
fa34b05c6c
Priority-based algorithm for hooks, solves #41
2018-01-04 19:19:56 +01:00
Fabio Manganiello
1581685f62
use_reloader=False on Flask to prevent the platypush daemon to be spawned twice
2018-01-04 17:34:25 +01:00
Fabio Manganiello
39f986a88d
Fixed HTTP backend
2018-01-04 17:20:35 +01:00
Fabio Manganiello
a476de81a8
Fixed procedure execution code
2018-01-04 16:11:54 +01:00
Fabio Manganiello
679a53b620
Version bump
2018-01-04 02:46:23 +01:00
Fabio Manganiello
20b07fb02f
Made an HTTP backend, #27
2018-01-04 02:45:23 +01:00
Fabio Manganiello
4c62133378
Updated README
2018-01-03 02:23:25 +01:00
Fabio Manganiello
691a9c8593
Added test for the event/condition matching and parsing logic
2018-01-03 00:16:01 +01:00
Fabio Manganiello
2a192dacc1
References to Config static getters moved from the constructor declaration to the constructor body to prevent the default Config object to be initialized before the time and any config override to be ignored. This should also fix the tests, #33
2018-01-02 19:44:58 +01:00
Fabio Manganiello
9220b23471
Removed two unneeded rows
2018-01-02 19:34:41 +01:00
Fabio Manganiello
4a6accf483
s/push/send_request/g
2018-01-02 19:33:33 +01:00
Fabio Manganiello
f2e5ba1eef
Fixed corner case on event match in case the named argument is the last token
2018-01-02 01:37:30 +01:00
Fabio Manganiello
44a64b8cac
Version bump
2018-01-02 00:49:38 +01:00
Fabio Manganiello
760782f427
Added new files
2018-01-02 00:48:41 +01:00
Fabio Manganiello
5a92c0ac3b
- Proper support for event arguments
...
- Better algorithm for event matching
- Added send_event support to pusher
2018-01-02 00:35:55 +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
c830988e09
Added __init__
2017-12-27 12:09:59 +01:00
Fabio Manganiello
d727b28acf
Syntax error
2017-12-27 12:02:47 +01:00
Fabio Manganiello
aa506b20e2
Should import logging
2017-12-27 11:29:33 +01:00
Fabio Manganiello
ec6f1b1457
Prevent player loops in case of dbus errors
2017-12-27 11:27:06 +01:00
Fabio Manganiello
7c55848651
Forgot a couple of selfs
2017-12-27 11:01:07 +01:00
Fabio Manganiello
c184356f67
Added __init__.py
2017-12-27 10:37:15 +01:00
Fabio Manganiello
eff046f1d1
Added __init__.py
2017-12-27 10:30:33 +01:00
Fabio Manganiello
7d36e9e946
Version bump
2017-12-27 10:22:30 +01:00
Fabio Manganiello
92b691041e
Added more general media control plugin, #10
2017-12-27 10:19:35 +01:00
Fabio Manganiello
c201d725b7
Google Assistant plugin to programmatically start/stop conversation
2017-12-26 15:06:59 +01:00
Fabio Manganiello
720ab38673
Version bump
2017-12-25 17:27:08 +01:00
Fabio Manganiello
617c0f8a07
Added code for handling procedures - solves #1
2017-12-25 17:23:12 +01:00
Fabio Manganiello
96f2d9f496
Removed old processor module
2017-12-24 20:41:38 +01:00
Fabio Manganiello
7f3a94dcaf
Version bump
2017-12-24 13:21:11 +01:00
Fabio Manganiello
75410ead2d
Added __init__.py
2017-12-24 13:20:00 +01:00
Fabio Manganiello
6928e440bc
Support for Flic button events
2017-12-24 13:15:37 +01:00
Fabio Manganiello
18830232a4
Don't trigger the default Assistant response if the phrase matched an internal rule. Also, backends should be easily accessible through a context module (more context variables will be added there)
2017-12-24 02:35:49 +01:00
Fabio Manganiello
939744314e
Updated sample config
2017-12-24 01:33:06 +01:00
Fabio Manganiello
7b97a5b229
- #30 Implemented Google Assistant backend
...
- #21 Implemented events management
2017-12-24 01:10:48 +01:00
Fabio Manganiello
16dabd7575
Pass n_tries to Request.execute
2017-12-22 18:11:42 +01:00
Fabio Manganiello
f04d0bd24f
Don't send responses in case of errors within the retry mechanism
2017-12-22 18:09:11 +01:00
Fabio Manganiello
ac3dad5fd9
Changed design for run_request - it should be a method of Request, not a member of Daemon
2017-12-22 18:04:18 +01:00
Fabio Manganiello
1ea8badd59
Assistant v.0.1
2017-12-22 10:43:43 +01:00
Fabio Manganiello
3a9afd1fed
import error
2017-12-22 10:21:31 +01:00
Fabio Manganiello
017c53fb50
Added Google Assistant draft backend
2017-12-22 10:18:04 +01:00
Fabio Manganiello
766f1c62e4
Fixed comparison for none
2017-12-22 09:53:58 +01:00
Fabio Manganiello
7a0295675c
#20 Added TTS plugin
2017-12-22 03:14:19 +01:00
Fabio Manganiello
6dcec9f9b4
- Version bump
...
- Only Python 3.6 on Travis
2017-12-22 02:57:44 +01:00
Fabio Manganiello
97adb1a191
* Better documentation for the local backend
...
* Remove the fifos at the beginning of the test
2017-12-22 02:52:56 +01:00
Fabio Manganiello
3dfcf0ec97
Added tests
2017-12-22 02:11:56 +01:00
Fabio Manganiello
4b819d5460
Another major refactoring. Among the other things, reintroduced local backend, made requests and responses working in every case, and properly handling stop events
2017-12-22 00:49:03 +01:00
Fabio Manganiello
7e79fa0418
Support for custom message handlers on the listener
2017-12-20 22:12:32 +01:00
Fabio Manganiello
bd5c80175f
- Major refactoring.
...
- More consistent naming for many methods, plus added a more extensive doc.
- Refactored the entry points for the daemon and the pusher into two
classes, easier to encapsulate and wrap into tests.
- Removed the local backend - managing the concurrency of two processes
reading and writing on the same socket at the same time was too much,
and its utility outside of the tests (which can have mock backends as
well) is quite modest.
- Managing stop events on the bus. Still some work to do tho.
- Fixed several bugs.
2017-12-20 20:25:08 +01:00
Fabio Manganiello
84e36a13e9
Force exit on pusher response timeout
2017-12-18 22:58:31 +01:00
Fabio Manganiello
8ea943ffe1
Version bump
2017-12-18 22:45:55 +01:00
Fabio Manganiello
86f339cbee
Printing response on pusher
2017-12-18 22:45:03 +01:00
Fabio Manganiello
21381e7c0f
[ #23 ] Request/Response ID chaining fixes
...
[#17 ] Response wait and response timeout implementation on pusher side
2017-12-18 22:40:56 +01:00
Fabio Manganiello
08f7fce028
exit all the threads on termination
2017-12-18 03:23:18 +01:00
Fabio Manganiello
18a5902ac4
Locking requests and responses with ids
2017-12-18 03:09:38 +01:00
Fabio Manganiello
97b6fab376
Updated README
2017-12-18 01:53:32 +01:00
Fabio Manganiello
93be9e3912
Fixed plugin name
2017-12-18 01:25:30 +01:00
Fabio Manganiello
4a04e51da7
Major refactoring #2
2017-12-18 01:10:51 +01:00
Fabio Manganiello
546ea1b9b9
Removed unneeded imports
2017-12-17 16:52:22 +01:00
Fabio Manganiello
1a6d726b19
Passing arguments to the plugin
2017-12-17 16:41:52 +01:00
Fabio Manganiello
339e7b73a5
Major refactoring.
...
Solves, among the others, #2 , #18 and #22
2017-12-17 16:15:44 +01:00
Fabio Manganiello
cb423dab03
Removed short circuit on the response
2017-12-16 07:01:25 +01:00
Fabio Manganiello
6c7c08f7aa
Version bump
2017-12-16 05:00:29 +01:00
Fabio Manganiello
8c89a10710
Simplified backend interface, fixed some bugs with response management
2017-12-16 04:56:43 +01:00
Fabio Manganiello
ea3eef379a
No reference to self in static method
2017-12-14 01:58:42 +01:00
Fabio Manganiello
ee5b8e21a0
* If we get a push tickle on PushBullet, get that latest push
...
* Fixed device_id attribute name clash
2017-12-13 23:55:38 +01:00
Fabio Manganiello
dfb4620e0a
Added __init__.py
2017-12-13 04:24:59 +01:00
Fabio Manganiello
33c4d9fb52
s/platypush.response/platypush.message.response/g
2017-12-13 04:21:26 +01:00
Fabio Manganiello
462dc2f1c9
* Sending responses back on the backend channel
...
* Version bump
2017-12-13 04:14:46 +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
bf49fb8af3
#11 Kafka topics are now in the format topic.device_id so messages aren't broadcast to all the listeners of the same topic
2017-12-13 01:07:46 +01:00
Fabio Manganiello
c62a1a2bd3
Initialize the local fifo only when the backend is run
2017-12-13 01:04:04 +01:00
Fabio Manganiello
898a4ffdef
Syntax error
2017-12-12 20:16:00 +01:00
Fabio Manganiello
f7202fd205
* PushbulletBackend.send_msg method refactored and removed pushbullet.py dependency
...
* Management of optional dependencies moved to setup.py
2017-12-12 20:14:02 +01:00
Fabio Manganiello
4b0706380e
Consistent logging info
2017-12-12 19:26:23 +01:00
Fabio Manganiello
7a58add0ad
#5 pusher script moved to its own module and entrypoint
2017-12-11 23:09:45 +01:00
Fabio Manganiello
6c2ea3767c
s/runbullet/platypush/g
2017-12-11 20:30:57 +01:00