summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCormac Morris <cormacmorris@hotmail.com>2015-11-09 13:40:59 +0000
committerCormac Morris <cormacmorris@hotmail.com>2015-11-09 13:40:59 +0000
commitc66d1e5d1fdc48641743e953e0134a5318459a18 (patch)
tree8ff49604dd6db5cdb265d0c30598bc6aa4be277c
First instance of script
-rwxr-xr-xcleanupbusinfo.sh25
-rw-r--r--ircbus.py54
-rw-r--r--updatebusinfo.py14
3 files changed, 93 insertions, 0 deletions
diff --git a/cleanupbusinfo.sh b/cleanupbusinfo.sh
new file mode 100755
index 0000000..398b1a7
--- /dev/null
+++ b/cleanupbusinfo.sh
@@ -0,0 +1,25 @@
+for n in "$@" ; do
+ sed -i '/<td class="StopHeader"><span>Dep/d' "$n"
+ sed -i '/<td class="StopHeader"><img alt="direction arrow/d' "$n"
+ sed -i '/<td class="StopHeader"><span>Dep/d' "$n"
+ sed -i '/<td class="StopHeader"><span><\/span><\/td>/d' "$n"
+ sed -i '/<th><span>.*<\/span>/d' "$n"
+ sed -i '/<\/tr>, <tr>/d' "$n"
+ sed -i '/<\/tr>, <tr>/d' "$n"
+ sed -i '/<!--<td><span>Dep<\/span><\/td> -->/d' "$n"
+ sed -i '/<td><span>.*<\/span><\/td>/d' "$n"
+ sed -i '/<td class=.*>    <\/td>/d' "$n"
+ sed -i '/<td class="end-row"> <\/td>/d' "$n"
+ sed -i 's/<td>//g' "$n"
+ sed -i 's/<\/td>//g' "$n"
+ sed -i 's/<th class="StopHeader"><span>//g' "$n"
+ sed -i 's/<\/span><\/th>//g' "$n"
+ sed -i 's/<h2>//g' "$n"
+ sed -i 's/<\/h2>//g' "$n"
+ sed -i 's/<tr>//g' "$n"
+ sed -i 's/\[//g' "$n"
+ sed -i 's/<\/tr>, //g' "$n"
+ sed -i 's/<\/tr>, Your feedback]//g' "$n"
+ sed -i 's/<\/tr>, //g' "$n"
+ sed -i '/^.\{,3\}$/d' "$n"
+done
diff --git a/ircbus.py b/ircbus.py
new file mode 100644
index 0000000..bd947cb
--- /dev/null
+++ b/ircbus.py
@@ -0,0 +1,54 @@
+import re
+import sys
+import optparse
+from datetime import datetime
+from operator import itemgetter
+
+parser = optparse.OptionParser(usage="!bus <stop> <number> <inbound/outbound> i.e: !bus Liberation 15 Outbound")
+parser.parse_args()
+
+def split(s):
+ return filter(None, re.split(r'(\d+)', s))
+
+ircinput = sys.stdin.read().lower()
+input = split(ircinput)
+stop = input[0].strip()
+bus = input[1].strip()
+bound = input[2].strip()
+busfile = bus + '.txt'
+now = datetime.now()
+today = now.strftime("%A").lower()
+boundsearch = (bound + " - " + today)
+datelist = []
+
+if bound == "inbound":
+ endbound = "outbound"
+else:
+ endbound = "inbound"
+
+if now.isoweekday() in range(1, 6):
+ today = "monday-friday"
+
+with open(busfile, "r") as busread:
+ for line in busread:
+ line = line.lower()
+ if boundsearch in line:
+ break
+ for line in busread:
+ linelw = line.lower()
+ if stop in linelw:
+ previousline = line.strip()
+ break
+ for line in busread:
+ break
+ for line in busread:
+ line = line.strip()
+ if ":" in line:
+ date = datetime.strptime(line, "%H:%M").time()
+ if date > now.time():
+ datelist.append(date.strftime("%H:%M" + " "))
+ else:
+ datelist.append("\n")
+ liststring = ''.join(datelist)
+ sys.stdout.write("The next " + bound + " #" + bus + " buses at " + previousline + " " + "are: " + liststring)
+ break
diff --git a/updatebusinfo.py b/updatebusinfo.py
new file mode 100644
index 0000000..3663d24
--- /dev/null
+++ b/updatebusinfo.py
@@ -0,0 +1,14 @@
+import sys
+from bs4 import BeautifulSoup
+import urllib2
+
+for id in ('1', '1A', '1G', '2', '2A', '3', '4', '5', '7', '7a', '8', '9', '12', '13', '15', '16', '19', '21', '22', 'x22', '23', '28'):
+ bus = '/' + id + '/FALSE'
+ url = 'http://libertybus.je/routes_times/timetables' + bus
+ page = urllib2.urlopen(url)
+ soup = BeautifulSoup(page)
+ table = soup.findAll(['tr', 'h2'])
+ sys.stdout = open(id + '.txt', 'w')
+ print table
+
+