Добавил fallback моделей из adb devices

Этот коммит содержится в:
Виктор
2026-05-12 00:57:45 +09:00
родитель 4b2bd2bd48
Коммит 89df074030
+33 -4
Просмотреть файл
@@ -14,6 +14,22 @@ def list_devices() -> dict:
return result return result
def _parse_adb_line_metadata(parts: list[str]) -> dict[str, str]:
metadata: dict[str, str] = {}
for part in parts[2:]:
if ':' not in part:
continue
key, value = part.split(':', 1)
metadata[key.strip()] = value.strip()
return metadata
def _pretty_token(value: str) -> str:
return value.replace('_', ' ').replace('-', ' ').strip()
def parse_devices(stdout: str) -> list[dict]: def parse_devices(stdout: str) -> list[dict]:
devices: list[dict] = [] devices: list[dict] = []
@@ -28,6 +44,7 @@ def parse_devices(stdout: str) -> list[dict]:
serial = parts[0] serial = parts[0]
state = parts[1] state = parts[1]
adb_meta = _parse_adb_line_metadata(parts)
if state != 'device': if state != 'device':
devices.append({ devices.append({
@@ -39,13 +56,22 @@ def parse_devices(stdout: str) -> list[dict]:
continue continue
props = get_device_props(serial) props = get_device_props(serial)
brand = props.get('brand') or '' brand = props.get('brand') or adb_meta.get('product') or ''
model = props.get('model') or '' model = props.get('model') or adb_meta.get('model') or ''
device = props.get('device') or '' device = props.get('device') or adb_meta.get('device') or ''
android = props.get('android') or '' android = props.get('android') or ''
sdk = props.get('sdk') or '' sdk = props.get('sdk') or ''
title = ' '.join(part for part in [brand, model] if part).strip() or serial title_parts = []
if brand:
title_parts.append(_pretty_token(brand).title())
if model and model.lower() != brand.lower():
title_parts.append(_pretty_token(model))
if not title_parts and device:
title_parts.append(_pretty_token(device))
title = ' '.join(title_parts).strip() or serial
subtitle_parts = [] subtitle_parts = []
if android: if android:
subtitle_parts.append(f'Android {android}') subtitle_parts.append(f'Android {android}')
@@ -53,6 +79,8 @@ def parse_devices(stdout: str) -> list[dict]:
subtitle_parts.append(f'SDK {sdk}') subtitle_parts.append(f'SDK {sdk}')
if device: if device:
subtitle_parts.append(device) subtitle_parts.append(device)
if adb_meta.get('transport_id'):
subtitle_parts.append(f"transport {adb_meta['transport_id']}")
subtitle_parts.append(serial) subtitle_parts.append(serial)
devices.append({ devices.append({
@@ -63,6 +91,7 @@ def parse_devices(stdout: str) -> list[dict]:
'device': device, 'device': device,
'android': android, 'android': android,
'sdk': sdk, 'sdk': sdk,
'adb_meta': adb_meta,
'title': title, 'title': title,
'subtitle': ' · '.join(subtitle_parts), 'subtitle': ' · '.join(subtitle_parts),
}) })