82 lines
2.4 KiB
Python
82 lines
2.4 KiB
Python
import json
|
|
from typing import Any, Dict
|
|
|
|
class Action:
|
|
def __init__(self, action: str, context: str, settings: Dict, plugin):
|
|
self.action = action
|
|
self.context = context
|
|
self.settings = settings
|
|
self.title = ""
|
|
self.title_parameters = {}
|
|
self._server = plugin.ws
|
|
self.plugin = plugin
|
|
|
|
def send_to_property_inspector(self, payload: Any):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'sendToPropertyInspector',
|
|
'action': self.action,
|
|
'context': self.context,
|
|
'payload': payload
|
|
}))
|
|
|
|
def set_state(self, state: int):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'setState',
|
|
'context': self.context,
|
|
'payload': {'state': state}
|
|
}))
|
|
|
|
def set_title(self, title: str):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'setTitle',
|
|
'context': self.context,
|
|
'payload': {'title': title, 'target': 0}
|
|
}))
|
|
|
|
def set_settings(self, payload: Any):
|
|
if self._server:
|
|
self.settings = payload
|
|
self._server.send(json.dumps({
|
|
'event': 'setSettings',
|
|
'context': self.context,
|
|
'payload': payload
|
|
}))
|
|
|
|
def open_url(self, url: str):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'openUrl',
|
|
'payload': {'url': url}
|
|
}))
|
|
|
|
def show_ok(self):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'showOk',
|
|
'context': self.context
|
|
}))
|
|
|
|
def show_alert(self):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'showAlert',
|
|
'context': self.context
|
|
}))
|
|
|
|
def set_image(self, url: str):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'setImage',
|
|
'context': self.context,
|
|
'payload': {'target': 0, 'image': url}
|
|
}))
|
|
|
|
def log_message(self, message: str):
|
|
if self._server:
|
|
self._server.send(json.dumps({
|
|
'event': 'logMessage',
|
|
'payload': {'message': message}
|
|
})) |