Amazing-Python-Scripts
68 строк · 2.1 Кб
1from speedtest import Speedtest2import tkinter as tk3from tkinter import ttk4from ttkthemes import ThemedStyle5
6PRIMARY_COLOR = "#4287f5"7SECONDARY_COLOR = "#ffffff"8
9speed = Speedtest()10
11
12def measure_internet_speed():13print("Running speed test...")14
15download_speed = speed.download()16# To Convert to Mbps17download_speed = download_speed / 1024 / 102418print(f"Download Speed: {download_speed:.2f} Mbps")19download_label.config(text=f"Download Speed: {download_speed:.2f} Mbps")20
21upload_speed = speed.upload()22# To Convert to Mbps23upload_speed = upload_speed / 1024 / 102424print(f"Upload Speed: {upload_speed:.2f} Mbps")25upload_label.config(text=f"Upload Speed: {upload_speed:.2f} Mbps")26
27ping_latency = speed.results.ping28print(f"Ping latency: {ping_latency:.2f} ms")29ping_label.config(text=f"Latency: {ping_latency:.2f} ms")30
31server = speed.get_best_server()32print(f"Server: {server['sponsor']} ({server['name']})")33server_label.config(text=f"Server: {server['sponsor']} ({server['name']})")34
35
36window = tk.Tk()37window.title("Internet Speed Test")38window.geometry("500x250")39
40
41style = ThemedStyle(window)42style.theme_use('clam')43style.configure("TLabel", foreground=PRIMARY_COLOR, background=SECONDARY_COLOR)44style.configure("TButton", foreground=SECONDARY_COLOR,45background=PRIMARY_COLOR)46
47
48download_label = ttk.Label(49window, text="Download Speed: ", font=("TkDefaultFont", 15, "bold"))50download_label.pack(pady=10)51
52upload_label = ttk.Label(window, text="Upload Speed: ",53font=("TkDefaultFont", 15, "bold"))54upload_label.pack(pady=10)55
56ping_label = ttk.Label(window, text="Latency: ",57font=("TkDefaultFont", 15, "bold"))58ping_label.pack(pady=10)59
60server_label = ttk.Label(window, text="Server: ",61font=("TkDefaultFont", 15, "bold"))62server_label.pack(pady=10)63
64measure_button = tk.Button(window, text=" Run Speed Test ", command=measure_internet_speed,65fg=SECONDARY_COLOR, bg=PRIMARY_COLOR, font=("TkDefaultFont", 12, "bold"))66measure_button.pack(pady=10)67
68window.mainloop()69