summaryrefslogtreecommitdiff
path: root/boot/app/cgi-bin/wifi.py
blob: 5cede7264a3f647e327f8fc4a4ca37e6d4775567 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import yaml
import os, subprocess

class Wifi:

    access_points = []

    def __init__(self):

        subprocess.call("iwlist wlan0 scan > temp.txt", shell = True)
        output = open("temp.txt")
        lines = output.readlines()

        for index, line in enumerate(lines):

            if "Address" in line:

                address = line[29:-1]
                name = lines[index + 1].split("\"")[1]
                self.access_points.append(name)

        self.access_points = list(set(self.access_points))

        os.system("rm temp.txt")

    def add_wifi(self, SSID, KEY=""):
        networks = yaml.safe_load(open("../networks.yml", "r"))

        # add new network to front of list
        network = {"SSID": SSID, "KEY": KEY}
        networks.insert(0, network)

        with open('../networks.yml', 'w') as outputFile:
            output = yaml.dump(networks)
            outputFile.write(output)

    def set_default_wifi(self, SSID, KEY=""):

        text = open("connect.txt", "r").read()
        text = text.replace("{{ SSID }}", SSID)
        text = text.replace("{{ KEY }}", KEY)

        outputFile = open("/etc/network/interfaces", "w")
        outputFile.write(text)
        outputFile.flush()
        outputFile.close()

        subprocess.call(["sudo", "/etc/init.d/networking", "restart"])

    def setup_adhoc(self):

        text = open("broadcast.txt", "r").read()
        outputFile = open("/etc/network/interfaces","w")
        outputFile.write(text)
        outputFile.flush()
        outputFile.close()

        subprocess.call(["sudo", "/etc/init.d/networking", "restart"])
        subprocess.call(['sudo', '/usr/sbin/dhcpd', '-q', '-cf', '/etc/dhcp/dhcpd.conf', '-pf', '/var/run/dhcpd.pid'])
        subprocess.call(["sudo", "/etc/init.d/networking", "restart"])