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:
@@ -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", "")
|
||||
|
||||
@@ -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([
|
||||
|
||||
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user