Fabio Manganiello
c64c28f7a8
(Re)-added `backend/sensor/__init__.py` file.
...
continuous-integration/drone/push Build is passing
Details
If the empty file is missing then any remaining backends under that
package won't be indexed.
2024-01-07 00:31:45 +01:00
Fabio Manganiello
f9e5117145
[Automatic] Updated components cache
continuous-integration/drone/push Build is passing
Details
2024-01-06 23:07:31 +00:00
Fabio Manganiello
f733c6318f
Moved optional import in constructor block.
continuous-integration/drone/push Build is passing
Details
2024-01-07 00:05:51 +01:00
Fabio Manganiello
e803807b8d
[Automatic] Updated components cache
continuous-integration/drone/push Build was killed
Details
2024-01-06 21:51:43 +00:00
Fabio Manganiello
edd92b8467
Fix: Ensure that components cache keys are ordered before dumping to file.
...
continuous-integration/drone/push Build is passing
Details
Reason: The CI/CD automation regenerates the cache file, and commits
the changes if it differs from the previous version.
The only way to ensure semantic equivalence is to sort the keys upon
dump.
2024-01-06 22:50:34 +01:00
Fabio Manganiello
0f130235d3
[Automatic] Updated components cache
continuous-integration/drone/push Build was killed
Details
2024-01-06 21:46:12 +00:00
Fabio Manganiello
4926f28f24
[Automatic] Updated components cache
continuous-integration/drone/push Build was killed
Details
2024-01-06 21:45:04 +00:00
Fabio Manganiello
cce04ef729
Updated components file
continuous-integration/drone/push Build is failing
Details
2024-01-06 22:41:25 +01:00
Fabio Manganiello
771ecd9a5b
Fixed typo in the package name of the Github manifest.
2024-01-06 22:41:24 +01:00
Fabio Manganiello
30bbc396fb
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing
Details
2024-01-06 21:27:39 +00:00
Fabio Manganiello
6e1ab92298
New components cache management.
...
continuous-integration/drone/push Build is passing
Details
The cache is no longer generated at runtime when the application runs -
which may take quite a while, especially on fresh installations.
A `components.json.gz` file is instead generated by the CI/CD process on
every commit to the main branch, and distributed with the package.
The application will read this file when the `inspect` plugin is first
initialized.
This also means that we can no longer cache the `install_cmds`, as they
change depending on the target OS. A new
`application.get_install_commands` action has now been made available to
the UI, so it can get the correct installation commands at runtime.
2024-01-06 22:21:59 +01:00
Fabio Manganiello
ef885e096f
Added `inspect.get_pkg_managers` internal action.
...
It will be used by the UI to put together the installation commands.
2024-01-06 03:02:31 +01:00
snyk-bot
c6593cfa06
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-6144788
2024-01-05 14:12:29 +00:00
Fabio Manganiello
e1b6be7673
Marshmallow has replaced `field.default` with `field.dump_default`.
continuous-integration/drone/push Build is passing
Details
2024-01-05 02:56:10 +01:00
Fabio Manganiello
8fd5009553
[foursquare] Proper cast to number for db variables which may be strings.
2024-01-05 02:56:10 +01:00
Fabio Manganiello
5167597ace
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2024-01-05 01:27:29 +00:00
Fabio Manganiello
afee6c5c85
[music UI] Implemented infinite scroll for playlist view.
...
continuous-integration/drone/push Build is passing
Details
Instead of loading all the tracks in the DOM (very inefficient and slow
on slow devices and/or with big playlists), we should keep a window of
100 items in the screen and roll it over the playlists as the status
change or the user scrolls.
2024-01-05 02:19:38 +01:00
Fabio Manganiello
91a8fd3b56
[system] A more robust logic to parse cache size from `cpuinfo`.
continuous-integration/drone/push Build is passing
Details
2024-01-04 13:55:08 +01:00
Fabio Manganiello
9c3da7a2a9
Several improvements for request/procedure execution.
...
continuous-integration/drone/push Build is passing
Details
- Fixed regression introduced by incorrect format string in `exec`.
- LINT for the `procedure` module.
- Apply `Message.Encoder` when dumping values from the context.
2024-01-04 13:13:16 +01:00
Fabio Manganiello
b72fb83d18
Merge branch '286/merge-foursquare-backend'
continuous-integration/drone/push Build is passing
Details
2024-01-01 23:00:55 +01:00
Fabio Manganiello
4aeff10a5d
[ #286 ] Merge Foursquare backend and plugin.
...
continuous-integration/drone/push Build is passing
Details
Closes : #286
2024-01-01 22:54:18 +01:00
Fabio Manganiello
efe46386f4
[Entities UI] Reverted `.extension-container` max-width.
continuous-integration/drone/push Build is passing
Details
2024-01-01 14:27:18 +01:00
Fabio Manganiello
b8f8236c28
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2024-01-01 13:24:56 +00:00
Fabio Manganiello
35772c0ae3
[Entities UI] Reverted `.extension-container` max-width.
2024-01-01 13:23:24 +00:00
Fabio Manganiello
3fbb0d289b
Fixed docstring
2024-01-01 13:23:24 +00:00
Fabio Manganiello
7f13e02803
Fixed docstring
2023-12-31 04:34:42 +01:00
Fabio Manganiello
1abf8c964a
Merge branch 'master' into 287/github-backend-migration
continuous-integration/drone/push Build is passing
Details
2023-12-30 16:29:51 +01:00
Fabio Manganiello
5eb09eab1a
[ #287 ] Migrated `github` from a backend to a runnable plugin.
...
Closes : #287
2023-12-30 15:28:16 +00:00
Fabio Manganiello
2701f69d17
[ #287 ] Migrated `github` from a backend to a runnable plugin.
...
Closes : #287
2023-12-30 16:28:12 +01:00
Fabio Manganiello
a2a07afc05
[UI] Better default scrollbar width on Webkit.
continuous-integration/drone/push Build is passing
Details
2023-12-30 13:41:45 +01:00
Fabio Manganiello
0fb1035331
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-12-30 12:38:57 +00:00
Fabio Manganiello
12a043d67e
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-12-30 03:39:44 +00:00
Fabio Manganiello
57737b1b72
[Entities UI] Don't disable/set loading=true on properties during initial refresh.
continuous-integration/drone/push Build is passing
Details
2023-12-30 04:42:51 +01:00
Fabio Manganiello
5bec01a389
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-12-29 23:04:08 +00:00
Fabio Manganiello
2c429e9003
[Music UI] Fixed alignment of buttons in the playlist header.
continuous-integration/drone/push Build is passing
Details
2023-12-30 00:06:56 +01:00
Fabio Manganiello
2575d6cbc5
[Extensions UI] Fix `hljs.highlight` call to match new API.
2023-12-30 00:04:31 +01:00
Fabio Manganiello
7e58044804
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-12-29 03:04:26 +00:00
Fabio Manganiello
171ed7f743
[Entities UI] Better refresh logic.
continuous-integration/drone/push Build is passing
Details
2023-12-29 03:45:17 +01:00
Fabio Manganiello
2546a582d2
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-12-25 12:44:31 +00:00
Fabio Manganiello
ce1e8513d4
[music UI] Several UI improvements
2023-12-25 12:43:00 +00:00
Fabio Manganiello
be54469df0
[music UI] Fixed search form.
2023-12-25 12:43:00 +00:00
Fabio Manganiello
0de322fb95
[assistant.google] Propagate plugin name as a string to events.
...
continuous-integration/drone/push Build is passing
Details
This also makes it easier to programmatically stop conversations on
`SpeechRecognizedEvent` with a matched phrase.
2023-12-21 00:28:27 +01:00
Fabio Manganiello
199b42584f
Updated reference configuration sample for `alarm`.
continuous-integration/drone/push Build is passing
Details
2023-12-18 14:05:35 +01:00
Fabio Manganiello
b107496fbd
[Automatic] Updated UI files
continuous-integration/drone/push Build was killed
Details
2023-12-18 12:56:41 +00:00
Fabio Manganiello
9cad27335d
[UI] Attribute sort.
continuous-integration/drone/push Build was killed
Details
2023-12-18 13:53:09 +01:00
Fabio Manganiello
cfc7a5a6a0
[alarm] Added `media_repeat` configuration.
continuous-integration/drone/push Build is failing
Details
2023-12-18 13:46:45 +01:00
Fabio Manganiello
52fd64a162
[alarm] Added `dismiss_interval` configuration.
2023-12-18 03:01:27 +01:00
Fabio Manganiello
250858fe99
[Alarm UI] Added snooze/dismiss modal when alarm is running.
2023-12-18 01:36:58 +01:00
Fabio Manganiello
aff02e0732
[alarm] Include `type='alarm'` in `Alarm.to_dict()`.
...
This is for compatibility with other backend/frontend components who
expect valid entities on events or responses, and hence may break if
`type` is not specified.
2023-12-18 01:13:46 +01:00
Fabio Manganiello
29f65371d8
[Alarm UI] Support for adding/removing alarms.
2023-12-18 00:12:16 +01:00
Fabio Manganiello
e617a9fe82
[alarm] Added `alarm.delete`.
2023-12-18 00:05:34 +01:00
Fabio Manganiello
b7423e1c34
Added `AlarmEditor` component.
2023-12-17 17:53:38 +01:00
Fabio Manganiello
430a111303
[alarm] Better default actions inference in `alarm.edit`.
2023-12-17 17:53:08 +01:00
Fabio Manganiello
b0feb8ed8f
[UI] Fixed regex match for initSelectedPanel.
2023-12-17 17:52:43 +01:00
Fabio Manganiello
9d456281a6
[Entities UI] Removed unrequired z-index on header.
2023-12-17 17:52:15 +01:00
Fabio Manganiello
5972c728a4
[Chore] Upgraded `hljs.highlight` API.
...
The old API, (lang, code, ...args), is now deprecated.
2023-12-16 23:49:25 +01:00
Fabio Manganiello
b916c98b70
[ProcedureEditor] Emit `input` upon action changes.
2023-12-16 23:29:57 +01:00
Fabio Manganiello
1bd2361a3d
[TimeInterval] Refresh value on `mounted`.
2023-12-16 23:27:22 +01:00
Fabio Manganiello
d4543c2fb7
Added `ProcedureEditor` component.
2023-12-16 19:03:46 +01:00
Fabio Manganiello
07a144aadc
[ActionTile] Support for drag and drop.
2023-12-16 19:00:04 +01:00
Fabio Manganiello
837007132d
[FloatingButton] Better default colors.
2023-12-16 18:59:30 +01:00
Fabio Manganiello
3bc27a505f
[UI] setUrlArgs should remove args when value == null.
2023-12-16 18:58:31 +01:00
Fabio Manganiello
065f7d74a5
[ActionTile] Better hover style.
2023-12-16 14:23:46 +01:00
Fabio Manganiello
63767cb87c
[UI] Added `ActionTile` component.
2023-12-16 14:14:34 +01:00
Fabio Manganiello
7fcffe899e
[ActionEditor] Support for action save/input events.
2023-12-16 14:13:11 +01:00
Fabio Manganiello
f9ba4564e7
[Tabs UI] Force height to `$tab-height`.
2023-12-16 14:12:30 +01:00
Fabio Manganiello
028f48ed49
[Autocomplete UI] Better handling of `blur` events.
2023-12-16 14:09:04 +01:00
Fabio Manganiello
1dfbe0c12d
Ability to specify a custom initial action for the `ActionEditor`.
2023-12-14 22:22:10 +01:00
Fabio Manganiello
8bbafd2f7d
Better logic on the UI to parse the current URL fragment arguments.
2023-12-13 21:56:34 +01:00
Fabio Manganiello
9beb10c373
Extracted `ActionEditor` from the `Execute` plugin.
...
So it can be reused in other components that need to handle actions.
2023-12-12 23:33:16 +01:00
Fabio Manganiello
4e85087c0f
Added `AlarmEditor` component to `Alarm`.
2023-12-12 22:52:11 +01:00
Fabio Manganiello
d4f6d174c8
Added `FileSelector` UI component.
2023-12-12 21:13:55 +01:00
Fabio Manganiello
bac06e9e7b
Added `TimeInterval` component.
2023-12-12 00:05:46 +01:00
Fabio Manganiello
6edb8c8318
[ #340 ] s/datetime.fromisoformat/dateutil.parser.isoparse/
...
We may receive JavaScript timestamps with non-standard `Z` suffix too.
2023-12-11 22:24:55 +01:00
Fabio Manganiello
6e7c5def2f
`CronEditor` should contain the raw cron expression and a copy button.
2023-12-11 22:18:57 +01:00
Fabio Manganiello
00694f4e10
`CopyButton` events should have a `.prevent` clause.
2023-12-11 22:18:17 +01:00
Fabio Manganiello
61ef48119f
Apply default input rules to `time` and `datetime-local` elements.
2023-12-11 22:17:47 +01:00
Fabio Manganiello
627bb66957
Added `CronEditor` component.
2023-12-11 00:25:24 +01:00
Fabio Manganiello
894faaad1e
[ #340 ] Force a refresh via `alarm.status` when `Alarm` view loads.
2023-12-10 21:53:19 +01:00
Fabio Manganiello
b4be56ec2c
[ #340 ] Added `condition_type` field to alarm objects.
2023-12-10 21:52:50 +01:00
Fabio Manganiello
e6e4396e49
Enhanced `get_default_media_plugin` to filter by video/audio plugins.
2023-12-10 21:50:53 +01:00
Fabio Manganiello
03c167d6b7
[ #340 ] Added `Alarm.is_cron` property.
2023-12-10 20:58:13 +01:00
Fabio Manganiello
2d8f6102c1
[ #340 ] Added `alarm.edit` action.
2023-12-10 20:39:06 +01:00
Fabio Manganiello
8ddd9879f2
[ #340 ] Alarm model enhancements.
...
- Allow initialization of alarm actions from `Procedure` objects too.
- Force `state=WAITING` when an alarm is disabled.
2023-12-10 17:56:47 +01:00
Fabio Manganiello
686085750f
[ #340 ] Added configuration snippet for the new `alarm` integration.
2023-12-10 15:45:36 +01:00
Fabio Manganiello
dfa0727289
[ #340 ] Added `alarm` UI panel.
2023-12-10 15:33:19 +01:00
Fabio Manganiello
62054e83cc
Remaining entity modal style rules moved from `Entities` to `EntityModal`.
2023-12-10 15:32:42 +01:00
Fabio Manganiello
42574d054a
[ #340 ] Ironed out some bugs in the `alarm` integration.
...
- The alarm ID should be randomly generated - auto-increment IDs are
subject to race conditions when alarms are created in separate
processes.
- Clean up alarms that are not static and have been removed from the db.
- Better alarm shut down detection logic.
2023-12-10 15:30:19 +01:00
Fabio Manganiello
ca57d3d7b3
[ #340 ] Initial implementation of the alarm entities UI.
2023-12-09 20:33:11 +01:00
Fabio Manganiello
f27e7bb7e2
[ #340 ] Better state management for alarms.
...
- Added `AlarmEnabledEvent` and `AlarmDisabledEvent`.
- Added `snooze_interval` configurable both at plugin level and alarm
level.
2023-12-09 17:12:20 +01:00
Fabio Manganiello
34e2a59285
Added optional `id` attribute to `ToggleSwitch`.
2023-12-09 16:12:08 +01:00
Fabio Manganiello
4b578c38c8
[ #340 ] Better state management for alarms.
2023-12-09 14:25:18 +01:00
Fabio Manganiello
9d5c755188
[ #340 ] Alarm integration improvements.
...
- Emit `EntityDeleteEvent` when an alarm is expired and removed so
clients can properly synchronize their state.
- `croniter.get_next()` should be timezone-aware.
2023-12-09 13:33:42 +01:00
Fabio Manganiello
fcb6b621ab
[ #340 ] Added persistence of alarm entities.
2023-12-09 01:25:12 +01:00
Fabio Manganiello
3ffaaa0eb9
Added `Procedure.to_dict` method.
...
Also, LINT+black for the `procedure` module.
2023-12-09 01:23:36 +01:00
Fabio Manganiello
a6d6fd4067
`Message` objects enhancements.
...
- Support smart JSON serialization of `Message` objects.
- Added `Message.to_dict` method.
2023-12-09 01:20:20 +01:00
Fabio Manganiello
5ad1a62293
[ #340 ] Merged `alarm` backend into the `alarm` plugin.
...
Closes : #340
2023-12-06 19:23:19 +01:00
Fabio Manganiello
2670d40094
Added `get_default_media_plugin` utility.
2023-12-06 01:31:05 +01:00
Fabio Manganiello
680de865c4
Minor docstring fix.
2023-12-04 03:09:02 +01:00
Fabio Manganiello
5823dd0e21
[ #292 ] Converted `backend.log.http` to a runnable plugin.
...
continuous-integration/drone/push Build is passing
Details
Closes : #292
2023-12-04 03:03:21 +01:00
Fabio Manganiello
1843ab224b
[ #289 ] Converted `backend.file.monitor` into a runnable plugin.
...
Closes : #289
2023-12-04 03:03:20 +01:00
Fabio Manganiello
d484a34c00
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-12-03 23:34:57 +00:00
Fabio Manganiello
d048752184
[ #301 ] Exposing hosts as entities in the `ping` plugin.
...
continuous-integration/drone/push Build was killed
Details
Closes : #301
2023-12-04 00:36:45 +01:00
Fabio Manganiello
3bb7c02572
[ #301 ] Merged `ping` backend and plugin.
...
Also, removed `ping` response types.
2023-11-24 02:06:53 +01:00
Fabio Manganiello
71ccffa698
[weather.buienradar] Implemented forecast support.
2023-11-23 01:35:58 +01:00
Fabio Manganiello
b969afb1cf
Added support for weather forecast events and entities.
2023-11-23 01:35:58 +01:00
Fabio Manganiello
841a28066b
Added support for generic kwargs to `publish_entities`.
2023-11-23 01:35:57 +01:00
Fabio Manganiello
ca7c89949b
Only react on `NewWeatherConditionEvent` if `plugin_name` is compatible.
2023-11-23 01:35:57 +01:00
Fabio Manganiello
aca71c6bc7
[wallabag] Improved OAuth flow integration.
...
continuous-integration/drone/push Build is passing
Details
If the user provided `username` and `password` in the plugin
configuration, then we should use those credentials to refresh the OAuth
token when expired.
2023-11-22 11:38:00 +01:00
Fabio Manganiello
7bb15b0a03
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-20 02:08:35 +00:00
Fabio Manganiello
a0d8c522a2
[ #308 ] Finalized `weather` integrations migration.
...
continuous-integration/drone/push Build was killed
Details
- Migrated `weather.buienradar` integration.
- Removed last leftovers of the previous weather backends and responses.
Closes : #308
2023-11-20 03:10:00 +01:00
Fabio Manganiello
2dac98c56e
More rst fixes.
2023-11-20 03:09:59 +01:00
Fabio Manganiello
a798cfa387
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-20 01:42:12 +00:00
Fabio Manganiello
80be79f5e8
Fixed link format.
continuous-integration/drone/push Build is failing
Details
2023-11-20 02:43:18 +01:00
Fabio Manganiello
bc8730d6f0
[ #308 ] Removed `weather` backend.
2023-11-20 01:54:10 +01:00
Fabio Manganiello
b8a4b9e4c5
Implemented support for weather entities.
2023-11-20 01:46:01 +01:00
Fabio Manganiello
bf8f31545a
Fixed alignment of entity icon in modal.
2023-11-19 22:33:19 +01:00
Fabio Manganiello
b800899859
[ #308 ] Refactored `weather.openweathermap` plugin.
2023-11-19 00:10:10 +01:00
Fabio Manganiello
6108cbb621
Added `Config.get_device_id()` classmethod.
2023-11-18 23:04:19 +01:00
Fabio Manganiello
eec2908cc2
Removed DarkSky integration.
...
The API has gone and it's been merged into Apple Weather.
2023-11-18 21:45:47 +01:00
Fabio Manganiello
674c1036c5
Fixed some plugin usages of `self._bus`.
...
continuous-integration/drone/push Build is passing
Details
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
Fabio Manganiello
8817581061
Removed `-U` option from pip command when installing deps.
...
continuous-integration/drone/push Build is passing
Details
We don't need to forcefully upgrade packages that don't need to be
upgraded.
2023-11-18 16:07:16 +01:00
Fabio Manganiello
869ef38364
Removed explicit `numpy` pip dependency in `assistant.google`.
...
continuous-integration/drone/push Build is passing
Details
It will be installed by the other dependencies anyway.
2023-11-18 16:01:24 +01:00
Fabio Manganiello
fdaff32cd0
Fixed docstring for `chromecast.status`.
continuous-integration/drone/push Build is failing
Details
2023-11-18 14:17:17 +01:00
Fabio Manganiello
1a777c6276
Removed Todoist backend and migrated responses to schemas.
...
continuous-integration/drone/push Build is passing
Details
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
Fabio Manganiello
c2f53b7771
Added `_bus` property on `Plugin`.
2023-11-18 10:13:35 +01:00
Fabio Manganiello
f12af08e73
Minor return type fix.
2023-11-17 22:30:30 +01:00
Fabio Manganiello
0f9614506b
[trello] Updated procedure to retrieve the frontend cloud token.
2023-11-17 10:28:27 +01:00
Fabio Manganiello
c919cf0cd8
[trello] (Almost) complete plugin rewrite.
...
continuous-integration/drone/push Build is passing
Details
- 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
Fabio Manganiello
39b4483401
Fixed `joystick` manifest.
continuous-integration/drone/push Build is passing
Details
2023-11-16 22:08:00 +01:00
Fabio Manganiello
7bb08bca07
[joystick] Rewritten `joystick` integration as a plugin.
...
continuous-integration/drone/push Build is passing
Details
And removed legacy `joystick*` backends and `inputs` plugin.
Closes : #290
2023-11-16 21:43:56 +01:00
Fabio Manganiello
5e629990e6
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-15 02:04:50 +00:00
Fabio Manganiello
d617443af6
[YouTube] Added subscriptions+channels support.
...
continuous-integration/drone/push Build is failing
Details
Closes : #337
2023-11-15 03:05:58 +01:00
Fabio Manganiello
9ed7026aaf
[media UI] Propagate free text filter to all the views.
2023-11-15 03:05:58 +01:00
Fabio Manganiello
ae017516c4
[YouTube UI] Support playlist navigation in the media nav.
2023-11-15 03:05:57 +01:00
Fabio Manganiello
4853f51c8b
[YouTube] Added (read-only) playlists support.
2023-11-15 03:05:57 +01:00
Fabio Manganiello
b491f81cda
[media UI] Added loading spin overlay upon play.
2023-11-15 03:05:57 +01:00
Fabio Manganiello
9e5728f8ba
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-13 01:39:51 +00:00
Fabio Manganiello
96e69811fe
[ #337 ] Initial YouTube UI with feed support.
continuous-integration/drone/push Build is failing
Details
2023-11-13 02:40:50 +01:00
Fabio Manganiello
f425e95e7e
[media UI] Show track image if available on desktop+ size.
2023-11-13 02:40:50 +01:00
Fabio Manganiello
60fb7bba5f
[media UI] Added support for generic media providers.
2023-11-13 02:40:50 +01:00
Fabio Manganiello
be28965d84
[`youtube`] Added `youtube.get_feed` action.
2023-11-13 02:40:50 +01:00
Fabio Manganiello
b63579b81c
[UI] Fixed some glitches of the Dropdown component.
2023-11-13 02:40:49 +01:00
Fabio Manganiello
f6c752c80e
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-12 14:59:23 +00:00
Fabio Manganiello
50922cf149
[media UI] Fixed player selector style after Dropdown component changes.
continuous-integration/drone/push Build is failing
Details
2023-11-12 15:55:28 +01:00
Fabio Manganiello
ca72e22820
[UI] Proxy `/media/*` requests to upstream when Vue is in debug mode.
2023-11-12 15:55:03 +01:00
Fabio Manganiello
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
Fabio Manganiello
6dfe2324c1
[UI] Added navigation crumbs to the file browser.
2023-11-12 15:53:46 +01:00
Fabio Manganiello
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
Fabio Manganiello
e416a70658
[UI] (Re)-added required `logo-256x256.png` image.
2023-11-12 15:52:07 +01:00
Fabio Manganiello
cad36b7911
[UI] Watch the `connected` flag for changes to update the Nav indicator.
2023-11-12 14:00:18 +01:00
Fabio Manganiello
60b5f235a7
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-12 02:08:23 +00:00
Fabio Manganiello
1f321c32dc
[`media.chromecast`] Full plugin rewrite.
continuous-integration/drone/push Build is failing
Details
2023-11-12 03:08:54 +01:00
Fabio Manganiello
20aeb0b72e
[`system`] Some versions of `cpuinfo` may return cache sizes in human-readable format.
continuous-integration/drone/push Build is passing
Details
2023-11-10 21:55:41 +01:00
Fabio Manganiello
9a090d1b46
[`system`] Cache sizes can also be float, not necessarily int.
continuous-integration/drone/push Build is passing
Details
2023-11-10 21:30:56 +01:00
snyk-bot
d54970765e
fix: upgrade vue from 3.3.4 to 3.3.6
...
Snyk has created this PR to upgrade vue from 3.3.4 to 3.3.6.
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
2023-11-10 14:35:37 +00:00
Fabio Manganiello
3d62069775
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-10 01:48:45 +00:00
Fabio Manganiello
ceae310901
[`snapcast`] Merged backend logic into the plugin.
...
Closes : #283
2023-11-10 02:48:07 +01:00
Fabio Manganiello
6c3edb73f9
[`music.snapcast`] Fixed message serialization issue.
...
Closes : #338
2023-11-09 22:46:54 +01:00
Fabio Manganiello
1ec42e11fc
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-09 01:46:44 +00:00
Fabio Manganiello
52ee614ec4
[`media`] Added logic to parse local media metadata.
continuous-integration/drone/push Build is failing
Details
2023-11-09 02:47:34 +01:00
Fabio Manganiello
a83f4729a6
[UI] Extracted `grid` into `layout.scss`.
2023-11-09 02:47:34 +01:00
Fabio Manganiello
4814c56a2d
[`media` UI] Added resolution to media info.
2023-11-09 02:47:34 +01:00
Fabio Manganiello
90a9684404
[`media` UI] Added extra rating fields to the media info component.
2023-11-09 02:47:33 +01:00
Fabio Manganiello
cd635ea69e
[`torrent`] Fixed duration and image for TV series results.
2023-11-09 02:47:33 +01:00
Fabio Manganiello
e66ca105d7
[`jellyfin`] Added `duration` field to video results.
2023-11-09 02:47:33 +01:00
Fabio Manganiello
d1b721dba5
[`torrent`] Added `image` to search results.
2023-11-09 02:47:33 +01:00
Fabio Manganiello
eb7a96ee94
[`youtube`] Added more metadata fields to search results.
2023-11-09 02:47:32 +01:00
Fabio Manganiello
d7093d18c5
[`media` UI] Major redesign of the search results.
2023-11-09 02:47:32 +01:00
Fabio Manganiello
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
Fabio Manganiello
fafc1747d6
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-06 23:45:02 +00:00
Fabio Manganiello
3d2dc22ed3
[`media` UI] Improved media UI.
continuous-integration/drone/push Build was killed
Details
2023-11-07 00:45:45 +01:00
Fabio Manganiello
e7bd61e0d4
Black/LINT for Jellyfin plugin.
2023-11-07 00:45:45 +01:00
Fabio Manganiello
a94ddd3f05
[`torrent`] duration * 60 for results returned by PopcornTime API.
2023-11-07 00:45:44 +01:00
Fabio Manganiello
1d41df51e7
[`media`] Extended current track with ytdl metadata if available.
2023-11-07 00:45:44 +01:00
Fabio Manganiello
a939cb648c
[`media` UI] Extracted `PlayPauseButton` into its own component.
2023-11-07 00:45:44 +01:00
Fabio Manganiello
7889846cd6
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-06 01:29:16 +00:00
Fabio Manganiello
2caa171c6d
[`media` UI] Fixed alignment of the controls right handle.
continuous-integration/drone/push Build is failing
Details
2023-11-06 02:25:54 +01:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
6411688e65
[`youtube`] Don't fail if some items in the response have missing attrs.
2023-11-05 22:12:21 +01:00
snyk-bot
9814292a2e
fix: upgrade vue-router from 4.2.4 to 4.2.5
...
Snyk has created this PR to upgrade vue-router from 4.2.4 to 4.2.5.
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
2023-11-05 15:30:06 +00:00
snyk-bot
eff126052d
fix: upgrade core-js from 3.32.0 to 3.33.0
...
Snyk has created this PR to upgrade core-js from 3.32.0 to 3.33.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
2023-11-05 15:30:02 +00:00
snyk-bot
3ddac09412
fix: upgrade sass from 1.65.1 to 1.69.3
...
Snyk has created this PR to upgrade sass from 1.65.1 to 1.69.3.
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
2023-11-05 15:29:57 +00:00
Fabio Manganiello
daa93f5994
[`media` UI] Fixed style of the Play URL modal.
2023-11-05 12:19:36 +01:00
Fabio Manganiello
71bca662a1
`media.play` should support anything supported by a yt_dlp extractor.
continuous-integration/drone/push Build is passing
Details
2023-11-05 02:40:38 +01:00
Fabio Manganiello
e45fb9c8ac
Major rewrite of the `media` routes.
...
continuous-integration/drone/push Build is passing
Details
- 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
Fabio Manganiello
0e2738d849
Added `_on_error` handler to `StreamingRoute`.
2023-11-05 01:03:40 +01:00
Fabio Manganiello
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
Fabio Manganiello
f7fe844296
Black/LINT pass for media handler routes.
2023-11-04 16:13:52 +01:00
Fabio Manganiello
11c3b7820d
[`torrent`] Create `download_dir` if it doesn't exist.
2023-11-04 15:48:05 +01:00
Fabio Manganiello
07e7f06c7a
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-04 11:12:51 +00:00
Fabio Manganiello
2b12984c81
[`youtube`] Full plugin rewrite.
...
continuous-integration/drone/push Build is failing
Details
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
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
b4bf30945a
[`media`] Black/LINT for `MediaPlugin`.
2023-11-04 00:50:08 +01:00
Fabio Manganiello
efdb63443d
Renamed the `youtube` plugin.
...
From `google.youtube` to `youtube`.
2023-11-04 00:07:29 +01:00
Fabio Manganiello
9ac25a7627
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-03 21:24:49 +00:00
Fabio Manganiello
3b335723a9
Merge pull request #387 from BlackLight/snyk-upgrade-7f1672a9074c3d844aa231ad5ba0e90d
...
continuous-integration/drone/push Build is failing
Details
[Snyk] Upgrade core-js from 3.23.4 to 3.31.1
2023-11-03 22:18:22 +01:00
Fabio Manganiello
8acb4156e0
Merge branch 'master' into snyk-upgrade-7f1672a9074c3d844aa231ad5ba0e90d
2023-11-03 22:11:01 +01:00
Fabio Manganiello
664ca7f9b5
Merge branch 'master' into snyk-upgrade-ae486550d733dccfaf3fab04d0756007
2023-11-03 22:07:35 +01:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
f6952f1198
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-11-03 20:56:12 +00:00
Fabio Manganiello
170e37945e
[UI] Make sure that a `Modal` never overflows its parent.
2023-11-03 20:54:46 +00:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
5e2973dd5f
[UI] Removed `<tt>` tag.
2023-11-03 20:54:46 +00:00
Fabio Manganiello
ba5d505c9b
[`youtube`] Black/LINT pass.
2023-11-03 20:54:46 +00:00
Fabio Manganiello
f6cb1fa4a7
Added `utils.get_default_downloads_dir`.
2023-11-03 20:54:46 +00:00
Fabio Manganiello
0e29e770fb
Updated sample config snippet for `tts.mimic3`.
2023-11-01 02:30:25 +00:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
d5514d7f27
Added `utils.is_debug_enabled`.
2023-10-31 00:44:05 +00:00
Fabio Manganiello
ef3b1d20f2
Updated `MediaPlugin` documentation snippet.
2023-10-31 00:44:05 +00:00
Fabio Manganiello
0cbd0a94d6
tts` plugins should leverage `sound`, not an external media player.
2023-10-31 00:44:05 +00:00
Fabio Manganiello
72b2625425
Updated `tts` plugin dependencies, as they now leverage the `sound` plugin.
2023-10-31 00:44:05 +00:00
Fabio Manganiello
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
Fabio Manganiello
42912581f9
[Fix] Always initialize `AssistantPlugin._conversation_start_sound`.
2023-10-23 21:30:49 +00:00
Fabio Manganiello
23e53f13f0
Removed/commented references to `numpy.typing`.
...
That module isn't available yet on the numpy version installed on Debian
`oldstable`.
2023-10-23 20:23:57 +00:00
Fabio Manganiello
fc869bf5db
[Fix] sounddevice arguments fix.
...
Different versions of the `sounddevice` dependency may or may not return
the `index` parameter when querying the available sound devices.
Thus, the code should be ready for both cases.
2023-10-23 20:11:14 +00:00
Fabio Manganiello
cea3055369
Indent pre- and post-install shell scripts in docs.
2023-10-23 15:48:09 +00:00
Fabio Manganiello
6d694f02b4
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-10-23 14:04:25 +00:00
Fabio Manganiello
a005958317
[Assistant] Added `assistant` entity type.
continuous-integration/drone/push Build is passing
Details
2023-10-23 16:02:05 +02:00
Fabio Manganiello
fd26f7fef3
[UI Nav] Fixed position of the connected status dot.
2023-10-23 15:57:47 +02:00
Fabio Manganiello
5c22271e88
[UI] Expose the `connected` flag on the root element level.
2023-10-23 15:03:36 +02:00
Fabio Manganiello
4c0e3a16b6
Removed Alexa/AVS integration.
...
The integration was based on my old fork of the AVS service, which is no
longer functional given the changes the the Amazon's backend side.
A new `avs-device-sdk` is now available, but it seems that it requires
lengthy compilation processes which are RaspberryPi-specific.
Further investigation is needed for a new Alexa plugin - see #334 .
2023-10-23 00:23:10 +02:00
Fabio Manganiello
fb017a8b35
[`assistant.google`] Added doc on how to configure audio devices.
2023-10-22 22:49:41 +02:00
Fabio Manganiello
2c8b06e471
Remove Snowboy integration.
...
It hurts to see it go, as I really believed in this project.
But the website of the project went away in 2020, the Github project
hasn't seen any activity since 2021, and the fork that is supposed to be
used as a replacement for training .pmdl models hasn't been updated
since 2021 - and it only supports Python 2 on Ubuntu 16.04 or 18.04.
One day I may dedicate some efforts to bring Snowboy back to life, but
until then it's definitely not in a state where it's usable for a
Platypush integration.
2023-10-22 22:33:22 +02:00
Fabio Manganiello
645e8c8f77
Added updated configuration snippet for `assistant.google` plugin.
2023-10-22 21:53:15 +02:00
Fabio Manganiello
b46c00f015
Removed deprecated `google.assistant.pushtotalk` plugin.
...
It only existed as a back-compatibility layer with armv6, since there
was no build of the assistant library that worked on Raspberry Pi Zero.
But that API layer has been discontinued by Google and it's no longer
functional, so only the `assistant.google` integration (on x86_64 and
armv7) is currently supported.
2023-10-22 19:57:55 +02:00
Fabio Manganiello
cce6c4c5ad
[ #284 ] Merged `assistant.google` plugin and backend.
...
This removes the deprecated `assistant.google` backend and also adds a
new `conversation_start_sound` parameter.
2023-10-22 19:55:11 +02:00
Fabio Manganiello
e24438980a
[`sound`] Better logic for default sound device auto-detection.
continuous-integration/drone/push Build is passing
Details
2023-10-22 18:07:25 +02:00
Fabio Manganiello
4d582bb6bc
Ensure that the application always terminates on Ctrl+C.
continuous-integration/drone/push Build is passing
Details
2023-10-22 02:33:15 +02:00
Fabio Manganiello
f75a2159c7
[platyvenv] Add the venv bin directory to the PATH.
...
After creating the virtual environment, we should add `<VENV_DIR>/bin`
to the `PATH` variable, so any next `python`/`pip` commands will be
executed in the new environment.
2023-10-22 02:28:31 +02:00
Fabio Manganiello
a909dc5f0f
[Fix] The base per-OS requirements filename is always lowercase.
2023-10-22 01:45:23 +02:00
Fabio Manganiello
e65eef34d3
[`application`] `application.install` should redirect stderr->stdout.
2023-10-22 01:44:39 +02:00
Fabio Manganiello
8b5871af0e
[Fix] `platyvenv` should also execute the `before` and `after` blocks.
...
Before this fix, `platyvenv`, unlike `platydock`, didn't take into
account any extra before/after installation commands that individual
integrations may instruct to run in their manifest files.
2023-10-22 01:41:19 +02:00
Fabio Manganiello
02049030d0
`paho` module added to automocks.
2023-10-21 19:55:50 +02:00
Fabio Manganiello
4883f49b19
Removed unused `travisci` events.
2023-10-21 19:15:34 +02:00
Fabio Manganiello
cd87cc3e43
Minor docstring fixes.
2023-10-21 18:08:29 +02:00
Fabio Manganiello
8634572c34
Small docstring fix.
2023-10-20 01:41:30 +02:00
Fabio Manganiello
0eae6fd48d
Misc dependencies and mock fixes.
...
continuous-integration/drone/push Build is passing
Details
- `iputils` should be an explicit system dependency for `ping`.
Some minimal systems (like some Docker images) may not have the `ping`
command installed out of the box.
- `hid` and `marshmallow_dataclass` should be among the auto-mocked
modules.
2023-10-20 01:02:35 +02:00
Fabio Manganiello
ed2a56de42
`paho.mqtt` should also be added to the mock modules
continuous-integration/drone/push Build is passing
Details
2023-10-20 00:00:07 +02:00
Fabio Manganiello
e1fc38e014
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing
Details
2023-10-19 17:52:56 +00:00