refactored periodical check

netiawifi
selfisekai 2020-09-05 01:54:23 +02:00
parent 75266f42a9
commit b05b3832ec
1 changed files with 29 additions and 17 deletions

View File

@ -19,24 +19,36 @@ class LibreFi:
networks = self.connector.list()
chosen_network = None
for network in networks:
for fxck_element in fxckers_map:
for fxck_net_name in fxck_element[0]:
if fxck_net_name[:3] == "re:":
if re.fullmatch(fxck_net_name,
"re:" + network["ssid"]):
chosen_network = network
self.current_fxcker = fxck_element[1]
break
elif fxck_net_name == network["ssid"]:
chosen_network = network
self.current_fxcker = fxck_element[1]
break
self._assign_fxcker_to_network(network)
if self.current_fxcker:
chosen_network = network
break
if chosen_network is not None:
self.connector.connect(chosen_network)
status = self.connector.status()
if status["connected"]:
check_req = requests.get(
"http://detectportal.firefox.com/success.txt",
allow_redirects=False)
if check_req.text.strip() != "success":
self.current_fxcker.unfxck()
if not self.current_fxcker:
self._assign_fxcker_to_network(
{"ssid": status["connection_name"]})
if self.current_fxcker:
check_req = requests.get(
"http://detectportal.firefox.com/success.txt",
allow_redirects=False)
if check_req.text.strip() != "success":
print(self.current_fxcker)
self.current_fxcker.unfxck(
location=check_req.headers["location"],
)
def _assign_fxcker_to_network(self, network):
for fxck_element in fxckers_map:
for fxck_net_name in fxck_element[0]:
if fxck_net_name[:3] == "re:":
if re.fullmatch(fxck_net_name,
"re:" + network["ssid"]):
self.current_fxcker = fxck_element[1]()
break
elif fxck_net_name == network["ssid"]:
self.current_fxcker = fxck_element[1]()
break
return self.current_fxcker