Added sort function
This commit is contained in:
@@ -36,6 +36,7 @@ class BaseMinerAPI:
|
||||
except OSError as e:
|
||||
if e.winerror == "121":
|
||||
print("Semaphore Timeout has Expired.")
|
||||
return {}
|
||||
|
||||
# create the command
|
||||
cmd = {"command": command}
|
||||
@@ -50,11 +51,14 @@ class BaseMinerAPI:
|
||||
data = b""
|
||||
|
||||
# loop to receive all the data
|
||||
while True:
|
||||
d = await reader.read(4096)
|
||||
if not d:
|
||||
break
|
||||
data += d
|
||||
try:
|
||||
while True:
|
||||
d = await reader.read(4096)
|
||||
if not d:
|
||||
break
|
||||
data += d
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
data = json.loads(data.decode('utf-8')[:-1])
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
from operator import itemgetter
|
||||
|
||||
import PySimpleGUI as sg
|
||||
import aiofiles
|
||||
@@ -27,7 +28,7 @@ layout = [
|
||||
[sg.Listbox([], size=(20, 32), key="ip_list", select_mode='extended')]
|
||||
]),
|
||||
sg.Column([
|
||||
[sg.Text("Data: ", pad=(0, 0)), sg.Button('GET', key="get_data")],
|
||||
[sg.Text("Data: ", pad=(0, 0)), sg.Button('GET', key="get_data"), sg.Button('SORT IP', key="sort_data_ip"), sg.Button('SORT HR', key="sort_data_hr"), sg.Button('SORT USER', key="sort_data_user")],
|
||||
[sg.Listbox([], size=(50, 32), key="hr_list")]
|
||||
]),
|
||||
sg.Column([
|
||||
@@ -79,7 +80,6 @@ async def import_config(ip):
|
||||
miner = await miner_factory.get_miner(ipaddress.ip_address(*ip))
|
||||
await miner.get_config()
|
||||
config = miner.config
|
||||
print(config)
|
||||
await update_ui_with_data("config", toml.dumps(config))
|
||||
await update_ui_with_data("status", "")
|
||||
|
||||
@@ -148,7 +148,6 @@ async def get_data(ip_list: list):
|
||||
window["hr_list"].update(disabled=False)
|
||||
window["hr_list"].update([item['IP'] + " | " + str(item['TH/s']) + " TH/s | " + item['user'] for item in data])
|
||||
window["hr_list"].update(disabled=True)
|
||||
|
||||
await update_ui_with_data("status", "")
|
||||
|
||||
|
||||
@@ -196,6 +195,25 @@ async def generate_config():
|
||||
}
|
||||
window['config'].update(toml.dumps(config))
|
||||
|
||||
async def sort_data(index: int):
|
||||
await update_ui_with_data("status", "Sorting Data")
|
||||
data_list = window['hr_list'].Values
|
||||
new_list = []
|
||||
for item in data_list:
|
||||
item_data = [part.strip() for part in item.split("|")]
|
||||
item_data[1] = item_data[1].replace(" TH/s", "")
|
||||
item_data[0] = ipaddress.ip_address(item_data[0])
|
||||
new_list.append(item_data)
|
||||
if index == 1:
|
||||
new_data_list = sorted(new_list, key=lambda x: float(x[index]))
|
||||
else:
|
||||
new_data_list = sorted(new_list, key=itemgetter(index))
|
||||
new_data_list = [str(item[0]) + " | " + item[1] + " TH/s | " + item[2] for item in new_data_list]
|
||||
window["hr_list"].update(disabled=False)
|
||||
window["hr_list"].update(new_data_list)
|
||||
window["hr_list"].update(disabled=True)
|
||||
await update_ui_with_data("status", "")
|
||||
|
||||
|
||||
async def ui():
|
||||
while True:
|
||||
@@ -231,6 +249,13 @@ async def ui():
|
||||
asyncio.create_task(get_data(value['ip_list']))
|
||||
if event == "generate_config":
|
||||
asyncio.create_task(generate_config())
|
||||
if event == "sort_data_ip":
|
||||
asyncio.create_task(sort_data(0))
|
||||
if event == "sort_data_hr":
|
||||
asyncio.create_task(sort_data(1))
|
||||
if event == "sort_data_user":
|
||||
print()
|
||||
asyncio.create_task(sort_data(2))
|
||||
if event == "__TIMEOUT__":
|
||||
await asyncio.sleep(0)
|
||||
|
||||
|
||||
2
main.py
2
main.py
@@ -10,7 +10,7 @@ async def main():
|
||||
good_list = list(filter(None, await asyncio.gather(*[miner.check_good_boards() for miner in miners])))
|
||||
print("\n".join(good_list))
|
||||
print(len(good_list))
|
||||
print('\n'.join([f"{str(miner.ip)}" for miner in miners]))
|
||||
# print('\n'.join([f"{str(miner.ip)}" for miner in miners]))
|
||||
|
||||
async def main_bad():
|
||||
miner_network = MinerNetwork('192.168.1.1')
|
||||
|
||||
Reference in New Issue
Block a user