started adding settings page

This commit is contained in:
UpstreamData
2022-03-07 11:17:41 -07:00
parent 23350ea4b6
commit 2bd25c3f35
4 changed files with 74 additions and 6 deletions

View File

@@ -13,6 +13,7 @@ from fastapi.templating import Jinja2Templates
from network import MinerNetwork
from tools.web_monitor.miner_factory import miner_factory
from tools.web_monitor.web_settings import MINER_DATA_TIMEOUT, MINER_IDENTIFY_TIMEOUT, GRAPH_SLEEP_TIME
app = FastAPI()
@@ -49,7 +50,7 @@ async def dashboard_websocket(websocket: WebSocket):
await websocket.send_json(
{"datetime": datetime.datetime.now().isoformat(),
"miners": all_miner_data})
await asyncio.sleep(1)
await asyncio.sleep(GRAPH_SLEEP_TIME)
except WebSocketDisconnect:
print("Websocket disconnected.")
pass
@@ -59,9 +60,9 @@ async def dashboard_websocket(websocket: WebSocket):
async def get_miner_data_dashboard(miner_ip):
try:
miner_ip = await asyncio.wait_for(miner_factory.get_miner(miner_ip), 5)
miner_ip = await asyncio.wait_for(miner_factory.get_miner(miner_ip), MINER_IDENTIFY_TIMEOUT)
miner_summary = await asyncio.wait_for(miner_ip.api.summary(), 5)
miner_summary = await asyncio.wait_for(miner_ip.api.summary(), MINER_DATA_TIMEOUT)
if miner_summary:
if 'MHS av' in miner_summary['SUMMARY'][0].keys():
hashrate = format(
@@ -106,10 +107,10 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
while True:
try:
cur_miner = await asyncio.wait_for(
miner_factory.get_miner(str(miner_ip)), 5)
miner_factory.get_miner(str(miner_ip)), MINER_IDENTIFY_TIMEOUT)
data = await asyncio.wait_for(
cur_miner.api.multicommand("summary", "fans", "stats"), 5)
cur_miner.api.multicommand("summary", "fans", "stats"), MINER_DATA_TIMEOUT)
miner_model = await cur_miner.get_model()
@@ -166,7 +167,7 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
"datetime": datetime.datetime.now().isoformat(),
"model": miner_model}
await websocket.send_json(data)
await asyncio.sleep(1)
await asyncio.sleep(GRAPH_SLEEP_TIME)
except asyncio.exceptions.TimeoutError:
data = {"error": "The miner is not responding."}
await websocket.send_json(data)
@@ -213,6 +214,20 @@ def get_current_miner_list():
return cur_miners
@app.get("/settings")
async def settings(request: Request):
return templates.TemplateResponse("settings.html", {
"request": request,
"cur_miners": get_current_miner_list(),
})
@app.get("/remove_all_miners")
async def remove_all_miners(request: Request):
file = open("miner_list.txt", "w")
file.close()
return RedirectResponse(request.url_for("settings"))
@app.post("/scan/add_miners")
async def add_miners_scan(request: Request):
miners = await request.json()