Compare commits
3 Commits
79a71d00b4
...
3d5c60e4f4
Author | SHA1 | Date |
---|---|---|
Fabio Manganiello | 3d5c60e4f4 | |
Fabio Manganiello | f06233801b | |
Fabio Manganiello | 59c693d6a0 |
|
@ -27,13 +27,9 @@ Guidelines:
|
|||
you are changing some of the core entities (e.g. requests, events, procedures, hooks, crons
|
||||
or the bus) then make sure to add tests and not to break the existing tests.
|
||||
|
||||
- If the feature requires an optional dependency then make sure to document it:
|
||||
|
||||
- In the class docstring (see other plugins and backends for examples).
|
||||
- In [`setup.py`](https://git.platypush.tech/platypush/platypush/-/blob/master/setup.py#L72) as
|
||||
an `extras_require` entry.
|
||||
- In the plugin/backend class pydoc string.
|
||||
- In the `manifest.yaml` - refer to the Wiki (how to write
|
||||
[plugins](https://git.platypush.tech/platypush/platypush/wiki/Writing-your-own-plugins)
|
||||
and [backends](https://git.platypush.tech/platypush/platypush/wiki/Writing-your-own-backends))
|
||||
for examples on how to write an extension manifest file.
|
||||
- If the feature requires an optional dependency then make sure to document it
|
||||
in the `manifest.json` - refer to the Wiki (how to write
|
||||
[plugins](https://git.platypush.tech/platypush/platypush/wiki/Writing-your-own-plugins)
|
||||
and
|
||||
[backends](https://git.platypush.tech/platypush/platypush/wiki/Writing-your-own-backends))
|
||||
for examples on how to write an extension manifest file.
|
||||
|
|
|
@ -2,5 +2,5 @@ recursive-include platypush/backend/http/webapp/dist *
|
|||
recursive-include platypush/install *
|
||||
include platypush/plugins/http/webpage/mercury-parser.js
|
||||
include platypush/config/*.yaml
|
||||
global-include manifest.yaml
|
||||
global-include manifest.json
|
||||
global-include components.json.gz
|
||||
|
|
25
README.md
25
README.md
|
@ -22,7 +22,7 @@ Platypush
|
|||
* [Install from sources](#install-from-sources)
|
||||
* [Installing the dependencies for your extensions](#installing-the-dependencies-for-your-extensions)
|
||||
+ [Install via `extras` name](#install-via-extras-name)
|
||||
+ [Install via `manifest.yaml`](#install-via-manifestyaml)
|
||||
+ [Install via `manifest.json`](#install-via-manifestjson)
|
||||
+ [Check the instructions reported in the documentation](#check-the-instructions-reported-in-the-documentation)
|
||||
* [Virtual environment installation](#virtual-environment-installation)
|
||||
* [Docker installation](#docker-installation-1)
|
||||
|
@ -216,16 +216,27 @@ ways to check the dependencies required by an extension:
|
|||
|
||||
#### Install via `extras` name
|
||||
|
||||
All the extensions that require extra dependencies are listed in the
|
||||
[`extras_require` section under
|
||||
`setup.py`](https://git.platypush.tech/platypush/platypush/src/branch/master/setup.py#L84).
|
||||
You can install extra dependencies via pip extras:
|
||||
|
||||
#### Install via `manifest.yaml`
|
||||
```shell
|
||||
pip install 'platypush[plugin1,plugin2,...]'
|
||||
```
|
||||
|
||||
All the plugins and backends have a `manifest.yaml` file in their source folder.
|
||||
For example:
|
||||
|
||||
```shell
|
||||
pip install 'platypush[light.hue,music.mpd,rss]'
|
||||
```
|
||||
|
||||
Will install Platypush with the dependencies for the `light.hue`, `music.mpd`
|
||||
and `rss` plugins.
|
||||
|
||||
#### Install via `manifest.json`
|
||||
|
||||
All the plugins and backends have a `manifest.json` file in their source folder.
|
||||
Any extra dependencies are listed there
|
||||
|
||||
If you followed the `extras` or `manifest.yaml` way to discover the
|
||||
If you followed the `extras` or `manifest.json` way to discover the
|
||||
dependencies, then you can install them in two ways:
|
||||
|
||||
1. `pip` installation:
|
||||
|
|
|
@ -159,7 +159,7 @@ class IntegrationEnricher:
|
|||
base_path,
|
||||
*doc.split(os.sep)[:-1],
|
||||
*doc.split(os.sep)[-1].split('.'),
|
||||
'manifest.yaml',
|
||||
'manifest.json',
|
||||
)
|
||||
|
||||
if not os.path.isfile(manifest_file):
|
||||
|
|
|
@ -188,9 +188,47 @@ const renderActionsList = () => {
|
|||
})
|
||||
}
|
||||
|
||||
const addFilterBar = () => {
|
||||
const container = document.querySelector('.bd-main')
|
||||
if (!container)
|
||||
return
|
||||
|
||||
const referenceSection = document.getElementById('reference')
|
||||
if (!referenceSection)
|
||||
return
|
||||
|
||||
const header = referenceSection.querySelector('h2')
|
||||
if (!header)
|
||||
return
|
||||
|
||||
const input = document.createElement('input')
|
||||
input.type = 'text'
|
||||
input.placeholder = 'Filter'
|
||||
input.classList.add('filter-bar')
|
||||
input.addEventListener('input', (event) => {
|
||||
const filter = event.target.value.toLowerCase()
|
||||
referenceSection.querySelectorAll('ul.grid li').forEach((li) => {
|
||||
if (li.innerText.toLowerCase().includes(filter)) {
|
||||
li.style.display = 'flex'
|
||||
} else {
|
||||
li.style.display = 'none'
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// Apply the fixed class if the header is above the viewport
|
||||
const headerOffsetTop = header.offsetTop
|
||||
document.addEventListener('scroll', () => {
|
||||
header.classList.toggle('fixed', headerOffsetTop < window.scrollY)
|
||||
})
|
||||
|
||||
header.appendChild(input)
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
generateComponentsGrid()
|
||||
convertDepsToTabs()
|
||||
addClipboardToCodeBlocks()
|
||||
renderActionsList()
|
||||
addFilterBar()
|
||||
})
|
||||
|
|
|
@ -29,15 +29,18 @@ a.grid-title {
|
|||
|
||||
ul.grid li {
|
||||
display: flex;
|
||||
background: linear-gradient(0deg, #fff, #f9f9f9);
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 0 10px 10px 0;
|
||||
padding: 10px;
|
||||
padding: 20px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 15px;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
ul.grid img {
|
||||
width: 32px;
|
||||
width: 48px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
@ -52,13 +55,19 @@ ul.grid li code .pre {
|
|||
}
|
||||
|
||||
ul.grid li:hover {
|
||||
background: linear-gradient(0deg, #e0ffe8, #e3ffff);
|
||||
background: linear-gradient(0deg, #157765, #cbffd8) !important;
|
||||
}
|
||||
|
||||
ul.grid li a {
|
||||
width: calc(100% - 35px);
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
ul.grid li:hover a {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
ul.grid li a code {
|
||||
|
@ -128,3 +137,48 @@ ul.grid .icon {
|
|||
border-radius: 0 0 0.75em 0.75em;
|
||||
}
|
||||
|
||||
.bd-article-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.filter-bar {
|
||||
width: 100%;
|
||||
display: block;
|
||||
font-size: 0.6em;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 0.75em;
|
||||
margin: 0.5em 0;
|
||||
padding: 0.25em;
|
||||
}
|
||||
|
||||
#reference h2.fixed {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
background: white;
|
||||
z-index: 1;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
#reference h2.fixed {
|
||||
width: 100%;
|
||||
margin-left: -0.5em;
|
||||
padding: 0.5em 0.5em 0 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 959px) {
|
||||
#reference h2.fixed {
|
||||
width: 100%;
|
||||
margin-left: -1em;
|
||||
padding: 0.5em 0.5em 0 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 960px) {
|
||||
#reference h2.fixed {
|
||||
width: 75%;
|
||||
max-width: 800px;
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.backend.http",
|
||||
"type": "backend"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.backend.http
|
||||
type: backend
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": [
|
||||
"pynodered"
|
||||
]
|
||||
},
|
||||
"package": "platypush.backend.nodered",
|
||||
"type": "backend"
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- pynodered
|
||||
package: platypush.backend.nodered
|
||||
type: backend
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.backend.redis",
|
||||
"type": "backend"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.backend.redis
|
||||
type: backend
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.backend.tcp",
|
||||
"type": "backend"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.backend.tcp
|
||||
type: backend
|
|
@ -31,7 +31,7 @@ def exec_wrapper(f: Callable[..., Any], *args, **kwargs):
|
|||
# pylint: disable=too-few-public-methods
|
||||
class ExtensionWithManifest:
|
||||
"""
|
||||
This class models an extension with an associated manifest.yaml in the same
|
||||
This class models an extension with an associated manifest.json in the same
|
||||
folder.
|
||||
"""
|
||||
|
||||
|
@ -40,11 +40,11 @@ class ExtensionWithManifest:
|
|||
|
||||
def get_manifest(self) -> Manifest:
|
||||
manifest_file = os.path.join(
|
||||
os.path.dirname(inspect.getfile(self.__class__)), 'manifest.yaml'
|
||||
os.path.dirname(inspect.getfile(self.__class__)), 'manifest.json'
|
||||
)
|
||||
assert os.path.isfile(
|
||||
manifest_file
|
||||
), f'The extension {self.__class__.__name__} has no associated manifest.yaml'
|
||||
), f'The extension {self.__class__.__name__} has no associated manifest.json'
|
||||
|
||||
return Manifest.from_file(manifest_file)
|
||||
|
||||
|
|
|
@ -251,7 +251,7 @@ class Integration(Component, DocstringParser, Serializable):
|
|||
:return: Path of the manifest file for the integration.
|
||||
"""
|
||||
return os.path.join(
|
||||
os.path.dirname(inspect.getfile(self.type)), "manifest.yaml"
|
||||
os.path.dirname(inspect.getfile(self.type)), "manifest.json"
|
||||
)
|
||||
|
||||
@property
|
||||
|
|
|
@ -2,6 +2,7 @@ import datetime
|
|||
import glob
|
||||
import importlib
|
||||
import inspect
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
|
@ -440,9 +441,13 @@ class Config:
|
|||
if base_dir.endswith('plugins')
|
||||
else self._backend_manifests
|
||||
)
|
||||
for mf in pathlib.Path(base_dir).rglob('manifest.yaml'):
|
||||
|
||||
for mf in pathlib.Path(base_dir).rglob('manifest.json'):
|
||||
with open(mf, 'r') as f:
|
||||
manifest = yaml.safe_load(f)['manifest']
|
||||
manifest = json.load(f).get('manifest')
|
||||
if not manifest:
|
||||
continue
|
||||
|
||||
comp_name = '.'.join(manifest['package'].split('.')[2:])
|
||||
manifests_map[comp_name] = manifest
|
||||
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.adafruit.AdafruitConnectedEvent",
|
||||
"platypush.message.event.adafruit.AdafruitDisconnectedEvent",
|
||||
"platypush.message.event.adafruit.AdafruitFeedUpdateEvent"
|
||||
],
|
||||
"install": {
|
||||
"pip": [
|
||||
"adafruit-io"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.adafruit.io",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.adafruit.AdafruitConnectedEvent
|
||||
- platypush.message.event.adafruit.AdafruitDisconnectedEvent
|
||||
- platypush.message.event.adafruit.AdafruitFeedUpdateEvent
|
||||
install:
|
||||
pip:
|
||||
- adafruit-io
|
||||
package: platypush.plugins.adafruit.io
|
||||
type: plugin
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.alarm.AlarmDisabledEvent",
|
||||
"platypush.message.event.alarm.AlarmDismissedEvent",
|
||||
"platypush.message.event.alarm.AlarmEnabledEvent",
|
||||
"platypush.message.event.alarm.AlarmSnoozedEvent",
|
||||
"platypush.message.event.alarm.AlarmStartedEvent",
|
||||
"platypush.message.event.alarm.AlarmTimeoutEvent"
|
||||
],
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.alarm",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.alarm.AlarmDisabledEvent
|
||||
- platypush.message.event.alarm.AlarmDismissedEvent
|
||||
- platypush.message.event.alarm.AlarmEnabledEvent
|
||||
- platypush.message.event.alarm.AlarmSnoozedEvent
|
||||
- platypush.message.event.alarm.AlarmStartedEvent
|
||||
- platypush.message.event.alarm.AlarmTimeoutEvent
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.alarm
|
||||
type: plugin
|
|
@ -81,5 +81,5 @@ class ApplicationPlugin(Plugin):
|
|||
ext = getter(extension)
|
||||
|
||||
assert ext, f'Could not find extension {extension}'
|
||||
manifest_file = str(pathlib.Path(inspect.getfile(ext)).parent / 'manifest.yaml')
|
||||
manifest_file = str(pathlib.Path(inspect.getfile(ext)).parent / 'manifest.json')
|
||||
return list(Manifest.from_file(manifest_file).install.to_install_commands())
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.application",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.application
|
||||
type: plugin
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {
|
||||
"platypush.message.event.sensor.SensorDataAboveThresholdEvent": null,
|
||||
"platypush.message.event.sensor.SensorDataBelowThresholdEvent": null,
|
||||
"platypush.message.event.sensor.SensorDataChangeEvent": null
|
||||
},
|
||||
"install": {
|
||||
"pip": [
|
||||
"pyfirmata2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.arduino",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
platypush.message.event.sensor.SensorDataAboveThresholdEvent:
|
||||
platypush.message.event.sensor.SensorDataBelowThresholdEvent:
|
||||
platypush.message.event.sensor.SensorDataChangeEvent:
|
||||
install:
|
||||
pip:
|
||||
- pyfirmata2
|
||||
package: platypush.plugins.arduino
|
||||
type: plugin
|
|
@ -58,7 +58,7 @@ class AssistantGooglePlugin(AssistantPlugin, RunnablePlugin):
|
|||
years, some of its dependencies are quite old and may break more recent
|
||||
Python installations. Please refer to the comments in the `manifest
|
||||
file
|
||||
<https://git.platypush.tech/platypush/platypush/src/branch/master/platypush/plugins/assistant/google/manifest.yaml>`_.
|
||||
<https://git.platypush.tech/platypush/platypush/src/branch/master/platypush/plugins/assistant/google/manifest.json>`_.
|
||||
for more information on how to install the required dependencies, if
|
||||
the automated ways fail.
|
||||
"""
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"manifest": {
|
||||
"package": "platypush.plugins.assistant.google",
|
||||
"type": "plugin",
|
||||
"events": [
|
||||
"platypush.message.event.assistant.AlarmEndEvent",
|
||||
"platypush.message.event.assistant.AlarmStartedEvent",
|
||||
"platypush.message.event.assistant.ConversationEndEvent",
|
||||
"platypush.message.event.assistant.ConversationStartEvent",
|
||||
"platypush.message.event.assistant.ConversationTimeoutEvent",
|
||||
"platypush.message.event.assistant.MicMutedEvent",
|
||||
"platypush.message.event.assistant.MicUnmutedEvent",
|
||||
"platypush.message.event.assistant.NoResponseEvent",
|
||||
"platypush.message.event.assistant.ResponseEvent",
|
||||
"platypush.message.event.assistant.SpeechRecognizedEvent",
|
||||
"platypush.message.event.assistant.TimerEndEvent",
|
||||
"platypush.message.event.assistant.TimerStartedEvent"
|
||||
],
|
||||
"install": {
|
||||
"apk": [
|
||||
"ffmpeg",
|
||||
"portaudio-dev",
|
||||
"py3-cachetools",
|
||||
"py3-grpcio",
|
||||
"py3-google-auth",
|
||||
"py3-numpy",
|
||||
"py3-pathlib2",
|
||||
"py3-tenacity",
|
||||
"py3-urllib3"
|
||||
],
|
||||
"apt": [
|
||||
"ffmpeg",
|
||||
"portaudio19-dev",
|
||||
"python3-cachetools",
|
||||
"python3-grpcio",
|
||||
"python3-google-auth",
|
||||
"python3-monotonic",
|
||||
"python3-tenacity",
|
||||
"python3-urllib3"
|
||||
],
|
||||
"dnf": [
|
||||
"ffmpeg",
|
||||
"portaudio-devel",
|
||||
"python-cachetools",
|
||||
"python-grpcio",
|
||||
"python-google-auth",
|
||||
"python-monotonic",
|
||||
"python-numpy",
|
||||
"python-tenacity",
|
||||
"python-urllib3"
|
||||
],
|
||||
"pacman": [
|
||||
"ffmpeg",
|
||||
"portaudio",
|
||||
"python-cachetools",
|
||||
"python-grpcio",
|
||||
"python-google-auth",
|
||||
"python-monotonic",
|
||||
"python-numpy",
|
||||
"python-sounddevice",
|
||||
"python-tenacity",
|
||||
"python-urllib3"
|
||||
],
|
||||
"pip": [
|
||||
"google-assistant-library",
|
||||
"google-auth",
|
||||
"sounddevice"
|
||||
],
|
||||
"after": [
|
||||
"yes | pip uninstall --break-system-packages enum34 click urllib3 requests google-auth",
|
||||
"pip install -U --no-input --break-system-packages click urllib3 requests google-auth"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,72 +0,0 @@
|
|||
manifest:
|
||||
package: platypush.plugins.assistant.google
|
||||
type: plugin
|
||||
events:
|
||||
- platypush.message.event.assistant.AlarmEndEvent
|
||||
- platypush.message.event.assistant.AlarmStartedEvent
|
||||
- platypush.message.event.assistant.ConversationEndEvent
|
||||
- platypush.message.event.assistant.ConversationStartEvent
|
||||
- platypush.message.event.assistant.ConversationTimeoutEvent
|
||||
- platypush.message.event.assistant.MicMutedEvent
|
||||
- platypush.message.event.assistant.MicUnmutedEvent
|
||||
- platypush.message.event.assistant.NoResponseEvent
|
||||
- platypush.message.event.assistant.ResponseEvent
|
||||
- platypush.message.event.assistant.SpeechRecognizedEvent
|
||||
- platypush.message.event.assistant.TimerEndEvent
|
||||
- platypush.message.event.assistant.TimerStartedEvent
|
||||
|
||||
install:
|
||||
apk:
|
||||
- ffmpeg
|
||||
- portaudio-dev
|
||||
- py3-cachetools
|
||||
- py3-grpcio
|
||||
- py3-google-auth
|
||||
- py3-numpy
|
||||
- py3-pathlib2
|
||||
- py3-tenacity
|
||||
- py3-urllib3
|
||||
apt:
|
||||
- ffmpeg
|
||||
- portaudio19-dev
|
||||
- python3-cachetools
|
||||
- python3-grpcio
|
||||
- python3-google-auth
|
||||
- python3-monotonic
|
||||
- python3-tenacity
|
||||
- python3-urllib3
|
||||
dnf:
|
||||
- ffmpeg
|
||||
- portaudio-devel
|
||||
- python-cachetools
|
||||
- python-grpcio
|
||||
- python-google-auth
|
||||
- python-monotonic
|
||||
- python-numpy
|
||||
- python-tenacity
|
||||
- python-urllib3
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- portaudio
|
||||
- python-cachetools
|
||||
- python-grpcio
|
||||
- python-google-auth
|
||||
- python-monotonic
|
||||
- python-numpy
|
||||
- python-sounddevice
|
||||
- python-tenacity
|
||||
- python-urllib3
|
||||
pip:
|
||||
- google-assistant-library
|
||||
- google-auth
|
||||
- sounddevice
|
||||
after:
|
||||
# Uninstall old versions of packages that break things on recent versions
|
||||
# of Python, when the new versions work just fine
|
||||
- yes | pip uninstall --break-system-packages enum34 click urllib3 requests google-auth
|
||||
# Upgrade the dependencies (back) to the latest version.
|
||||
# NOTE: Be careful when running this command on older distros that may
|
||||
# not ship the latest versions of all the packages! This is a workaround
|
||||
# caused by the fact that google-assistant-library pulls in some old
|
||||
# breaking dependencies that need to be surgically removed.
|
||||
- pip install -U --no-input --break-system-packages click urllib3 requests google-auth
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"manifest": {
|
||||
"package": "platypush.plugins.assistant.picovoice",
|
||||
"type": "plugin",
|
||||
"events": [
|
||||
"platypush.message.event.assistant.ConversationEndEvent",
|
||||
"platypush.message.event.assistant.ConversationStartEvent",
|
||||
"platypush.message.event.assistant.ConversationTimeoutEvent",
|
||||
"platypush.message.event.assistant.HotwordDetectedEvent",
|
||||
"platypush.message.event.assistant.IntentRecognizedEvent",
|
||||
"platypush.message.event.assistant.MicMutedEvent",
|
||||
"platypush.message.event.assistant.MicUnmutedEvent",
|
||||
"platypush.message.event.assistant.NoResponseEvent",
|
||||
"platypush.message.event.assistant.ResponseEndEvent",
|
||||
"platypush.message.event.assistant.ResponseEvent",
|
||||
"platypush.message.event.assistant.SpeechRecognizedEvent"
|
||||
],
|
||||
"install": {
|
||||
"apk": [
|
||||
"ffmpeg"
|
||||
],
|
||||
"apt": [
|
||||
"ffmpeg"
|
||||
],
|
||||
"dnf": [
|
||||
"ffmpeg"
|
||||
],
|
||||
"pacman": [
|
||||
"ffmpeg",
|
||||
"python-sounddevice"
|
||||
],
|
||||
"pip": [
|
||||
"num2words",
|
||||
"pvcheetah",
|
||||
"pvleopard",
|
||||
"pvorca",
|
||||
"pvporcupine",
|
||||
"pvrhino",
|
||||
"sounddevice"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
manifest:
|
||||
package: platypush.plugins.assistant.picovoice
|
||||
type: plugin
|
||||
events:
|
||||
- platypush.message.event.assistant.ConversationEndEvent
|
||||
- platypush.message.event.assistant.ConversationStartEvent
|
||||
- platypush.message.event.assistant.ConversationTimeoutEvent
|
||||
- platypush.message.event.assistant.HotwordDetectedEvent
|
||||
- platypush.message.event.assistant.IntentRecognizedEvent
|
||||
- platypush.message.event.assistant.MicMutedEvent
|
||||
- platypush.message.event.assistant.MicUnmutedEvent
|
||||
- platypush.message.event.assistant.NoResponseEvent
|
||||
- platypush.message.event.assistant.ResponseEndEvent
|
||||
- platypush.message.event.assistant.ResponseEvent
|
||||
- platypush.message.event.assistant.SpeechRecognizedEvent
|
||||
install:
|
||||
apk:
|
||||
- ffmpeg
|
||||
apt:
|
||||
- ffmpeg
|
||||
dnf:
|
||||
- ffmpeg
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- python-sounddevice
|
||||
pip:
|
||||
- num2words # Temporary dependency
|
||||
- pvcheetah
|
||||
- pvleopard
|
||||
- pvorca
|
||||
- pvporcupine
|
||||
- pvrhino
|
||||
- sounddevice
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.autoremote",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.autoremote
|
||||
type: plugin
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {
|
||||
"platypush.message.event.bluetooth.BluetoothConnectionFailedEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothDeviceConnectedEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothDeviceDisconnectedEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothDeviceFoundEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothDeviceLostEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothFileReceivedEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothFileSentEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothFileTransferCancelledEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothFileTransferStartedEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothScanPausedEvent": null,
|
||||
"platypush.message.event.bluetooth.BluetoothScanResumedEvent": null,
|
||||
"platypush.message.event.entities.EntityUpdateEvent": null
|
||||
},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-pydbus",
|
||||
"git"
|
||||
],
|
||||
"apt": [
|
||||
"libbluetooth-dev",
|
||||
"python3-pydbus",
|
||||
"git"
|
||||
],
|
||||
"dnf": [
|
||||
"python-pydbus",
|
||||
"git"
|
||||
],
|
||||
"pacman": [
|
||||
"python-pydbus",
|
||||
"python-bleak",
|
||||
"git"
|
||||
],
|
||||
"pip": [
|
||||
"bleak",
|
||||
"bluetooth-numbers",
|
||||
"TheengsDecoder",
|
||||
"pydbus",
|
||||
"git+https://github.com/pybluez/pybluez",
|
||||
"git+https://github.com/BlackLight/PyOBEX"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.bluetooth",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
platypush.message.event.bluetooth.BluetoothConnectionFailedEvent:
|
||||
platypush.message.event.bluetooth.BluetoothDeviceConnectedEvent:
|
||||
platypush.message.event.bluetooth.BluetoothDeviceDisconnectedEvent:
|
||||
platypush.message.event.bluetooth.BluetoothDeviceFoundEvent:
|
||||
platypush.message.event.bluetooth.BluetoothDeviceLostEvent:
|
||||
platypush.message.event.bluetooth.BluetoothFileReceivedEvent:
|
||||
platypush.message.event.bluetooth.BluetoothFileSentEvent:
|
||||
platypush.message.event.bluetooth.BluetoothFileTransferCancelledEvent:
|
||||
platypush.message.event.bluetooth.BluetoothFileTransferStartedEvent:
|
||||
platypush.message.event.bluetooth.BluetoothScanPausedEvent:
|
||||
platypush.message.event.bluetooth.BluetoothScanResumedEvent:
|
||||
platypush.message.event.entities.EntityUpdateEvent:
|
||||
install:
|
||||
apk:
|
||||
- py3-pydbus
|
||||
- git
|
||||
apt:
|
||||
- libbluetooth-dev
|
||||
- python3-pydbus
|
||||
- git
|
||||
dnf:
|
||||
- python-pydbus
|
||||
- git
|
||||
pacman:
|
||||
- python-pydbus
|
||||
- python-bleak
|
||||
- git
|
||||
pip:
|
||||
- bleak
|
||||
- bluetooth-numbers
|
||||
- TheengsDecoder
|
||||
- pydbus
|
||||
- git+https://github.com/pybluez/pybluez
|
||||
- git+https://github.com/BlackLight/PyOBEX
|
||||
package: platypush.plugins.bluetooth
|
||||
type: plugin
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-icalendar"
|
||||
],
|
||||
"apt": [
|
||||
"python3-icalendar"
|
||||
],
|
||||
"dnf": [
|
||||
"python-icalendar"
|
||||
],
|
||||
"pacman": [
|
||||
"python-icalendar"
|
||||
],
|
||||
"pip": [
|
||||
"icalendar"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.calendar.ical",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-icalendar
|
||||
apt:
|
||||
- python3-icalendar
|
||||
dnf:
|
||||
- python-icalendar
|
||||
pacman:
|
||||
- python-icalendar
|
||||
pip:
|
||||
- icalendar
|
||||
package: platypush.plugins.calendar.ical
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.calendar",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.calendar
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.camera.android.ipcam",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.camera.android.ipcam
|
||||
type: plugin
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-numpy",
|
||||
"py3-pillow",
|
||||
"py3-opencv"
|
||||
],
|
||||
"apt": [
|
||||
"python3-numpy",
|
||||
"python3-pillow",
|
||||
"python3-opencv"
|
||||
],
|
||||
"dnf": [
|
||||
"python-numpy",
|
||||
"python-pillow",
|
||||
"python-opencv"
|
||||
],
|
||||
"pacman": [
|
||||
"python-numpy",
|
||||
"python-pillow",
|
||||
"python-opencv"
|
||||
],
|
||||
"pip": [
|
||||
"numpy",
|
||||
"opencv-python",
|
||||
"Pillow"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.camera.cv",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- py3-opencv
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- python3-opencv
|
||||
dnf:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- python-opencv
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- python-opencv
|
||||
pip:
|
||||
- numpy
|
||||
- opencv-python
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.cv
|
||||
type: plugin
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-numpy",
|
||||
"py3-pillow",
|
||||
"ffmpeg"
|
||||
],
|
||||
"apt": [
|
||||
"python3-numpy",
|
||||
"python3-pillow",
|
||||
"ffmpeg"
|
||||
],
|
||||
"dnf": [
|
||||
"python-numpy",
|
||||
"python-pillow",
|
||||
"ffmpeg"
|
||||
],
|
||||
"pacman": [
|
||||
"python-numpy",
|
||||
"python-pillow",
|
||||
"ffmpeg"
|
||||
],
|
||||
"pip": [
|
||||
"numpy",
|
||||
"Pillow"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.camera.ffmpeg",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- ffmpeg
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- ffmpeg
|
||||
dnf:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- ffmpeg
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- ffmpeg
|
||||
pip:
|
||||
- numpy
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.ffmpeg
|
||||
type: plugin
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-numpy",
|
||||
"py3-pillow",
|
||||
"py3-gobject3",
|
||||
"py3-gst"
|
||||
],
|
||||
"apt": [
|
||||
"python3-numpy",
|
||||
"python3-pillow",
|
||||
"python3-gi",
|
||||
"python3-gst-1.0"
|
||||
],
|
||||
"dnf": [
|
||||
"python-numpy",
|
||||
"python-pillow",
|
||||
"python-gstreamer1",
|
||||
"python-gobject"
|
||||
],
|
||||
"pacman": [
|
||||
"python-numpy",
|
||||
"python-pillow",
|
||||
"gst-python",
|
||||
"python-gobject"
|
||||
],
|
||||
"pip": [
|
||||
"numpy",
|
||||
"Pillow",
|
||||
"pygobject"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.camera.gstreamer",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- py3-gobject3
|
||||
- py3-gst
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- python3-gi
|
||||
- python3-gst-1.0
|
||||
dnf:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- python-gstreamer1
|
||||
- python-gobject
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- gst-python
|
||||
- python-gobject
|
||||
pip:
|
||||
- numpy
|
||||
- Pillow
|
||||
- pygobject
|
||||
|
||||
package: platypush.plugins.camera.gstreamer
|
||||
type: plugin
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"i2c-tools-dev",
|
||||
"py3-numpy",
|
||||
"py3-pillow"
|
||||
],
|
||||
"apt": [
|
||||
"libi2c-dev",
|
||||
"python3-numpy",
|
||||
"python3-pillow"
|
||||
],
|
||||
"dnf": [
|
||||
"i2c-tools",
|
||||
"python-numpy",
|
||||
"python-pillow"
|
||||
],
|
||||
"pacman": [
|
||||
"i2c-tools",
|
||||
"python-numpy",
|
||||
"python-pillow"
|
||||
],
|
||||
"pip": [
|
||||
"numpy",
|
||||
"Pillow"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.camera.ir.mlx90640",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- i2c-tools-dev
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
apt:
|
||||
- libi2c-dev
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
dnf:
|
||||
- i2c-tools
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
pacman:
|
||||
- i2c-tools
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
pip:
|
||||
- numpy
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.ir.mlx90640
|
||||
type: plugin
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"ffmpeg",
|
||||
"py3-numpy",
|
||||
"py3-pillow"
|
||||
],
|
||||
"apt": [
|
||||
"ffmpeg",
|
||||
"python3-numpy",
|
||||
"python3-pillow"
|
||||
],
|
||||
"dnf": [
|
||||
"ffmpeg",
|
||||
"python-numpy",
|
||||
"python-pillow"
|
||||
],
|
||||
"pacman": [
|
||||
"ffmpeg",
|
||||
"python-numpy",
|
||||
"python-pillow"
|
||||
],
|
||||
"pip": [
|
||||
"picamera",
|
||||
"numpy",
|
||||
"Pillow"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.camera.pi.legacy",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- ffmpeg
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
apt:
|
||||
- ffmpeg
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
dnf:
|
||||
- ffmpeg
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
pip:
|
||||
- picamera
|
||||
- numpy
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.pi.legacy
|
||||
type: plugin
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"ffmpeg",
|
||||
"py3-numpy",
|
||||
"py3-pillow"
|
||||
],
|
||||
"apt": [
|
||||
"ffmpeg",
|
||||
"python3-numpy",
|
||||
"python3-pillow"
|
||||
],
|
||||
"dnf": [
|
||||
"ffmpeg",
|
||||
"python-numpy",
|
||||
"python-pillow"
|
||||
],
|
||||
"pacman": [
|
||||
"ffmpeg",
|
||||
"python-numpy",
|
||||
"python-pillow"
|
||||
],
|
||||
"pip": [
|
||||
"picamera2",
|
||||
"numpy",
|
||||
"Pillow"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.camera.pi",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- ffmpeg
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
apt:
|
||||
- ffmpeg
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
dnf:
|
||||
- ffmpeg
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
pip:
|
||||
- picamera2
|
||||
- numpy
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.pi
|
||||
type: plugin
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {
|
||||
"platypush.message.event.clipboard.ClipboardEvent": "on clipboard update."
|
||||
},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-pyclip"
|
||||
],
|
||||
"dnf": [
|
||||
"python-pyclip"
|
||||
],
|
||||
"pacman": [
|
||||
"python-pyclip"
|
||||
],
|
||||
"pip": [
|
||||
"pyclip"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.clipboard",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
platypush.message.event.clipboard.ClipboardEvent: on clipboard update.
|
||||
install:
|
||||
apk:
|
||||
- py3-pyclip
|
||||
dnf:
|
||||
- python-pyclip
|
||||
pacman:
|
||||
- python-pyclip
|
||||
pip:
|
||||
- pyclip
|
||||
package: platypush.plugins.clipboard
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.config",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.config
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.csv",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.csv
|
||||
type: plugin
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-pycups"
|
||||
],
|
||||
"apt": [
|
||||
"libcups2-dev",
|
||||
"python3-cups"
|
||||
],
|
||||
"dnf": [
|
||||
"python-cups"
|
||||
],
|
||||
"pacman": [
|
||||
"python-pycups"
|
||||
],
|
||||
"pip": [
|
||||
"pycups"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.cups",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-pycups
|
||||
apt:
|
||||
- libcups2-dev
|
||||
- python3-cups
|
||||
dnf:
|
||||
- python-cups
|
||||
pacman:
|
||||
- python-pycups
|
||||
pip:
|
||||
- pycups
|
||||
package: platypush.plugins.cups
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.db",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.db
|
||||
type: plugin
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {
|
||||
"platypush.message.event.dbus.DbusSignalEvent": "When a signal is received"
|
||||
},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-pydbus",
|
||||
"py3-defusedxml"
|
||||
],
|
||||
"apt": [
|
||||
"python3-pydbus",
|
||||
"python3-defusedxml"
|
||||
],
|
||||
"dnf": [
|
||||
"python-pydbus",
|
||||
"python-defusedxml"
|
||||
],
|
||||
"pacman": [
|
||||
"python-pydbus",
|
||||
"python-defusedxml"
|
||||
],
|
||||
"pip": [
|
||||
"pydbus",
|
||||
"defusedxml"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.dbus",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
platypush.message.event.dbus.DbusSignalEvent: When a signal is received
|
||||
install:
|
||||
apk:
|
||||
- py3-pydbus
|
||||
- py3-defusedxml
|
||||
apt:
|
||||
- python3-pydbus
|
||||
- python3-defusedxml
|
||||
dnf:
|
||||
- python-pydbus
|
||||
- python-defusedxml
|
||||
pacman:
|
||||
- python-pydbus
|
||||
- python-defusedxml
|
||||
pip:
|
||||
- pydbus
|
||||
- defusedxml
|
||||
package: platypush.plugins.dbus
|
||||
type: plugin
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apt": [
|
||||
"python3-dropbox"
|
||||
],
|
||||
"dnf": [
|
||||
"python-dropbox"
|
||||
],
|
||||
"pacman": [
|
||||
"python-dropbox"
|
||||
],
|
||||
"pip": [
|
||||
"dropbox"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.dropbox",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python3-dropbox
|
||||
dnf:
|
||||
- python-dropbox
|
||||
pacman:
|
||||
- python-dropbox
|
||||
pip:
|
||||
- dropbox
|
||||
package: platypush.plugins.dropbox
|
||||
type: plugin
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"package": "platypush.plugins.entities",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
package: platypush.plugins.entities
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.esp",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.esp
|
||||
type: plugin
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"ffmpeg"
|
||||
],
|
||||
"apt": [
|
||||
"ffmpeg"
|
||||
],
|
||||
"dnf": [
|
||||
"ffmpeg"
|
||||
],
|
||||
"pacman": [
|
||||
"ffmpeg",
|
||||
"python-ffmpeg"
|
||||
],
|
||||
"pip": [
|
||||
"ffmpeg-python"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.ffmpeg",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- ffmpeg
|
||||
apt:
|
||||
- ffmpeg
|
||||
dnf:
|
||||
- ffmpeg
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- python-ffmpeg
|
||||
pip:
|
||||
- ffmpeg-python
|
||||
package: platypush.plugins.ffmpeg
|
||||
type: plugin
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.file",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.file
|
||||
type: plugin
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.file.FileSystemCreateEvent",
|
||||
"platypush.message.event.file.FileSystemDeleteEvent",
|
||||
"platypush.message.event.file.FileSystemModifyEvent"
|
||||
],
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-watchdog"
|
||||
],
|
||||
"apt": [
|
||||
"python3-watchdog"
|
||||
],
|
||||
"dnf": [
|
||||
"python-watchdog"
|
||||
],
|
||||
"pacman": [
|
||||
"python-watchdog"
|
||||
],
|
||||
"pip": [
|
||||
"watchdog"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.file.monitor",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.file.FileSystemCreateEvent
|
||||
- platypush.message.event.file.FileSystemDeleteEvent
|
||||
- platypush.message.event.file.FileSystemModifyEvent
|
||||
install:
|
||||
apk:
|
||||
- py3-watchdog
|
||||
apt:
|
||||
- python3-watchdog
|
||||
dnf:
|
||||
- python-watchdog
|
||||
pacman:
|
||||
- python-watchdog
|
||||
pip:
|
||||
- watchdog
|
||||
package: platypush.plugins.file.monitor
|
||||
type: plugin
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.flic.FlicButtonEvent"
|
||||
],
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.flic",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.flic.FlicButtonEvent
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.flic
|
||||
type: plugin
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.foursquare.FoursquareCheckinEvent"
|
||||
],
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.foursquare",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.foursquare.FoursquareCheckinEvent
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.foursquare
|
||||
type: plugin
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.github.GithubCommitCommentEvent",
|
||||
"platypush.message.event.github.GithubCreateEvent",
|
||||
"platypush.message.event.github.GithubDeleteEvent",
|
||||
"platypush.message.event.github.GithubEvent",
|
||||
"platypush.message.event.github.GithubForkEvent",
|
||||
"platypush.message.event.github.GithubIssueCommentEvent",
|
||||
"platypush.message.event.github.GithubIssueEvent",
|
||||
"platypush.message.event.github.GithubMemberEvent",
|
||||
"platypush.message.event.github.GithubPublicEvent",
|
||||
"platypush.message.event.github.GithubPullRequestEvent",
|
||||
"platypush.message.event.github.GithubPullRequestReviewCommentEvent",
|
||||
"platypush.message.event.github.GithubPushEvent",
|
||||
"platypush.message.event.github.GithubReleaseEvent",
|
||||
"platypush.message.event.github.GithubSponsorshipEvent",
|
||||
"platypush.message.event.github.GithubWatchEvent",
|
||||
"platypush.message.event.github.GithubWikiEvent"
|
||||
],
|
||||
"package": "platypush.plugins.github",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.github.GithubCommitCommentEvent
|
||||
- platypush.message.event.github.GithubCreateEvent
|
||||
- platypush.message.event.github.GithubDeleteEvent
|
||||
- platypush.message.event.github.GithubEvent
|
||||
- platypush.message.event.github.GithubForkEvent
|
||||
- platypush.message.event.github.GithubIssueCommentEvent
|
||||
- platypush.message.event.github.GithubIssueEvent
|
||||
- platypush.message.event.github.GithubMemberEvent
|
||||
- platypush.message.event.github.GithubPublicEvent
|
||||
- platypush.message.event.github.GithubPullRequestEvent
|
||||
- platypush.message.event.github.GithubPullRequestReviewCommentEvent
|
||||
- platypush.message.event.github.GithubPushEvent
|
||||
- platypush.message.event.github.GithubReleaseEvent
|
||||
- platypush.message.event.github.GithubSponsorshipEvent
|
||||
- platypush.message.event.github.GithubWatchEvent
|
||||
- platypush.message.event.github.GithubWikiEvent
|
||||
package: platypush.plugins.github
|
||||
type: plugin
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-google-api-python-client",
|
||||
"py3-google-auth",
|
||||
"py3-oauth2client",
|
||||
"py3-httplib2"
|
||||
],
|
||||
"apt": [
|
||||
"python3-google-auth",
|
||||
"python3-oauth2client",
|
||||
"python3-httplib2"
|
||||
],
|
||||
"dnf": [
|
||||
"python-google-api-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pacman": [
|
||||
"python-google-api-python-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pip": [
|
||||
"google-api-python-client",
|
||||
"google-auth",
|
||||
"oauth2client",
|
||||
"httplib2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.google.calendar",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
- py3-httplib2
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
- python3-httplib2
|
||||
dnf:
|
||||
- python-google-api-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- httplib2
|
||||
package: platypush.plugins.google.calendar
|
||||
type: plugin
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-google-api-python-client",
|
||||
"py3-google-auth",
|
||||
"py3-oauth2client",
|
||||
"py3-httplib2"
|
||||
],
|
||||
"apt": [
|
||||
"python3-google-auth",
|
||||
"python3-oauth2client",
|
||||
"python3-httplib2"
|
||||
],
|
||||
"dnf": [
|
||||
"python-google-api-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pacman": [
|
||||
"python-google-api-python-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pip": [
|
||||
"google-api-python-client",
|
||||
"google-auth",
|
||||
"oauth2client",
|
||||
"httplib2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.google.drive",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
- py3-httplib2
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
- python3-httplib2
|
||||
dnf:
|
||||
- python-google-api-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- httplib2
|
||||
package: platypush.plugins.google.drive
|
||||
type: plugin
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-google-api-python-client",
|
||||
"py3-google-auth",
|
||||
"py3-oauth2client",
|
||||
"py3-httplib2"
|
||||
],
|
||||
"apt": [
|
||||
"python3-google-auth",
|
||||
"python3-oauth2client",
|
||||
"python3-httplib2"
|
||||
],
|
||||
"dnf": [
|
||||
"python-google-api-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pacman": [
|
||||
"python-google-api-python-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pip": [
|
||||
"google-api-python-client",
|
||||
"google-auth",
|
||||
"oauth2client",
|
||||
"httplib2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.google.mail",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
- py3-httplib2
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
- python3-httplib2
|
||||
dnf:
|
||||
- python-google-api-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- httplib2
|
||||
package: platypush.plugins.google.mail
|
||||
type: plugin
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-google-api-python-client",
|
||||
"py3-google-auth",
|
||||
"py3-oauth2client",
|
||||
"py3-httplib2"
|
||||
],
|
||||
"apt": [
|
||||
"python3-google-auth",
|
||||
"python3-oauth2client",
|
||||
"python3-httplib2"
|
||||
],
|
||||
"dnf": [
|
||||
"python-google-api-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pacman": [
|
||||
"python-google-api-python-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pip": [
|
||||
"google-api-python-client",
|
||||
"google-auth",
|
||||
"oauth2client",
|
||||
"httplib2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.google.maps",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
- py3-httplib2
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
- python3-httplib2
|
||||
dnf:
|
||||
- python-google-api-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- httplib2
|
||||
package: platypush.plugins.google.maps
|
||||
type: plugin
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.google.pubsub.GooglePubsubMessageEvent"
|
||||
],
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-google-api-python-client",
|
||||
"py3-google-auth",
|
||||
"py3-oauth2client",
|
||||
"py3-httplib2"
|
||||
],
|
||||
"apt": [
|
||||
"python3-google-auth",
|
||||
"python3-oauth2client",
|
||||
"python3-httplib2"
|
||||
],
|
||||
"dnf": [
|
||||
"python-google-api-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pacman": [
|
||||
"python-google-api-python-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pip": [
|
||||
"google-api-python-client",
|
||||
"google-auth",
|
||||
"oauth2client",
|
||||
"google-cloud-pubsub",
|
||||
"httplib2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.google.pubsub",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.google.pubsub.GooglePubsubMessageEvent
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
- py3-httplib2
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
- python3-httplib2
|
||||
dnf:
|
||||
- python-google-api-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-cloud-pubsub
|
||||
- httplib2
|
||||
package: platypush.plugins.google.pubsub
|
||||
type: plugin
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {},
|
||||
"install": {
|
||||
"apk": [
|
||||
"py3-google-api-python-client",
|
||||
"py3-google-auth",
|
||||
"py3-oauth2client",
|
||||
"py3-httplib2"
|
||||
],
|
||||
"apt": [
|
||||
"python3-google-auth",
|
||||
"python3-oauth2client",
|
||||
"python3-httplib2"
|
||||
],
|
||||
"dnf": [
|
||||
"python-google-api-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pacman": [
|
||||
"python-google-api-python-client",
|
||||
"python-google-auth",
|
||||
"python-oauth2client",
|
||||
"python-httplib2"
|
||||
],
|
||||
"pip": [
|
||||
"google-api-python-client",
|
||||
"google-auth",
|
||||
"oauth2client",
|
||||
"google-cloud-translate",
|
||||
"httplib2"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.google.translate",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
- py3-httplib2
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
- python3-httplib2
|
||||
dnf:
|
||||
- python-google-api-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
- python-httplib2
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-cloud-translate
|
||||
- httplib2
|
||||
package: platypush.plugins.google.translate
|
||||
type: plugin
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {
|
||||
"platypush.message.event.gotify.GotifyMessageEvent": "when a new message is received."
|
||||
},
|
||||
"package": "platypush.plugins.gotify",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
platypush.message.event.gotify.GotifyMessageEvent: when a new message is received.
|
||||
package: platypush.plugins.gotify
|
||||
type: plugin
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": [
|
||||
"platypush.message.event.gpio.GPIOEvent"
|
||||
],
|
||||
"install": {
|
||||
"pip": [
|
||||
"RPi.GPIO"
|
||||
]
|
||||
},
|
||||
"package": "platypush.plugins.gpio",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
- platypush.message.event.gpio.GPIOEvent
|
||||
install:
|
||||
pip:
|
||||
- RPi.GPIO
|
||||
package: platypush.plugins.gpio
|
||||
type: plugin
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"manifest": {
|
||||
"events": {
|
||||
"platypush.message.event.zeroborg.ZeroborgDriveEvent": "when motors direction changes",
|
||||
"platypush.message.event.zeroborg.ZeroborgStopEvent": "upon motors stop"
|
||||
},
|
||||
"install": {
|
||||
"pip": []
|
||||
},
|
||||
"package": "platypush.plugins.gpio.zeroborg",
|
||||
"type": "plugin"
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue