feature: add iceriver type parsing
This commit is contained in:
@@ -21,7 +21,6 @@ import ipaddress
|
|||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import warnings
|
import warnings
|
||||||
from logging import warning
|
|
||||||
from typing import Any, AsyncGenerator, Callable
|
from typing import Any, AsyncGenerator, Callable
|
||||||
|
|
||||||
import anyio
|
import anyio
|
||||||
@@ -1064,6 +1063,39 @@ class MinerFactory:
|
|||||||
except (TypeError, LookupError):
|
except (TypeError, LookupError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
async def get_miner_model_iceriver(self, ip: str) -> str | None:
|
||||||
|
async with httpx.AsyncClient(transport=settings.transport()) as client:
|
||||||
|
try:
|
||||||
|
# auth
|
||||||
|
await client.post(
|
||||||
|
f"http://{ip}/user/loginpost",
|
||||||
|
params={
|
||||||
|
"post": "6",
|
||||||
|
"user": "admin",
|
||||||
|
"pwd": settings.get(
|
||||||
|
"default_iceriver_web_password", "12345678"
|
||||||
|
),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
except httpx.HTTPError:
|
||||||
|
return None
|
||||||
|
try:
|
||||||
|
resp = await client.post(
|
||||||
|
f"http://{ip}:/user/userpanel", params={"post": "4"}
|
||||||
|
)
|
||||||
|
if not resp.status_code == 200:
|
||||||
|
return
|
||||||
|
result = resp.json()
|
||||||
|
software_ver = result["data"]["softver1"]
|
||||||
|
split_ver = software_ver.split("_")
|
||||||
|
if split_ver[-1] == "miner":
|
||||||
|
miner_ver = split_ver[-2]
|
||||||
|
else:
|
||||||
|
miner_ver = split_ver[-1].replace("miner", "")
|
||||||
|
return miner_ver.upper()
|
||||||
|
except httpx.HTTPError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
miner_factory = MinerFactory()
|
miner_factory = MinerFactory()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user