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
if re.match("[0-9]* W", data_list[0][index]):
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
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", "")))
if data_list == new_list:
new_list = sorted(data_list, reverse=True, key=lambda x: float(x[index].replace(" TH/s", "")))
# 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]?)",
data_list[0][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
else:
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("status", "")

View File

@@ -16,7 +16,10 @@ layout = [
[sg.Column([
[sg.Column([
[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.Table(
@@ -32,7 +35,6 @@ layout = [
size=(105, 27),
expand_x=True,
enable_click_events=True,
bind_return_key=True
)]
]),
sg.Column([

View File

@@ -22,9 +22,9 @@ async def ui():
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 == 'open_in_web':
for row in value["ip_table"]:
webbrowser.open("http://" + window["ip_table"].Values[row][0])
if event == 'scan':
if len(value['miner_network'].split("/")) > 1:
network = value['miner_network'].split("/")
@@ -58,8 +58,6 @@ async def ui():
await generate_config_ui()
if event == "__TIMEOUT__":
await asyncio.sleep(0)
else:
print(event)
async def generate_config_ui():