Commit graph

38 commits

Author SHA1 Message Date
Fabio Manganiello
13c1895295 Support for runtime arguments on procedures 2018-09-25 19:20:34 +02:00
Fabio Manganiello
6449504e26 Switched the bus to a Redis bus 2018-09-20 10:49:57 +00:00
Fabio Manganiello
822e0a1e25 Better fix for broken async variables and attributes after Python 3.7 migration 2018-08-07 22:00:11 +00:00
Fabio Manganiello
ee5e4dff92 Revert "In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async"
This reverts commit f0577733b6.
2018-08-07 21:52:07 +00:00
Fabio Manganiello
b023618950 Revert "In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async"
This reverts commit e625861edf.
2018-08-07 21:52:02 +00:00
Fabio Manganiello
f0577733b6 In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async 2018-08-07 21:28:06 +00:00
Fabio Manganiello
e625861edf In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async 2018-08-07 21:26:57 +00:00
Fabio Manganiello
66d78c8615 [#61] Plugins actions refactoring
- Using `@action` annotation to indicate methods that are allowed to be
executed as actions

- The output and errors of an action are automatically wrapped into a
`Response` object without any response build required on the plugin side
2018-07-06 02:08:38 +02:00
Fabio Manganiello
81a81312e3 Basic support for token authentication on request level 2018-07-05 09:15:53 +02:00
Fabio Manganiello
061b676fbc If the string assignment didn't work either, give up without failing (also in Request) 2018-06-14 19:12:16 +02:00
Fabio Manganiello
f67b737a54 Best effort in context expansion 2018-06-07 09:33:26 +02:00
Fabio Manganiello
4da74b1096 Refactored logging submodule 2018-06-06 20:09:23 +02:00
Fabio Manganiello
c867a21104 If the value is a platypush Message, then converting it into a string would result in a JSON dumps that might break the interpreter (e.g. 'null' is a valid JSON keyword but it's not recognized by Python). Therefore first parse the variable from JSON 2018-06-06 18:50:09 +02:00
Fabio Manganiello
850a4f2146 A less convoluted and robust way to expand the context as variables 2018-06-06 17:14:44 +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
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
834b700d5f Added GMail actions support, solves #49 2018-01-17 03:16:59 +01:00
Fabio Manganiello
14b511034f Support for cron actions, solves #47 2018-01-15 22:37:01 +01:00
Fabio Manganiello
959296b15a Support for context variables and constants 2018-01-10 18:47:25 +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
dfee3f5004 Recursively expand the context of a request over the nested arguments 2018-01-06 12:40:22 +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
a476de81a8 Fixed procedure execution code 2018-01-04 16:11:54 +01:00
Fabio Manganiello
20b07fb02f Made an HTTP backend, #27 2018-01-04 02:45:23 +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
92b691041e Added more general media control plugin, #10 2017-12-27 10:19:35 +01:00
Fabio Manganiello
617c0f8a07 Added code for handling procedures - solves #1 2017-12-25 17:23:12 +01:00
Fabio Manganiello
7b97a5b229 - #30 Implemented Google Assistant backend
- #21 Implemented events management
2017-12-24 01:10:48 +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
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
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
18a5902ac4 Locking requests and responses with ids 2017-12-18 03:09:38 +01:00
Fabio Manganiello
4a04e51da7 Major refactoring #2 2017-12-18 01:10:51 +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