1-
2- from re import search as searchPattern
3-
4- from components .scripts .Redirect import Redirect
5- from components .layout .forms .WifiSelector import WifiSelector
61from net .www .WebserverRoute import WebserverRoute
2+ from components .layout .forms .WifiSelector import WifiSelector
73from net .Wifi import Wifi
8-
4+ from utils .Device import Device
5+ from net .WifiConfig import WifiConfig
96
107class Routes :
118 @WebserverRoute .get ("/" )
129 def index (request , response ):
13- return response . send ( Redirect ( "/wifi" , 0 ))
14- return response .render ("/index" )
15-
10+
11+ return response .getFile ("/index" )
12+
1613 @WebserverRoute .get ("/wifi" )
17- def wifi_get (request , response ):
18- return response .render ( "/wifi" , ** {
19- "SSID_SELECTOR " : WifiSelector ( * [ network [ "ssid" ] for network in Wifi .networks ]), # todo: WLAN netwerk scan => Arg parse erin
20- "MESSAGE " : "Failed to connect to wifi, please connect to a nearby access point"
14+ def wifi (request , response ):
15+ response .setParams ( ** {
16+ "MESSAGE " : "Already connected to wifi network" if Wifi .wifi_connected else "No wifi network specified, or failed to connect" ,
17+ "SSID_SELECTOR " : WifiSelector ( * [ network [ "ssid" ] for network in Wifi . networks ])
2118 })
22-
23- @WebserverRoute .post ("/wifi" )
24- def wifi_post (request , response ):
25- params = request .PARAMS
26- message = """
27- <b>Attempting to connect to {ssid}.. page will reload in a second.</b>
28- {redirect}
29- """ .format (ssid = " " .join (params ["ssid" ].split ("+" )), redirect = Redirect ("/" , 5000 ))
30-
31- if not len (request .PARAMS ):
32- message = "Wifi not connected, please connect to a wifi access point."
33- elif not all (i in params .keys () for i in ["ssid" , "password" ]):
34- message = "Wifi SSID or password was not set"
3519
36- return response .render ("/wifi" , ** {
37- "SSID_SELECTOR" : WifiSelector (* [network ["ssid" ] for network in Wifi .networks ]), # todo: WLAN netwerk scan => Arg parse erin
38- "MESSAGE" : message
20+ return response .getFile ("/wifi" )
21+
22+ @WebserverRoute .post ("/wifi" )
23+ def wifi (request , response ):
24+ print (response .parameters )
25+ response .setParams (** {
26+ "MESSAGE" : "Already connected to wifi network" if Wifi .wifi_connected else "No wifi network specified, or failed to connect" ,
27+ "SSID_SELECTOR" : WifiSelector (* [network ["ssid" ] for network in Wifi .networks ])
3928 })
40-
29+ if all (key in response .parameters .keys () for key in ["ssid" , "password" ]):
30+ WifiConfig .wlan_ssid = response .parameters ["ssid" ]
31+ WifiConfig .wlan_password = response .parameters ["password" ]
32+ Device .hard_reset ()
33+
34+ return response .getFile ("/wifi" )
35+
4136 @WebserverRoute .get ("/change_adhoc" )
42- def adhoc_set_get (request , response ):
43- return response .render ( "/change_adhoc" , ** {
44- "MESSAGE" : "Failed to connect to wifi, please connect to a nearby access point "
37+ def adhoc (request , response ):
38+ response .setParams ( ** {
39+ "MESSAGE" : ""
4540 })
46-
41+ return response .getFile ("/change_adhoc" )
42+
4743 @WebserverRoute .post ("/change_adhoc" )
48- def adhoc_set_post (request , response ):
49- params = request . PARAMS
50-
51- message = "<b>Assigning new access point password.</b>"
52- if not len ( request . PARAMS ) or not all ( i in params . keys () for i in [ "password" , "password_verify" ]):
53- message = "Invalid request"
54- elif params [ " password" ] != params [ "password_verify" ]:
55- message = "Passwords did not match"
56-
57- return response .render ("/change_adhoc" , ** {
58- "MESSAGE" : message
59- })
44+ def adhoc (request , response ):
45+ if any ([ i not in response . parameters . keys () for i in [ "password_verify" , "password" ]]):
46+ response . setParams ( MESSAGE = "Invalid request" )
47+ elif response . parameters [ "password" ] != response . parameters [ "password_verify" ]:
48+ response . setParams ( MESSAGE = "Password did not match" )
49+ else :
50+ response . setParams ( MESSAGE = "ADHOC password changed succesfully" )
51+ Device . hard_reset ()
52+
53+ return response .getFile ("/change_adhoc" )
54+
55+
0 commit comments