added the option to sort using the table headers and added a double click on the miners to open a web browser with that miner

This commit is contained in:
UpstreamData
2022-01-05 13:45:34 -07:00
parent 8ef135dfd7
commit 5ecb87ec63
2 changed files with 17 additions and 19 deletions

View File

@@ -18,15 +18,7 @@ layout = [
[sg.Text("IP List:", pad=(0, 0)), sg.Text("", key="ip_count", pad=(0, 0), size=(3, 1)), [sg.Text("IP List:", pad=(0, 0)), sg.Text("", key="ip_count", pad=(0, 0), size=(3, 1)),
sg.Button('ALL', key="select_all_ips"), sg.Text("", pad=(40, 0))], sg.Button('ALL', key="select_all_ips"), sg.Text("", pad=(40, 0))],
[sg.Text("HR Total: ", pad=(0, 0)), sg.Text("", key="hr_total")], [sg.Text("HR Total: ", pad=(0, 0)), sg.Text("", key="hr_total")],
]), ])],
sg.Column([
[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.Button('SORT W', key="sort_data_w")],
[sg.Text("")],
])
],
[sg.Table( [sg.Table(
values=[], values=[],
headings=["IP", "Hostname", "Hashrate", "Current User", "Wattage"], headings=["IP", "Hostname", "Hashrate", "Current User", "Wattage"],
@@ -37,15 +29,17 @@ layout = [
col_widths=[14, 14, 14, 26, 7], col_widths=[14, 14, 14, 26, 7],
background_color="white", background_color="white",
text_color="black", text_color="black",
size=(105, 33), size=(105, 27),
expand_x=True, expand_x=True,
enable_click_events=True,
bind_return_key=True
)] )]
]), ]),
sg.Column([ sg.Column([
[sg.Text("Config"), sg.Button("IMPORT", key="import_config"), sg.Button("CONFIG", key="send_config"), [sg.Text("Config"), sg.Button("IMPORT", key="import_config"), sg.Button("CONFIG", key="send_config"),
sg.Button("LIGHT", key="light"), sg.Button("GENERATE", key="generate_config")], sg.Button("LIGHT", key="light"), sg.Button("GENERATE", key="generate_config")],
[sg.Text("")], [sg.Text("")],
[sg.Multiline(size=(50, 34), key="config", do_not_clear=True)], [sg.Multiline(size=(50, 28), key="config", do_not_clear=True)],
]) ])
], ],
] ]

View File

@@ -9,12 +9,22 @@ from cfg_util.func.ui import sort_data
from network import MinerNetwork from network import MinerNetwork
import webbrowser
async def ui(): async def ui():
while True: while True:
event, value = window.read(timeout=10) event, value = window.read(timeout=10)
if event in (None, 'Close', sg.WIN_CLOSED): if event in (None, 'Close', sg.WIN_CLOSED):
sys.exit() sys.exit()
if isinstance(event, tuple):
if len(window["ip_table"].Values) > 0:
if event[0] == 'ip_table':
if event[2][0] == -1:
await sort_data(event[2][1])
if event == 'ip_table':
if value["ip_table"]:
webbrowser.open("http://" + window["ip_table"].Values[value["ip_table"][0]][0])
if event == 'scan': if event == 'scan':
if len(value['miner_network'].split("/")) > 1: if len(value['miner_network'].split("/")) > 1:
network = value['miner_network'].split("/") network = value['miner_network'].split("/")
@@ -46,16 +56,10 @@ async def ui():
asyncio.create_task(get_data([window["ip_table"].Values[item][0] for item in value["ip_table"]])) asyncio.create_task(get_data([window["ip_table"].Values[item][0] for item in value["ip_table"]]))
if event == "generate_config": if event == "generate_config":
await generate_config_ui() await generate_config_ui()
if event == "sort_data_ip":
asyncio.create_task(sort_data(0)) # ip index in table
if event == "sort_data_hr":
asyncio.create_task(sort_data(2)) # HR index in table
if event == "sort_data_user":
asyncio.create_task(sort_data(3)) # user index in table
if event == "sort_data_w":
asyncio.create_task(sort_data(4)) # wattage index in table
if event == "__TIMEOUT__": if event == "__TIMEOUT__":
await asyncio.sleep(0) await asyncio.sleep(0)
else:
print(event)
async def generate_config_ui(): async def generate_config_ui():