Extended manifest files with Python system packages (if available) #275
|
@ -1,13 +0,0 @@
|
|||
#!python3
|
||||
|
||||
import sys
|
||||
|
||||
from platypush.app import Application
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = Application.build(*sys.argv[1:])
|
||||
app.run()
|
||||
|
||||
|
||||
# vim:sw=4:ts=4:et:
|
|
@ -1,5 +1,3 @@
|
|||
import sys
|
||||
|
||||
from platypush.runner import main
|
||||
|
||||
main(*sys.argv[1:])
|
||||
main()
|
||||
|
|
|
@ -441,6 +441,8 @@ class Backend(Thread, EventGenerator, ExtensionWithManifest):
|
|||
"""
|
||||
Unregister the Zeroconf service configuration if available.
|
||||
"""
|
||||
from redis import exceptions
|
||||
|
||||
if self.zeroconf and self.zeroconf_info:
|
||||
try:
|
||||
self.zeroconf.unregister_service(self.zeroconf_info)
|
||||
|
@ -458,17 +460,22 @@ class Backend(Thread, EventGenerator, ExtensionWithManifest):
|
|||
except TimeoutError:
|
||||
pass
|
||||
|
||||
if self.zeroconf_info:
|
||||
self.bus.post(
|
||||
ZeroconfServiceRemovedEvent(
|
||||
service_type=self.zeroconf_info.type,
|
||||
service_name=self.zeroconf_info.name,
|
||||
try:
|
||||
if self.zeroconf_info:
|
||||
self.bus.post(
|
||||
ZeroconfServiceRemovedEvent(
|
||||
service_type=self.zeroconf_info.type,
|
||||
service_name=self.zeroconf_info.name,
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
self.bus.post(
|
||||
ZeroconfServiceRemovedEvent(service_type=None, service_name=None)
|
||||
)
|
||||
else:
|
||||
self.bus.post(
|
||||
ZeroconfServiceRemovedEvent(
|
||||
service_type=None, service_name=None
|
||||
)
|
||||
)
|
||||
except exceptions.ConnectionError:
|
||||
pass
|
||||
|
||||
self.zeroconf_info = None
|
||||
self.zeroconf = None
|
||||
|
|
|
@ -19,9 +19,18 @@ manifest:
|
|||
platypush.message.event.assistant.TimerEndEvent: when a timer ends
|
||||
platypush.message.event.assistant.TimerStartedEvent: when a timer starts
|
||||
install:
|
||||
apk:
|
||||
- py3-grpcio
|
||||
- py3-google-auth
|
||||
apt:
|
||||
- python3-grpcio
|
||||
- python3-google-auth
|
||||
pacman:
|
||||
- python-grpcio
|
||||
- python-google-auth
|
||||
pip:
|
||||
- google-assistant-library
|
||||
- google-assistant-sdk[samples]
|
||||
- google-auth
|
||||
- google-assistant-library
|
||||
- google-assistant-sdk[samples]
|
||||
- google-auth
|
||||
package: platypush.backend.assistant.google
|
||||
type: backend
|
||||
|
|
|
@ -1,9 +1,18 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
pip:
|
||||
- picamera
|
||||
- numpy
|
||||
- Pillow
|
||||
- picamera
|
||||
- numpy
|
||||
- Pillow
|
||||
package: platypush.backend.camera.pi
|
||||
type: backend
|
||||
|
|
|
@ -4,7 +4,13 @@ manifest:
|
|||
platypush.message.event.file.FileSystemDeleteEvent: if a resource is removed.
|
||||
platypush.message.event.file.FileSystemModifyEvent: if a resource is modified.
|
||||
install:
|
||||
apk:
|
||||
- py3-watchdog
|
||||
apt:
|
||||
- python3-watchdog
|
||||
pacman:
|
||||
- python-watchdog
|
||||
pip:
|
||||
- watchdog
|
||||
- watchdog
|
||||
package: platypush.backend.file.monitor
|
||||
type: backend
|
||||
|
|
|
@ -6,11 +6,13 @@ manifest:
|
|||
platypush.message.event.gps.GPSVersionEvent: when a GPS device advertises its
|
||||
version data
|
||||
install:
|
||||
pip:
|
||||
- gps
|
||||
pacman:
|
||||
apk:
|
||||
- gpsd
|
||||
apt:
|
||||
- gpsd
|
||||
pacman:
|
||||
- gpsd
|
||||
pip:
|
||||
- gps
|
||||
package: platypush.backend.gps
|
||||
type: backend
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- gunicorn
|
||||
pip: []
|
||||
package: platypush.backend.http
|
||||
type: backend
|
||||
|
|
|
@ -9,7 +9,11 @@ manifest:
|
|||
platypush.message.event.inotify.InotifyPermissionsChangeEvent: if the permissions
|
||||
of a resource are changed
|
||||
install:
|
||||
apk:
|
||||
- py3-inotify
|
||||
apt:
|
||||
- python3-inotify
|
||||
pip:
|
||||
- inotify
|
||||
- inotify
|
||||
package: platypush.backend.inotify
|
||||
type: backend
|
||||
|
|
|
@ -13,9 +13,11 @@ manifest:
|
|||
platypush.message.event.joystick.JoystickStateEvent: when the state of the joystick
|
||||
(i.e. some of itsaxes or buttons values) changes.
|
||||
install:
|
||||
apk:
|
||||
- linuxconsoletools
|
||||
apt:
|
||||
- joystick
|
||||
pacman:
|
||||
- jsutils
|
||||
- joyutils
|
||||
package: platypush.backend.joystick.jstest
|
||||
type: backend
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python3-kafka
|
||||
pip:
|
||||
- kafka
|
||||
- kafka
|
||||
package: platypush.backend.kafka
|
||||
type: backend
|
||||
|
|
|
@ -2,7 +2,13 @@ manifest:
|
|||
events:
|
||||
platypush.message.event.log.http.HttpLogEvent: when a new log line is created.
|
||||
install:
|
||||
apk:
|
||||
- py3-watchdog
|
||||
apt:
|
||||
- python3-watchdog
|
||||
pacman:
|
||||
- python-watchdog
|
||||
pip:
|
||||
- watchdog
|
||||
- watchdog
|
||||
package: platypush.backend.log.http
|
||||
type: backend
|
||||
|
|
|
@ -2,7 +2,12 @@ manifest:
|
|||
events:
|
||||
platypush.message.event.midi.MidiMessageEvent: when a new MIDI event is received
|
||||
install:
|
||||
apt:
|
||||
- python3-rtmidi
|
||||
pacman:
|
||||
- rtmidi
|
||||
- python-rtmidi
|
||||
pip:
|
||||
- rtmidi
|
||||
- rtmidi
|
||||
package: platypush.backend.midi
|
||||
type: backend
|
||||
|
|
|
@ -3,7 +3,13 @@ manifest:
|
|||
platypush.message.event.mqtt.MQTTMessageEvent: when a newmessage is received on
|
||||
one of the custom listeners
|
||||
install:
|
||||
apk:
|
||||
- py3-paho-mqtt
|
||||
pacman:
|
||||
- python-paho-mqtt
|
||||
apt:
|
||||
- python3-paho-mqtt
|
||||
pip:
|
||||
- paho-mqtt
|
||||
- paho-mqtt
|
||||
package: platypush.backend.mqtt
|
||||
type: backend
|
||||
|
|
|
@ -10,7 +10,11 @@ manifest:
|
|||
platypush.message.event.music.PlaylistChangeEvent: if the main playlist has changed
|
||||
platypush.message.event.music.VolumeChangeEvent: if the main volume has changed
|
||||
install:
|
||||
apt:
|
||||
- python3-mpd2
|
||||
pacman:
|
||||
- python-mpd2
|
||||
pip:
|
||||
- python-mpd2
|
||||
- python-mpd2
|
||||
package: platypush.backend.music.mpd
|
||||
type: backend
|
||||
|
|
|
@ -9,6 +9,9 @@ manifest:
|
|||
platypush.message.event.music.NewPlayingTrackEvent: if a new track is being played
|
||||
platypush.message.event.music.VolumeChangeEvent: if the volume changes
|
||||
install:
|
||||
apk:
|
||||
- sudo
|
||||
- cargo
|
||||
apt:
|
||||
- sudo
|
||||
- cargo
|
||||
|
|
|
@ -3,7 +3,13 @@ manifest:
|
|||
platypush.message.event.scard.SmartCardDetectedEvent: when a smart card is detected
|
||||
platypush.message.event.scard.SmartCardRemovedEvent: when a smart card is removed
|
||||
install:
|
||||
apk:
|
||||
- py3-pyscard
|
||||
pacman:
|
||||
- python-pyscard
|
||||
apt:
|
||||
- python3-pyscard
|
||||
pip:
|
||||
- pyscard
|
||||
- pyscard
|
||||
package: platypush.backend.scard
|
||||
type: backend
|
||||
|
|
|
@ -14,7 +14,13 @@ manifest:
|
|||
platypush.message.event.zwave.ZwaveValueChangedEvent: when the value of a node
|
||||
on the networkchanges.
|
||||
install:
|
||||
apk:
|
||||
- py3-paho-mqtt
|
||||
pacman:
|
||||
- python-paho-mqtt
|
||||
apt:
|
||||
- python3-paho-mqtt
|
||||
pip:
|
||||
- paho-mqtt
|
||||
- paho-mqtt
|
||||
package: platypush.backend.zwave.mqtt
|
||||
type: backend
|
||||
|
|
|
@ -52,7 +52,8 @@ def get_entities_engine(timeout: Optional[float] = None) -> EntitiesEngine:
|
|||
|
||||
Event().wait(1)
|
||||
|
||||
assert _engine, 'The entities engine has not been initialized'
|
||||
if not _engine:
|
||||
raise TimeoutError('The entities engine has not been initialized')
|
||||
return _engine
|
||||
|
||||
|
||||
|
|
|
@ -7,9 +7,18 @@ manifest:
|
|||
platypush.message.event.assistant.SpeechRecognizedEvent: when a new voice command
|
||||
is recognized
|
||||
install:
|
||||
apk:
|
||||
- py3-tenacity
|
||||
- py3-google-auth
|
||||
apt:
|
||||
- python3-tenacity
|
||||
- python3-google-auth
|
||||
pacman:
|
||||
- python-tenacity
|
||||
- python-google-auth
|
||||
pip:
|
||||
- tenacity
|
||||
- google-assistant-sdk
|
||||
- google-auth
|
||||
- tenacity
|
||||
- google-assistant-sdk
|
||||
- google-auth
|
||||
package: platypush.plugins.assistant.google.pushtotalk
|
||||
type: plugin
|
||||
|
|
|
@ -13,14 +13,20 @@ manifest:
|
|||
platypush.message.event.bluetooth.BluetoothScanResumedEvent:
|
||||
platypush.message.event.entities.EntityUpdateEvent:
|
||||
install:
|
||||
pip:
|
||||
- bleak
|
||||
- bluetooth-numbers
|
||||
- TheengsDecoder
|
||||
- pydbus
|
||||
- git+https://github.com/pybluez/pybluez
|
||||
- git+https://github.com/BlackLight/PyOBEX
|
||||
apk:
|
||||
- py3-pydbus
|
||||
apt:
|
||||
- libbluetooth-dev
|
||||
- libbluetooth-dev
|
||||
- python3-pydbus
|
||||
pacman:
|
||||
- python-pydbus
|
||||
- python-bleak
|
||||
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,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-icalendar
|
||||
apt:
|
||||
- python3-icalendar
|
||||
pacman:
|
||||
- python-icalendar
|
||||
pip:
|
||||
- icalendar
|
||||
- icalendar
|
||||
package: platypush.plugins.calendar.ical
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,21 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- py3-opencv
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- python-opencv
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- python3-opencv
|
||||
pip:
|
||||
- numpy
|
||||
- opencv-python
|
||||
- Pillow
|
||||
- numpy
|
||||
- opencv-python
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.cv
|
||||
type: plugin
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- ffmpeg
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- ffmpeg
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- ffmpeg
|
||||
pip:
|
||||
- numpy
|
||||
- Pillow
|
||||
apt:
|
||||
- ffmpeg
|
||||
pacman:
|
||||
- ffmpeg
|
||||
package: platypush.plugins.camera.ffmpeg
|
||||
type: plugin
|
||||
|
|
|
@ -1,16 +1,25 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- py3-gobject3
|
||||
- py3-gst
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- gst-python
|
||||
- python-gobject
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- python3-gi
|
||||
- python3-gst-1.0
|
||||
pip:
|
||||
- numpy
|
||||
- Pillow
|
||||
- pygobject
|
||||
apt:
|
||||
- python3-gi
|
||||
- python3-gst-1.0
|
||||
pacman:
|
||||
- gst-python
|
||||
- python-gobject
|
||||
|
||||
package: platypush.plugins.camera.gstreamer
|
||||
type: plugin
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- i2c-tools-dev
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
pacman:
|
||||
- i2c-tools
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
apt:
|
||||
- libi2c-dev
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
pip:
|
||||
- numpy
|
||||
- Pillow
|
||||
apt:
|
||||
- libi2c-dev
|
||||
pacman:
|
||||
- i2c-tools
|
||||
package: platypush.plugins.camera.ir.mlx90640
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,18 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
pip:
|
||||
- picamera
|
||||
- numpy
|
||||
- Pillow
|
||||
- picamera
|
||||
- numpy
|
||||
- Pillow
|
||||
package: platypush.plugins.camera.pi
|
||||
type: plugin
|
||||
|
|
|
@ -21,5 +21,9 @@ manifest:
|
|||
package: platypush.plugins.chat.irc
|
||||
type: plugin
|
||||
install:
|
||||
apt:
|
||||
- python3-irc
|
||||
pacman:
|
||||
- python-irc
|
||||
pip:
|
||||
- irc
|
||||
|
|
|
@ -2,7 +2,9 @@ manifest:
|
|||
events:
|
||||
platypush.message.event.clipboard.ClipboardEvent: on clipboard update.
|
||||
install:
|
||||
apk:
|
||||
- py3-pyclip
|
||||
pip:
|
||||
- pyclip
|
||||
- pyclip
|
||||
package: platypush.plugins.clipboard
|
||||
type: plugin
|
||||
|
|
|
@ -2,8 +2,17 @@ manifest:
|
|||
events:
|
||||
platypush.message.event.dbus.DbusSignalEvent: When a signal is received
|
||||
install:
|
||||
apk:
|
||||
- py3-pydbus
|
||||
- py3-defusedxml
|
||||
apt:
|
||||
- python3-pydbus
|
||||
- python3-defusedxml
|
||||
pacman:
|
||||
- python-pydbus
|
||||
- python-defusedxml
|
||||
pip:
|
||||
- pydbus
|
||||
- defusedxml
|
||||
- pydbus
|
||||
- defusedxml
|
||||
package: platypush.plugins.dbus
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python3-dropbox
|
||||
pacman:
|
||||
- python-dropbox
|
||||
pip:
|
||||
- dropbox
|
||||
- dropbox
|
||||
package: platypush.plugins.dropbox
|
||||
type: plugin
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- ffmpeg-python
|
||||
apk:
|
||||
- ffmpeg
|
||||
apt:
|
||||
- ffmpeg
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- python-ffmpeg
|
||||
pip:
|
||||
- ffmpeg-python
|
||||
package: platypush.plugins.ffmpeg
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
package: platypush.plugins.google.calendar
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
package: platypush.plugins.google.drive
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
package: platypush.plugins.google.fit
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
package: platypush.plugins.google.mail
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
package: platypush.plugins.google.maps
|
||||
type: plugin
|
||||
|
|
|
@ -1,10 +1,21 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-cloud-pubsub
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-cloud-pubsub
|
||||
package: platypush.plugins.google.pubsub
|
||||
type: plugin
|
||||
|
|
|
@ -1,10 +1,21 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-cloud-translate
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-cloud-translate
|
||||
package: platypush.plugins.google.translate
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-google-api-python-client
|
||||
- py3-google-auth
|
||||
- py3-oauth2client
|
||||
apt:
|
||||
- python3-google-auth
|
||||
- python3-oauth2client
|
||||
pacman:
|
||||
- python-google-api-python-client
|
||||
- python-google-auth
|
||||
- python-oauth2client
|
||||
pip:
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
- google-api-python-client
|
||||
- google-auth
|
||||
- oauth2client
|
||||
package: platypush.plugins.google.youtube
|
||||
type: plugin
|
||||
|
|
|
@ -4,6 +4,10 @@ manifest:
|
|||
platypush.message.event.hid.HidDeviceDisconnectedEvent: when a previously available device is disconnected
|
||||
platypush.message.event.hid.HidDeviceDataEvent: when a monitored device sends some data
|
||||
install:
|
||||
apt:
|
||||
- python3-hid
|
||||
pacman:
|
||||
- python-hid
|
||||
pip:
|
||||
- hid
|
||||
package: platypush.plugins.hid
|
||||
|
|
|
@ -1,15 +1,20 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- weasyprint
|
||||
apk:
|
||||
- sudo
|
||||
- nodejs
|
||||
- npm
|
||||
apt:
|
||||
- sudo
|
||||
- nodejs
|
||||
- npm
|
||||
pacman:
|
||||
- sudo
|
||||
- nodejs
|
||||
- npm
|
||||
pip:
|
||||
- weasyprint
|
||||
exec:
|
||||
- sudo npm install -g @postlight/mercury-parser
|
||||
package: platypush.plugins.http.webpage
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- docutils
|
||||
pip: []
|
||||
package: platypush.plugins.inspect
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-pylast
|
||||
apt:
|
||||
- python3-pylast
|
||||
pacman:
|
||||
- python-pylast
|
||||
pip:
|
||||
- pylast
|
||||
- pylast
|
||||
package: platypush.plugins.lastfm
|
||||
type: plugin
|
||||
|
|
|
@ -39,10 +39,13 @@ manifest:
|
|||
message seen by a user in a room is updated.
|
||||
platypush.message.event.matrix.MatrixUserPresenceEvent: when a user comes
|
||||
online or goes offline.
|
||||
apk:
|
||||
- olm-dev
|
||||
apt:
|
||||
- libolm-devel
|
||||
pacman:
|
||||
- libolm
|
||||
- python-async-lru
|
||||
pip:
|
||||
- matrix-nio[e2e]
|
||||
- async_lru
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-pychromecast
|
||||
apt:
|
||||
- python3-pychromecast
|
||||
pip:
|
||||
- pychromecast
|
||||
- pychromecast
|
||||
package: platypush.plugins.media.chromecast
|
||||
type: plugin
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-gobject3
|
||||
- py3-gst
|
||||
apt:
|
||||
- python3-gi
|
||||
- python3-gst-1.0
|
||||
pip:
|
||||
- pygobject
|
||||
pacman:
|
||||
- gst-python
|
||||
- python-gobject
|
||||
pip:
|
||||
- pygobject
|
||||
|
||||
package: platypush.plugins.media.gstreamer
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-kodi
|
||||
pacman:
|
||||
- python-kodi-json
|
||||
pip:
|
||||
- kodi-json
|
||||
- kodi-json
|
||||
package: platypush.plugins.media.kodi
|
||||
type: plugin
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- mplayer
|
||||
apt:
|
||||
- mplayer
|
||||
pacman:
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- python-mpv
|
||||
apk:
|
||||
- mpv
|
||||
- py3-mpv
|
||||
apt:
|
||||
- mpv
|
||||
- python3-mpv
|
||||
pacman:
|
||||
- mpv
|
||||
- python-mpv
|
||||
pip:
|
||||
- python-mpv
|
||||
package: platypush.plugins.media.mpv
|
||||
type: plugin
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python3-webvtt
|
||||
pip:
|
||||
- python-opensubtitles
|
||||
- webvtt-py
|
||||
- python-opensubtitles
|
||||
- webvtt-py
|
||||
package: platypush.plugins.media.subtitles
|
||||
type: plugin
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- python-vlc
|
||||
apk:
|
||||
- vlc
|
||||
- py3-vlc
|
||||
apt:
|
||||
- vlc
|
||||
- python3-vlc
|
||||
pacman:
|
||||
- vlc
|
||||
pip:
|
||||
- python-vlc
|
||||
package: platypush.plugins.media.vlc
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python3-rtmidi
|
||||
pacman:
|
||||
- python-rtmidi
|
||||
pip:
|
||||
- python-rtmidi
|
||||
- python-rtmidi
|
||||
package: platypush.plugins.midi
|
||||
type: plugin
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-opencv
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-opencv
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-opencv
|
||||
pip:
|
||||
- numpy
|
||||
- opencv-python
|
||||
- numpy
|
||||
- opencv-python
|
||||
package: platypush.plugins.ml.cv
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-paho-mqtt
|
||||
pacman:
|
||||
- python-paho-mqtt
|
||||
apt:
|
||||
- python3-paho-mqtt
|
||||
pip:
|
||||
- paho-mqtt
|
||||
- paho-mqtt
|
||||
package: platypush.plugins.mqtt
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python-mpd
|
||||
pacman:
|
||||
- python-mpd2
|
||||
pip:
|
||||
- python-mpd2
|
||||
- python-mpd2
|
||||
package: platypush.plugins.music.mpd
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-otp
|
||||
apt:
|
||||
- python3-pyotp
|
||||
pacman:
|
||||
- python-pyotp
|
||||
pip:
|
||||
- pyotp
|
||||
- pyotp
|
||||
package: platypush.plugins.otp
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip:
|
||||
- pycups
|
||||
apk:
|
||||
- py3-pycups
|
||||
apt:
|
||||
- libcups2-dev
|
||||
- libcups2-dev
|
||||
- python3-cups
|
||||
pacman:
|
||||
- python-pycups
|
||||
pip:
|
||||
- pycups
|
||||
package: platypush.plugins.printer.cups
|
||||
type: plugin
|
||||
|
|
|
@ -1,10 +1,25 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pillow
|
||||
- py3-qrcode
|
||||
- py3-pyzbar
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pillow
|
||||
- python-qrcode
|
||||
- pyzbar
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pillow
|
||||
- python3-pyzbar
|
||||
- python3-qrcode
|
||||
pip:
|
||||
- numpy
|
||||
- qrcode
|
||||
- pyzbar
|
||||
- Pillow
|
||||
- numpy
|
||||
- qrcode
|
||||
- pyzbar
|
||||
- Pillow
|
||||
package: platypush.plugins.qrcode
|
||||
type: plugin
|
||||
|
|
|
@ -2,6 +2,15 @@ manifest:
|
|||
events:
|
||||
platypush.message.event.rss.NewFeedEntryEvent: when a new entry is received on a subscribed feed.
|
||||
install:
|
||||
apk:
|
||||
- py3-feedparser
|
||||
- py3-defusedxml
|
||||
apt:
|
||||
- python3-feedparser
|
||||
- python3-defusedxml
|
||||
pacman:
|
||||
- python-feedparser
|
||||
- python-defusedxml
|
||||
pip:
|
||||
- feedparser
|
||||
- defusedxml
|
||||
|
|
|
@ -15,6 +15,8 @@ manifest:
|
|||
removed.
|
||||
platypush.message.event.torrent.TorrentResumedEvent: when a transfer is resumed.
|
||||
install:
|
||||
apk:
|
||||
- rtorrent
|
||||
apt:
|
||||
- rtorrent
|
||||
pacman:
|
||||
|
|
|
@ -2,6 +2,12 @@ manifest:
|
|||
events:
|
||||
- platypush.message.event.sensor.SensorDataChangeEvent:
|
||||
install:
|
||||
apk:
|
||||
- py3-pyserial
|
||||
apt:
|
||||
- python3-serial
|
||||
pacman:
|
||||
- python-pyserial
|
||||
pip:
|
||||
- pyserial
|
||||
package: platypush.plugins.serial
|
||||
|
|
|
@ -9,14 +9,21 @@ manifest:
|
|||
platypush.message.event.sound.SoundRecordingStartedEvent: on recording start
|
||||
platypush.message.event.sound.SoundRecordingStoppedEvent: on recording stop
|
||||
install:
|
||||
pip:
|
||||
- sounddevice
|
||||
- numpy
|
||||
apk:
|
||||
- ffmpeg
|
||||
- portaudio-dev
|
||||
- py3-numpy
|
||||
apt:
|
||||
- ffmpeg
|
||||
- portaudio19-dev
|
||||
- ffmpeg
|
||||
- portaudio19-dev
|
||||
- python3-numpy
|
||||
pacman:
|
||||
- ffmpeg
|
||||
- portaudio
|
||||
- ffmpeg
|
||||
- portaudio
|
||||
- python-numpy
|
||||
- python-sounddevice
|
||||
pip:
|
||||
- sounddevice
|
||||
- numpy
|
||||
package: platypush.plugins.sound
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-paramiko
|
||||
apt:
|
||||
- python3-paramiko
|
||||
pacman:
|
||||
- python-paramiko
|
||||
pip:
|
||||
- paramiko
|
||||
- paramiko
|
||||
package: platypush.plugins.ssh
|
||||
type: plugin
|
||||
|
|
|
@ -1,9 +1,16 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-sounddevice
|
||||
apt:
|
||||
- python3-numpy
|
||||
pip:
|
||||
- deepspeech
|
||||
- numpy
|
||||
- sounddevice
|
||||
- deepspeech
|
||||
- numpy
|
||||
- sounddevice
|
||||
package: platypush.plugins.stt.deepspeech
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-py-cpuinfo
|
||||
apt:
|
||||
- python3-cpuinfo
|
||||
pacman:
|
||||
- python-py-cpuinfo
|
||||
pip:
|
||||
- py-cpuinfo
|
||||
- py-cpuinfo
|
||||
package: platypush.plugins.system
|
||||
type: plugin
|
||||
|
|
|
@ -13,10 +13,21 @@ manifest:
|
|||
platypush.message.event.tensorflow.TensorflowTrainStartedEvent: when a Tensorflow
|
||||
model starts being trained.
|
||||
install:
|
||||
apk:
|
||||
- py3-numpy
|
||||
- py3-pandas
|
||||
pacman:
|
||||
- python-numpy
|
||||
- python-pandas
|
||||
- python-tensorflow
|
||||
- python-keras
|
||||
apt:
|
||||
- python3-numpy
|
||||
- python3-pandas
|
||||
pip:
|
||||
- numpy
|
||||
- pandas
|
||||
- tensorflow
|
||||
- keras
|
||||
- numpy
|
||||
- pandas
|
||||
- tensorflow
|
||||
- keras
|
||||
package: platypush.plugins.tensorflow
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apk:
|
||||
- py3-libtorrent-rasterbar
|
||||
apt:
|
||||
- python3-libtorrent
|
||||
pacman:
|
||||
- libtorrent-rasterbar
|
||||
pip:
|
||||
- python-libtorrent
|
||||
- libtorrent
|
||||
package: platypush.plugins.torrent
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
apt:
|
||||
- python3-twilio
|
||||
pip:
|
||||
- twilio
|
||||
- twilio
|
||||
package: platypush.plugins.twilio
|
||||
type: plugin
|
||||
|
|
|
@ -1,11 +1,45 @@
|
|||
from typing import Collection, Dict, Iterable, Optional, Union
|
||||
from functools import wraps
|
||||
from threading import Event, RLock
|
||||
from typing import Any, Callable, Collection, Dict, Iterable, Optional, Union
|
||||
from typing_extensions import override
|
||||
|
||||
from platypush.entities import EntityManager
|
||||
from platypush.entities import EntityManager, get_entities_engine
|
||||
from platypush.entities.variables import Variable
|
||||
from platypush.plugins import Plugin, action
|
||||
|
||||
|
||||
# pylint: disable=protected-access
|
||||
def ensure_initialized(f: Callable[..., Any]):
|
||||
"""
|
||||
Ensures that the entities engine has been initialized before
|
||||
reading/writing the db.
|
||||
|
||||
It also performs lazy initialization of the variables in the local cache.
|
||||
"""
|
||||
|
||||
@wraps(f)
|
||||
def wrapper(*args, **kwargs):
|
||||
self: VariablePlugin = args[0]
|
||||
|
||||
if not self._initialized.is_set():
|
||||
with self._init_lock:
|
||||
get_entities_engine(timeout=20)
|
||||
|
||||
if not self._initialized.is_set():
|
||||
self._initialized.set()
|
||||
with self._db.get_session() as session:
|
||||
self._db_vars.update(
|
||||
{ # type: ignore
|
||||
str(var.name): var.value
|
||||
for var in session.query(Variable).all()
|
||||
}
|
||||
)
|
||||
|
||||
return f(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
class VariablePlugin(Plugin, EntityManager):
|
||||
"""
|
||||
This plugin allows you to manipulate context variables that can be
|
||||
|
@ -17,18 +51,15 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
db = self._db
|
||||
self._db_vars: Dict[str, Optional[str]] = {}
|
||||
""" Local cache for db variables. """
|
||||
|
||||
with db.get_session() as session:
|
||||
self._db_vars.update(
|
||||
{ # type: ignore
|
||||
str(var.name): var.value for var in session.query(Variable).all()
|
||||
}
|
||||
)
|
||||
self._initialized = Event()
|
||||
""" Lazy initialization event for the _db_vars map. """
|
||||
self._init_lock = RLock()
|
||||
""" Lock for the _db_vars map initialization. """
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def get(self, name: Optional[str] = None, default_value=None):
|
||||
"""
|
||||
Get the value of a variable by name from the local db.
|
||||
|
@ -45,6 +76,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
)
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def set(self, **kwargs):
|
||||
"""
|
||||
Set a variable or a set of variables on the local db.
|
||||
|
@ -57,6 +89,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
return kwargs
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def delete(self, name: str):
|
||||
"""
|
||||
Delete a variable from the database.
|
||||
|
@ -76,6 +109,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
return True
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def unset(self, name: str):
|
||||
"""
|
||||
Unset a variable by name if it's set on the local db.
|
||||
|
@ -89,6 +123,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
return self.set(**{name: None})
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def mget(self, name: str):
|
||||
"""
|
||||
Get the value of a variable by name from Redis.
|
||||
|
@ -100,6 +135,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
return self._redis.mget([name])
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def mset(self, **kwargs):
|
||||
"""
|
||||
Set a variable or a set of variables on Redis.
|
||||
|
@ -112,6 +148,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
return kwargs
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def munset(self, name: str):
|
||||
"""
|
||||
Unset a Redis variable by name if it's set
|
||||
|
@ -122,6 +159,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
return self._redis.delete(name)
|
||||
|
||||
@action
|
||||
@ensure_initialized
|
||||
def expire(self, name: str, expire: int):
|
||||
"""
|
||||
Set a variable expiration on Redis
|
||||
|
@ -157,6 +195,7 @@ class VariablePlugin(Plugin, EntityManager):
|
|||
|
||||
@override
|
||||
@action
|
||||
@ensure_initialized
|
||||
def status(self, *_, **__):
|
||||
variables = {
|
||||
name: value for name, value in self._db_vars.items() if value is not None
|
||||
|
|
|
@ -29,6 +29,13 @@ manifest:
|
|||
platypush.message.event.xmpp.XmppRoomUserUnavailableEvent:
|
||||
platypush.message.event.xmpp.XmppUserAvailableEvent:
|
||||
platypush.message.event.xmpp.XmppUserUnavailableEvent:
|
||||
apk:
|
||||
- py3-tz
|
||||
apt:
|
||||
- python3-aioxmpp
|
||||
- python3-tz
|
||||
pacman:
|
||||
- python-pytz
|
||||
pip:
|
||||
- aioxmpp
|
||||
- pytz
|
||||
|
|
|
@ -7,7 +7,6 @@ manifest:
|
|||
platypush.message.event.zeroconf.ZeroconfServiceUpdatedEvent: when a service is
|
||||
updated.
|
||||
install:
|
||||
pip:
|
||||
- zeroconf
|
||||
pip: []
|
||||
package: platypush.plugins.zeroconf
|
||||
type: plugin
|
||||
|
|
|
@ -39,7 +39,13 @@ manifest:
|
|||
platypush.message.event.zigbee.mqtt.ZigbeeMqttOnlineEvent: >
|
||||
when the service comes online.
|
||||
install:
|
||||
apk:
|
||||
- py3-paho-mqtt
|
||||
pacman:
|
||||
- python-paho-mqtt
|
||||
apt:
|
||||
- python3-paho-mqtt
|
||||
pip:
|
||||
- paho-mqtt
|
||||
- paho-mqtt
|
||||
package: platypush.plugins.zigbee.mqtt
|
||||
type: plugin
|
||||
|
|
|
@ -17,7 +17,13 @@ manifest:
|
|||
platypush.message.event.zwave.ZwaveValueChangedEvent: >
|
||||
when the value of a node on the network changes.
|
||||
install:
|
||||
apk:
|
||||
- py3-paho-mqtt
|
||||
pacman:
|
||||
- python-paho-mqtt
|
||||
apt:
|
||||
- python3-paho-mqtt
|
||||
pip:
|
||||
- paho-mqtt
|
||||
- paho-mqtt
|
||||
package: platypush.plugins.zwave.mqtt
|
||||
type: plugin
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import sys
|
||||
|
||||
from ._runner import ApplicationRunner
|
||||
|
||||
|
||||
def main(*args: str):
|
||||
def main():
|
||||
"""
|
||||
Main application entry point.
|
||||
|
||||
|
@ -11,7 +13,7 @@ def main(*args: str):
|
|||
"""
|
||||
|
||||
app_runner = ApplicationRunner()
|
||||
app_runner.run(*args)
|
||||
app_runner.run(*sys.argv[1:])
|
||||
|
||||
|
||||
__all__ = ["ApplicationRunner", "main"]
|
||||
|
|
|
@ -20,7 +20,6 @@ requests
|
|||
rsa
|
||||
sqlalchemy
|
||||
tornado
|
||||
tz
|
||||
websocket-client
|
||||
websockets
|
||||
zeroconf>=0.27.0
|
||||
|
|
Loading…
Reference in New Issue