added a bidirectional sort on table headers and changed to an "Open in web" button to make it less convoluted and buggy to sort the table

This commit is contained in:
UpstreamData
2022-01-05 14:00:36 -07:00
parent 5ecb87ec63
commit e77cbc5415
3 changed files with 16 additions and 7 deletions

View File

@@ -31,18 +31,27 @@ async def sort_data(index: int or str):
# wattage # wattage
if re.match("[0-9]* W", data_list[0][index]): if re.match("[0-9]* W", data_list[0][index]):
new_list = sorted(data_list, key=lambda x: int(x[index].replace(" W", ""))) new_list = sorted(data_list, key=lambda x: int(x[index].replace(" W", "")))
if data_list == new_list:
new_list = sorted(data_list, reverse=True, key=lambda x: int(x[index].replace(" W", "")))
# hashrate # hashrate
elif re.match("[0-9]*\.?[0-9]* TH\/s", data_list[0][index]): elif re.match("[0-9]*\.?[0-9]* TH\/s", data_list[0][index]):
new_list = sorted(data_list, key=lambda x: float(x[index].replace(" TH/s", ""))) new_list = sorted(data_list, key=lambda x: float(x[index].replace(" TH/s", "")))
if data_list == new_list:
new_list = sorted(data_list, reverse=True, key=lambda x: float(x[index].replace(" TH/s", "")))
# ip addresses # ip addresses
elif re.match("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", elif re.match("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
data_list[0][index]): data_list[0][index]):
new_list = sorted(data_list, key=lambda x: ipaddress.ip_address(x[index])) new_list = sorted(data_list, key=lambda x: ipaddress.ip_address(x[index]))
if data_list == new_list:
new_list = sorted(data_list, reverse=True, key=lambda x: ipaddress.ip_address(x[index]))
# everything else, hostname and user # everything else, hostname and user
else: else:
new_list = sorted(data_list, key=lambda x: x[index]) new_list = sorted(data_list, key=lambda x: x[index])
if data_list == new_list:
new_list = sorted(data_list, reverse=True, key=lambda x: x[index])
await update_ui_with_data("ip_table", new_list) await update_ui_with_data("ip_table", new_list)
await update_ui_with_data("status", "") await update_ui_with_data("status", "")

View File

@@ -16,7 +16,10 @@ layout = [
[sg.Column([ [sg.Column([
[sg.Column([ [sg.Column([
[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.Button("GET DATA", key='get_data'),
sg.Button("OPEN IN WEB", key='open_in_web')],
[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.Table( [sg.Table(
@@ -32,7 +35,6 @@ layout = [
size=(105, 27), size=(105, 27),
expand_x=True, expand_x=True,
enable_click_events=True, enable_click_events=True,
bind_return_key=True
)] )]
]), ]),
sg.Column([ sg.Column([

View File

@@ -22,9 +22,9 @@ async def ui():
if event[0] == 'ip_table': if event[0] == 'ip_table':
if event[2][0] == -1: if event[2][0] == -1:
await sort_data(event[2][1]) await sort_data(event[2][1])
if event == 'ip_table': if event == 'open_in_web':
if value["ip_table"]: for row in value["ip_table"]:
webbrowser.open("http://" + window["ip_table"].Values[value["ip_table"][0]][0]) webbrowser.open("http://" + window["ip_table"].Values[row][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("/")
@@ -58,8 +58,6 @@ async def ui():
await generate_config_ui() await generate_config_ui()
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():