Commit graph

285 commits

Author SHA1 Message Date
ed2a56de42
paho.mqtt should also be added to the mock modules 2023-10-20 00:00:07 +02:00
c05d887551
[application] Added application.install action.
It can be used to programmatically install extensions.
2023-10-18 19:33:00 +02:00
608844ca0c
[WIP] Large refactor of the inspection plugin and models. 2023-10-09 01:33:44 +02:00
7bd721e6a4
Added missing pip install parameter. 2023-09-30 13:31:04 +02:00
343972b520
New IntegrationMetadata generic util class.
This object is in charge of parsing all the metadata of a
plugin/backend.
2023-09-30 02:28:20 +02:00
905d6632e0
Misc documentation improvements. 2023-09-29 18:09:15 +02:00
9298f52443
Moved BluetoothPlugin to __init__.py.
This is for consistency with other plugins, that all have their main
plugin class definition inside of `__init__.py`.
2023-09-24 19:21:53 +02:00
c3337ccc6c
[#311] Docs deps autogen sphinx plugin.
Added an `add_dependencies` plugin to the Sphinx build process that
parses the manifest files of the scanned backends and plugins and
automatically generates the documentation for the required dependencies
and triggered events.

This means that those dependencies are no longer required to be listed
in the docstring of the class itself.

Also in this commit:

- Black/LINT for some integrations that hadn't been touched in a long
  time.

- Deleted some leftovers from previous refactors (deprecated
  `backend.mqtt`, `backend.zwave.mqtt`, `backend.http.request.rss`).

- Deleted deprecated `inotify` backend - replaced by `file.monitor` (see
  #289).
2023-09-24 17:00:08 +02:00
ad2ee75c99
Updated docs 2023-09-23 16:24:18 +02:00
648b4224bb
[#285] Removed old covid19 backend.
Those endpoints aren't even working anymore.

Closes: #285
2023-09-21 00:26:35 +02:00
5d6d37785e
[#288] Removed legacy http.poll backend.
Closes: #288
2023-09-20 23:53:12 +02:00
7ba9a8930a
[#291] Removed deprecated light.hue backend.
Closes: #291
2023-09-20 23:46:40 +02:00
a6efaad26d
[#306] Removed Travis CI integration.
I've tried my best to keep it around, but the endpoints seem to be
broken, they no longer have a link to their API v3 documentation, and
the API Explorer that was supposed to be in the dashboard is gone.
2023-09-20 23:31:58 +02:00
c4352660a4
Documentation update.
Removed references to the legacy zwave plugin and backend.
2023-09-17 02:47:04 +02:00
00863a176e
Added application plugin. 2023-08-15 11:20:24 +02:00
3eda0c6f17
[#268] Implemented XMPP integration. 2023-07-22 22:36:36 +02:00
1395c472c0
docutils moved to required dependencies. 2023-05-09 21:59:36 +02:00
ab2425ebd0
[#260] Removed legacy backend.websocket.
It has now been replaced by the `/ws/events` and `/ws/requests`
websocket routes under `backend.http`.
2023-05-09 02:46:43 +02:00
56dc8d0972
Migrated the webapp to Tornado.
It was just too painful to find a combination of versions of  gunicorn,
gevent, eventlet, pyuwsgi etc. that could work on all of my systems.

On the other hand, Tornado works out of the box with no headaches.

Also in this commit:

- Updated a bunch of outdated/required integration dependencies.
- Black'd and LINTed a couple of old plugins.
2023-05-08 02:06:45 +02:00
692180c653
Back to uvicorn workers from eventlet.
The eventlet API has way too many dependency issues with gunicorn.

Still TODO: Fix or at least mitigate the WSGI workers timeout issue when
they handle websocket connections.
2023-05-07 15:37:58 +02:00
f9b0bc905e
Migrated websocket service.
The websocket service is no longer provided by a different service,
controlled by a different thread running on another port.

Instead, it's now exposed directly over Flask routes, using
WSGI+eventlet+simple_websocket.

Also, the SSL context options have been removed from `backend.http`, for
sake of simplicity. If you want to enable SSL, you can serve Platypush
through a reverse proxy like nginx.
2023-05-07 12:08:28 +02:00
3aefc9607d
Migrated from waitress to gunicorn.
`waitress`, unlike `gunicorn`, doesn't provide an easy way to plug into
a WSGI socket that can be used for the websocket interface.
2023-05-07 00:42:57 +02:00
ca65db016e
Added description line to conf.py. 2023-05-06 23:26:07 +02:00
285f3941d9
Always use an external uWSGI server to run the web service.
Added `waitress` dependency. For performance and security reasons, it's
better to always run the Flask application inside of a uWSGI server.

`waitress` also makes things easier by avoiding to ask the user to
manually provide the external executable arguments, as it was the case
with `uwsgi` and `gunicorn`.
2023-05-05 00:07:13 +02:00
9fd7f7db04 Fixed compatibility with new Sphinx version 2023-05-04 01:05:27 +02:00
0fc05135df
Updated docs 2023-04-23 02:14:57 +02:00
f9ce4b75e8
Updated docs 2023-04-03 01:36:12 +02:00
2781eb1fb1
Merge branch 'master' into 29-generic-entities-support 2023-03-27 00:36:50 +02:00
7a368ebbb8
[#240] Migrated clipboard plugin from pyperclip to pyclip.
Closes: #240
2023-03-26 23:52:15 +02:00
3bb2336b3a
Updated docs 2023-03-26 15:13:48 +02:00
3743ee4f00
s/TheengsGateway/TheengsDecoder/g now that the pip package has been published. 2023-03-20 01:41:21 +01:00
94c4e52154
Mock PyOBEX.client in readthedocs conf.py 2023-03-03 01:58:32 +01:00
aa0b909fff
Use the TheengsDecoder to parse Bluetooth packets and map services to native entities. 2023-02-20 20:27:17 +01:00
613e32e7c1
Extended number of supported events and data fields in Bluetooth integration. 2023-02-18 01:15:10 +01:00
b0cc80ceb0
Rewriting bluetooth.ble plugin to use bleak instead of gattlib. 2023-02-10 17:40:20 +01:00
8469a1027f
Migrated/refactored switchbot.bluetooth integration.
- Out `gattlib` + `pybluez`, in `bleak`. It's not platform-dependent, it doesn't
  require libboost and other heavy build dependencies, and it doesn't require the
  user that runs the service from having special privileges to access raw
  Bluetooth sockets.

- Better integration with Platypush native entities. The devices are now mapped
  to write-only `EnumSwitch` entities, and the status returns the serialized
  representation of those entities instead of the previous intermediate
  representation.
2023-02-08 22:42:00 +01:00
b7f266cd92
Merge branch 'master' into 29-generic-entities-support 2023-01-07 22:31:36 +01:00
a77206800d
Added HID plugin to support interaction with generic HID devices 2023-01-07 22:30:32 +01:00
2cc80e7f16
Merge branch 'master' into 191-support-for-general-entities-backend-and-plugin 2022-10-07 00:05:54 +02:00
85f583a0ad
Reduced :maxdepth: of toctree in documentation.
Recent versions of Sphinx get a bit too zealous about generating deeply
nested toctrees.
2022-09-30 11:47:19 +02:00
ae226a5b01
Added tts.mimic3 integration.
Closes: #226
2022-09-30 10:51:17 +02:00
4bab9d2607
[#224] Implemented Wallabag integration 2022-09-29 10:51:16 +02:00
deb25196d2
Merge branch 'master' into 191-support-for-general-entities-backend-and-plugin 2022-09-28 02:17:10 +02:00
1b405de0d5
Added missing docs 2022-09-17 06:09:39 +02:00
1880a99052
Merge branch 'master' into 191-support-for-general-entities-backend-and-plugin 2022-08-29 01:41:47 +02:00
540a7d469e
- Fixed documentation errors and warnings
- Split Matrix integration into `plugin` and `client` files.
2022-08-29 00:55:46 +02:00
4308024eef
Added missing docs 2022-08-28 15:18:23 +02:00
513195b396
Implemented support for file upload 2022-08-27 15:12:50 +02:00
cbe2e7bbfe
[WIP] 2022-08-04 03:08:54 +02:00
3513ee3e1c
Merge branch 'master' into 191-support-for-general-entities-backend-and-plugin 2022-07-08 23:13:36 +02:00
cbf8ba7fdd
Updated wiki URLs and replaced Gitlab references with Gitea 2022-07-06 22:01:25 +02:00
5971ec32c8
Removed clipboard backend.
The relevant clipboard monitoring logic has been moved to the
`clipboard` plugin. Thus, enabling the plugin should provide all the
feature, with no need for an additional backend.
2022-06-04 12:32:02 +02:00
0919a0055d
Merge branch 'master' into 191-support-for-general-entities-backend-and-plugin 2022-06-02 00:13:43 +02:00
8be515c17b
[closes #219] Added ntfy integration 2022-06-01 23:01:29 +02:00
e40b668380
Added missing docs 2022-04-07 01:49:13 +02:00
385914c04a
Added missing docs for gpio events 2022-03-27 18:30:46 +02:00
fdf6d8fb4e
Better auto-generated documentation and fixed docstring warnings 2022-03-03 20:26:25 +01:00
0d0797a465
Added Jellyfin integration 2022-03-01 01:32:50 +01:00
08b3cddb7b
Added missing docs for dbus events 2022-02-07 21:29:21 +01:00
530245733c
FIX: Fixed defusedxml module mock definition in docs/conf.py 2022-02-07 20:47:56 +01:00
786286eac6
Refactored D-Bus integration
- Added ability to listen for signals
- Improved introspection output
- `dbus` plugin and backend have now been merged
- Migrated from `dbus` to `pydbus`
2022-02-07 15:45:43 +01:00
e9f6d9a8bc
Refactored RSS integration into its own rss plugin [closes #199] 2022-01-06 00:46:05 +01:00
3e4b91cd6c
Removed pytz dependency 2022-01-05 18:04:32 +01:00
ea3b49a17f
Use inherited-members: true in autodoc_default_options to ensure documentation of inherited actions 2021-11-15 01:05:53 +01:00
6ba3128ac4
[#201] Added Mailgun integration 2021-11-14 22:40:59 +01:00
d7b273434b
[#203] Added IRC integration 2021-11-14 19:43:19 +01:00
acdc636b1f Resolve "Mastodon integration" 2021-11-07 01:00:29 +01:00
6db070db1c
- Fixed switchbot.status to handle virtual devices
- Fixed StrippedString schema field serialize handler

- Fixed rendering of lists in documentation schemas
2021-10-26 00:48:05 +02:00
952a2a9379
- Render nested attributes in schemas
- Provide relevant examples for schema fields with no description/examples based on the field type

- Fixed RST warnings in Slack plugin

- Fixed list of events in ngrok plugin
2021-10-24 11:53:38 +02:00
d844890ab2 Bump version: 0.22.2 → 0.22.3 2021-10-01 23:53:05 +02:00
c4bd854be2 Added docs for ngrok plugin 2021-09-25 01:37:19 +02:00
68831e9e81 [#196] Added ngrok integration 2021-09-25 01:34:45 +02:00
f147c44a8a Fixed docs issues 2021-09-22 00:19:14 +02:00
fa11b13638 - Updated docs.
- Implemented synchronous behaviour (without background process and stdout/stderr log files) for `platyvenv start`.
2021-09-16 23:28:00 +02:00
3bfc5b83ef Moved to manifest files for describing plugins and backends and their dependencies 2021-09-16 17:53:40 +02:00
90ec108580 Added Slack integration 2021-07-28 01:09:09 +02:00
371dd6da0a Added sun plugin [closes #194] 2021-07-22 01:02:15 +02:00
f250681a78 Refactored documentation and changed theme 2021-07-17 14:41:35 +02:00
af7977bcf7 Added music.spotify.connect backend 2021-06-25 22:47:40 +02:00
fc1d9ad3e6 Added joystick.linux backend 2021-05-17 14:52:08 +02:00
f296f4b161 Added generic joystick.jstest backend 2021-05-15 23:28:24 +02:00
664ce4050d Added Switchbot plugin 2021-05-10 18:43:00 +02:00
69583d2e15 Added support for Marshmallow schemas in responses 2021-05-10 18:42:13 +02:00
c006c4b368 Added zwave.mqtt plugin and backend [closes #186] 2021-04-12 02:45:59 +02:00
2a78f81a7b Major LINT fixes 2021-04-05 00:58:44 +02:00
f8564c19cd Added log.http backend to monitor HTTP logs [closes #167] 2021-03-16 00:03:32 +01:00
632a7ab792 Added README for auto-generated docs and changed theme to sphinx-material 2021-03-14 15:07:10 +01:00
352d421e61 Added file.monitor backend [closes #172]
The file.monitor backend leverages watchdog instead of the Linux-only
inotify API and it replaces the inotify backend.
2021-03-14 00:08:20 +01:00
6f224cbda9 Removed legacy "local" backend and pusher script 2021-03-13 01:52:15 +01:00
02f6845e72 - Added weather.openweathermap plugin and backend, as a replacement for Darksky [closes #177]
- Added note to the Darksky plugin about the decomissioning of the API by the end of the year
2021-03-12 01:31:26 +01:00
4ada1c663d Added SmartThings plugin [#148] 2021-03-05 02:23:28 +01:00
151d0008ee Removed docs references to removed plugin media.ctrl 2021-02-21 23:34:47 +01:00
254045283b Removed deprecated message.events.path module 2021-02-02 00:54:17 +01:00
41b8b738d6 Fixed links referenced in the documentation 2021-02-02 00:50:17 +01:00
0411145ebf Updated blog link 2021-02-02 00:32:39 +01:00
e2e7011e53 s/github.com/git.platypush.tech/g 2021-01-23 15:03:43 +01:00
Fabio Manganiello
cc36325ca6 Added support for custom user events 2020-10-28 23:28:41 +01:00
Fabio Manganiello
05b0a7f14d Added GStreamer media plugin [closes #151] 2020-09-29 15:32:40 +02:00
Fabio Manganiello
0a9c4fc3a7 Added GStreamer camera plugin [relates to #151] 2020-09-28 22:10:56 +02:00
Fabio Manganiello
b30145dfc9 Copyright year update 2020-09-28 13:11:07 +02:00