Commit Graph

2103 Commits

Author SHA1 Message Date
Fabio Manganiello c3fa3315f5
Implemented synchronization with webhook responses.
When a client triggers a `WebhookEvent` by calling a configured webhook
over `/hook/<hook_name>`, the server will now wait for the configured
`@hook` function to complete and it will return the returned response
back to the client.

This makes webhooks much more powerful, as they can be used to proxy
HTTP calls or other services, and in general return something to the
client instead of just executing actions.
2022-08-30 23:35:19 +02:00
Fabio Manganiello e08947a3b7
Merge pull request #311 from BlackLight/dependabot/npm_and_yarn/platypush/backend/http/webapp/terser-5.14.2
Bump terser from 5.12.1 to 5.14.2 in /platypush/backend/http/webapp
2022-08-29 00:59:55 +02:00
Fabio Manganiello 6d63d2fc74
Merge pull request #305 from BlackLight/dependabot/npm_and_yarn/platypush/backend/http/webapp/shell-quote-1.7.3
Bump shell-quote from 1.7.2 to 1.7.3 in /platypush/backend/http/webapp
2022-08-29 00:59:19 +02:00
Fabio Manganiello 540a7d469e
- Fixed documentation errors and warnings
- Split Matrix integration into `plugin` and `client` files.
2022-08-29 00:55:46 +02:00
Fabio Manganiello b11a0e8bbb
Bump version: 0.23.3 → 0.23.4 2022-08-28 15:27:54 +02:00
Fabio Manganiello c417d2f692
Implemented last Matrix integration features.
- Added presence, typing and seen receipt events.
- Added set display_name and avatar methods.
2022-08-28 15:17:11 +02:00
Fabio Manganiello e479ca7e3e
Completing the Matrix plugin integration
Newly implemented actions:

- `get_messages`
- `get_room_members`
- `update_device`
- `delete_devices`
- `room_alias_to_id`
- `add_room_alias`
- `delete_room_alias`
- `kick`
- `ban`
- `unban`
- `forget`
2022-08-28 12:26:27 +02:00
Fabio Manganiello 0e3cabc5f6
Support `attribute` parameter on `Function` schema fields. 2022-08-28 11:55:30 +02:00
Fabio Manganiello d890b6cbe8
Added create_room action 2022-08-27 23:26:42 +02:00
Fabio Manganiello 912168626c
Added join_room, leave_room and invite_to_room and extended handling on invitation events 2022-08-27 21:50:48 +02:00
Fabio Manganiello 513195b396
Implemented support for file upload 2022-08-27 15:12:50 +02:00
Fabio Manganiello 48ec6ef68b
Implemented proper support for encrypted media and added download method 2022-08-26 23:48:29 +02:00
Fabio Manganiello e4eb4cd7dc
More granular control over trusted devices, and added global synchronization event 2022-08-25 00:34:01 +02:00
Fabio Manganiello 550f026e13
Cleaner logging for assertion errors in plugin actions 2022-08-25 00:30:53 +02:00
Fabio Manganiello c89c712928
Fixed device trust process 2022-08-24 01:49:43 +02:00
Fabio Manganiello 05908e1a77
Fixing key verification process 2022-08-17 10:28:31 +02:00
Fabio Manganiello c04bc8d2bc
The matrix plugin joins the AsyncRunnablePlugin family too 2022-08-15 02:18:29 +02:00
Fabio Manganiello 2797ffbe53
The websocket plugin now extends AsyncRunnablePlugin too 2022-08-15 02:18:29 +02:00
Fabio Manganiello 770a14daae
ntfy plugin migrated to AsyncRunnablePlugin.
This commit removes a lot of the loop management boilerplate.
2022-08-15 02:18:29 +02:00
Fabio Manganiello dba03d3e33
Added AsyncRunnablePlugin class.
This class handles runnable plugins that have their own asyncio event
loop, without the pain usually caused by the management of multiple
threads + asyncio loops.
2022-08-15 02:18:28 +02:00
Fabio Manganiello f4672ce5c3
Refactored concurrency model in ntfy plugin 2022-08-15 02:18:28 +02:00
Fabio Manganiello 9e2b4a0043
Removed references to deprecated websockets attributes 2022-08-15 02:18:28 +02:00
Fabio Manganiello dc7ba881f1
Merge branch 'master' into matrix-integration 2022-08-12 14:39:13 +02:00
Fabio Manganiello 4e1e6da67e
Added recv action on websocket plugin 2022-08-12 14:16:01 +02:00
Fabio Manganiello 354f3906f9
Changed autojoin_on_invite default value 2022-08-12 00:11:15 +02:00
Fabio Manganiello 7ab02e705d
Removed redundant _action_wrapper decorator 2022-08-05 19:04:43 +02:00
Fabio Manganiello 99de5318ff
Merge pull request #313 from BlackLight/snyk-upgrade-58f5a7acf019c661bec911d06f0bf10a
[Snyk] Upgrade core-js from 3.21.1 to 3.23.4
2022-08-05 13:26:25 +02:00
Fabio Manganiello b3bab9b1d8
Merge pull request #314 from BlackLight/snyk-upgrade-9823d0f9eee2d94f4547598322ba6a48
[Snyk] Upgrade vue-router from 4.0.14 to 4.1.2
2022-08-05 13:26:07 +02:00
Fabio Manganiello 55602cc282
Merge branch 'master' into snyk-upgrade-30cde2b595c9da96da481c691c0964d5 2022-08-05 13:05:25 +02:00
snyk-bot 3d5fc9a10b
fix: upgrade sass-loader from 10.2.1 to 10.3.1
Snyk has created this PR to upgrade sass-loader from 10.2.1 to 10.3.1.

