This commit is contained in:
Rich
2021-07-08 19:49:21 +01:00
parent f567faa7be
commit 14bea9750c

View File

@@ -42,7 +42,7 @@ def scan_networks():
connected = "*"
if a == 1:
if line.find("Encryption key:off") != -1:
password = " "
password = ""
a = 2
else:
password = "WPA2"
@@ -146,7 +146,10 @@ network={{
try:
output = subprocess.run(
["sudo", "/usr/bin/systemctl", "start", "wpa_supplicant"], stdout=subprocess.PIPE, stderr=subprocess.PIPE,timeout=20
["sudo", "/usr/bin/systemctl", "start", "wpa_supplicant"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
timeout=20,
).stdout.decode("utf-8")
output = subprocess.run(
["sudo", "/usr/sbin/ifup", "wlan0"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=20
@@ -165,14 +168,55 @@ def connect(ssid, security):
if security == "WPA2":
return redirect(url_for("wpa", ssid=ssid))
cmd = CMD_JOIN.replace("*SSID*", ssid)
# network={
# ssid="my ssid with spaces"
# key_mgmt=NONE
# }
if not RPI:
cmd = CMD_JOIN.replace("*SSID*", ssid)
output = subprocess.run(cmd.split(" "), stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.decode("utf-8")
if output.find("Error") == -1:
return render_template("message.html", message="Successfully connected to {}".format(ssid))
return render_template("message.html", message="Failed to connect to {}".format(ssid))
else:
wpa = """country=GB # Your 2-digit country code
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={{
ssid="{}"
key_mgmt=NONE
}}
""".format(
ssid
)
output = subprocess.run(
["sudo", "/usr/sbin/ifdown", "wlan0"], stdout=subprocess.PIPE, stderr=subprocess.PIPE
).stdout.decode("utf-8")
output = subprocess.run(
["sudo", "/usr/bin/systemctl", "stop", "wpa_supplicant"], stdout=subprocess.PIPE, stderr=subprocess.PIPE
).stdout.decode("utf-8")
with open("/etc/wpa_supplicant/wpa_supplicant.conf", "wt") as f:
f.write(wpa)
try:
output = subprocess.run(
["sudo", "/usr/bin/systemctl", "start", "wpa_supplicant"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
timeout=20,
).stdout.decode("utf-8")
output = subprocess.run(
["sudo", "/usr/sbin/ifup", "wlan0"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=20
).stdout.decode("utf-8")
except:
return render_template("message.html", message="Failt to connected to {}".format(ssid))
output = subprocess.run(cmd.split(" "), stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.decode("utf-8")
if output.find("Error") == -1:
return render_template("message.html", message="Successfully connected to {}".format(ssid))
return render_template("message.html", message="Failed to connect to {}".format(ssid))
@app.route("/disconnect/<string:ssid>", methods=["GET", "POST"])
@login_required