summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
Diffstat (limited to 'boot')
-rwxr-xr-xboot/app/app.sh2
-rwxr-xr-xboot/app/cgi-bin/index.cgi42
-rwxr-xr-xboot/app/cgi-bin/wifi.py60
-rwxr-xr-xboot/app/connecting-template.html24
-rwxr-xr-xboot/app/index-template.html30
-rwxr-xr-xboot/app/key-template.html33
-rwxr-xr-xboot/app/pure-min.css16
-rwxr-xr-xboot/app/styles.css64
-rwxr-xr-xboot/boot.py59
-rwxr-xr-xboot/broadcast.txt11
-rw-r--r--boot/connect.txt10
-rwxr-xr-xboot/listwifi.py18
-rw-r--r--boot/net.sh17
-rw-r--r--boot/networks.yml1
-rwxr-xr-xboot/wifi.py60
15 files changed, 4 insertions, 443 deletions
diff --git a/boot/app/app.sh b/boot/app/app.sh
deleted file mode 100755
index cf7a383..0000000
--- a/boot/app/app.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-cd /home/pi/jasper/boot/app/
-sudo python -m CGIHTTPServer 8000 &
diff --git a/boot/app/cgi-bin/index.cgi b/boot/app/cgi-bin/index.cgi
deleted file mode 100755
index bcb85b5..0000000
--- a/boot/app/cgi-bin/index.cgi
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-
-from wifi import *
-import os
-import cgi
-import cgitb; cgitb.enable() # for troubleshooting
-
-# some housekeeping
-print "Content-type: text/html"
-print
-
-# get the form input
-form = cgi.FieldStorage()
-network = form.getvalue("network", "")
-password = form.getvalue("password", "")
-
-# if not submitted yet, show them the network selection form
-if not network:
-
- wifi = Wifi()
-
- networks = [x.replace("\n","") for x in wifi.access_points if x.replace("\n","") != "Jasper"]
- select_code_split = ["<option value=\"%s\">%s</option>" % (network, network) for network in networks]
- select_code = "".join(select_code_split)
-
- response = open("index-template.html","r").read().replace("{{ select_code }}", select_code)
- print response
-
-# otherwise, show them the password form
-elif not password:
- response = open("key-template.html","r").read().replace("{{ network }}", cgi.escape(network))
- print response
-
-# in the final case, process the wifi password and network data
-else:
- # show the confirmation page
- response = open("connecting-template.html","r").read()
- print response
-
- # save the configuration
- wifi = Wifi()
- wifi.add_wifi(network, password) \ No newline at end of file
diff --git a/boot/app/cgi-bin/wifi.py b/boot/app/cgi-bin/wifi.py
deleted file mode 100755
index 5cede72..0000000
--- a/boot/app/cgi-bin/wifi.py
+++ /dev/null
@@ -1,60 +0,0 @@
-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"])
diff --git a/boot/app/connecting-template.html b/boot/app/connecting-template.html
deleted file mode 100755
index f9d745c..0000000
--- a/boot/app/connecting-template.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!doctype html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Welcome to Jasper</title>
- <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans">
- <link rel="stylesheet" href="../pure-min.css">
- <link rel="stylesheet" href="../styles.css">
- </head>
- <body>
- <div class="centered">
- <center>
- <h1>Great!</h1>
- <h3>
- Jasper is now attempting to connect with your wifi network and will speak after it has restarted.
-
- <br /><br />
-
- You may now disconnect your laptop from the "Jasper" network.
- </h3>
- </center>
- </body>
-</html>
diff --git a/boot/app/index-template.html b/boot/app/index-template.html
deleted file mode 100755
index e8ad45b..0000000
--- a/boot/app/index-template.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!doctype html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Welcome to Jasper</title>
- <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans">
- <link rel="stylesheet" href="../pure-min.css">
- <link rel="stylesheet" href="../styles.css">
- </head>
- <body>
- <div class="centered">
- <center>
- <h1>Welcome to Jasper</h1>
- <h3>Please select a wifi network</h3>
-
- <form target="index.cgi" method="POST">
-
- <select name="network">
- {{ select_code }}
- </select>
-
- <br /><br />
-
- <button type="submit" class="pure-button pure-input-1 notice">Continue</button>
-
- </form>
- </center>
- </body>
-</html>
diff --git a/boot/app/key-template.html b/boot/app/key-template.html
deleted file mode 100755
index a1a076b..0000000
--- a/boot/app/key-template.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!doctype html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Welcome to Jasper</title>
- <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans">
- <link rel="stylesheet" href="../pure-min.css">
- <link rel="stylesheet" href="../styles.css">
- </head>
- <body>
- <div class="centered">
- <center>
- <h2>{{ network }}</h2>
- <h4>If the network requires one, please enter the password. Otherwise, leave it blank.</h4>
-
- <form target="index.cgi" method="POST">
-
- <input id="password" name="password" type="password" tabindex="1"></input>
- <input id="network" name="network" type="hidden" value="{{ network }}"></input>
-
- <br /><br />
-
- <button type="submit" class="pure-button pure-input-1" tabindex="3">Back</button> <button type="submit" class="pure-button pure-input-1 notice" tabindex="2">Continue</button>
-
- </form>
- </center>
-
- <script>
- document.getElementById("password").focus();
- </script>
- </body>
-</html>
diff --git a/boot/app/pure-min.css b/boot/app/pure-min.css
deleted file mode 100755
index 5f0118d..0000000
--- a/boot/app/pure-min.css
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
-Pure v0.2.0
-Copyright 2013 Yahoo! Inc. All rights reserved.
-Licensed under the BSD License.
-https://github.com/yui/pure/blob/master/LICENSE.md
-*/
-/*!
-normalize.css v1.1.2 | MIT License | git.io/normalize
-Copyright (c) Nicolas Gallagher and Jonathan Neal
-*/
-/*! normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}
-.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-size:100%;*font-size:90%;*overflow:visible;padding:.5em 1.5em;color:#444;color:rgba(0,0,0,.8);*color:#444;border:1px solid #999;border:0 rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px;-webkit-font-smoothing:antialiased;-webkit-transition:.1s linear -webkit-box-shadow;-moz-transition:.1s linear -moz-box-shadow;-ms-transition:.1s linear box-shadow;-o-transition:.1s linear box-shadow;transition:.1s linear box-shadow}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-moz-linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));background-image:-ms-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:0;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}
-.pure-form{margin:0}.pure-form fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.pure-form legend{border:0;padding:0;white-space:normal;*margin-left:-7px}.pure-form button,.pure-form input,.pure-form select,.pure-form textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.pure-form button,.pure-form input{line-height:normal}.pure-form button,.pure-form input[type=button],.pure-form input[type=reset],.pure-form input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}.pure-form button[disabled],.pure-form input[disabled]{cursor:default}.pure-form input[type=checkbox],.pure-form input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}.pure-form input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.pure-form input[type=search]::-webkit-search-cancel-button,.pure-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.pure-form button::-moz-focus-inner,.pure-form input::-moz-focus-inner{border:0;padding:0}.pure-form textarea{overflow:auto;vertical-align:top}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:.3s linear border;-moz-transition:.3s linear border;-ms-transition:.3s linear border;-o-transition:.3s linear border;transition:.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled],.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3;border-color:transparent}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border:1px solid #ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em;color:#999;font-size:90%}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;font-size:125%;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label{display:block}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form .pure-input-rounded{border-radius:20px;padding-left:1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:90%}.pure-form-message{display:block;color:#666;font-size:90%}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form label{margin-bottom:.3em;display:block}.pure-group input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:80%;padding:.2em 0 .8em}}
-.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-5-24,.pure-u-7-24,.pure-u-11-24,.pure-u-13-24,.pure-u-17-24,.pure-u-19-24,.pure-u-23-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1{display:block}.pure-u-1-2{width:50%}.pure-u-1-3{width:33.33333%}.pure-u-2-3{width:66.66666%}.pure-u-1-4{width:25%}.pure-u-3-4{width:75%}.pure-u-1-5{width:20%}.pure-u-2-5{width:40%}.pure-u-3-5{width:60%}.pure-u-4-5{width:80%}.pure-u-1-6{width:16.656%}.pure-u-5-6{width:83.33%}.pure-u-1-8{width:12.5%}.pure-u-3-8{width:37.5%}.pure-u-5-8{width:62.5%}.pure-u-7-8{width:87.5%}.pure-u-1-12{width:8.3333%}.pure-u-5-12{width:41.6666%}.pure-u-7-12{width:58.3333%}.pure-u-11-12{width:91.6666%}.pure-u-1-24{width:4.1666%}.pure-u-5-24{width:20.8333%}.pure-u-7-24{width:29.1666%}.pure-u-11-24{width:45.8333%}.pure-u-13-24{width:54.1666%}.pure-u-17-24{width:70.8333%}.pure-u-19-24{width:79.1666%}.pure-u-23-24{width:95.8333%}.pure-g-r{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em}.opera-only :-o-prefocus,.pure-g-r{word-spacing:-.43em}.pure-g-r img{max-width:100%}@media (min-width:980px){.pure-visible-phone{display:none}.pure-visible-tablet{display:none}.pure-hidden-desktop{display:none}}@media (max-width:480px){.pure-g-r>.pure-u,.pure-g-r>[class *="pure-u-"]{width:100%}}@media (max-width:767px){.pure-g-r>.pure-u,.pure-g-r>[class *="pure-u-"]{width:100%}.pure-hidden-phone{display:none}.pure-visible-desktop{display:none}}@media (min-width:768px) and (max-width:979px){.pure-hidden-tablet{display:none}.pure-visible-desktop{display:none}}
-.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{list-style:none;margin:0;padding:0}.pure-paginator li{display:inline-block;*display:inline;zoom:1;margin:0 -.35em 0 0}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width:480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid #000}}
-.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0} \ No newline at end of file
diff --git a/boot/app/styles.css b/boot/app/styles.css
deleted file mode 100755
index b6b3155..0000000
--- a/boot/app/styles.css
+++ /dev/null
@@ -1,64 +0,0 @@
-body {
- margin: 0 auto;
- line-height: 1.7em;
- font-family:Open Sans;
-}
-
-h1, h2, h3, h4 {
- font-weight:300;
- color: #888;
-}
-
-.pure-button-success,
-.pure-button-error,
-.pure-button-warning,
-.pure-button-secondary {
- color: white;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
-}
-
-.pure-button-success {
- background: rgb(28, 184, 65); /* this is a green */
-}
-
-.pure-button-error {
- background: rgb(202, 60, 60); /* this is a maroon */
-}
-
-.pure-button-warning {
- background: rgb(223, 117, 20); /* this is an orange */
-}
-
-.pure-button-secondary {
- background: rgb(66, 184, 221); /* this is a light blue */
-}
-
-
-#menu {
- margin-left: -300px;
- width: 300px;
- position: fixed;
- top: 0;
- left: 300px;
- bottom: 0;
- z-index: 1000;
- padding:20px;
-}
-
-#main {
- margin-left:80px;
-}
-
-.centered{
- width:300px;
- height:200px;
- position:absolute;
- left:50%;
- top:50%;
- margin:-100px 0 0 -150px;
-}
-
-.notice {
- background-color: #61B842;
- color: white;
-} \ No newline at end of file
diff --git a/boot/boot.py b/boot/boot.py
index 658748a..317b4c0 100755
--- a/boot/boot.py
+++ b/boot/boot.py
@@ -9,16 +9,11 @@ from wifi import *
import vocabcompiler
def say(phrase, OPTIONS = " -vdefault+m3 -p 40 -s 160 --stdout > say.wav"):
-
os.system("espeak " + json.dumps(phrase) + OPTIONS)
os.system("aplay -D hw:1,0 say.wav")
-
-
-# check if there is network connection
def configure():
try:
-
urllib2.urlopen("http://www.google.com").getcode()
print "CONNECTED TO INTERNET"
@@ -26,58 +21,12 @@ def configure():
vocabcompiler.compile()
print "STARTING CLIENT PROGRAM"
-
- try:
- os.system("/home/pi/jasper/client/start.sh &")
- except:
- os.system("/home/pi/jasper/backup/start.sh &")
- finally:
- return
-
+ os.system("/home/pi/jasper/client/start.sh &")
+
except:
- networks = yaml.safe_load(open("networks.yml", "r"))
-
- wifi = Wifi()
-
- for network in networks:
- wifi.set_default_wifi(network['SSID'], network['KEY'])
- say("Attempting to connect to network " + network['SSID'])
-
- try:
-
- urllib2.urlopen("http://www.google.com").getcode()
-
- print "CONNECTED TO INTERNET"
- print "COMPILING DICTIONARY"
- vocabcompiler.compile()
-
- print "STARTING CLIENT PROGRAM"
-
- try:
- os.system("/home/pi/jasper/client/start.sh &")
- except:
- os.system("/home/pi/jasper/backup/start.sh &")
- finally:
- return
-
- except:
- pass
-
- print "NOT CONNECTED TO INTERNET. RUNNING AD HOC NETWORK."
-
- wifi.setup_adhoc()
-
- os.system("sudo app/app.sh &")
- say("Hello.... I could not connect to a wifi network... Please log in with your computer to help me")
-
- original = open("networks.yml",'r').readlines()
- while True:
- list = open("networks.yml",'r').readlines()
- if list != original:
- break
-
- say("Thank you for adding a wifi network. Just give me a few minutes to restart.")
+ print "COULD NOT CONNECT TO NETWORK"
+ say("Hello, I could not connect to a network. Please read the documentation to configure your Raspberry Pi.")
os.system("sudo shutdown -r now")
if __name__ == "__main__":
diff --git a/boot/broadcast.txt b/boot/broadcast.txt
deleted file mode 100755
index 36942c4..0000000
--- a/boot/broadcast.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-auto lo
-iface lo inet loopback
-iface eth0 inet dhcp
-
-auto wlan0
-iface wlan0 inet static
- address 192.168.1.1
- netmask 255.255.255.0
- wireless-channel 1
- wireless-essid Jasper
- wireless-mode ad-hoc
diff --git a/boot/connect.txt b/boot/connect.txt
deleted file mode 100644
index b30d831..0000000
--- a/boot/connect.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-auto lo
-
-iface lo inet loopback
-iface eth0 inet dhcp
-
-allow-hotplug wlan0
-auto wlan0
-iface wlan0 inet dhcp
- wpa-ssid "{{ SSID }}"
- wpa-psk "{{ KEY }}" \ No newline at end of file
diff --git a/boot/listwifi.py b/boot/listwifi.py
deleted file mode 100755
index 5ee14de..0000000
--- a/boot/listwifi.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import os
-import subprocess
-
-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]
-
- print "%s is %s" % (address, name)
-
-os.system("rm temp.txt")
diff --git a/boot/net.sh b/boot/net.sh
deleted file mode 100644
index a7bee21..0000000
--- a/boot/net.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo sysctl net.ipv4.ip_forward=1
-
-sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 1.2.3.4:80
-sudo iptables -t nat -A POSTROUTING -j MASQUERADE
-sudo /etc/init.d/networking restart
-
-#sudo iptables -A POSTROUTING -t nat -o wlan0 -j MASQUERADE
-
-#sudo iptables -t mangle -N internet
-
-#sudo iptables -t mangle -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j internet
-
-#sudo iptables -t mangle -A internet -j MARK --set-mark 99
-
-#sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination 192.168.3.1
-
-#sudo /etc/init.d/networking restart
diff --git a/boot/networks.yml b/boot/networks.yml
deleted file mode 100644
index 0637a08..0000000
--- a/boot/networks.yml
+++ /dev/null
@@ -1 +0,0 @@
-[] \ No newline at end of file
diff --git a/boot/wifi.py b/boot/wifi.py
deleted file mode 100755
index 7e2fa43..0000000
--- a/boot/wifi.py
+++ /dev/null
@@ -1,60 +0,0 @@
-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"]) \ No newline at end of file