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