Add https support
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "hysteria-panel"
|
||||
version = "0.2.3"
|
||||
version = "0.3.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.13"
|
||||
|
||||
@@ -4,8 +4,9 @@ import requests
|
||||
from . import __version__
|
||||
|
||||
class HysteriaAPI:
|
||||
def __init__(self, host: str, port: int, secret: str):
|
||||
self.base_url = f"http://{host}:{port}"
|
||||
def __init__(self, host: str, port: int, secret: str, use_https: bool = False):
|
||||
scheme = "https" if use_https else "http"
|
||||
self.base_url = f"{scheme}://{host}:{port}"
|
||||
self.timeout = 5 # seconds
|
||||
|
||||
self._session = requests.Session()
|
||||
|
||||
@@ -39,6 +39,8 @@ class HysteriaGUI(tb.Window):
|
||||
if "secret" in config:
|
||||
self.login_frame.secret_entry.insert(0, f'{config.get("secret", "")}')
|
||||
self.login_frame.save_password_var.set(True)
|
||||
if "https" in config:
|
||||
self.login_frame.https_var.set(bool(config.get("https", False)))
|
||||
|
||||
def _save_config(self):
|
||||
config = {
|
||||
@@ -47,6 +49,8 @@ class HysteriaGUI(tb.Window):
|
||||
}
|
||||
if self.login_frame.save_password_var.get():
|
||||
config["secret"] = self.login_frame.secret_entry.get().strip()
|
||||
# Save HTTPS preference if Remember Me is enabled
|
||||
config["https"] = bool(self.login_frame.https_var.get())
|
||||
|
||||
utils.save_config(config)
|
||||
|
||||
@@ -54,6 +58,7 @@ class HysteriaGUI(tb.Window):
|
||||
host = self.login_frame.host_entry.get().strip()
|
||||
port = self.login_frame.port_entry.get().strip()
|
||||
secret = self.login_frame.secret_entry.get().strip()
|
||||
use_https = bool(self.login_frame.https_var.get())
|
||||
|
||||
if not host:
|
||||
self.login_frame.status_label.config(text="Host cannot be empty.")
|
||||
@@ -66,7 +71,7 @@ class HysteriaGUI(tb.Window):
|
||||
return False
|
||||
|
||||
try:
|
||||
self._api = HysteriaAPI(host, int(port), secret)
|
||||
self._api = HysteriaAPI(host, int(port), secret, use_https=use_https)
|
||||
|
||||
if self.login_frame.remember_me_var.get():
|
||||
self._save_config()
|
||||
|
||||
@@ -30,7 +30,7 @@ class LoginView(tb.Frame):
|
||||
self.secret_entry.grid(row=2, column=1, padx=10, pady=10)
|
||||
self.secret_entry.bind("<Return>", lambda event: self.on_connect())
|
||||
|
||||
# Remember Me and Save Password Checkboxes
|
||||
# Remember Me, Save Password, and HTTPS toggle
|
||||
remember_frame = tb.Frame(self)
|
||||
remember_frame.pack(pady=5)
|
||||
|
||||
@@ -38,6 +38,10 @@ class LoginView(tb.Frame):
|
||||
self.remember_me_check = tb.Checkbutton(remember_frame, text="Remember Me", variable=self.remember_me_var, bootstyle="primary") # type: ignore
|
||||
self.remember_me_check.pack(side="left", padx=10)
|
||||
|
||||
self.https_var = tb.BooleanVar()
|
||||
self.https_check = tb.Checkbutton(remember_frame, text="Use HTTPS", variable=self.https_var, bootstyle="primary") # type: ignore
|
||||
self.https_check.pack(side="left", padx=10)
|
||||
|
||||
self.save_password_var = tb.BooleanVar()
|
||||
self.save_password_check = tb.Checkbutton(remember_frame, text="Save Password", variable=self.save_password_var, bootstyle="primary") # type: ignore
|
||||
self.save_password_check.pack(side="left", padx=10)
|
||||
|
||||
Reference in New Issue
Block a user