Merge pull request #97 from naturallaw777/copilot/update-bitcoin-tiles-version-display
Fix Bitcoin tile version: only active tile shows version, preserve BIP110 tag
This commit is contained in:
@@ -1572,14 +1572,17 @@ def _parse_bitcoin_subversion(subversion: str) -> str:
|
|||||||
"""Parse a subversion string like '/Bitcoin Knots:27.1.0/' into 'v27.1.0'.
|
"""Parse a subversion string like '/Bitcoin Knots:27.1.0/' into 'v27.1.0'.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
'/Bitcoin Knots:27.1.0/' → 'v27.1.0'
|
'/Bitcoin Knots:27.1.0/' → 'v27.1.0'
|
||||||
'/Satoshi:27.0.0/' → 'v27.0.0'
|
'/Satoshi:27.0.0/' → 'v27.0.0'
|
||||||
'/Bitcoin Knots:27.1.0(bip110)/' → 'v27.1.0'
|
'/Bitcoin Knots:27.1.0(bip110)/' → 'v27.1.0 (bip110)'
|
||||||
Falls back to the raw subversion string if parsing fails.
|
Falls back to the raw subversion string if parsing fails.
|
||||||
"""
|
"""
|
||||||
m = re.search(r":(\d+\.\d+(?:\.\d+)*)", subversion)
|
m = re.search(r":(\d+\.\d+(?:\.\d+)*)", subversion)
|
||||||
if m:
|
if m:
|
||||||
return "v" + m.group(1)
|
ver = "v" + m.group(1)
|
||||||
|
if "(bip110)" in subversion.lower():
|
||||||
|
ver += " (bip110)"
|
||||||
|
return ver
|
||||||
return subversion
|
return subversion
|
||||||
|
|
||||||
|
|
||||||
@@ -1798,14 +1801,14 @@ async def api_services():
|
|||||||
service_data["sync_progress"] = sync_progress
|
service_data["sync_progress"] = sync_progress
|
||||||
service_data["sync_blocks"] = sync_blocks
|
service_data["sync_blocks"] = sync_blocks
|
||||||
service_data["sync_headers"] = sync_headers
|
service_data["sync_headers"] = sync_headers
|
||||||
if unit == "bitcoind.service":
|
if unit == "bitcoind.service" and enabled:
|
||||||
ver_info = await loop.run_in_executor(None, _get_bitcoin_version_info)
|
ver_info = await loop.run_in_executor(None, _get_bitcoin_version_info)
|
||||||
if ver_info is not None:
|
if ver_info is not None:
|
||||||
subversion = ver_info.get("subversion", "")
|
subversion = ver_info.get("subversion", "")
|
||||||
btc_ver = _parse_bitcoin_subversion(subversion)
|
btc_ver = _parse_bitcoin_subversion(subversion)
|
||||||
service_data["bitcoin_version"] = btc_ver # backwards compat
|
service_data["bitcoin_version"] = btc_ver # backwards compat
|
||||||
service_data["version"] = btc_ver
|
service_data["version"] = btc_ver
|
||||||
else:
|
elif unit != "bitcoind.service":
|
||||||
svc_ver = await loop.run_in_executor(None, _get_service_version, unit)
|
svc_ver = await loop.run_in_executor(None, _get_service_version, unit)
|
||||||
if svc_ver is not None:
|
if svc_ver is not None:
|
||||||
service_data["version"] = svc_ver
|
service_data["version"] = svc_ver
|
||||||
@@ -2081,7 +2084,7 @@ async def api_service_detail(unit: str, icon: str | None = None):
|
|||||||
service_detail["sync_progress"] = sync_progress
|
service_detail["sync_progress"] = sync_progress
|
||||||
service_detail["sync_blocks"] = sync_blocks
|
service_detail["sync_blocks"] = sync_blocks
|
||||||
service_detail["sync_headers"] = sync_headers
|
service_detail["sync_headers"] = sync_headers
|
||||||
if unit == "bitcoind.service":
|
if unit == "bitcoind.service" and enabled:
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
ver_info = await loop.run_in_executor(None, _get_bitcoin_version_info)
|
ver_info = await loop.run_in_executor(None, _get_bitcoin_version_info)
|
||||||
if ver_info is not None:
|
if ver_info is not None:
|
||||||
@@ -2089,7 +2092,7 @@ async def api_service_detail(unit: str, icon: str | None = None):
|
|||||||
btc_ver = _parse_bitcoin_subversion(subversion)
|
btc_ver = _parse_bitcoin_subversion(subversion)
|
||||||
service_detail["bitcoin_version"] = btc_ver # backwards compat
|
service_detail["bitcoin_version"] = btc_ver # backwards compat
|
||||||
service_detail["version"] = btc_ver
|
service_detail["version"] = btc_ver
|
||||||
else:
|
elif unit != "bitcoind.service":
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
svc_ver = await loop.run_in_executor(None, _get_service_version, unit)
|
svc_ver = await loop.run_in_executor(None, _get_service_version, unit)
|
||||||
if svc_ver is not None:
|
if svc_ver is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user