mirror of
https://github.com/home-assistant/core.git
synced 2025-12-20 02:48:57 +00:00
Update systembridgeconnector to 5.2.4, fix media source (#158917)
This commit is contained in:
@@ -13,12 +13,12 @@ from systembridgeconnector.exceptions import (
|
|||||||
ConnectionErrorException,
|
ConnectionErrorException,
|
||||||
DataMissingException,
|
DataMissingException,
|
||||||
)
|
)
|
||||||
|
from systembridgeconnector.models.keyboard_key import KeyboardKey
|
||||||
|
from systembridgeconnector.models.keyboard_text import KeyboardText
|
||||||
|
from systembridgeconnector.models.modules.processes import Process
|
||||||
|
from systembridgeconnector.models.open_path import OpenPath
|
||||||
|
from systembridgeconnector.models.open_url import OpenUrl
|
||||||
from systembridgeconnector.version import Version
|
from systembridgeconnector.version import Version
|
||||||
from systembridgemodels.keyboard_key import KeyboardKey
|
|
||||||
from systembridgemodels.keyboard_text import KeyboardText
|
|
||||||
from systembridgemodels.modules.processes import Process
|
|
||||||
from systembridgemodels.open_path import OpenPath
|
|
||||||
from systembridgemodels.open_url import OpenUrl
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ from systembridgeconnector.exceptions import (
|
|||||||
ConnectionClosedException,
|
ConnectionClosedException,
|
||||||
ConnectionErrorException,
|
ConnectionErrorException,
|
||||||
)
|
)
|
||||||
|
from systembridgeconnector.models.modules import GetData, Module
|
||||||
from systembridgeconnector.websocket_client import WebSocketClient
|
from systembridgeconnector.websocket_client import WebSocketClient
|
||||||
from systembridgemodels.modules import GetData, Module
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import SOURCE_REAUTH, ConfigFlow, ConfigFlowResult
|
from homeassistant.config_entries import SOURCE_REAUTH, ConfigFlow, ConfigFlowResult
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from systembridgemodels.modules import Module
|
from systembridgeconnector.models.modules import Module
|
||||||
|
|
||||||
DOMAIN = "system_bridge"
|
DOMAIN = "system_bridge"
|
||||||
|
|
||||||
|
|||||||
@@ -13,13 +13,13 @@ from systembridgeconnector.exceptions import (
|
|||||||
ConnectionClosedException,
|
ConnectionClosedException,
|
||||||
ConnectionErrorException,
|
ConnectionErrorException,
|
||||||
)
|
)
|
||||||
from systembridgeconnector.websocket_client import WebSocketClient
|
from systembridgeconnector.models.modules import (
|
||||||
from systembridgemodels.modules import (
|
|
||||||
GetData,
|
GetData,
|
||||||
Module,
|
Module,
|
||||||
ModulesData,
|
ModulesData,
|
||||||
RegisterDataListener,
|
RegisterDataListener,
|
||||||
)
|
)
|
||||||
|
from systembridgeconnector.websocket_client import WebSocketClient
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
from systembridgemodels.modules import (
|
from systembridgeconnector.models.modules import (
|
||||||
CPU,
|
CPU,
|
||||||
GPU,
|
GPU,
|
||||||
Battery,
|
Battery,
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
"integration_type": "device",
|
"integration_type": "device",
|
||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"loggers": ["systembridgeconnector"],
|
"loggers": ["systembridgeconnector"],
|
||||||
"requirements": ["systembridgeconnector==5.1.0"],
|
"requirements": ["systembridgeconnector==5.2.4"],
|
||||||
"zeroconf": ["_system-bridge._tcp.local."]
|
"zeroconf": ["_system-bridge._tcp.local."]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|||||||
import datetime as dt
|
import datetime as dt
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from systembridgemodels.media_control import MediaAction, MediaControl
|
from systembridgeconnector.models.media_control import MediaAction, MediaControl
|
||||||
|
|
||||||
from homeassistant.components.media_player import (
|
from homeassistant.components.media_player import (
|
||||||
MediaPlayerDeviceClass,
|
MediaPlayerDeviceClass,
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from systembridgemodels.media_directories import MediaDirectory
|
from systembridgeconnector.models.media_directories import MediaDirectory
|
||||||
from systembridgemodels.media_files import MediaFile, MediaFiles
|
from systembridgeconnector.models.media_files import MediaFile, MediaFiles
|
||||||
from systembridgemodels.media_get_files import MediaGetFiles
|
from systembridgeconnector.models.media_get_files import MediaGetFiles
|
||||||
|
|
||||||
from homeassistant.components.media_player import MediaClass
|
from homeassistant.components.media_player import MediaClass
|
||||||
from homeassistant.components.media_source import (
|
from homeassistant.components.media_source import (
|
||||||
@@ -183,9 +183,9 @@ def _build_media_items(
|
|||||||
for file in media_files.files
|
for file in media_files.files
|
||||||
if file.is_directory
|
if file.is_directory
|
||||||
or (
|
or (
|
||||||
file.is_file
|
not file.is_directory
|
||||||
and file.mime_type is not None
|
and file.content_type is not None
|
||||||
and file.mime_type.startswith(MEDIA_MIME_TYPES)
|
and file.content_type.startswith(MEDIA_MIME_TYPES)
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -197,20 +197,20 @@ def _build_media_item(
|
|||||||
) -> BrowseMediaSource:
|
) -> BrowseMediaSource:
|
||||||
"""Build individual media item."""
|
"""Build individual media item."""
|
||||||
ext = ""
|
ext = ""
|
||||||
if media_file.is_file and media_file.mime_type is not None:
|
if not media_file.is_directory and media_file.content_type is not None:
|
||||||
ext = f"~~{media_file.mime_type}"
|
ext = f"~~{media_file.content_type}"
|
||||||
|
|
||||||
if media_file.is_directory or media_file.mime_type is None:
|
if media_file.is_directory or media_file.content_type is None:
|
||||||
media_class = MediaClass.DIRECTORY
|
media_class = MediaClass.DIRECTORY
|
||||||
else:
|
else:
|
||||||
media_class = MEDIA_CLASS_MAP[media_file.mime_type.split("/", 1)[0]]
|
media_class = MEDIA_CLASS_MAP[media_file.content_type.split("/", 1)[0]]
|
||||||
|
|
||||||
return BrowseMediaSource(
|
return BrowseMediaSource(
|
||||||
domain=DOMAIN,
|
domain=DOMAIN,
|
||||||
identifier=f"{path}/{media_file.name}{ext}",
|
identifier=f"{path}/{media_file.name}{ext}",
|
||||||
media_class=media_class,
|
media_class=media_class,
|
||||||
media_content_type=media_file.mime_type,
|
media_content_type=media_file.content_type,
|
||||||
title=media_file.name,
|
title=media_file.name,
|
||||||
can_play=media_file.is_file,
|
can_play=not media_file.is_directory,
|
||||||
can_expand=media_file.is_directory,
|
can_expand=media_file.is_directory,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from systembridgemodels.notification import Notification
|
from systembridgeconnector.models.notification import Notification
|
||||||
|
|
||||||
from homeassistant.components.notify import (
|
from homeassistant.components.notify import (
|
||||||
ATTR_DATA,
|
ATTR_DATA,
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ from dataclasses import dataclass
|
|||||||
from datetime import UTC, datetime, timedelta
|
from datetime import UTC, datetime, timedelta
|
||||||
from typing import Final, cast
|
from typing import Final, cast
|
||||||
|
|
||||||
from systembridgemodels.modules.cpu import PerCPU
|
from systembridgeconnector.models.modules.cpu import PerCPU
|
||||||
from systembridgemodels.modules.displays import Display
|
from systembridgeconnector.models.modules.displays import Display
|
||||||
from systembridgemodels.modules.gpus import GPU
|
from systembridgeconnector.models.modules.gpus import GPU
|
||||||
|
|
||||||
from homeassistant.components.sensor import (
|
from homeassistant.components.sensor import (
|
||||||
SensorDeviceClass,
|
SensorDeviceClass,
|
||||||
|
|||||||
2
requirements_all.txt
generated
2
requirements_all.txt
generated
@@ -2949,7 +2949,7 @@ switchbot-api==2.8.0
|
|||||||
synology-srm==0.2.0
|
synology-srm==0.2.0
|
||||||
|
|
||||||
# homeassistant.components.system_bridge
|
# homeassistant.components.system_bridge
|
||||||
systembridgeconnector==5.1.0
|
systembridgeconnector==5.2.4
|
||||||
|
|
||||||
# homeassistant.components.tailscale
|
# homeassistant.components.tailscale
|
||||||
tailscale==0.6.2
|
tailscale==0.6.2
|
||||||
|
|||||||
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@@ -2461,7 +2461,7 @@ surepy==0.9.0
|
|||||||
switchbot-api==2.8.0
|
switchbot-api==2.8.0
|
||||||
|
|
||||||
# homeassistant.components.system_bridge
|
# homeassistant.components.system_bridge
|
||||||
systembridgeconnector==5.1.0
|
systembridgeconnector==5.2.4
|
||||||
|
|
||||||
# homeassistant.components.tailscale
|
# homeassistant.components.tailscale
|
||||||
tailscale==0.6.2
|
tailscale==0.6.2
|
||||||
|
|||||||
@@ -4,16 +4,16 @@ from collections.abc import Awaitable, Callable
|
|||||||
from ipaddress import ip_address
|
from ipaddress import ip_address
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from systembridgemodels.fixtures.modules.battery import FIXTURE_BATTERY
|
from systembridgeconnector.models.fixtures.modules.battery import FIXTURE_BATTERY
|
||||||
from systembridgemodels.fixtures.modules.cpu import FIXTURE_CPU
|
from systembridgeconnector.models.fixtures.modules.cpu import FIXTURE_CPU
|
||||||
from systembridgemodels.fixtures.modules.disks import FIXTURE_DISKS
|
from systembridgeconnector.models.fixtures.modules.disks import FIXTURE_DISKS
|
||||||
from systembridgemodels.fixtures.modules.displays import FIXTURE_DISPLAYS
|
from systembridgeconnector.models.fixtures.modules.displays import FIXTURE_DISPLAYS
|
||||||
from systembridgemodels.fixtures.modules.gpus import FIXTURE_GPUS
|
from systembridgeconnector.models.fixtures.modules.gpus import FIXTURE_GPUS
|
||||||
from systembridgemodels.fixtures.modules.media import FIXTURE_MEDIA
|
from systembridgeconnector.models.fixtures.modules.media import FIXTURE_MEDIA
|
||||||
from systembridgemodels.fixtures.modules.memory import FIXTURE_MEMORY
|
from systembridgeconnector.models.fixtures.modules.memory import FIXTURE_MEMORY
|
||||||
from systembridgemodels.fixtures.modules.processes import FIXTURE_PROCESSES
|
from systembridgeconnector.models.fixtures.modules.processes import FIXTURE_PROCESSES
|
||||||
from systembridgemodels.fixtures.modules.system import FIXTURE_SYSTEM
|
from systembridgeconnector.models.fixtures.modules.system import FIXTURE_SYSTEM
|
||||||
from systembridgemodels.modules import Module, ModulesData
|
from systembridgeconnector.models.modules import Module, ModulesData
|
||||||
|
|
||||||
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_TOKEN
|
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_TOKEN
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|||||||
@@ -8,21 +8,25 @@ from unittest.mock import AsyncMock, MagicMock, patch
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from systembridgeconnector.const import EventKey, EventType
|
from systembridgeconnector.const import EventKey, EventType
|
||||||
from systembridgemodels.fixtures.modules.battery import FIXTURE_BATTERY
|
from systembridgeconnector.models.fixtures.modules.battery import FIXTURE_BATTERY
|
||||||
from systembridgemodels.fixtures.modules.cpu import FIXTURE_CPU
|
from systembridgeconnector.models.fixtures.modules.cpu import FIXTURE_CPU
|
||||||
from systembridgemodels.fixtures.modules.disks import FIXTURE_DISKS
|
from systembridgeconnector.models.fixtures.modules.disks import FIXTURE_DISKS
|
||||||
from systembridgemodels.fixtures.modules.displays import FIXTURE_DISPLAYS
|
from systembridgeconnector.models.fixtures.modules.displays import FIXTURE_DISPLAYS
|
||||||
from systembridgemodels.fixtures.modules.gpus import FIXTURE_GPUS
|
from systembridgeconnector.models.fixtures.modules.gpus import FIXTURE_GPUS
|
||||||
from systembridgemodels.fixtures.modules.media import FIXTURE_MEDIA
|
from systembridgeconnector.models.fixtures.modules.media import FIXTURE_MEDIA
|
||||||
from systembridgemodels.fixtures.modules.memory import FIXTURE_MEMORY
|
from systembridgeconnector.models.fixtures.modules.memory import FIXTURE_MEMORY
|
||||||
from systembridgemodels.fixtures.modules.networks import FIXTURE_NETWORKS
|
from systembridgeconnector.models.fixtures.modules.networks import FIXTURE_NETWORKS
|
||||||
from systembridgemodels.fixtures.modules.processes import FIXTURE_PROCESSES
|
from systembridgeconnector.models.fixtures.modules.processes import FIXTURE_PROCESSES
|
||||||
from systembridgemodels.fixtures.modules.sensors import FIXTURE_SENSORS
|
from systembridgeconnector.models.fixtures.modules.sensors import FIXTURE_SENSORS
|
||||||
from systembridgemodels.fixtures.modules.system import FIXTURE_SYSTEM
|
from systembridgeconnector.models.fixtures.modules.system import FIXTURE_SYSTEM
|
||||||
from systembridgemodels.media_directories import MediaDirectory
|
from systembridgeconnector.models.media_directories import MediaDirectory
|
||||||
from systembridgemodels.media_files import MediaFile, MediaFiles
|
from systembridgeconnector.models.media_files import MediaFile, MediaFiles
|
||||||
from systembridgemodels.modules import Module, ModulesData, RegisterDataListener
|
from systembridgeconnector.models.modules import (
|
||||||
from systembridgemodels.response import Response
|
Module,
|
||||||
|
ModulesData,
|
||||||
|
RegisterDataListener,
|
||||||
|
)
|
||||||
|
from systembridgeconnector.models.response import Response
|
||||||
|
|
||||||
from homeassistant.components.system_bridge.config_flow import SystemBridgeConfigFlow
|
from homeassistant.components.system_bridge.config_flow import SystemBridgeConfigFlow
|
||||||
from homeassistant.components.system_bridge.const import DOMAIN
|
from homeassistant.components.system_bridge.const import DOMAIN
|
||||||
@@ -130,6 +134,7 @@ def mock_websocket_client(
|
|||||||
websocket_client.get_directories.return_value = [
|
websocket_client.get_directories.return_value = [
|
||||||
MediaDirectory(
|
MediaDirectory(
|
||||||
key="documents",
|
key="documents",
|
||||||
|
name="Documents",
|
||||||
path="/home/user/documents",
|
path="/home/user/documents",
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@@ -143,6 +148,8 @@ def mock_websocket_client(
|
|||||||
last_accessed=1630000000,
|
last_accessed=1630000000,
|
||||||
created=1630000000,
|
created=1630000000,
|
||||||
modified=1630000000,
|
modified=1630000000,
|
||||||
|
mod_time=1630000000,
|
||||||
|
permissions="rwxr-xr-x",
|
||||||
is_directory=True,
|
is_directory=True,
|
||||||
is_file=False,
|
is_file=False,
|
||||||
is_link=False,
|
is_link=False,
|
||||||
@@ -155,6 +162,8 @@ def mock_websocket_client(
|
|||||||
last_accessed=1630000000,
|
last_accessed=1630000000,
|
||||||
created=1630000000,
|
created=1630000000,
|
||||||
modified=1630000000,
|
modified=1630000000,
|
||||||
|
mod_time=1630000000,
|
||||||
|
permissions="rw-r--r--",
|
||||||
is_directory=False,
|
is_directory=False,
|
||||||
is_file=True,
|
is_file=True,
|
||||||
is_link=False,
|
is_link=False,
|
||||||
@@ -168,6 +177,8 @@ def mock_websocket_client(
|
|||||||
last_accessed=1630000000,
|
last_accessed=1630000000,
|
||||||
created=1630000000,
|
created=1630000000,
|
||||||
modified=1630000000,
|
modified=1630000000,
|
||||||
|
mod_time=1630000000,
|
||||||
|
permissions="rw-r--r--",
|
||||||
is_directory=False,
|
is_directory=False,
|
||||||
is_file=True,
|
is_file=True,
|
||||||
is_link=False,
|
is_link=False,
|
||||||
|
|||||||
Reference in New Issue
Block a user