Commit graph

4099 commits

Author SHA1 Message Date
8ec1ca8543
[#339] Backend preparation for 2FA support. 2024-07-25 00:47:04 +02:00
2cbb005c67
[core] The generation of RSA keys should be behind shared process locks. 2024-07-25 00:38:30 +02:00
cf813e4197
[Automatic] Updated UI files 2024-07-24 19:36:47 +00:00
70db33b4e2
[core] Better Redis connection fail handling logic.
If the connection to Redis goes down, it shouldn't take down the main
thread.

Instead, catch `RedisConnectionError`, and execute `poll` in a loop
until the connection is restored.
2024-07-24 21:33:04 +02:00
357d92b479
[core] Added current_user() HTTP utility. 2024-07-24 00:49:21 +02:00
2033f9760a
[core] Refactoring user/authentication layer.
- Separated the user model/db classes from the `UserManager`.
- More consistent naming for the flag on the `authenticate_*` functions
  that enables returning a tuple with the authentication status - all
  those flags are now named `with_status`.
2024-07-23 22:44:40 +02:00
ee27b2c4c6
[core] Refactored Web login/registration layer.
Instead of having a single Flask-provided endpoint, the UI should
initialize its own Vue component and manage the authentication
asynchronously over API.

This is especially a requirement for the implementation of 2FA.

The following routes have also been merged/refactored:

- `POST /register` -> `POST /auth?type=register`
- `POST /login` -> `POST /auth?type=login`
- `POST /auth` -> `POST /auth?type=jwt`
2024-07-23 02:08:25 +02:00
8904e40f9f
[UI] Redirect URIs should always be relative to the current host. 2024-07-23 02:08:25 +02:00
fe2497577d
[Automatic] Updated UI files 2024-07-21 19:34:57 +00:00
01aedb5568
[UI] DropdownItem should emit @input together with @click.
The propagation of the `click` event shouldn't be stopped, as it is
required for the upstream Dropdown event to understand if it needs to
close.

Components should instead listen to `@input` events, so disabled items
will not be triggered.
2024-07-21 21:32:54 +02:00
2ccf00508d
[qrcode] Allow binary content for qrcode.generate. 2024-07-21 21:32:54 +02:00
8329de15ba
[UI] Added extra showError condition on /execute. 2024-07-21 21:32:53 +02:00
c1b1bd6c50
[UI] Added generic .text-danger class. 2024-07-21 21:32:49 +02:00
snyk-bot
40c5a69a57
fix: upgrade vue from 3.4.29 to 3.4.31
Snyk has created this PR to upgrade vue from 3.4.29 to 3.4.31.

See this package in npm:
vue

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
2024-07-21 05:54:32 +00:00
snyk-bot
5070b4dad5
fix: upgrade sass from 1.77.3 to 1.77.6
Snyk has created this PR to upgrade sass from 1.77.3 to 1.77.6.

See this package in npm:
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
2024-07-21 05:54:29 +00:00
snyk-bot
d2e51e7ee2
fix: upgrade vue-router from 4.3.3 to 4.4.0
Snyk has created this PR to upgrade vue-router from 4.3.3 to 4.4.0.

See this package in npm:
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
2024-07-21 05:54:25 +00:00
fdd42b8a22
[Automatic] Updated UI files 2024-07-20 22:00:27 +00:00
baa584c1ca
[Torrents UI] Fixed style for files list 2024-07-20 23:58:25 +02:00
929271ee0e
[Automatic] Updated components cache 2024-07-20 20:26:11 +00:00
f608475380 Fix outdated method name in sound plugin docs. 2024-07-20 20:25:21 +00:00
e75a865c86
Merge branch 'master' into snyk-upgrade-68f4dd59f0141e45f5a75099ee1e596c 2024-07-20 12:42:51 +02:00
af187e95e5
Merge pull request #435 from blacklight/snyk-upgrade-207399cb68f0b666cd5a74f601c97857
[Snyk] Upgrade vue-router from 4.3.2 to 4.3.3
2024-07-20 12:41:55 +02:00
255422d5b8
Merge pull request #434 from blacklight/snyk-upgrade-e9c8d4be8f1465ea41d140fa3ac746c3
[Snyk] Upgrade sass from 1.77.2 to 1.77.3
2024-07-20 12:41:42 +02:00
18a7b05a80
Merge pull request #432 from blacklight/dependabot/npm_and_yarn/platypush/backend/http/webapp/braces-3.0.3
Bump braces from 3.0.2 to 3.0.3 in /platypush/backend/http/webapp
2024-07-20 12:41:24 +02:00
6ab0c3d953
Merge pull request #431 from blacklight/snyk-upgrade-58571bd8b39cde152d941b6e296a9f10
[Snyk] Upgrade axios from 1.6.8 to 1.7.1
2024-07-20 12:40:41 +02:00
38edaaf311
[Automatic] Updated UI files 2024-07-20 10:09:48 +00:00
15b615efe8
[Camera UI] React on screen orientation changes to redraw the camera frame. 2024-07-20 12:07:51 +02:00
6e99e87aa6
[PWA] Allow any orientation. 2024-07-20 12:07:51 +02:00
a5c69d2ded
[Automatic] Updated components cache 2024-07-20 01:48:11 +00:00
7661d9c843
[#393] Added bind_socket parameter to backend.http.
The web server can now listen either on a TCP port, on a UNIX socket, or
both.

Closes: #393
2024-07-20 03:46:57 +02:00
9e36c5550f
[Automatic] Updated UI files 2024-07-20 00:59:17 +00:00
8291a97cd9
[Camera UI] Don't overflow the screen size. 2024-07-20 02:57:21 +02:00
579f9816e2
[Automatic] Updated UI files 2024-07-20 00:27:45 +00:00
b69e950076
[Camera UI] Dynamic fullscreen support. 2024-07-20 02:25:48 +02:00
3fddf67949
[Automatic] Updated UI files 2024-07-17 23:04:48 +00:00
4441461354
[Samsung TV UI] Improved UI style. 2024-07-18 01:02:51 +02:00
52f5ce2642
[Automatic] Updated components cache 2024-07-17 22:44:54 +00:00
392d64d03b
[tv.samsung] Reset the websocket connection in case of command error. 2024-07-18 00:43:12 +02:00
38cf102397
[#401] Added --redis-bin/PLATYPUSH_REDIS_BIN option/variable.
Closes: #401
2024-07-17 23:11:48 +02:00
6d425b06f7
[Automatic] Updated UI files 2024-07-17 00:46:29 +00:00
234c3ce7d8
[UI] Added nav button to expand plugin views. 2024-07-17 02:44:33 +02:00
28ce11d636
[Automatic] Updated components cache 2024-07-17 00:32:01 +00:00
490ed4c361
[#413] /manifest.json should install PWAs for specific plugins.
If called on a `/plugin/<plugin>` route.
2024-07-17 02:30:47 +02:00
b039d98c66
[Packaging] Removed sudo and redis dependencies from Arch.
These are already available through the pacman/AUR helper and
`python-redis` respectively.

See https://aur.archlinux.org/packages/platypush#comment-982710
2024-07-17 02:30:47 +02:00
4c4e29b34e
[Automatic] Updated components cache 2024-07-16 23:27:52 +00:00
f55cacb2e3
[chore] Added missing parameter to docstring. 2024-07-17 01:26:17 +02:00
b312f1717f
[Automatic] Updated components cache 2024-07-16 20:16:23 +00:00
a27955a583
[chore] Removed unused wheel dependency. 2024-07-16 22:14:56 +02:00
0e012c9800
[chore] Removed unused pytz dependency. 2024-07-16 22:09:35 +02:00
1d873aca05
[chore] Removed frozendict dependency.
It's no longer in use in the codebase.
2024-07-16 22:07:49 +02:00
dc96b4995c
[core] Added ApplicationStartedEvent to Redis bus instead of application.
The Redis bus now uses a pub/sub architecture rather than a simple
queue.

Earlier on, the application could post an event to the queue and then
pick it up when it started listening.

When doing a publish on a pub/sub channel, however, any messages
sent before the client started listening will be lost.
2024-07-16 20:56:51 +02:00
837b0fad98
[Automatic] Updated UI files 2024-07-16 13:37:08 +00:00
03950e23f7
Bump version: 1.1.2 → 1.1.3 2024-07-16 15:34:50 +02:00
01af85d024
Updated UI files 2024-07-16 15:31:00 +02:00
6f8a81f020
Bump version: 1.1.1 → 1.1.2 2024-07-16 12:01:45 +02:00
329296b606
Merge branch 'master' into 391/improve-youtube-support 2024-07-16 03:56:12 +02:00
b8d8b48d73
[Automatic] Updated components cache 2024-07-16 01:52:02 +00:00
398925d76e
[media] Added only_audio option to media.download. 2024-07-16 03:50:14 +02:00
b44bd0be32
[Media UI] Download Audio support. 2024-07-16 03:48:45 +02:00
5ebdb381f1
[File UI] Persist the path on the URI. 2024-07-16 03:12:18 +02:00
aa92db9850
[UI] A more robust way to encode/decode URI arguments. 2024-07-16 03:10:54 +02:00
e710a3a974
[Media UI] Support for open-channel events from any media item. 2024-07-16 02:30:47 +02:00
c95381cead
[Media UI] Added more permalinks.
- `channel`
- `playlist`
2024-07-16 01:19:29 +02:00
c5ac02d133
[Media UI] Misc style improvements. 2024-07-16 01:18:33 +02:00
910304b817
[Media UI] More URI-persisted navigation items.
- `player`
- `provider`
2024-07-15 23:12:04 +02:00
e8723eae98
Merge branch 'master' into 391/improve-youtube-support 2024-07-15 22:35:24 +02:00
a746273f73
[Media UI] Added media view to URL fragment. 2024-07-15 22:34:32 +02:00
e180c9c76f
[Media UI] Extend YouTube video events to all media views.
These events should be available for all YouTube videos, regardless of
where they are rendered:

- `add-to-playlist`
- `remove-from-playlist`
- `download`
2024-07-15 22:32:13 +02:00
c416d0ea1f
[Media UI] MediaImage should emit both play and select. 2024-07-15 22:28:06 +02:00
75aed6af92
[UI] Added asynchronous timeout utility. 2024-07-15 22:26:42 +02:00
ef4d0bd38c
[media] Support for generic media downloads. 2024-07-15 04:09:54 +02:00
bd01827b52
[Automatic] Updated components cache 2024-07-15 04:09:54 +02:00
f64d47565d
[Media UI] Support for generic media download. 2024-07-15 04:09:54 +02:00
79ba8deb71
[media] Added support for yt-dlp-compatible URLs to media.download.
Also, added `MediaDownloadEvent`s to keep track of the state of the
download.
2024-07-15 04:09:53 +02:00
84e06e30fe
[core] New architecture for the Redis bus.
- Use pubsub pattern rather than `rpush`/`blpop` - it saves memory, it's
  faster, and it decreases the risk of deadlocks.

- Use a connection pool.

- Propagate `PLATYPUSH_REDIS_QUEUE` environment variable so any
  subprocesses can access it.
2024-07-15 04:09:53 +02:00
f78027a6eb
[Automatic] Updated components cache 2024-07-15 02:09:39 +00:00
b43c4612fd
[media] Support for generic media downloads. 2024-07-15 04:08:26 +02:00
dce6096020
[Automatic] Updated components cache 2024-07-14 01:07:51 +00:00
96aa22c03e
[media] Added support for yt-dlp-compatible URLs to media.download.
Also, added `MediaDownloadEvent`s to keep track of the state of the
download.
2024-07-14 03:06:36 +02:00
16527417da
[core] New architecture for the Redis bus.
- Use pubsub pattern rather than `rpush`/`blpop` - it saves memory, it's
  faster, and it decreases the risk of deadlocks.

- Use a connection pool.

- Propagate `PLATYPUSH_REDIS_QUEUE` environment variable so any
  subprocesses can access it.
2024-07-14 03:06:35 +02:00
1ad68cac11 Merge branch 'master' into 391/improve-youtube-support 2024-07-13 00:55:34 +02:00
972f9dffb9
[YouTube UI] Fixed infinite scroll for channels. 2024-07-13 00:54:29 +02:00
6a0f19a62f
[Automatic] Updated components cache 2024-07-12 22:42:49 +00:00
81fb1a47c3
Merge branch 'master' into 391/improve-youtube-support 2024-07-13 00:41:46 +02:00
24b5b3ba14
[youtube] Added youtube.is_subscribed action. 2024-07-13 00:41:38 +02:00
21ac87394a
[YouTube UI] Added channel subscribe/unsubscribe buttons. 2024-07-13 00:40:29 +02:00
55c4f5797b
[YouTube UI] Added support for browsing channels from search results. 2024-07-13 00:04:26 +02:00
c7f12e0bd8
[Automatic] Updated components cache 2024-07-12 01:13:48 +00:00
5ff839919c
Merge branch 'master' into 391/improve-youtube-support 2024-07-12 03:12:39 +02:00
7266fe8a43
[youtube] Always add id and url to playlist results. 2024-07-12 03:12:31 +02:00
c8fa53e62f
[media.mpv] Fix for media duration if playback_time is not available. 2024-07-12 03:12:31 +02:00
e65bf99baf
[YouTube UI] Added support for browsing playlists from search results. 2024-07-12 03:10:43 +02:00
9b42815d77
[Automatic] Updated components cache 2024-07-11 21:45:09 +00:00
7c610413df
Merge branch 'master' into 391/improve-youtube-support 2024-07-11 23:44:07 +02:00
aaf6c39255
Fixed RST doc typo. 2024-07-11 23:43:53 +02:00
a4979f1513
[Media UI] Support for playlists in search results. 2024-07-11 23:42:18 +02:00
ded64e8dc2
[UI Performance] Lazy initialization for router components. 2024-07-11 23:40:19 +02:00
1a9ac56923
Merge branch 'master' into 391/improve-youtube-support 2024-07-11 23:37:57 +02:00
12d53b846e
[Automatic] Updated components cache 2024-07-11 21:37:44 +00:00
5e905db0f5
[youtube] Support for playlists and channels in search results. 2024-07-11 23:36:25 +02:00
snyk-bot
e70f12b948
fix: upgrade vue from 3.4.27 to 3.4.29
Snyk has created this PR to upgrade vue from 3.4.27 to 3.4.29.

See this package in npm:
vue

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
2024-07-06 04:46:46 +00:00
snyk-bot
e59606e588
fix: upgrade vue-router from 4.3.2 to 4.3.3
Snyk has created this PR to upgrade vue-router from 4.3.2 to 4.3.3.

See this package in npm:
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
2024-07-02 06:32:38 +00:00
98a6adb7ef
[Youtube UI] More playlist actions.
- `create_playlist`
- `rename_playlist`
- `delete_playlist`
2024-06-27 01:26:00 +02:00
d4354e81f8
[Youtube UI] Added playlist operations.
- `add_to_playlist`
- `remove_from_playlist`
2024-06-27 00:24:31 +02:00
c9daa037a7
[Automatic] Updated components cache 2024-06-26 22:23:01 +00:00
701623c99d
Merge branch 'master' into 391/improve-youtube-support 2024-06-27 00:22:22 +02:00
8880b966fc
[youtube] Fixed playlist operations URLs. 2024-06-27 00:21:27 +02:00
5f23aa8e78 Merge branch 'master' into 391/improve-youtube-support 2024-06-26 00:05:22 +02:00
8cea668e37
[Automatic] Updated components cache 2024-06-25 22:04:33 +00:00
26d9e6d9b9 Merge branch 'master' into 391/improve-youtube-support 2024-06-26 00:03:47 +02:00
b890326e71 [youtube] Added Piped edit actions.
- `subscribe`
- `unsubscribe`
- `add_to_playlist`
- `remove_from_playlist`
- `create_playlist`
- `remove_playlist`
2024-06-25 22:03:40 +00:00
b83dee50e5 Merge branch 'master' into 391/improve-youtube-support-backend 2024-06-26 00:02:26 +02:00
773986f211
[youtube] Added Piped edit actions.
- `subscribe`
- `unsubscribe`
- `add_to_playlist`
- `remove_from_playlist`
- `create_playlist`
- `remove_playlist`
2024-06-25 23:59:20 +02:00
705ba82fa1
[Media UI] Added button to get the raw stream URL from youtube-dl compatible media. 2024-06-25 23:03:44 +02:00
affe95be96
[Automatic] Updated components cache 2024-06-25 21:02:16 +00:00
6faa845afd
Migrated /file route.
Streaming content from a Flask route wrapped into a Tornado route is a
buffering nightmare.

`/file` has now been migrated to a pure Tornado asynchronous route
instead.
2024-06-25 23:00:51 +02:00
c7ee97bb0b
Bump version: 1.1.0 → 1.1.1 2024-06-25 01:51:27 +02:00
1a21671dde
[Automatic] Updated components cache 2024-06-24 18:30:48 +00:00
1f544c9e53
Fixed schema attribute description type mismatch. 2024-06-24 20:29:35 +02:00
a754b06f88
[Automatic] Updated UI files 2024-06-24 17:23:31 +00:00
3dc1ff3c6e
[#408] Rewritten+expanded torrent UI.
Closes: #408
2024-06-24 19:20:04 +02:00
1774e464cc
[torrent] Added is_media attribute to torrent results. 2024-06-24 01:12:00 +02:00
1dd905dc66
[torrent] Normalized limit/page parameters in torrent.search. 2024-06-23 23:42:04 +02:00
ec050b2853
[HTTP] Added authenticated /file?path=<path> route. 2024-06-23 23:40:39 +02:00
5672b23fbe
[Automatic] Updated UI files 2024-06-22 23:43:49 +00:00
91e2530dd5 [#407] Implemented torrent.csv backend 2024-06-22 23:42:18 +00:00
8fc3201b8c [torrent] Refactored torrent search.
Allow for more torrent search providers other than PopcornTime (in
preparation for torrent-csv).
2024-06-22 23:42:18 +00:00
snyk-bot
9027eaf4d1
fix: upgrade sass from 1.77.2 to 1.77.3
Snyk has created this PR to upgrade sass from 1.77.2 to 1.77.3.

See this package in npm:
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
2024-06-20 20:17:29 +00:00
dependabot[bot]
8b65a5f151
Bump braces from 3.0.2 to 3.0.3 in /platypush/backend/http/webapp
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 02:36:09 +00:00
snyk-bot
d8598f60a2
fix: upgrade axios from 1.6.8 to 1.7.1
Snyk has created this PR to upgrade axios from 1.6.8 to 1.7.1.

See this package in npm:
axios

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
2024-06-10 17:58:39 +00:00
36f49952c4
Merge pull request #430 from blacklight/snyk-upgrade-710b29e45259ad93d91928143706d645
[Snyk] Upgrade sass from 1.76.0 to 1.77.2
2024-06-10 16:33:58 +02:00
snyk-bot
d6ab2ee02b
fix: upgrade sass from 1.76.0 to 1.77.2
Snyk has created this PR to upgrade sass from 1.76.0 to 1.77.2.

See this package in npm:
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
2024-06-07 17:21:22 +00:00
snyk-bot
2e08e2f820
fix: upgrade vue from 3.4.24 to 3.4.27
Snyk has created this PR to upgrade vue from 3.4.24 to 3.4.27.

See this package in npm:
vue

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
2024-06-07 17:21:17 +00:00
3f2832a077
Merge branch 'master' into snyk-upgrade-2f9bcb05344a53203d1db8700a74298c 2024-06-06 22:32:04 +02:00
6f8eb397d2
Merge pull request #427 from blacklight/snyk-upgrade-97c24303ee224553f29b460d83c6c780
[Snyk] Upgrade cronstrue from 2.49.0 to 2.50.0
2024-06-06 22:30:59 +02:00
3163721bf3
Merge pull request #426 from blacklight/snyk-upgrade-26bc4dca62d58f39bfb77f2e69121708
[Snyk] Upgrade sass from 1.75.0 to 1.76.0
2024-06-06 22:30:43 +02:00
d79b8a1de5
Merge pull request #425 from blacklight/snyk-upgrade-a75151e7066361ecbf2a647d6e707a32
[Snyk] Upgrade vue from 3.4.23 to 3.4.24
2024-06-06 22:30:20 +02:00
3afc6b2271
[Automatic] Updated components cache 2024-06-06 20:29:13 +00:00
17b6b02986 Replaced warnings.warn with logging.warnings.
I couldn't find an easy and reliable way of routing `warnings.warn` to
`logging`.

Closes: #281
2024-06-06 20:28:23 +00:00
87a902bfa3
[Automatic] Updated components cache 2024-06-06 01:28:13 +00:00
421feffd3e
Bump version: 1.0.7 → 1.1.0 2024-06-06 03:27:04 +02:00
8814859abc
[zwave.mqtt] Fixed typo in documentation. 2024-06-06 03:27:03 +02:00
0ccd029ff1
[Automatic] Updated components cache 2024-06-06 00:25:21 +00:00
e52f5e06f4 [calendar.ical] Fixed timezone/datetime parsing issues.
Closes: #405
2024-06-06 00:24:31 +00:00
snyk-bot
066d71faa3
fix: upgrade core-js from 3.37.0 to 3.37.1
Snyk has created this PR to upgrade core-js from 3.37.0 to 3.37.1.

See this package in npm:
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
2024-06-04 18:18:54 +00:00
4f19b45975 Bump version: 1.0.6 → 1.0.7 2024-06-02 15:49:59 +00:00
7a8f30e5e0 [#384] Added assistant.openai and tts.openai plugins.
Closes: #384
2024-06-02 15:31:11 +00:00
3528b3646f [openai] Update documentation to include assistant and tts. 2024-06-02 15:31:11 +00:00
9cca928d4b [#348] Added openai.transcribe action.
This API is the foundation for the `assistant.openai` plugin.
2024-06-02 15:31:11 +00:00
f356fcd844 Added tts.stop method. 2024-06-02 15:31:11 +00:00
fcae7aa3ad Several improvements for assistant plugins.
- `stop_conversation_on_speech_match` should default to True.

- `render_response` should also handle conversation follow-ups, set the
  follow-up to True if the response ends with a question mark and the
  value of `with_follow_on_turn` is not set,

- Don't render responses if a `tts_plugin` is not set.
2024-06-02 15:31:11 +00:00
c7d640a1d2 IntentRecognizedEvent should stop the current assistant conversation when matched by a hook. 2024-06-02 15:31:11 +00:00
1cc2aaf5a4 [assistant.picovoice] _on_response_* methods should have varargs. 2024-06-02 15:31:11 +00:00
2acf6ef3e9 Bump version: 1.0.5 → 1.0.6 2024-06-01 09:01:07 +00:00
5fc9c1199b Fixed the root cause of the failure on the time module.
The previous commit prompted a new error:

```
2024-06-01 10:54:08,310|ERROR|platypush:plugin:bluetooth|module 'platypush.entities.time' has no attribute 'time'
Traceback (most recent call last):
  File "/usr/lib/python3.9/dist-packages/platypush/plugins/__init__.py", line 247, in _runner
    self.main()
  File "/usr/lib/python3.9/dist-packages/platypush/plugins/bluetooth/__init__.py", line 590, in main
    self._refresh_cache()
  File "/usr/lib/python3.9/dist-packages/platypush/plugins/bluetooth/__init__.py", line 146, in _refresh_cache
    get_entities_engine().wait_start()
  File "/usr/lib/python3.9/dist-packages/platypush/entities/__init__.py", line 48, in get_entities_engine
    time_start = time.time()
AttributeError: module 'platypush.entities.time' has no attribute 'time'
```

Which explains even the previous error: `import time` in that module
won't use the `time` module from the Python library, but the `.time`
module within the same directory.

This error only happens when the current directory is part of PYTHONPATH
(and usually it shouldn't), but for sake of keeping things safe I've
replaced `time()` with `utcnow().timestamp()`, with `utcnow` imported
from `platypush.utils`.
2024-06-01 09:01:07 +00:00
b067430cd5 Weird fix for a weird error that suddenly started on one of my machines.
```
Traceback (most recent call last):
  File "/usr/lib/python3.9/dist-packages/platypush/plugins/__init__.py", line 247, in _runner
    self.main()
  File "/usr/lib/python3.9/dist-packages/platypush/plugins/bluetooth/__init__.py", line 590, in main
    self._refresh_cache()
  File "/usr/lib/python3.9/dist-packages/platypush/plugins/bluetooth/__init__.py", line 146, in _refresh_cache
    get_entities_engine().wait_start()
  File "/usr/lib/python3.9/dist-packages/platypush/entities/__init__.py", line 48, in get_entities_engine
    time_start = time()
TypeError: 'module' object is not callable
```

There isn't a single reason in this world for this error to happen.

If I do `from time import time`, then `t = time()` is 100% valid Python.

I have no clue of what may be causing it, but I hope that this will fix
it.
2024-06-01 08:50:30 +00:00
ff60896625
[Automatic] Updated components cache 2024-05-31 23:55:27 +00:00
67b6e3a608
Bump version: 1.0.4 → 1.0.5 2024-06-01 01:43:12 +02:00
c9a5c29a4a
🐛 A proper cross-version solution for the utcnow() issue.
No need to maintain two different pieces of logic - a `utcnow()` for
Python < 3.11 and `now(datetime.UTC)` for Python >= 3.11.

`datetime.timezone.utc` existed long before datetime.UTC and that's what
the `utcnow` facade should use.

This means that all the `utcnow()` will always have `tzinfo=UTC`
regardless of the Python version.

There's still a problem with the `utcnow()`-generated timestamps that
have been generated by previous versions of Python and stored on the db.

Therefore, when the code performs comparisons with timestamps fetched
from the db, it should always explicitly do a `.replace(tzinfo=utc)` to
ensure that we always compare offset-aware datetime representations.

See blog post for technical details:
https://manganiello.blog/wheres-my-time-again
2024-06-01 01:34:47 +02:00
1067ab04d9
[tts.picovoice] Adapted to the new orca.synthesize API.
The new API no longer returns a list of numeric values alone. Instead,
it returns a tuple where the first element is the raw audio, and the
second element contains extra info on the rendered phonemes.
2024-05-31 21:10:48 +02:00
06f0ac4545
[Automatic] Updated components cache 2024-05-31 17:59:06 +00:00
944fd45f9f
Bump version: 1.0.3 → 1.0.4 2024-05-31 19:57:51 +02:00
3583dafbc3
🐛 Partial revert of c18768e61f
`datetime.utcnow` may be deprecated on Python >= 3.12, but
`datetime.UTC` isn't present on older Python versions.

Added a `platypush.utils.utcnow()` method as a workaround compatible
with both.
2024-05-31 19:55:19 +02:00
4513bb9569
Set a plugin argument on AssistantEvents besides assistant.
`assistant` contains the assistant plugin object that triggered the
event, but you can't create event hook conditions on attributes that are
plugins.

The event should also store a `plugin` attribute which contains the
unique plugin name, so hooks like these can be built:

```
from platypush import hook
from platypush.events.assistant import ConversationStartEvent

@when(ConversationStartEvent, plugin="assistant.google")
def on_google_conversation_start():
  ...
```

It wouldn't be possible to construct a hook condition like the one above
on the plugin object reported on the `assistant` attribute.
2024-05-31 19:55:19 +02:00
23e02de1d7
Bump version: 1.0.2 → 1.0.3 2024-05-31 02:57:08 +02:00
ce1525e786
[Automatic] Updated components cache 2024-05-31 00:53:37 +00:00
67478e7ca1 🐛 Fixed proper support for event package alias platypush.events.
Even though `platypush.events` is just a symlink to
`platypush.message.event`, imports from those two modules will be
treated as different imports, thus hook conditions build on
`platypush.events` imports will never match.
2024-05-31 00:52:48 +00:00
c18768e61f Replaced deprecated usages of datetime.utcnow() with datetime.now(UTC). 2024-05-31 00:52:48 +00:00
30362b89e3 [assistant] tts_plugin_args should include join=True by default.
The assistant by default should be configured to wait for response audio
to be fully rendered before proceeding.
2024-05-31 00:52:48 +00:00
snyk-bot
fee12951d6
fix: upgrade cronstrue from 2.49.0 to 2.50.0
Snyk has created this PR to upgrade cronstrue from 2.49.0 to 2.50.0.

See this package in npm:
cronstrue

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
2024-05-27 17:30:57 +00:00
5b3c0ad1cf
Bump version: 1.0.1 → 1.0.2 2024-05-26 11:09:51 +02:00
de2bbc53c6
Support both @procedure and @procedure(name) notations. 2024-05-26 11:02:19 +02:00
a4a776986b
Bump version: 1.0.0 → 1.0.1 2024-05-26 04:27:27 +02:00
0f6f119089
Bump version: 0.99.11 → 1.0.0 2024-05-26 04:15:52 +02:00
c64ff40dd3
Bump version: 0.99.10 → 0.99.11 2024-05-26 04:06:15 +02:00
e6702398dc
Bump version: 0.99.9 → 0.99.10 2024-05-26 03:46:51 +02:00
8d26721040
Bump version: 0.99.8 → 0.99.9 2024-05-26 03:32:49 +02:00
0ffff854d3
Bump version: 0.99.7 → 0.99.8 2024-05-26 03:18:16 +02:00
42174b31bc
Bump version: 0.99.6 → 0.99.7 2024-05-26 03:12:26 +02:00
3642d1ffa4
Added dns to mocked modules. 2024-05-26 03:02:57 +02:00
104457a302
Bump version: 0.99.5 → 0.99.6 2024-05-26 01:47:22 +02:00
751d719b04
Bump version: 0.99.4 → 0.99.5 2024-05-26 01:46:29 +02:00
cc670f9d4a
Bump version: 0.99.3 → 0.99.4 2024-05-26 01:26:46 +02:00
ee3933dc77
Bump version: 0.99.2 → 0.99.3 2024-05-26 00:56:29 +02:00
0537815721
Bump version: 0.99.1 → 0.99.2 2024-05-26 00:50:37 +02:00
d3562f4d20
Bump version: 0.99.0 → 0.99.1 2024-05-26 00:44:30 +02:00
1911c05afe
Bump version: 0.50.3 → 0.99.0 2024-05-26 00:25:34 +02:00
6de0b2e041
[Automatic] Updated components cache 2024-05-25 18:12:49 +00:00
35751da068
Added web hooks section to README. 2024-05-25 20:11:07 +02:00
3a4d7afcf0
Clean up all package manager caches after Docker build. 2024-05-25 14:15:13 +02:00
e071e99dab
Remove all cached/compiled Python files after Docker build. 2024-05-25 13:36:52 +02:00
2e0246413c
Replaced an old for ... in ... yield loop with yield from ... 2024-05-25 10:35:23 +02:00
b1dd484704
A more corner-case-proof logic for wants_break_system_packages. 2024-05-25 10:33:05 +02:00
05c6449d8b
Always add --break-system-packages to pip when the Docker context is active.
This fixes the case where Platydock is called within the context of a
virtual environment, but it needs to generate a Docker image - and
therefore, unless the host virtual environment, it needs
--break-system-packages to write to /usr.
2024-05-25 10:30:52 +02:00
5e52741986
[Automatic] Updated components cache 2024-05-25 08:19:19 +00:00
7d8a00696c
Adapted Platydock to the new Dockerfile format. 2024-05-25 10:17:45 +02:00
254604e404
py3-vlc has not been merged upstream in Alpine Linux yet. 2024-05-25 10:17:19 +02:00
8e05a7f4c9
Make Dockerfiles work both within and outside a Platypush source dir.
If the Platypush setup.py is found in the current directory, then use
that directory as the base for the new image.

Otherwise, clone the repo on the fly and build the image from there.
2024-05-25 00:42:30 +02:00
0fd2992894
Added platypush.events alias for platypush.message.event package. 2024-05-24 23:16:15 +02:00
3ccdd4d179
Updated pip ... --break-system-packages configuration.
All the latest versions of Alpine, Debian, Ubuntu and Fedora now require
`--break-system-packages` when installing packages via `pip` outside of
a virtual environment, even if it's within a container.
2024-05-24 22:59:42 +02:00
d20cd4b058
Added a nice ASCII-art logo at application startup. 2024-05-24 22:57:50 +02:00
c49b4ca273
platypush.run should also support procedures in the format procedure.<name>. 2024-05-24 20:20:25 +02:00
5c2204f99d
Allow for custom procedure names on the @procedure decorator.
```
@procedure("foo")
def bar():
    ...
```

Will now be published as `procedure.foo` instead of
`procedure.<module>.bar`.
2024-05-24 20:07:24 +02:00
a211e2e2e4
Changed default permissions for /var/lib/platypush from 0755 to 0750. 2024-05-23 01:15:26 +02:00
snyk-bot
46da373637
fix: upgrade sass from 1.75.0 to 1.76.0
Snyk has created this PR to upgrade sass from 1.75.0 to 1.76.0.

See this package in npm:
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
2024-05-22 12:34:49 +00:00
4038ef3bc1
[#319] Added platypush/config/systemd directory.
It contains both `platypush.service` and the `sysusers.d` and
`tmpfiles.d` configurations used by the package managers.
2024-05-20 22:19:30 +02:00
c899627eca
[Automatic] Updated components cache 2024-05-20 00:03:25 +00:00
d0f781919d
[#345] Rewritten sun plugin.
Closes: #345
2024-05-20 02:01:40 +02:00
86b4b14112
Added the current running application as a static object.
```python
from platypush import app
```
2024-05-20 01:54:25 +02:00
32b8296244
[#400] Dynamic logic to infer procedures/hooks arguments.
This allows procedures and event hooks to have more flexible signatures.
Along the lines of:

```python
@when(SomeEvent)
def hook(event):
  ...

@when(SomeOtherEvent)
def hook2():
  ...
```

Instead of supporting only the full context spec:

```python
@when(SomeEvent)
def hook(event, **ctx):
  ...
```

Closes: #400
2024-05-19 02:17:42 +02:00
70ffe0ec04
[Automatic] Updated components cache 2024-05-17 00:23:06 +00:00
f06233801b
[#394] Dynamically generate setup extras.
Also, convert all code that relied on `manifest.yaml` to use
`manifest.json` instead.

Closes: #394
2024-05-17 02:21:57 +02:00
59c693d6a0
[#394] All manifest.yaml converted to manifest.json.
YAML isn't part of the Python standard library, while JSON is.

If we want `setup.py` to dynamically parse the available integration
manifest files in order to populate the extra dependencies, then it's
better to rely on a JSON format for manifest files - the parser is part
of the standard library and it doesn't require the user to install
`pyyaml` before `platypush`.
2024-05-17 02:21:57 +02:00
79a71d00b4
[Automatic] Updated components cache 2024-05-16 00:44:03 +00:00
c77cf2c98b
[#372] Removed Google Fit plugin.
The Fit API has (unfortunately) been deprecated by Google with no
alternatives - the new Health Connect API is only available on Android
devices.

Other Google APIs don't seem to be affected by the refresh token issue
either, so this should hopefully close that issue too.

Closes: #372
2024-05-16 02:42:54 +02:00
f514f7ce1e
[Automatic] Updated components cache 2024-05-15 07:57:10 +00:00
98a98ea1dc
[#398] Removed custom Response objects from Tensorflow and response docs generation logic.
Closes: #398
2024-05-15 09:55:58 +02:00
77c91aa5e3
[Automatic] Updated components cache 2024-05-15 06:35:17 +00:00
0e11bbeb05
Fixed schema reference. 2024-05-15 08:33:49 +02:00
20f3eaf375
[#398] Refactored esp plugin.
- Converted `Response` objects into `Schema`s.

- Removed the last references to the deprecated `Mapping` object.

- Fixed all errors and warnings in the plugin.
2024-05-15 01:29:45 +02:00
55e230c361
Removed wiimote events associated to removed wiimote plugin. 2024-05-15 01:29:45 +02:00
snyk-bot
092f5b607c
fix: upgrade vue from 3.4.23 to 3.4.24
Snyk has created this PR to upgrade vue from 3.4.23 to 3.4.24.

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

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
2024-05-14 17:33:05 +00:00
ad4d929c28
[Automatic] Updated components cache 2024-05-13 00:23:15 +00:00
7ae99b4325
[#398] cups plugin refactor.
1. Renamed plugin: `printer.cups` ➡️  `cups`.
2. Replaced `Response` objects with schemas.
2024-05-13 02:22:04 +02:00
2efffb8ebe
[Automatic] Updated components cache 2024-05-12 23:26:45 +00:00
15b1c1f3c0
[#398] Replaced GoogleDriveFile response with GoogleDriveFileSchema. 2024-05-13 01:25:33 +02:00
6003b205c8
[#398] Removed TranslateResponse. 2024-05-13 01:25:33 +02:00
825f20ab77
[Automatic] Updated UI files 2024-05-09 23:48:43 +00:00
3b3f157086
Merge branch 'master' into snyk-upgrade-5e98f9077cfce52b1250c6e6a38f95a0 2024-05-10 01:46:24 +02:00
ad20345505
Merge pull request #423 from blacklight/snyk-upgrade-d36bc5586dd237b84d10196576744320
[Snyk] Upgrade cronstrue from 2.48.0 to 2.49.0
2024-05-10 01:45:09 +02:00
fc4d006064
Merge pull request #422 from blacklight/snyk-upgrade-782bd84f2e24c5ffc88e43f1d25d5de4
[Snyk] Upgrade axios from 1.6.7 to 1.6.8
2024-05-10 01:44:51 +02:00
404737dc24
Merge branch 'master' into snyk-upgrade-7087de73af11ecfaae1f5f0a8dc827f2 2024-05-10 01:44:19 +02:00
2896bd64b6
Merge pull request #420 from blacklight/snyk-upgrade-9cd3716e8d2fdaf3c323b2566785c607
[Snyk] Upgrade vue-skycons from 4.2.0 to 4.3.4
2024-05-10 01:43:16 +02:00
7e8f8a35fc
[Automatic] Updated components cache 2024-05-09 23:38:23 +00:00
b662e98447
[#398] Removed ssh response objects. 2024-05-10 01:37:17 +02:00
f978d708cb
[Automatic] Updated components cache 2024-05-09 23:02:32 +00:00
6f8c2085f2
[#398] Replaced qrcode response objects with schemas. 2024-05-10 01:01:22 +02:00
snyk-bot
6f0451b733
fix: upgrade core-js from 3.36.1 to 3.37.0
Snyk has created this PR to upgrade core-js from 3.36.1 to 3.37.0.

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
2024-05-09 17:00:23 +00:00
snyk-bot
c80af03e8d
fix: upgrade cronstrue from 2.48.0 to 2.49.0
Snyk has created this PR to upgrade cronstrue from 2.48.0 to 2.49.0.

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

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
2024-05-09 17:00:18 +00:00
snyk-bot
186e85cc86
fix: upgrade axios from 1.6.7 to 1.6.8
Snyk has created this PR to upgrade axios from 1.6.7 to 1.6.8.

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

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
2024-05-09 17:00:14 +00:00
snyk-bot
83ca9fd8e5
fix: upgrade vue-router from 4.3.0 to 4.3.2
Snyk has created this PR to upgrade vue-router from 4.3.0 to 4.3.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
2024-05-09 17:00:10 +00:00
snyk-bot
8437f05d6a
fix: upgrade vue-skycons from 4.2.0 to 4.3.4
Snyk has created this PR to upgrade vue-skycons from 4.2.0 to 4.3.4.

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

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
2024-05-09 17:00:06 +00:00
8d04eadd77
[Automatic] Updated UI files 2024-05-09 12:17:46 +00:00
e74137d4d1
Merge pull request #419 from blacklight/snyk-upgrade-83595b90e84b75cb5b628ea340bc6c3c
[Snyk] Upgrade core-js from 3.36.0 to 3.36.1
2024-05-09 14:15:26 +02:00
6b12d5ca0e
Merge pull request #418 from blacklight/snyk-upgrade-f5b9569657478ec13c79bc3064807f15
[Snyk] Upgrade @fortawesome/fontawesome-free from 6.5.1 to 6.5.2
2024-05-09 14:15:10 +02:00
912dddd3da
Merge branch 'master' into snyk-upgrade-503e414934e3e9df4999abbd15eed244 2024-05-09 14:14:07 +02:00
afbb61565b
Merge pull request #416 from blacklight/snyk-upgrade-eb696c7a079843109d9453f80144a956
[Snyk] Upgrade sass from 1.71.0 to 1.75.0
2024-05-09 14:12:35 +02:00
df8299ab61
Merge pull request #415 from blacklight/snyk-upgrade-9b35134e9eafc25285fde220c6d0dc11
[Snyk] Upgrade vue from 3.4.19 to 3.4.23
2024-05-09 14:12:17 +02:00
741f1aef84
[Automatic] Updated components cache 2024-05-09 12:08:36 +00:00
3df76a4a9c
[#398] Replaced pihole response objects with schemas. 2024-05-09 14:06:54 +02:00
929ac09cae
[#398] Removed unused stt response module. 2024-05-09 11:01:42 +02:00
3277c56b43
[Automatic] Updated UI files 2024-05-08 23:48:25 +00:00
c906aab64d
[camera.android.ipcam UI] Adapted to the new plugin API. 2024-05-09 01:46:36 +02:00
2021e25752
[Automatic] Updated components cache 2024-05-08 23:42:25 +00:00
13bde4adba
[#398] Replaced camera response objects with schemas. 2024-05-09 01:41:15 +02:00
579faf63bc
[Automatic] Updated components cache 2024-05-08 20:00:37 +00:00
7a849379f9
[#399] Added @when decorator as an alias for @hook.
Closes: #399
2024-05-08 21:58:58 +02:00
snyk-bot
4a100b0dc0
fix: upgrade core-js from 3.36.0 to 3.36.1
Snyk has created this PR to upgrade core-js from 3.36.0 to 3.36.1.

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
2024-05-07 18:19:30 +00:00
snyk-bot
5a1bccac4d
fix: upgrade @fortawesome/fontawesome-free from 6.5.1 to 6.5.2
Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.5.1 to 6.5.2.

See this package in npm:
https://www.npmjs.com/package/@fortawesome/fontawesome-free

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
2024-05-07 18:19:26 +00:00
snyk-bot
499b3cd9c9
fix: upgrade vue-router from 4.2.5 to 4.3.0
Snyk has created this PR to upgrade vue-router from 4.2.5 to 4.3.0.

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
2024-05-07 18:19:22 +00:00
snyk-bot
8be6d80b45
fix: upgrade sass from 1.71.0 to 1.75.0
Snyk has created this PR to upgrade sass from 1.71.0 to 1.75.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
2024-05-07 18:19:19 +00:00
snyk-bot
fc621a27f3
fix: upgrade vue from 3.4.19 to 3.4.23
Snyk has created this PR to upgrade vue from 3.4.19 to 3.4.23.

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

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
2024-05-07 18:19:15 +00:00
85e44542e2
[Automatic] Updated UI files 2024-05-07 10:49:01 +00:00
9dc0fbe6e7
Merge branch 'master' into snyk-upgrade-1d870abd0ad2c511fe65000600f02a14 2024-05-07 12:42:30 +02:00
d6b1337c5a
Merge pull request #413 from blacklight/dependabot/npm_and_yarn/platypush/backend/http/webapp/express-4.19.2
Bump express from 4.18.2 to 4.19.2 in /platypush/backend/http/webapp
2024-05-07 12:40:57 +02:00
0adde5a107
Merge pull request #414 from blacklight/dependabot/npm_and_yarn/platypush/backend/http/webapp/ejs-3.1.10
Bump ejs from 3.1.9 to 3.1.10 in /platypush/backend/http/webapp
2024-05-07 12:40:41 +02:00
89ced918f1
Merge pull request #412 from blacklight/dependabot/npm_and_yarn/platypush/backend/http/webapp/webpack-dev-middleware-5.3.4
Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /platypush/backend/http/webapp
2024-05-07 12:40:28 +02:00
bf52f44f92
Merge pull request #411 from blacklight/dependabot/npm_and_yarn/platypush/backend/http/webapp/follow-redirects-1.15.6
Bump follow-redirects from 1.15.4 to 1.15.6 in /platypush/backend/http/webapp
2024-05-07 12:40:08 +02:00
e285009da3
Merge pull request #409 from blacklight/snyk-upgrade-f2aa58c6cb66ee05c32f925b535a8b1f
[Snyk] Upgrade core-js from 3.35.1 to 3.36.0
2024-05-07 12:39:56 +02:00
3edc8d1077
Merge pull request #408 from blacklight/snyk-upgrade-29d2bb6c813d352072249a6db7e3a805
[Snyk] Upgrade vue from 3.4.18 to 3.4.19
2024-05-07 12:39:36 +02:00
cbaca5f303
Merge pull request #406 from blacklight/snyk-upgrade-bf6b4c595d14f755033e14807ed62fa7
[Snyk] Upgrade @fortawesome/fontawesome-free from 6.4.2 to 6.5.1
2024-05-07 12:39:20 +02:00
df79bb3ea6
Merge pull request #410 from blacklight/snyk-upgrade-73632136d273593f5bc9c7ffc6fd9c71
[Snyk] Upgrade sass from 1.70.0 to 1.71.0
2024-05-07 12:39:04 +02:00
228031c4ad
[#331] Automatically initialize __init__.py in script dirs.
Closes: #331
2024-05-07 02:59:13 +02:00
fdeba9e53c
[Automatic] Updated components cache 2024-05-06 00:28:09 +00:00
3c88593e9a
[#293] Merged midi plugin and backend.
Closes: #293
2024-05-06 02:26:27 +02:00
6a8c83f99b
🐛 Don't add the new password salt/iterations columns if already present.
And, similarly, don't remove them if they aren't on the user table.
2024-05-05 21:58:51 +02:00
901338e228
[#397] Replaced bcrypt dependency with native hashlib logic.
Closes: #397
2024-05-05 21:38:27 +02:00
dependabot[bot]
9651354fbf
Bump ejs from 3.1.9 to 3.1.10 in /platypush/backend/http/webapp
Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](https://github.com/mde/ejs/compare/v3.1.9...v3.1.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-02 10:39:57 +00:00
373d98fc6a
[Automatic] Updated UI files 2024-05-02 01:11:36 +00:00
61e466d8e2
[UI] Added tts.picovoice component and assistant.picovoice icon. 2024-05-02 03:07:47 +02:00
4ac73837f6
[Automatic] Updated components cache 2024-05-02 00:51:58 +00:00
72bc697122 [assistant.picovoice] Extended documentation. 2024-05-02 00:51:09 +00:00
b2c07a31f2 Fixed tests 2024-05-02 00:51:09 +00:00
d813356d9c [music.mopidy] Handle the case where add returns a list. 2024-05-02 00:51:09 +00:00
1192782729 [tts.picovoice] Convert digits before replacing other substrings. 2024-05-02 00:51:09 +00:00
4734909912 🐛 The EventMatchResult object shouldn't be initialized with args from the event.
If there's a good use-case for overriding `Event._matches_condition`
with a logic that also parses the event arguments, then those arguments
should be accessed directly from the event object, not from the match
result.

Initializing `EventMatchResult` with the arguments from the event means
that, if `EventMatchResult.parsed_args` are populated with custom
extracted arguments, then the upstream event arguments will also be
modified.

If the event is matched against multiple conditions, this will result in
the extracted tokens getting modified by each `matches_condition`
iteration.
2024-05-02 00:51:09 +00:00
237fc58928 [tts.picovoice] A more robust logic for replacing unsupported characteres on the input. 2024-05-02 00:51:09 +00:00
d8e24207c5 Added openai plugin. 2024-05-02 00:51:09 +00:00
bd4b1d3e0f [assistant.picovoice] Sync between the speech and intent engines. 2024-05-02 00:51:09 +00:00
a373091c64 Prevent duplicate hook runs.
Instead of being a list, the hooks in the hook processor should be
backed by by-name and by-value maps.

Don't insert a hook if its exact backing method has already been
inserted. This is actually very common when hooks are defined as Python
snippets imported in other scripts too.
2024-05-02 00:51:09 +00:00
632d98703b New architecture for the assistant speech detection logic.
The assistant object now runs in its own thread and leverages an
external `SpeechProcessor` that uses two threads to scan for both
intents and speech in parallel on audio frames.
2024-05-02 00:51:09 +00:00
6f8816d23d Prevent a potential recursion error in wait_for_either.
We shouldn't overwrite `event._set` and `event._clear` if those values
have already been set.

Those attributes hold the original references to `Event.set` and
`Event.clear` respectively, and the `OrEvent` logic overwrites them with
a callback-based logic.

This shouldn't happen if those attributes are already present.
2024-05-02 00:51:09 +00:00
af1392b5b9 [assistant] Added ResponseEndEvent and IntentMatchedEvent 2024-05-02 00:51:09 +00:00
bb9b6cd319 [assistant.picovoice] Various improvements.
- Added `intent_model_path` parameter.

- Always apply `expanduser` to configuration paths.

- Better logic to infer the fallback model path.

- The Picovoice Leonardo object should always be removed after
  `assistant.picovoice.transcribe` is called.
2024-05-02 00:51:09 +00:00
f0a780b759 Added assistant.picovoice.transcribe and assistant.picovoice.say. 2024-05-02 00:51:09 +00:00
f04f7ce9d7 [tts.picovoice] Better text pre-processing logic. 2024-05-02 00:51:09 +00:00
37d70d67ac [assistant.picovoice] Implemented assistant.picovoice.send_text_query. 2024-05-02 00:51:09 +00:00
fa1d5eb672 [tts.picovoice] Added text pre-processing workaround.
This workaround is required until
https://github.com/Picovoice/orca/issues/10 is fixed.
2024-05-02 00:51:09 +00:00
a345b12244 [assistant.picovoice] Leverage upstream _on_mute_changed.
The plugin should leverage `AssistantPlugin._on_mute_changed` to handle
the boilerplate state managent on mute/unmute actions instead of
re-implementing the same logic.
2024-05-02 00:51:09 +00:00
2c197c275e [assistant.picovoice] Implemented mic mute/unmute handling. 2024-05-02 00:51:09 +00:00
9de49c71a1 [assistant.picovoice] Conversation flow improvements.
- The `Responding` state should be modelled as an extra event/binary
  flag, not as an assistant state. The assistant may be listening for
  hotwords even while the `tts` plugin is responding, and we don't want
  the two states to interfere with each either - neither to build a more
  complex state machine that also needs to take concurrent states into
  account.

- Stop any responses being rendered upon the `tts` plugin when a new
  hotword audio is detected. If e.g. I say "Ok Google", I should always
  be able to trigger the assistant and stop any concurrent audio
  process.

- `SpeechRecognizedEvent` should be emitted even if `cheetah`'s latest
  audio frame results weren't marked as final, and the speech detection
  window timed out. Cheetah's `is_final` detection seems to be quite
  buggy sometimes, and it may not properly detect the end of utterances,
  especially with non-native accents. The workaround is to flush out
  whatever text is available (if at least some speech was detected) into
  a `SpeechRecognizedEvent` upon timeout.
2024-05-02 00:51:09 +00:00
a6f7b6e790 Added more default imports under the platypush module root.
These objects can now also be imported in scripts through
`from platypush import <name>`:

- `Variable`
- `cron`
- `hook`
- `procedure`
2024-05-02 00:51:09 +00:00
aa333db05c [assistant.picovoice] More features.
- Added wiring between `assistant.picovoice` and `tts.picovoice`.

- Added `RESPONDING` status to the assistant.

- Added ability to override the default speech model upon
  `start_conversation`.

- Better handling of conversation timeouts.

- Cache Cheetah objects in a `model -> object` map - at least the
  default model should be pre-loaded, since model loading at runtime
  seems to take a while, and that could impact the ability to detect the
  speech in the first seconds after a hotword is detected.
2024-05-02 00:51:09 +00:00
af875c996e Added tts.picovoice plugin. 2024-05-02 00:51:09 +00:00
a4c911a5d7 Added ffmpeg requirement for assistant.picovoice. 2024-05-02 00:51:09 +00:00
8193c5702c s/partial_transcript/transcript/g 2024-05-02 00:51:09 +00:00
8378bee7c6 Refactored AssistantEvent.
`AssistantEvent.assistant` is now modelled as an opaque object that
behaves the following way:

- The underlying plugin name is saved under `event.args['_assistant']`.

- `event.assistant` is a property that returns the assistant instance
  via `get_plugin`.

- `event.assistant` is reported as a string (plugin qualified name) upon
  event dump.

This allows event hooks to easily use `event.assistant` to interact with
the underlying assistant and easily modify the conversation flow, while
event hook conditions can still be easily modelled as equality
operations between strings.
2024-05-02 00:51:09 +00:00
a670f01647 [assistant.picovoice] Better partial transcript + flush handling logic. 2024-05-02 00:51:09 +00:00
921025be0c picovoice -> assistant.picovoice 2024-05-02 00:51:09 +00:00
bb38f2439c Better integration with the native base API of the assistant plugin. 2024-05-02 00:51:09 +00:00
f7517eb321 [WIP] Added speech detection logic over Cheetah. 2024-05-02 00:51:09 +00:00
a9498ea191 [WIP] Added initial hotword integration. 2024-05-02 00:51:09 +00:00
44f9c03bf3 [#304] Removed old Picovoice integrations 2024-05-02 00:51:09 +00:00
98c99c7888
[Automatic] Updated components cache 2024-04-17 02:09:18 +00:00
e123463804
[media.chromecast] Refactored implementation.
Explicitly use a `CastBrowser` object initialized at plugin boot instead
of relying on blocking calls to `pychromecast.get_chromecasts`.

1. It enables better event handling via callbacks instead of
   synchronously waiting for scan batches.

2. It optimizes resources - only one Zeroconf and one CastBrowser object
   will be created in the plugin, and destroyed upon stop.

3. No need for separate `get_chromecast`/`_refresh_chromecasts` methods:
   all the scanning is run continuously, so we can just return the
   results from the maps.
2024-04-17 03:56:45 +02:00
f99f6bdab9
[media.chromecast] Resource clean up + new API adaptations.
- `pychromecast.get_chromecasts` returns both a list of devices and a
  browser object. Since the Chromecast plugin is the most likely culprit
  of the excessive number of open MDNS sockets, it seems that we may
  need to explicitly stop discovery on the browser and close the
  ZeroConf object after the discovery is done.

- I was still using an ancient version of pychromecast on my RPi4, and I
  didn't notice that more recent versions implemented several breaking
  changes. Adapted the code to cope with those changes.
2024-04-17 02:49:31 +02:00
4972c8bdcf
Unregister a Zeroconf instance if it already exists before publishing a backend service.
`mdns` connection are another culprit for the increasing number of open
files in the process.
2024-04-16 00:12:55 +02:00
33d4c8342d
[#389] Possible fix for "Too many open files" media issue.
It seems that the process keeps a lot of open connections to Chromecast
devices during playback.

The most likely culprit is the `_refresh_chromecasts` logic.

We should start a `cast` object and register a status listener only if a
Chromecast with the same identifier isn't already registered in the
plugin.
2024-04-15 23:01:10 +02:00
027bcea612
[Automatic] Updated components cache 2024-04-08 21:05:46 +00:00
b4d0716bc5
Added layer of compatibility with both paho.mqtt >= 2.0.0 and < 2.0.0.
See 28aa2e6b26/ChangeLog.txt (L6)
2024-04-08 23:01:54 +02:00
584f226b62 mqtt CallbackAPIVersion fix for paho.mqtt >= 2.0.0
fix to work with paho.mqtt >= 2.0.0
2024-04-08 16:05:27 +02:00
dba0acb82e
[Automatic] Updated components cache 2024-04-05 18:57:53 +00:00
a026a101cd
Removed stt.deepspeech integration.
The project hasn't seen a commit in three years and it's probably been
abandoned by Mozilla.

New and better maintained speech-to-text integrations will be
investigated.
2024-04-05 20:56:45 +02:00
b00623f655
[Automatic] Updated UI files 2024-04-05 02:00:03 +00:00
03765ad652
[UI] Better style for music widget. 2024-04-05 03:58:12 +02:00
96f3420c8e
[Automatic] Updated components cache 2024-04-05 01:47:09 +00:00
c31180dae8
[music.mopidy] Fixed parsing of new_state upon playback_state_changed. 2024-04-05 03:46:01 +02:00
b1498bfc28
[Automatic] Updated components cache 2024-04-05 01:41:38 +00:00
083c9e250e
[music.mopidy] Better handling of client events. 2024-04-05 03:40:27 +02:00
88ffc3b795
[Automatic] Updated components cache 2024-04-05 00:56:48 +00:00
5f6fd4aa54
Added --db CLI option and support for configuration over environment.
Closes: #280
2024-04-05 02:54:45 +02:00
c8361aa475
[Automatic] Updated components cache 2024-04-04 00:53:18 +00:00
d2ec93b798 [#297] Removed music.spotify backend.
1. I no longer I use a Spotify account (I switched to Tidal after
   Spotify deprecated libspotify), and I wouldn't like to create one
   just to test this integration.

2. After a couple of years, the libspotify open fork (Librespot) seems
   to be still in an unstable stage and it's already been discontinued
   once - I would avoid rebuilding the integration against a dependency
   that may change a lot in the near future.
2024-04-04 00:52:30 +00:00
73cc47b964
[Automatic] Updated UI files 2024-04-03 23:57:10 +00:00
787b6a6af6
[UI] A more consistent light style for the music widget. 2024-04-04 01:54:52 +02:00
6f24504cc4
[Automatic] Updated UI files 2024-04-03 23:11:49 +00:00
5d9a201a5b
[#297] Mopidy/MPD refactor+migration, UI side. 2024-04-04 01:07:05 +02:00
e2246c8d30
[Automatic] Updated components cache 2024-04-03 23:02:09 +00:00
58518a4d63 Better timeout management on mopidy status refresh. 2024-04-03 23:01:22 +00:00
5346833152 [WIP] API adaptations for music.mpd 2024-04-03 23:01:22 +00:00
89d618b35f [WIP] music.mopidy refactor, initial backend rewrite. 2024-04-03 23:01:22 +00:00
d2e5e5230b [music.mpd] Removed deprecated actions.
- `setvol` ➡️  `set_volume`
- `seekcur` ➡️  `seek`
- `playlistinfo` ➡️  `get_tracks`
- `listplaylists` ➡️  `get_playlists`
- `listplaylist` ➡️  `get_playlist`
- `listplaylistinfo` ➡️  `get_playlist`
- `playlistadd` ➡️  `add_to_playlist`
- `playlistdelete` ➡️  `remove_from_playlist`
- `playlistmove` ➡️  `playlist_move`
- `playlistclear` ➡️  `playlist_clear`
- `rename` ➡️  `rename_playlist`
- `rm` ➡️  `delete_playlist`

stuff
2024-04-03 23:01:22 +00:00
a3b6d411e4 [music.mpd] Adjust default poll_interval: 5 -> 20 seconds. 2024-04-03 23:01:22 +00:00
dependabot[bot]
749eda16b4
Bump express from 4.18.2 to 4.19.2 in /platypush/backend/http/webapp
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-29 06:46:45 +00:00
dependabot[bot]
2d72ce9645
Bump webpack-dev-middleware in /platypush/backend/http/webapp
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-23 19:14:44 +00:00
dependabot[bot]
8ed358fcc8
Bump follow-redirects in /platypush/backend/http/webapp
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-16 23:30:25 +00:00
snyk-bot
a30042e1eb
fix: upgrade sass from 1.70.0 to 1.71.0
Snyk has created this PR to upgrade sass from 1.70.0 to 1.71.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
2024-03-08 18:50:38 +00:00
snyk-bot
b9d637187c
fix: upgrade core-js from 3.35.1 to 3.36.0
Snyk has created this PR to upgrade core-js from 3.35.1 to 3.36.0.

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
2024-03-06 15:26:22 +00:00
snyk-bot
6a55527694
fix: upgrade vue from 3.4.18 to 3.4.19
Snyk has created this PR to upgrade vue from 3.4.18 to 3.4.19.

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

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
2024-03-06 02:09:43 +00:00
snyk-bot
5488c97f4b
fix: upgrade cronstrue from 2.47.0 to 2.48.0
Snyk has created this PR to upgrade cronstrue from 2.47.0 to 2.48.0.

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

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
2024-03-06 02:09:40 +00:00