fix: ключи строковые, значения bytes в binary_resource

This commit is contained in:
2026-05-17 15:56:22 +07:00
parent bcf98cf043
commit 7f470ada63
+5 -7
View File
@@ -85,17 +85,15 @@ def fetch_address_list(api) -> list[str]:
resource = api.get_binary_resource("/ip/firewall/address-list") resource = api.get_binary_resource("/ip/firewall/address-list")
all_entries = resource.get() all_entries = resource.get()
log.info("DEBUG address-list raw: %s", all_entries)
ip_list = [] ip_list = []
for entry in all_entries: for entry in all_entries:
entry_list = decode(entry.get(b"list", b"")) # Ключи строковые, значения — bytes
log.info("DEBUG entry list='%s' address='%s'", entry_list, decode(entry.get(b"address", b""))) entry_list = decode(entry.get("list", b""))
if entry_list != ADDRESS_LIST_NAME: if entry_list != ADDRESS_LIST_NAME:
continue continue
if decode(entry.get(b"disabled", b"false")) == "true": if decode(entry.get("disabled", b"false")) == "true":
continue continue
address = decode(entry.get(b"address", b"")).strip() address = decode(entry.get("address", b"")).strip()
if "/" in address: if "/" in address:
address = address.split("/")[0] address = address.split("/")[0]
if address: if address:
@@ -174,7 +172,7 @@ def fetch_identity(api) -> str:
resource = api.get_binary_resource("/system/identity") resource = api.get_binary_resource("/system/identity")
result = resource.get() result = resource.get()
if result: if result:
return decode(result[0].get(b"name", MIKROTIK_HOST.encode())) return decode(result[0].get("name", MIKROTIK_HOST.encode()))
return MIKROTIK_HOST return MIKROTIK_HOST
except Exception: except Exception:
return MIKROTIK_HOST return MIKROTIK_HOST