See this package in npm:
https://www.npmjs.com/package/sass-loader

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-04 20:31:51 +00:00
snyk-bot be4dd48d76
fix: upgrade sass from 1.49.9 to 1.53.0
Snyk has created this PR to upgrade sass from 1.49.9 to 1.53.0.

See this package in npm:
https://www.npmjs.com/package/sass

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-04 20:31:45 +00:00
snyk-bot bd21779a17
fix: upgrade vue-router from 4.0.14 to 4.1.2
Snyk has created this PR to upgrade vue-router from 4.0.14 to 4.1.2.

See this package in npm:
https://www.npmjs.com/package/vue-router

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-04 20:31:33 +00:00
snyk-bot 58afc1090c
fix: upgrade core-js from 3.21.1 to 3.23.4
Snyk has created this PR to upgrade core-js from 3.21.1 to 3.23.4.

See this package in npm:
https://www.npmjs.com/package/core-js

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-04 20:31:28 +00:00
Fabio Manganiello cbe2e7bbfe
[WIP] 2022-08-04 03:08:54 +02:00
Fabio Manganiello c17d0080b5
Merge branch 'master' into matrix-integration 2022-08-04 02:14:22 +02:00
Fabio Manganiello 7c87238fec
match_condition should return immediately (no score-based fuzzy search) if an event condition is an exact match 2022-08-04 01:04:00 +02:00
Fabio Manganiello 55671f4aff
If a request on a RunnablePlugin throws an exception then we should also restart the plugin upon reload
Plus some Black/LINT chores
2022-07-25 00:41:08 +02:00
Fabio Manganiello c32142c8b5
Added wait_stop() method to RunnablePlugin 2022-07-23 17:33:23 +02:00
Fabio Manganiello 32be4df11c
More robust way to retrieve an object's attribute on schemas 2022-07-23 17:32:14 +02:00
dependabot[bot] c7927a3d2f
Bump terser from 5.12.1 to 5.14.2 in /platypush/backend/http/webapp
Bumps [terser](https://github.com/terser/terser) from 5.12.1 to 5.14.2.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-21 00:35:29 +00:00
Fabio Manganiello 3edb8352b4
Support sections with empty bodies in the YAML configuration files. 2022-07-16 02:09:22 +02:00
Fabio Manganiello cc29136db7
[#2] Support for caching rooms info and exposing them in the events 2022-07-15 00:37:21 +02:00
Fabio Manganiello 719bd4fddf
[#217 WIP] Initial plugin implementation.
- Added initial synchronization and users cache.
- Added loop to poll for new events (TODO: use websocket after the first sync)
- Added login, sync and join actions
2022-07-14 01:50:46 +02:00
dependabot[bot] 06168d4ebd
Bump shell-quote from 1.7.2 to 1.7.3 in /platypush/backend/http/webapp
Bumps [shell-quote](https://github.com/substack/node-shell-quote) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/substack/node-shell-quote/releases)
- [Changelog](https://github.com/substack/node-shell-quote/blob/master/CHANGELOG.md)
- [Commits](https://github.com/substack/node-shell-quote/compare/v1.7.2...1.7.3)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-23 11:29:13 +00:00
Fabio Manganiello c6c7128099
Wrapped clipboard management logic in a try-except block to prevent the clipboard plugin from failing hard 2022-06-14 16:47:52 +02:00
Fabio Manganiello 5966566d54
Fixed LGTM warnings 2022-06-10 20:56:40 +02:00
Fabio Manganiello 8d26c8634d Keep the ntfy process in stop_wait state even when the plugin is configured with no subscriptions 2022-06-09 11:59:29 +02:00
Fabio Manganiello 1da17fca35 Print invalid rules to help debug broken configurations 2022-06-08 15:34:14 +02:00
Fabio Manganiello 35cb72f5aa
Do a lazy plugin initialization in the Variable class
This is useful for two reason:

1. Slightly faster variable initialization times.
2. The cached variable object won't fail on the next `.get()`/`.set()`
   if the `db` or `redis` plugins have failed for some reason.
2022-06-07 00:04:29 +02:00
Fabio Manganiello 115bed7d8b
Added limit parameter to `lastfm.get_similar_tracks` 2022-06-06 14:12:45 +02:00
Fabio Manganiello 3d22d6b082
Added get_track and get_similar_tracks methods on `lastfm` plugin 2022-06-05 18:49:34 +02:00
Fabio Manganiello 5971ec32c8
Removed `clipboard` backend.
The relevant clipboard monitoring logic has been moved to the
`clipboard` plugin. Thus, enabling the plugin should provide all the
feature, with no need for an additional backend.
2022-06-04 12:32:02 +02:00
Fabio Manganiello 7e31ac6ed8
Added missing web build files 2022-06-02 23:41:50 +02:00
Fabio Manganiello c9f435a6cb
Added support for ntfy notification on the frontend (just like Pushbullet) 2022-06-02 23:36:43 +02:00
Fabio Manganiello cb7021152f
Added `get_recent_tracks` method to the `lastfm` plugin 2022-06-02 20:57:35 +02:00
Fabio Manganiello d3f4865395
Fixed variable name conflict 2022-06-02 01:44:38 +02:00
Fabio Manganiello f080478385
s/click_url/url/g in ntfy message definitions 2022-06-02 00:40:26 +02:00
Fabio Manganiello b857ce60a7
Bump version: 0.23.2 → 0.23.3 2022-06-01 23:08:32 +02:00
Fabio Manganiello 8be515c17b
[closes #219] Added ntfy integration 2022-06-01 23:01:29 +02:00
Fabio Manganiello 239025290d
--redis-queue argument should be a string 2022-05-25 10:11:29 +02:00
Fabio Manganiello 7a0e39111d FIX: A feed entry may not necessarily have an `id` attribute 2022-05-06 14:38:25 +02:00
Fabio Manganiello 2cd7ae9513
Merge pull request #288 from BlackLight/dependabot/npm_and_yarn/platypush/backend/http/webapp/async-2.6.4
Bump async from 2.6.3 to 2.6.4 in /platypush/backend/http/webapp
2022-04-29 16:52:07 +02:00
Fabio Manganiello 55958c1b57
[#217] Casting `get_next` to `datetime` to prevent DST issues 2022-04-28 23:29:45 +02:00
Fabio Manganiello e9454b0c0f Merge branch '217-cron-decorated-function-are-off-after-dst-change' into 'master'
Resolve "@cron decorated function are off after DST change"

Closes #217

See merge request platypush/platypush!13
2022-04-28 01:14:18 +02:00
Fabio Manganiello ba23eb7280
Small LINT fix 2022-04-28 01:04:30 +02:00
Fabio Manganiello 41d0725ebf
Fix for #217
The cron scheduler has been made more robust against changes in the
system clock (caused by e.g. DST changes, NTP syncs or manual setting).

A more granular management for cronjob events has been introduced, now
supporting a `TIME_SYNC` event besides the usual `STOP`. When the cron
scheduler detects a system clock drift (i.e. the timestamp offset before
and after a blocking wait is >1 sec) then all the cronjobs are notified
and forced to refresh their state.
2022-04-28 00:57:49 +02:00
Fabio Manganiello 820a1c8184
Don't raise a pytest warning upon the asyncio "No event loop" warning 2022-04-27 23:25:14 +02:00
dependabot[bot] 5929602c15
Bump async from 2.6.3 to 2.6.4 in /platypush/backend/http/webapp
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-27 12:55:03 +00:00
Fabio Manganiello fee5fc4ae0
HTTP backend dependencies moved from optional to required
If Platypush is supposed to work also without a manually created
`config.yaml`, and the HTTP backend is enabled by default in that
configuration, then Flask and companions should be among the required
dependencies.
2022-04-27 14:52:41 +02:00
Fabio Manganiello 371fd7e46b
Generate a default config.yaml if none is present instead of failing 2022-04-27 13:57:42 +02:00
Fabio Manganiello da73a5f1b9
Replaced deprecated json_output arg in NextCloud client with response.json_data 2022-04-26 19:30:26 +02:00
Fabio Manganiello a80adc996f [WIP] Default config.yaml in case a configuration file is missing in the default locations 2022-04-25 16:54:26 +02:00
Fabio Manganiello 12887b61fe Don't fail hard if the Linode API doesn't return a list of instances 2022-04-25 14:02:40 +02:00
Fabio Manganiello 486801653a
Added `.exception` action to logger plugin 2022-04-03 00:26:39 +02:00
Fabio Manganiello f7c594cc3f
get_bus() should return a default RedisBus() instance if the main bus is not registered 2022-04-02 22:47:23 +02:00
Fabio Manganiello b1491b8048
Better style for scrollbars 2022-03-30 17:42:09 +02:00
Fabio Manganiello 96a2d8bef0
Fixed size for nav icons with static images 2022-03-30 13:53:10 +02:00
Fabio Manganiello e261dcc27a
More UI fixes 2022-03-30 01:43:59 +02:00
Fabio Manganiello d0790aaba3
Better style for toggle switches 2022-03-29 23:45:57 +02:00
Fabio Manganiello bb28617cc9
Refactored slider and range-slider components 2022-03-29 14:36:17 +02:00
Fabio Manganiello e1e6da9307
Fixed icon size for img tags in nav bar 2022-03-28 16:00:18 +02:00
Fabio Manganiello f6ce0d7200
Fixed broken paddings after bulma removal 2022-03-28 13:13:31 +02:00
Fabio Manganiello ed5f7070a2
Removed bulma dependency from frontend
The UI is now much faster, the build process completes within one minute
(it used to take >15 minutes), and the size of the bundles has been
reduced by ~70%.
2022-03-28 12:54:36 +02:00
Fabio Manganiello 5ee47902f4
Refactored camera stream route 2022-03-28 12:44:04 +02:00
Fabio Manganiello 128b45686a
Updated Vue dependencies for the webapp 2022-03-28 01:19:21 +02:00
dependabot[bot] b72c9a19ae
Bump minimist from 1.2.5 to 1.2.6 in /platypush/backend/http/webapp
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-27 14:45:19 +00:00
Fabio Manganiello 2e33d3b3c5
Bump version: 0.23.1 → 0.23.2 2022-03-27 16:43:36 +02:00
Fabio Manganiello ffd23cf04d [#212] Support for asynchronous event monitoring on the GPIO plugin 2022-03-27 16:14:30 +02:00
Fabio Manganiello 34e1e673e8
CHANGELOG update and LINT fixes 2022-03-12 02:04:07 +01:00
Fabio Manganiello c3934e2a7e
Script API for platform variables [closes #206]
Added utility `platypush.context.Variable` class to simplify the
interaction with platform variables in custom Python scripts.
2022-03-12 01:51:18 +01:00
Fabio Manganiello fdf6d8fb4e
Better auto-generated documentation and fixed docstring warnings 2022-03-03 20:26:25 +01:00
Fabio Manganiello 7c9e9d284d
Bump version: 0.23.0 → 0.23.1 2022-03-01 12:50:31 +01:00
Fabio Manganiello c0039c3f87
Bump version: 0.22.10 → 0.23.0 2022-03-01 01:33:43 +01:00
Fabio Manganiello 0d0797a465
Added Jellyfin integration 2022-03-01 01:32:50 +01:00
dependabot[bot] 0324eb9f6b
Bump url-parse from 1.5.4 to 1.5.7 in /platypush/backend/http/webapp
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.4 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.4...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-19 16:39:08 +00:00
Fabio Manganiello e3f67766a3
Proper fix for variable arguments on process_data 2022-02-17 12:43:56 +01:00
Fabio Manganiello 1933ec709f
FIX: Proper fix for process_data taking a variable number of arguments 2022-02-17 11:50:04 +01:00
Fabio Manganiello 71cb73cf63
FIX: The CN of the organizer may not necessarily be set in calendar.ical 2022-02-17 10:55:35 +01:00
Fabio Manganiello 94bb3e0541
Added TOC to readme and more LGTM fixes 2022-02-09 21:06:49 +01:00
Fabio Manganiello 29a7eff15a
Fixed/suppressed LGTM warnings 2022-02-08 21:51:37 +01:00