Commit graph

3243 commits

Author SHA1 Message Date
674c1036c5
Fixed some plugin usages of self._bus.
Now `_bus` is a common property shared by all the plugins, so it
shouldn't be overloaded.
2023-11-18 16:58:55 +01:00
8817581061
Removed -U option from pip command when installing deps.
We don't need to forcefully upgrade packages that don't need to be
upgraded.
2023-11-18 16:07:16 +01:00
869ef38364
Removed explicit numpy pip dependency in assistant.google.
It will be installed by the other dependencies anyway.
2023-11-18 16:01:24 +01:00
fdaff32cd0
Fixed docstring for chromecast.status. 2023-11-18 14:17:17 +01:00
1a777c6276
Removed Todoist backend and migrated responses to schemas.
The Todoist Websocket interface is no longer working properly, and I'm
sick of reverse engineering it.

Closes: #305
2023-11-18 10:16:48 +01:00
c2f53b7771
Added _bus property on Plugin. 2023-11-18 10:13:35 +01:00
f12af08e73
Minor return type fix. 2023-11-17 22:30:30 +01:00
0f9614506b
[trello] Updated procedure to retrieve the frontend cloud token. 2023-11-17 10:28:27 +01:00
c919cf0cd8
[trello] (Almost) complete plugin rewrite.
- Merged `trello` plugin and backend into a single plugin.

- Removed legacy `Response` objects, replaced with data classes and
  schemas.

- Fixed the Websocket connection flow to reflect the new authentication
  protocol.

Closes: #307
2023-11-17 02:07:04 +01:00
39b4483401
Fixed joystick manifest. 2023-11-16 22:08:00 +01:00
7bb08bca07
[joystick] Rewritten joystick integration as a plugin.
And removed legacy `joystick*` backends and `inputs` plugin.

