feature: add AM old and goldshell configs.
This commit is contained in:
@@ -108,6 +108,15 @@ class MinerConfig:
|
|||||||
fan_mode=FanModeConfig.from_am_modern(web_conf)
|
fan_mode=FanModeConfig.from_am_modern(web_conf)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_am_old(cls, web_conf: dict):
|
||||||
|
return cls.from_am_modern(web_conf)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_goldshell(cls, web_conf: dict):
|
||||||
|
return cls(
|
||||||
|
pools=PoolConfig.from_am_modern(web_conf),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def merge(a: dict, b: dict):
|
def merge(a: dict, b: dict):
|
||||||
|
|||||||
@@ -89,7 +89,6 @@ class Pool(MinerConfigValue):
|
|||||||
f"Password{idx}": self.password,
|
f"Password{idx}": self.password,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def as_bosminer(self, user_suffix: str = None):
|
def as_bosminer(self, user_suffix: str = None):
|
||||||
if user_suffix is not None:
|
if user_suffix is not None:
|
||||||
return {
|
return {
|
||||||
@@ -105,7 +104,15 @@ class Pool(MinerConfigValue):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_am_modern(cls, web_pool: dict):
|
def from_am_modern(cls, web_pool: dict):
|
||||||
return cls(url=web_pool["url"], user=web_pool["user"], password=web_pool["pass"])
|
return cls(
|
||||||
|
url=web_pool["url"], user=web_pool["user"], password=web_pool["pass"]
|
||||||
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_goldshell(cls, web_pool: dict):
|
||||||
|
return cls(
|
||||||
|
url=web_pool["url"], user=web_pool["user"], password=web_pool["pass"]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -158,15 +165,7 @@ class PoolGroup(MinerConfigValue):
|
|||||||
return pools
|
return pools
|
||||||
|
|
||||||
def as_goldshell(self, user_suffix: str = None) -> list:
|
def as_goldshell(self, user_suffix: str = None) -> list:
|
||||||
pools = []
|
return [pool.as_goldshell(user_suffix) for pool in self.pools]
|
||||||
idx = 0
|
|
||||||
while idx < 3:
|
|
||||||
if len(self.pools) > idx:
|
|
||||||
pools.append(self.pools[idx].as_am_modern(user_suffix=user_suffix))
|
|
||||||
else:
|
|
||||||
pools.append(Pool("", "", "").as_am_modern())
|
|
||||||
idx += 1
|
|
||||||
return pools
|
|
||||||
|
|
||||||
def as_avalon(self, user_suffix: str = None) -> dict:
|
def as_avalon(self, user_suffix: str = None) -> dict:
|
||||||
if len(self.pools) > 0:
|
if len(self.pools) > 0:
|
||||||
@@ -211,6 +210,9 @@ class PoolGroup(MinerConfigValue):
|
|||||||
pools.append(Pool.from_am_modern(pool))
|
pools.append(Pool.from_am_modern(pool))
|
||||||
return cls(pools=pools)
|
return cls(pools=pools)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_goldshell(cls, web_pools: list):
|
||||||
|
return cls([Pool.from_goldshell(p) for p in web_pools])
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -260,7 +262,6 @@ class PoolConfig(MinerConfigValue):
|
|||||||
return self.groups[0].as_inno(user_suffix=user_suffix)
|
return self.groups[0].as_inno(user_suffix=user_suffix)
|
||||||
return PoolGroup().as_inno()
|
return PoolGroup().as_inno()
|
||||||
|
|
||||||
|
|
||||||
def as_bosminer(self, user_suffix: str = None) -> dict:
|
def as_bosminer(self, user_suffix: str = None) -> dict:
|
||||||
if len(self.groups) > 0:
|
if len(self.groups) > 0:
|
||||||
return {
|
return {
|
||||||
@@ -280,3 +281,7 @@ class PoolConfig(MinerConfigValue):
|
|||||||
pool_data = web_conf["pools"]
|
pool_data = web_conf["pools"]
|
||||||
|
|
||||||
return cls([PoolGroup.from_am_modern(pool_data)])
|
return cls([PoolGroup.from_am_modern(pool_data)])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_goldshell(cls, web_pools: list):
|
||||||
|
return cls([PoolGroup.from_goldshell(web_pools)])
|
||||||
|
|||||||
@@ -349,11 +349,11 @@ class AntminerOld(CGMiner):
|
|||||||
async def get_config(self) -> MinerConfig:
|
async def get_config(self) -> MinerConfig:
|
||||||
data = await self.web.get_miner_conf()
|
data = await self.web.get_miner_conf()
|
||||||
if data:
|
if data:
|
||||||
self.config = MinerConfig().from_raw(data)
|
self.config = MinerConfig.from_am_old(data)
|
||||||
return self.config
|
return self.config
|
||||||
|
|
||||||
async def send_config(self, config: MinerConfig, user_suffix: str = None) -> None:
|
async def send_config(self, config: MinerConfig, user_suffix: str = None) -> None:
|
||||||
await self.web.set_miner_conf(config.as_x17(user_suffix=user_suffix))
|
await self.web.set_miner_conf(config.as_am_old(user_suffix=user_suffix))
|
||||||
|
|
||||||
async def get_mac(self) -> Union[str, None]:
|
async def get_mac(self) -> Union[str, None]:
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class BFGMinerGoldshell(BFGMiner):
|
|||||||
self.data_locations = GOLDSHELL_DATA_LOC
|
self.data_locations = GOLDSHELL_DATA_LOC
|
||||||
|
|
||||||
async def get_config(self) -> MinerConfig:
|
async def get_config(self) -> MinerConfig:
|
||||||
return MinerConfig().from_raw(await self.web.pools())
|
return MinerConfig.from_goldshell(await self.web.pools())
|
||||||
|
|
||||||
async def send_config(self, config: MinerConfig, user_suffix: str = None) -> None:
|
async def send_config(self, config: MinerConfig, user_suffix: str = None) -> None:
|
||||||
pools_data = await self.web.pools()
|
pools_data = await self.web.pools()
|
||||||
@@ -80,7 +80,7 @@ class BFGMinerGoldshell(BFGMiner):
|
|||||||
self.config = config
|
self.config = config
|
||||||
|
|
||||||
# send them back 1 at a time
|
# send them back 1 at a time
|
||||||
for pool in config.as_goldshell(user_suffix=user_suffix):
|
for pool in config.as_goldshell(user_suffix=user_suffix)["pools"]:
|
||||||
await self.web.newpool(
|
await self.web.newpool(
|
||||||
url=pool["url"], user=pool["user"], password=pool["pass"]
|
url=pool["url"], user=pool["user"], password=pool["pass"]
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user