forked from platypush/platypush
Added AutoRemote plugin
This commit is contained in:
parent
74d23262b7
commit
2d7040225c
1 changed files with 77 additions and 0 deletions
77
platypush/plugins/autoremote.py
Normal file
77
platypush/plugins/autoremote.py
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
|
||||||
|
from platypush.config import Config
|
||||||
|
from platypush.message import Message
|
||||||
|
from platypush.plugins import Plugin, action
|
||||||
|
|
||||||
|
|
||||||
|
class AutoremotePlugin(Plugin):
|
||||||
|
"""
|
||||||
|
This plugin allows you to send messages and notifications to an
|
||||||
|
Android device that runs AutoRemote (https://joaoapps.com/autoremote/).
|
||||||
|
You can also build custom actions to run on your Android device upon
|
||||||
|
AutoRemote events using Tasker (https://tasker.joaoapps.com/).
|
||||||
|
"""
|
||||||
|
|
||||||
|
_AUTOREMOTE_BASE_URL = 'https://autoremotejoaomgcd.appspot.com'
|
||||||
|
_AUTOREMOTE_MESSAGE_URL = _AUTOREMOTE_BASE_URL + '/sendmessage'
|
||||||
|
_AUTOREMOTE_NOTIFICATION_URL = _AUTOREMOTE_BASE_URL + '/sendnotification'
|
||||||
|
|
||||||
|
def __init__(self, key, password=None, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
:param key: The key associated to your device. Open the link in your AutoRemote app and copy the key in the target URL
|
||||||
|
:type key: str
|
||||||
|
|
||||||
|
:param password: AutoRemote password configured on the device (default: None)
|
||||||
|
:type password: str
|
||||||
|
"""
|
||||||
|
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.key = key
|
||||||
|
self.password = password
|
||||||
|
|
||||||
|
@action
|
||||||
|
def send_message(self, msg, key=None, password=None, target=None,
|
||||||
|
sender=None, ttl=None, group=None, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Sends a message to AutoRemote.
|
||||||
|
|
||||||
|
:param msg: Message to send
|
||||||
|
|
||||||
|
:param key: Set it if you want to override the default key (default: None)
|
||||||
|
:type key: str
|
||||||
|
|
||||||
|
:param password: Set it if you want to override the default password (default: None)
|
||||||
|
:type password: str
|
||||||
|
|
||||||
|
:param target: Message target (default: None)
|
||||||
|
:type target: str
|
||||||
|
|
||||||
|
:param sender: Message sender (default: None)
|
||||||
|
:type target: str
|
||||||
|
|
||||||
|
:param ttl: Message time-to-live in seconds (default: None)
|
||||||
|
:type ttl: int
|
||||||
|
|
||||||
|
:param group: Message group name (default: None)
|
||||||
|
:type group: str
|
||||||
|
"""
|
||||||
|
|
||||||
|
args = {
|
||||||
|
'message': msg,
|
||||||
|
'key': self.key,
|
||||||
|
'sender': sender or Config.get('device_id'),
|
||||||
|
}
|
||||||
|
|
||||||
|
if self.password: args['password'] = self.password
|
||||||
|
if target: args['target'] = target
|
||||||
|
if ttl: args['ttl'] = ttl
|
||||||
|
if group: args['group'] = group
|
||||||
|
|
||||||
|
response = requests.post(self._AUTOREMOTE_MESSAGE_URL, data=args)
|
||||||
|
self.logger.info('Received response from AutoRemote: {}'.format(response.text))
|
||||||
|
|
||||||
|
|
||||||
|
# vim:sw=4:ts=4:et:
|
||||||
|
|
Loading…
Reference in a new issue