Closes: #290
2023-11-16 21:43:56 +01:00
5e629990e6
[Automatic] Updated UI files 2023-11-15 02:04:50 +00:00
d617443af6
[YouTube] Added subscriptions+channels support.
Closes: #337
2023-11-15 03:05:58 +01:00
9ed7026aaf
[media UI] Propagate free text filter to all the views. 2023-11-15 03:05:58 +01:00
ae017516c4
[YouTube UI] Support playlist navigation in the media nav. 2023-11-15 03:05:57 +01:00
4853f51c8b
[YouTube] Added (read-only) playlists support. 2023-11-15 03:05:57 +01:00
b491f81cda
[media UI] Added loading spin overlay upon play. 2023-11-15 03:05:57 +01:00
9e5728f8ba
[Automatic] Updated UI files 2023-11-13 01:39:51 +00:00
96e69811fe
[#337] Initial YouTube UI with feed support. 2023-11-13 02:40:50 +01:00
f425e95e7e
[media UI] Show track image if available on desktop+ size. 2023-11-13 02:40:50 +01:00
60fb7bba5f
[media UI] Added support for generic media providers. 2023-11-13 02:40:50 +01:00
be28965d84
[youtube] Added youtube.get_feed action. 2023-11-13 02:40:50 +01:00
b63579b81c
[UI] Fixed some glitches of the Dropdown component. 2023-11-13 02:40:49 +01:00
f6c752c80e
[Automatic] Updated UI files 2023-11-12 14:59:23 +00:00
50922cf149
[media UI] Fixed player selector style after Dropdown component changes. 2023-11-12 15:55:28 +01:00
ca72e22820
[UI] Proxy /media/* requests to upstream when Vue is in debug mode. 2023-11-12 15:55:03 +01:00
d4b519a572
[media UI] Wrapped the file browser into a MediaBrowser component.
This will make it easier to support multiple media collection providers
other than local files.
2023-11-12 15:54:27 +01:00
6dfe2324c1
[UI] Added navigation crumbs to the file browser. 2023-11-12 15:53:46 +01:00
724f625963
[media.chromecast] Skip errors on cast.wait.
It may be that the cast thread has been recycled and it's already been
awaited. It's safe to skip the error in these cases.
2023-11-12 15:52:31 +01:00
e416a70658
[UI] (Re)-added required logo-256x256.png image. 2023-11-12 15:52:07 +01:00
cad36b7911
[UI] Watch the connected flag for changes to update the Nav indicator. 2023-11-12 14:00:18 +01:00
60b5f235a7
[Automatic] Updated UI files 2023-11-12 02:08:23 +00:00
1f321c32dc
[media.chromecast] Full plugin rewrite. 2023-11-12 03:08:54 +01:00
20aeb0b72e
[system] Some versions of cpuinfo may return cache sizes in human-readable format. 2023-11-10 21:55:41 +01:00
9a090d1b46
[system] Cache sizes can also be float, not necessarily int. 2023-11-10 21:30:56 +01:00
3d62069775
[Automatic] Updated UI files 2023-11-10 01:48:45 +00:00
ceae310901
[snapcast] Merged backend logic into the plugin.
Closes: #283
2023-11-10 02:48:07 +01:00
6c3edb73f9
[music.snapcast] Fixed message serialization issue.
Closes: #338
2023-11-09 22:46:54 +01:00
1ec42e11fc
[Automatic] Updated UI files 2023-11-09 01:46:44 +00:00
52ee614ec4
[media] Added logic to parse local media metadata. 2023-11-09 02:47:34 +01:00
a83f4729a6
[UI] Extracted grid into layout.scss. 2023-11-09 02:47:34 +01:00
4814c56a2d
[media UI] Added resolution to media info. 2023-11-09 02:47:34 +01:00
90a9684404
[media UI] Added extra rating fields to the media info component. 2023-11-09 02:47:33 +01:00
cd635ea69e
[torrent] Fixed duration and image for TV series results. 2023-11-09 02:47:33 +01:00
e66ca105d7
[jellyfin] Added duration field to video results. 2023-11-09 02:47:33 +01:00
d1b721dba5
[torrent] Added image to search results. 2023-11-09 02:47:33 +01:00
eb7a96ee94
[youtube] Added more metadata fields to search results. 2023-11-09 02:47:32 +01:00
d7093d18c5
[media UI] Major redesign of the search results. 2023-11-09 02:47:32 +01:00
f7a25a478d
[UI] Dropdown component rewrite.
Dropdown components should always be rendered under the root element, or
nasty effects caused by absolute parenting may end up hiding dropdown
elements regardless of their `z-index`.

The new approach uses a single `<DropdownContainer>` element in the
main `App` file. Each `<Dropdown>` component will push updates to the
bus whenever it triggers open/close events, and the dropdown component
to be rendered will be pushed upstream and rendered in the root element.
2023-11-09 02:47:32 +01:00
fafc1747d6
[Automatic] Updated UI files 2023-11-06 23:45:02 +00:00
3d2dc22ed3
[media UI] Improved media UI. 2023-11-07 00:45:45 +01:00
e7bd61e0d4
Black/LINT for Jellyfin plugin. 2023-11-07 00:45:45 +01:00
a94ddd3f05
[torrent] duration * 60 for results returned by PopcornTime API. 2023-11-07 00:45:44 +01:00
1d41df51e7
[media] Extended current track with ytdl metadata if available. 2023-11-07 00:45:44 +01:00
a939cb648c
[media UI] Extracted PlayPauseButton into its own component. 2023-11-07 00:45:44 +01:00
7889846cd6
[Automatic] Updated UI files 2023-11-06 01:29:16 +00:00
2caa171c6d
[media UI] Fixed alignment of the controls right handle. 2023-11-06 02:25:54 +01:00
27da2becd7
[media] Added media.get_info action.
It combines the `-j` and `-g` options of ytdl* to get both the stream
URL and the track metadata.
2023-11-06 02:25:35 +01:00
e0a9ccca24
[media UI] Component refactor.
- Fixed style of the floating control extensions panel.
- Extracted `ProgressBar` and `ExtraControls` into separate components.
2023-11-06 01:54:12 +01:00
8e8bd7fb9f
[media UI] Fixing/refactoring media UI.
- Fixed broken elements in the media control view.
- Fixed volume bar.
2023-11-05 23:45:37 +01:00
6411688e65
[youtube] Don't fail if some items in the response have missing attrs. 2023-11-05 22:12:21 +01:00
daa93f5994
[media UI] Fixed style of the Play URL modal. 2023-11-05 12:19:36 +01:00
71bca662a1
media.play should support anything supported by a yt_dlp extractor. 2023-11-05 02:40:38 +01:00
e45fb9c8ac
Major rewrite of the media routes.
- Streaming and media subtitles endpoints moved from Flask to Tornado
  routes - the old Flask streaming route no longer worked behind a
  Tornado server.

- Storing the streaming state on Redis rather than in a local variable,
  or different Tornado processes may end up with different copies of the
  registry.

Closes: #336
2023-11-05 01:33:36 +01:00
0e2738d849
Added _on_error handler to StreamingRoute. 2023-11-05 01:03:40 +01:00
7c780e6650
Refactored utils.bus.send_request.
It should return the response output and raise an error if the response
has errors.
2023-11-04 16:22:27 +01:00
f7fe844296
Black/LINT pass for media handler routes. 2023-11-04 16:13:52 +01:00
11c3b7820d
[torrent] Create download_dir if it doesn't exist. 2023-11-04 15:48:05 +01:00
07e7f06c7a
[Automatic] Updated UI files 2023-11-04 11:12:51 +00:00
2b12984c81
[youtube] Full plugin rewrite.
Instead of relying on the official Google YouTube API (limited, subject
to breaking changes with short/no notice depending on Google's strategy
against scrapers, and with an initial setup that has a high cost), we'll
just stick to Piped from now on.

It's free, it doesn't require API keys, it's unlikely to change, it's
not subject to Google's hostile practices against developers, and
anybody can run an instance.
2023-11-04 12:11:44 +01:00
44d4ae2a96
[media] Made the youtube-dl executable configurable.
`youtube-dl` is mostly dead and there are several forks available, thus
we need to give the user the ability to pick which `youtube-dl`
executable fork they want to use.

Among these, `yt-dlp` is probably the most maintained today and it's
also included in many default repos, so it's been added as an extra
requirement for all the media plugins.

Closes: #268
2023-11-04 11:57:09 +01:00
5478b90288
[Media UI] Start/stop streaming use the configured media plugin.
The base `media` plugin is abstract, hence the `Media` panel needs to
pass the current media plugin to the `Utils` mixins so it can pick the
right action.
2023-11-04 11:54:44 +01:00
b4bf30945a
[media] Black/LINT for MediaPlugin. 2023-11-04 00:50:08 +01:00
efdb63443d
Renamed the youtube plugin.
From `google.youtube` to `youtube`.
2023-11-04 00:07:29 +01:00
9ac25a7627
[Automatic] Updated UI files 2023-11-03 21:24:49 +00:00
3b335723a9
Merge pull request #387 from BlackLight/snyk-upgrade-7f1672a9074c3d844aa231ad5ba0e90d
[Snyk] Upgrade core-js from 3.23.4 to 3.31.1
2023-11-03 22:18:22 +01:00
8acb4156e0
Merge branch 'master' into snyk-upgrade-7f1672a9074c3d844aa231ad5ba0e90d 2023-11-03 22:11:01 +01:00
664ca7f9b5
Merge branch 'master' into snyk-upgrade-ae486550d733dccfaf3fab04d0756007 2023-11-03 22:07:35 +01:00
2bb7285c8a
Merge pull request #392 from BlackLight/snyk-fix-ccc0cd6dbbb455def4c5435b5511ae11
[Snyk] Security upgrade axios from 0.21.4 to 1.6.0
2023-11-03 22:06:22 +01:00
10ec4d39ea
Merge pull request #389 from BlackLight/snyk-upgrade-9420343b82254b8e287940baaf3881aa
[Snyk] Upgrade sass from 1.64.2 to 1.65.1
2023-11-03 22:06:03 +01:00
f5af85ee65
Merge pull request #390 from BlackLight/dependabot/npm_and_yarn/platypush/backend/http/webapp/babel/traverse-7.23.2
Bump @babel/traverse from 7.22.8 to 7.23.2 in /platypush/backend/http/webapp
2023-11-03 22:03:12 +01:00
f6952f1198
[Automatic] Updated UI files 2023-11-03 20:56:12 +00:00
170e37945e [UI] Make sure that a Modal never overflows its parent. 2023-11-03 20:54:46 +00:00
4c5366849d [torrent] Updated plugin.
- The default PopcornTime API host has changed, as popcorn-time.ga is no
  longer available.

- The iMDb API now requires a paid tier even for a basic query. The
  official iMDb API layer (and the API key requirement) has thus been
  replaced with a dear ol' scraping of the frontend endpoint.

- Pass of Black/LINT.
2023-11-03 20:54:46 +00:00
35571b8d13 [UI] Set max-width for the media info modal.
This modal can grow very large depending on the size of the media
metadata, thus it's wise to keep its width in check.
2023-11-03 20:54:46 +00:00
96f2a8f8fc [UI] Set a base z-index for the root content canvas.
This allows loading spinners, modals and other components with a real
fullscreen background to stretch over the required space, without being
covered by the navigator or other sibling components.

This also requires the collapsed navigator to have a 1px margin-right,
or its separation border won't be visible.
2023-11-03 20:54:46 +00:00
266ee3cadf Expose run on the base package level.
This enables a syntax like:

```
from platypush import run

run('application.restart')
```
2023-11-03 20:54:46 +00:00
5e2973dd5f [UI] Removed <tt> tag. 2023-11-03 20:54:46 +00:00
ba5d505c9b [youtube] Black/LINT pass. 2023-11-03 20:54:46 +00:00
f6cb1fa4a7 Added utils.get_default_downloads_dir. 2023-11-03 20:54:46 +00:00
0e29e770fb Updated sample config snippet for tts.mimic3. 2023-11-01 02:30:25 +00:00
d9c4634ce8 [tts.mimic3] Plugin rewrite.
The plugin now leverages the `sound` plugin for playback, like all other
`tts` plugins now do, instead of an external `media` plugin.

This also removes the need for the `/tts/mimic3/say` endpoint.
2023-10-31 00:44:05 +00:00
f960ec4bf4 [sound] Plugin refactor.
- Added `input_format`/`output_format` options to both input and output
  audio streams.

- Replaced the previous (confusing) occurrences of `ffmpeg_format` and
  `format`.

- Added custom `dtype` option for `sound.play`.

- Added `join` flag (default: false) to `sound.play` to wait for the
  playback to finish.
2023-10-31 00:44:05 +00:00
d5514d7f27 Added utils.is_debug_enabled. 2023-10-31 00:44:05 +00:00
ef3b1d20f2 Updated MediaPlugin documentation snippet. 2023-10-31 00:44:05 +00:00
0cbd0a94d6 tts plugins should leverage sound`, not an external media player. 2023-10-31 00:44:05 +00:00
72b2625425 Updated tts plugin dependencies, as they now leverage the sound plugin. 2023-10-31 00:44:05 +00:00
68c73fa181 [tts.mimic3] Added timeout to requests.post proxy. 2023-10-31 00:44:05 +00:00
snyk-bot
c9ac3e624f
fix: platypush/backend/http/webapp/package.json & platypush/backend/http/webapp/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
2023-10-27 14:35:27 +00:00
42912581f9 [Fix] Always initialize AssistantPlugin._conversation_start_sound. 2023-10-23 21:30:49 +00:00