From a3cd0c9fd6250c4f6930be2f255964336c5f1934 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Wed, 13 Jul 2022 23:12:15 +0000 Subject: [PATCH] Autoformating and cleanup --- custom_components/browser_mod/browser_mod.js | 13 ++-- custom_components/browser_mod/connection.py | 32 ++++------ custom_components/browser_mod/coordinator.py | 6 +- custom_components/browser_mod/helpers.py | 63 ------------------- custom_components/browser_mod/light.py | 2 +- custom_components/browser_mod/media_player.py | 1 - custom_components/browser_mod/store.py | 7 +-- js/plugin/connection.ts | 20 +++--- js/plugin/mediaPlayer.ts | 31 +++++---- js/plugin/screensaver.ts | 19 +++--- 10 files changed, 65 insertions(+), 129 deletions(-) diff --git a/custom_components/browser_mod/browser_mod.js b/custom_components/browser_mod/browser_mod.js index 166fba0..29bd435 100644 --- a/custom_components/browser_mod/browser_mod.js +++ b/custom_components/browser_mod/browser_mod.js @@ -644,7 +644,9 @@ const ConnectionMixin = (SuperClass) => { constructor() { super(...arguments); this.connected = false; - this.connectionPromise = new Promise(resolve => { this._connectionResolve = resolve; }); + this.connectionPromise = new Promise((resolve) => { + this._connectionResolve = resolve; + }); } LOG(...args) { const dt = new Date(); @@ -787,12 +789,13 @@ const ConnectionMixin = (SuperClass) => { const oldID = localStorage[ID_STORAGE_KEY]; localStorage[ID_STORAGE_KEY] = id; this.fireEvent("browser-mod-config-update"); - if (((_a = this.devices) === null || _a === void 0 ? void 0 : _a[oldID]) !== undefined && ((_b = this.devices) === null || _b === void 0 ? void 0 : _b[this.deviceID]) === undefined) { + if (((_a = this.devices) === null || _a === void 0 ? void 0 : _a[oldID]) !== undefined && + ((_b = this.devices) === null || _b === void 0 ? void 0 : _b[this.deviceID]) === undefined) { (async () => { await this.connection.sendMessage({ type: "browser_mod/reregister", deviceID: oldID, - data: Object.assign(Object.assign({}, this.devices[oldID]), { deviceID: this.deviceID }) + data: Object.assign(Object.assign({}, this.devices[oldID]), { deviceID: this.deviceID }), }); })(); } @@ -808,7 +811,7 @@ const ScreenSaverMixin = (SuperClass) => { super(); this._listeners = {}; this._brightness = 255; - const panel = this._panel = document.createElement("div"); + const panel = (this._panel = document.createElement("div")); panel.setAttribute("browser-mod", ""); panel.attachShadow({ mode: "open" }); const styleEl = document.createElement("style"); @@ -926,7 +929,7 @@ const MediaPlayerMixin = (SuperClass) => { muted: this.player.muted, src: this.player.src, state, - } + }, }); } }; diff --git a/custom_components/browser_mod/connection.py b/custom_components/browser_mod/connection.py index d125ed9..dc3c790 100644 --- a/custom_components/browser_mod/connection.py +++ b/custom_components/browser_mod/connection.py @@ -3,18 +3,21 @@ import voluptuous as vol from datetime import datetime, timezone from homeassistant.components.websocket_api import ( - websocket_command, - result_message, event_message, async_register_command, ) from homeassistant.components import websocket_api -from .const import WS_CONNECT, WS_REGISTER, WS_UNREGISTER, WS_REREGISTER, WS_UPDATE, DOMAIN -from .helpers import get_devices, create_entity, get_config, is_setup_complete +from .const import ( + WS_CONNECT, + WS_REGISTER, + WS_UNREGISTER, + WS_REREGISTER, + WS_UPDATE, + DOMAIN, +) -from .coordinator import Coordinator from .device import getDevice, deleteDevice _LOGGER = logging.getLogger(__name__) @@ -42,14 +45,11 @@ async def async_setup_connection(hass): dev = getDevice(hass, deviceID) dev.update_settings(hass, store.get_device(deviceID).asdict()) dev.connection = (connection, msg["id"]) - await store.set_device(deviceID, - last_seen=datetime.now( - tz=timezone.utc - ).isoformat() - ) + await store.set_device( + deviceID, last_seen=datetime.now(tz=timezone.utc).isoformat() + ) listener(store.asdict()) - @websocket_api.websocket_command( { vol.Required("type"): WS_REGISTER, @@ -60,12 +60,9 @@ async def async_setup_connection(hass): async def handle_register(hass, connection, msg): deviceID = msg["deviceID"] store = hass.data[DOMAIN]["store"] - await store.set_device(deviceID, - enabled=True - ) + await store.set_device(deviceID, enabled=True) connection.send_result(msg["id"]) - @websocket_api.websocket_command( { vol.Required("type"): WS_UNREGISTER, @@ -117,7 +114,6 @@ async def async_setup_connection(hass): deviceSettings.update(data) await store.set_device(deviceID, **deviceSettings) - @websocket_api.websocket_command( { vol.Required("type"): WS_UPDATE, @@ -129,16 +125,14 @@ async def async_setup_connection(hass): async def handle_update(hass, connection, msg): deviceID = msg["deviceID"] store = hass.data[DOMAIN]["store"] - devices = hass.data[DOMAIN]["devices"] if store.get_device(deviceID).enabled: dev = getDevice(hass, deviceID) dev.data.update(msg.get("data", {})) dev.coordinator.async_set_updated_data(dev.data) - async_register_command(hass, handle_connect) async_register_command(hass, handle_register) async_register_command(hass, handle_unregister) async_register_command(hass, handle_reregister) - async_register_command(hass, handle_update) \ No newline at end of file + async_register_command(hass, handle_update) diff --git a/custom_components/browser_mod/coordinator.py b/custom_components/browser_mod/coordinator.py index deabf3a..3f3f135 100644 --- a/custom_components/browser_mod/coordinator.py +++ b/custom_components/browser_mod/coordinator.py @@ -1,11 +1,13 @@ import logging -from homeassistant.helpers.update_coordinator import (CoordinatorEntity, DataUpdateCoordinator, UpdateFailed) +from homeassistant.helpers.update_coordinator import ( + DataUpdateCoordinator, +) _LOGGER = logging.getLogger(__name__) -class Coordinator(DataUpdateCoordinator): +class Coordinator(DataUpdateCoordinator): def __init__(self, hass, deviceID): super().__init__( hass, diff --git a/custom_components/browser_mod/helpers.py b/custom_components/browser_mod/helpers.py index 9a51ded..666ce00 100644 --- a/custom_components/browser_mod/helpers.py +++ b/custom_components/browser_mod/helpers.py @@ -1,78 +1,15 @@ import logging -from homeassistant.helpers.entity import Entity, async_generate_entity_id from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import ( DOMAIN, - DATA_DEVICES, - DATA_ALIASES, - DATA_ADDERS, - CONFIG_DEVICES, - DATA_CONFIG, - CONFIG_PREFIX, - CONFIG_DISABLE, - CONFIG_DISABLE_ALL, - DATA_SETUP_COMPLETE, ) -from .coordinator import Coordinator _LOGGER = logging.getLogger(__name__) -def get_devices(hass): - return hass.data[DOMAIN][DATA_DEVICES] - - -def get_alias(hass, deviceID): - for k, v in hass.data[DOMAIN][DATA_ALIASES].items(): - if v == deviceID: - return k - return None - - -def get_config(hass, deviceID): - config = hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DEVICES, {}) - return config.get(deviceID, config.get(deviceID.replace("-", "_"), {})) - - -def create_entity(hass, platform, deviceID, connection): - conf = get_config(hass, deviceID) - if conf and ( - platform in conf.get(CONFIG_DISABLE, []) - or CONFIG_DISABLE_ALL in conf.get(CONFIG_DISABLE, []) - ): - return None - if not conf and ( - platform in hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DISABLE, []) - or CONFIG_DISABLE_ALL in hass.data[DOMAIN][DATA_CONFIG].get(CONFIG_DISABLE, []) - ): - return None - adder = hass.data[DOMAIN][DATA_ADDERS].get(platform) - if not adder: - return None - entity = adder(hass, deviceID, connection, get_alias(hass, deviceID)) - return entity - - -def setup_platform(hass, config, async_add_devices, platform, cls): - if platform in hass.data[DOMAIN][DATA_ADDERS]: - return True - - def adder(hass, deviceID, connection, alias=None): - entity = cls(hass, connection, deviceID, alias) - async_add_devices([entity]) - return entity - - hass.data[DOMAIN][DATA_ADDERS][platform] = adder - return True - - -def is_setup_complete(hass): - return hass.data[DOMAIN][DATA_SETUP_COMPLETE] - - class BrowserModEntity(CoordinatorEntity): def __init__(self, coordinator, deviceID, name): super().__init__(coordinator) diff --git a/custom_components/browser_mod/light.py b/custom_components/browser_mod/light.py index 67e946a..6c5f4e4 100644 --- a/custom_components/browser_mod/light.py +++ b/custom_components/browser_mod/light.py @@ -1,6 +1,6 @@ from homeassistant.components.light import LightEntity, ColorMode -from .helpers import setup_platform, BrowserModEntity +from .helpers import BrowserModEntity from .const import DOMAIN, DATA_ADDERS diff --git a/custom_components/browser_mod/media_player.py b/custom_components/browser_mod/media_player.py index 66bd5ae..6fa26db 100644 --- a/custom_components/browser_mod/media_player.py +++ b/custom_components/browser_mod/media_player.py @@ -1,4 +1,3 @@ -import logging from homeassistant.components import media_source from homeassistant.components.media_player import ( SUPPORT_PLAY, diff --git a/custom_components/browser_mod/store.py b/custom_components/browser_mod/store.py index d5dd0c3..721419f 100644 --- a/custom_components/browser_mod/store.py +++ b/custom_components/browser_mod/store.py @@ -1,8 +1,5 @@ import logging import attr -from dataclasses import dataclass - -from homeassistant.loader import bind_hass STORAGE_VERSION = 1 STORAGE_KEY = "browser_mod.storage" @@ -71,8 +68,8 @@ class BrowserModStore: async def updated(self): self.dirty = True - for l in self.listeners: - l(attr.asdict(self.data)) + for listener in self.listeners: + listener(attr.asdict(self.data)) await self.save() def asdict(self): diff --git a/js/plugin/connection.ts b/js/plugin/connection.ts index 9bb5f61..9341b80 100644 --- a/js/plugin/connection.ts +++ b/js/plugin/connection.ts @@ -9,7 +9,9 @@ export const ConnectionMixin = (SuperClass) => { private _data; public connected = false; private _connectionResolve; - public connectionPromise = new Promise(resolve => { this._connectionResolve = resolve; }); + public connectionPromise = new Promise((resolve) => { + this._connectionResolve = resolve; + }); LOG(...args) { const dt = new Date(); @@ -23,7 +25,7 @@ export const ConnectionMixin = (SuperClass) => { private incoming_message(msg) { if (msg.command) { this.LOG("Command:", msg); - this.fireEvent(`command-${msg.command}`, msg) + this.fireEvent(`command-${msg.command}`, msg); } else if (msg.result) { this.update_config(msg.result); } @@ -103,7 +105,6 @@ export const ConnectionMixin = (SuperClass) => { })(); } - private async _reregister(newData = {}) { await this.connection.sendMessage({ type: "browser_mod/reregister", @@ -165,7 +166,10 @@ export const ConnectionMixin = (SuperClass) => { this.fireEvent("browser-mod-config-update"); - if (this.devices?.[oldID] !== undefined && this.devices?.[this.deviceID] === undefined) { + if ( + this.devices?.[oldID] !== undefined && + this.devices?.[this.deviceID] === undefined + ) { (async () => { await this.connection.sendMessage({ type: "browser_mod/reregister", @@ -173,9 +177,9 @@ export const ConnectionMixin = (SuperClass) => { data: { ...this.devices[oldID], deviceID: this.deviceID, - } - }) - })() + }, + }); + })(); } // TODO: Send update to backend to update device @@ -183,4 +187,4 @@ export const ConnectionMixin = (SuperClass) => { } return BrowserModConnection; -} +}; diff --git a/js/plugin/mediaPlayer.ts b/js/plugin/mediaPlayer.ts index efd1275..6d1e190 100644 --- a/js/plugin/mediaPlayer.ts +++ b/js/plugin/mediaPlayer.ts @@ -1,6 +1,5 @@ export const MediaPlayerMixin = (SuperClass) => { return class MediaPlayerMixinClass extends SuperClass { - public player; private _player_enabled; @@ -14,7 +13,9 @@ export const MediaPlayerMixin = (SuperClass) => { this.player.addEventListener(ev, () => this._player_update()); } - window.addEventListener("pointerdown", () => { + window.addEventListener( + "pointerdown", + () => { this._player_enabled = true; if (!this.player.ended) this.player.play(); }, @@ -26,7 +27,9 @@ export const MediaPlayerMixin = (SuperClass) => { this.player.src = ev.detail.media_content_id; this.player.play(); }); - this.addEventListener("command-player-pause", (ev) => this.player.pause()); + this.addEventListener("command-player-pause", (ev) => + this.player.pause() + ); this.addEventListener("command-player-stop", (ev) => { this.player.src = null; this.player.pause(); @@ -38,34 +41,30 @@ export const MediaPlayerMixin = (SuperClass) => { this.addEventListener("command-player-mute", (ev) => { if (ev.detail?.mute !== undefined) this.player.muted = Boolean(ev.detail.mute); - else - this.player.muted = !this.player.muted; + else this.player.muted = !this.player.muted; }); this.connectionPromise.then(() => this._player_update()); } private _player_update() { - const state = - this._player_enabled + const state = this._player_enabled ? this.player.src ? this.player.ended ? "stopped" : this.player.paused - ? "paused" - : "playing" + ? "paused" + : "playing" : "stopped" - : "unavailable" - ; + : "unavailable"; this.sendUpdate({ player: { volume: this.player.volume, muted: this.player.muted, src: this.player.src, state, - } - }) - + }, + }); } - } -} \ No newline at end of file + }; +}; diff --git a/js/plugin/screensaver.ts b/js/plugin/screensaver.ts index 8e132f7..be5e5d7 100644 --- a/js/plugin/screensaver.ts +++ b/js/plugin/screensaver.ts @@ -1,6 +1,5 @@ export const ScreenSaverMixin = (SuperClass) => { class ScreenSaverMixinClass extends SuperClass { - private _panel; private _listeners = {}; private _brightness = 255; @@ -8,7 +7,7 @@ export const ScreenSaverMixin = (SuperClass) => { constructor() { super(); - const panel = this._panel = document.createElement("div") + const panel = (this._panel = document.createElement("div")); panel.setAttribute("browser-mod", ""); panel.attachShadow({ mode: "open" }); const styleEl = document.createElement("style"); @@ -29,7 +28,7 @@ export const ScreenSaverMixin = (SuperClass) => { :host([dark]) { background: rgba(0,0,0,1); } - ` + `; panel.shadowRoot.appendChild(styleEl); document.body.appendChild(panel); @@ -54,10 +53,13 @@ export const ScreenSaverMixin = (SuperClass) => { } } - private _screen_on(ev=undefined) { + private _screen_on(ev = undefined) { if (ev?.detail?.brightness) { this._brightness = ev.detail.brightness; - this._panel.style.setProperty("--darkness", 1-ev.detail.brightness/255) + this._panel.style.setProperty( + "--darkness", + 1 - ev.detail.brightness / 255 + ); } this._panel.removeAttribute("dark"); this.sendUpdate({ @@ -67,15 +69,14 @@ export const ScreenSaverMixin = (SuperClass) => { for (const ev of ["pointerdown", "pointermove", "keydown"]) { if (this._listeners[ev]) { - window.removeEventListener(ev, this._listeners[ev]) + window.removeEventListener(ev, this._listeners[ev]); this._listeners[ev] = undefined; } } } - } - return ScreenSaverMixinClass -} + return ScreenSaverMixinClass; +}; export const BrowserModScreensaverMixin = (C) => class extends C {