1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-19 18:38:58 +00:00

Update systembridgeconnector to 5.2.4, fix media source (#158917)

This commit is contained in:
Aidan Timson
2025-12-15 11:47:34 +00:00
committed by GitHub
parent 6c96acda82
commit 8eb3e63d9d
14 changed files with 66 additions and 55 deletions

View File

@@ -13,12 +13,12 @@ from systembridgeconnector.exceptions import (
ConnectionErrorException,
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 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
from homeassistant.config_entries import ConfigEntry

View File

@@ -12,8 +12,8 @@ from systembridgeconnector.exceptions import (
ConnectionClosedException,
ConnectionErrorException,
)
from systembridgeconnector.models.modules import GetData, Module
from systembridgeconnector.websocket_client import WebSocketClient
from systembridgemodels.modules import GetData, Module
import voluptuous as vol
from homeassistant.config_entries import SOURCE_REAUTH, ConfigFlow, ConfigFlowResult

View File

@@ -2,7 +2,7 @@
from typing import Final
from systembridgemodels.modules import Module
from systembridgeconnector.models.modules import Module
DOMAIN = "system_bridge"

View File

@@ -13,13 +13,13 @@ from systembridgeconnector.exceptions import (
ConnectionClosedException,
ConnectionErrorException,
)
from systembridgeconnector.websocket_client import WebSocketClient
from systembridgemodels.modules import (
from systembridgeconnector.models.modules import (
GetData,
Module,
ModulesData,
RegisterDataListener,
)
from systembridgeconnector.websocket_client import WebSocketClient
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (

View File

@@ -2,7 +2,7 @@
from dataclasses import dataclass, field
from systembridgemodels.modules import (
from systembridgeconnector.models.modules import (
CPU,
GPU,
Battery,

View File

@@ -9,6 +9,6 @@
"integration_type": "device",
"iot_class": "local_push",
"loggers": ["systembridgeconnector"],
"requirements": ["systembridgeconnector==5.1.0"],
"requirements": ["systembridgeconnector==5.2.4"],
"zeroconf": ["_system-bridge._tcp.local."]
}

View File

@@ -5,7 +5,7 @@ from __future__ import annotations
import datetime as dt
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 (
MediaPlayerDeviceClass,

View File

@@ -2,9 +2,9 @@
from __future__ import annotations
from systembridgemodels.media_directories import MediaDirectory
from systembridgemodels.media_files import MediaFile, MediaFiles
from systembridgemodels.media_get_files import MediaGetFiles
from systembridgeconnector.models.media_directories import MediaDirectory
from systembridgeconnector.models.media_files import MediaFile, MediaFiles
from systembridgeconnector.models.media_get_files import MediaGetFiles
from homeassistant.components.media_player import MediaClass
from homeassistant.components.media_source import (
@@ -183,9 +183,9 @@ def _build_media_items(
for file in media_files.files
if file.is_directory
or (
file.is_file
and file.mime_type is not None
and file.mime_type.startswith(MEDIA_MIME_TYPES)
not file.is_directory
and file.content_type is not None
and file.content_type.startswith(MEDIA_MIME_TYPES)
)
],
)
@@ -197,20 +197,20 @@ def _build_media_item(
) -> BrowseMediaSource:
"""Build individual media item."""
ext = ""
if media_file.is_file and media_file.mime_type is not None:
ext = f"~~{media_file.mime_type}"
if not media_file.is_directory and media_file.content_type is not None:
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
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(
domain=DOMAIN,
identifier=f"{path}/{media_file.name}{ext}",
media_class=media_class,
media_content_type=media_file.mime_type,
media_content_type=media_file.content_type,
title=media_file.name,
can_play=media_file.is_file,
can_play=not media_file.is_directory,
can_expand=media_file.is_directory,
)

View File

@@ -5,7 +5,7 @@ from __future__ import annotations
import logging
from typing import Any
from systembridgemodels.notification import Notification
from systembridgeconnector.models.notification import Notification
from homeassistant.components.notify import (
ATTR_DATA,

View File

@@ -7,9 +7,9 @@ from dataclasses import dataclass
from datetime import UTC, datetime, timedelta
from typing import Final, cast
from systembridgemodels.modules.cpu import PerCPU
from systembridgemodels.modules.displays import Display
from systembridgemodels.modules.gpus import GPU
from systembridgeconnector.models.modules.cpu import PerCPU
from systembridgeconnector.models.modules.displays import Display
from systembridgeconnector.models.modules.gpus import GPU
from homeassistant.components.sensor import (
SensorDeviceClass,

2
requirements_all.txt generated
View File

@@ -2949,7 +2949,7 @@ switchbot-api==2.8.0
synology-srm==0.2.0
# homeassistant.components.system_bridge
systembridgeconnector==5.1.0
systembridgeconnector==5.2.4
# homeassistant.components.tailscale
tailscale==0.6.2

View File

@@ -2461,7 +2461,7 @@ surepy==0.9.0
switchbot-api==2.8.0
# homeassistant.components.system_bridge
systembridgeconnector==5.1.0
systembridgeconnector==5.2.4
# homeassistant.components.tailscale
tailscale==0.6.2

View File

@@ -4,16 +4,16 @@ from collections.abc import Awaitable, Callable
from ipaddress import ip_address
from typing import Any
from systembridgemodels.fixtures.modules.battery import FIXTURE_BATTERY
from systembridgemodels.fixtures.modules.cpu import FIXTURE_CPU
from systembridgemodels.fixtures.modules.disks import FIXTURE_DISKS
from systembridgemodels.fixtures.modules.displays import FIXTURE_DISPLAYS
from systembridgemodels.fixtures.modules.gpus import FIXTURE_GPUS
from systembridgemodels.fixtures.modules.media import FIXTURE_MEDIA
from systembridgemodels.fixtures.modules.memory import FIXTURE_MEMORY
from systembridgemodels.fixtures.modules.processes import FIXTURE_PROCESSES
from systembridgemodels.fixtures.modules.system import FIXTURE_SYSTEM
from systembridgemodels.modules import Module, ModulesData
from systembridgeconnector.models.fixtures.modules.battery import FIXTURE_BATTERY
from systembridgeconnector.models.fixtures.modules.cpu import FIXTURE_CPU
from systembridgeconnector.models.fixtures.modules.disks import FIXTURE_DISKS
from systembridgeconnector.models.fixtures.modules.displays import FIXTURE_DISPLAYS
from systembridgeconnector.models.fixtures.modules.gpus import FIXTURE_GPUS
from systembridgeconnector.models.fixtures.modules.media import FIXTURE_MEDIA
from systembridgeconnector.models.fixtures.modules.memory import FIXTURE_MEMORY
from systembridgeconnector.models.fixtures.modules.processes import FIXTURE_PROCESSES
from systembridgeconnector.models.fixtures.modules.system import FIXTURE_SYSTEM
from systembridgeconnector.models.modules import Module, ModulesData
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_TOKEN
from homeassistant.core import HomeAssistant

View File

@@ -8,21 +8,25 @@ from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from systembridgeconnector.const import EventKey, EventType
from systembridgemodels.fixtures.modules.battery import FIXTURE_BATTERY
from systembridgemodels.fixtures.modules.cpu import FIXTURE_CPU
from systembridgemodels.fixtures.modules.disks import FIXTURE_DISKS
from systembridgemodels.fixtures.modules.displays import FIXTURE_DISPLAYS
from systembridgemodels.fixtures.modules.gpus import FIXTURE_GPUS
from systembridgemodels.fixtures.modules.media import FIXTURE_MEDIA
from systembridgemodels.fixtures.modules.memory import FIXTURE_MEMORY
from systembridgemodels.fixtures.modules.networks import FIXTURE_NETWORKS
from systembridgemodels.fixtures.modules.processes import FIXTURE_PROCESSES
from systembridgemodels.fixtures.modules.sensors import FIXTURE_SENSORS
from systembridgemodels.fixtures.modules.system import FIXTURE_SYSTEM
from systembridgemodels.media_directories import MediaDirectory
from systembridgemodels.media_files import MediaFile, MediaFiles
from systembridgemodels.modules import Module, ModulesData, RegisterDataListener
from systembridgemodels.response import Response
from systembridgeconnector.models.fixtures.modules.battery import FIXTURE_BATTERY
from systembridgeconnector.models.fixtures.modules.cpu import FIXTURE_CPU
from systembridgeconnector.models.fixtures.modules.disks import FIXTURE_DISKS
from systembridgeconnector.models.fixtures.modules.displays import FIXTURE_DISPLAYS
from systembridgeconnector.models.fixtures.modules.gpus import FIXTURE_GPUS
from systembridgeconnector.models.fixtures.modules.media import FIXTURE_MEDIA
from systembridgeconnector.models.fixtures.modules.memory import FIXTURE_MEMORY
from systembridgeconnector.models.fixtures.modules.networks import FIXTURE_NETWORKS
from systembridgeconnector.models.fixtures.modules.processes import FIXTURE_PROCESSES
from systembridgeconnector.models.fixtures.modules.sensors import FIXTURE_SENSORS
from systembridgeconnector.models.fixtures.modules.system import FIXTURE_SYSTEM
from systembridgeconnector.models.media_directories import MediaDirectory
from systembridgeconnector.models.media_files import MediaFile, MediaFiles
from systembridgeconnector.models.modules import (
Module,
ModulesData,
RegisterDataListener,
)
from systembridgeconnector.models.response import Response
from homeassistant.components.system_bridge.config_flow import SystemBridgeConfigFlow
from homeassistant.components.system_bridge.const import DOMAIN
@@ -130,6 +134,7 @@ def mock_websocket_client(
websocket_client.get_directories.return_value = [
MediaDirectory(
key="documents",
name="Documents",
path="/home/user/documents",
)
]
@@ -143,6 +148,8 @@ def mock_websocket_client(
last_accessed=1630000000,
created=1630000000,
modified=1630000000,
mod_time=1630000000,
permissions="rwxr-xr-x",
is_directory=True,
is_file=False,
is_link=False,
@@ -155,6 +162,8 @@ def mock_websocket_client(
last_accessed=1630000000,
created=1630000000,
modified=1630000000,
mod_time=1630000000,
permissions="rw-r--r--",
is_directory=False,
is_file=True,
is_link=False,
@@ -168,6 +177,8 @@ def mock_websocket_client(
last_accessed=1630000000,
created=1630000000,
modified=1630000000,
mod_time=1630000000,
permissions="rw-r--r--",
is_directory=False,
is_file=True,
is_link=False,