Files
scrypted/sdk/scrypted_python/scrypted_sdk/__init__.py
2021-12-02 20:46:40 -08:00

52 lines
1.6 KiB
Python

from __future__ import annotations
from .types import *
from typing import Optional
from zipfile import ZipFile
import sys
deviceManager: DeviceManager = None
systemManager: SystemManager = None
mediaManager: MediaManager = None
zip: ZipFile = None
remote: Any = None
def sdk_init(z: ZipFile, r, sm: DeviceManager, dm: SystemManager, mm: MediaManager):
global zip
global remote
global systemManager
global deviceManager
global mediaManager
systemManager = sm
deviceManager = dm
mediaManager = mm
zip = z
remote = r
class ScryptedDeviceBase(DeviceState):
nativeId: str | None
deviceState: DeviceState = None
def __init__(self, nativeId: str | None = None):
self.nativeId = nativeId
def getScryptedProperty(self, property: str) -> Any:
if not self.deviceState:
global deviceManager
self.deviceState = deviceManager.getDeviceState(self.nativeId)
return getattr(self.deviceState, property, None)
def setScryptedProperty(self, property: str, value: Any):
if not self.deviceState:
global deviceManager
self.deviceState = deviceManager.getDeviceState(self.nativeId)
setattr(self.deviceState, property, value)
async def onDeviceEvent(self, interface: ScryptedInterface, eventData: Any):
await deviceManager.onDeviceEvent(self.nativeId, interface, eventData)
def print(self, *values: object, sep: Optional[str] = ' ',
end: Optional[str] = '\n',
flush: bool = True):
print(*values, sep=sep, end=end, flush=True)
remote.print(self.nativeId, *values, sep=sep, end=end, flush=flush)