1
1
mirror of https://github.com/KenanZhu/AutoLibrary.git synced 2026-06-18 23:43:02 +08:00

refactor(WebBrowserDetector): 切换浏览器检测库为 browsers 并添加检测结果去重

This commit is contained in:
2026-03-22 22:04:31 +08:00
parent f56945f29e
commit 9305c559cd
+14 -5
View File
@@ -1,5 +1,5 @@
import platform import platform
import installed_browsers import browsers
from pathlib import Path from pathlib import Path
from enum import Enum from enum import Enum
@@ -128,7 +128,7 @@ class WebBrowserDetector:
self.browser_infos = [] self.browser_infos = []
try: try:
all_browsers = installed_browsers.browsers() all_browsers = list(browsers.browsers())
except Exception as e: except Exception as e:
self.browser_infos = [] self.browser_infos = []
return self.browser_infos return self.browser_infos
@@ -140,14 +140,14 @@ class WebBrowserDetector:
'msedge': WebBrowserType.EDGE, 'msedge': WebBrowserType.EDGE,
} }
for browser in all_browsers: for browser in all_browsers:
internal_name = browser.get('name', '').lower() internal_name = browser.get("browser_type", "").lower()
if internal_name not in type_map: if internal_name not in type_map:
continue # Not one of the browsers we care about continue # Not one of the browsers we care about
version = browser.get('version') version = browser.get("version", "")
if not version: if not version:
# Skip browsers with no version info (unlikely, but defensive) # Skip browsers with no version info (unlikely, but defensive)
continue continue
exe_path = browser.get('location') exe_path = browser.get("path", "")
if not exe_path: if not exe_path:
continue continue
try: try:
@@ -163,4 +163,13 @@ class WebBrowserDetector:
browser_path=path, browser_path=path,
) )
self.browser_infos.append(info) self.browser_infos.append(info)
# Deduplicate: keep only one entry per (type, version)
seen = set()
unique = []
for info in self.browser_infos:
key = (info.browser_type, info.browser_version)
if key not in seen:
seen.add(key)
unique.append(info)
self.browser_infos = unique
return self.browser_infos return self.browser_infos