--- a/maxious-canberra-transit-feed/01-extracttimes.rb
+++ b/maxious-canberra-transit-feed/01-extracttimes.rb
@@ -1,1 +1,95 @@
+require 'rubygems'
+require 'nokogiri'
+require 'open-uri'
+require 'pp'
+def makeTimetable(table, period, short_name)
+ timetable = {"stop_times" => [], "between_stops" => [], "short_name" => short_name}
+ time_points = table.xpath('tr[1]//th').map do |tp|
+ if tp.content != "\302\240" && tp.content != "" && tp.content != "
"
+ timing_point = tp.content.squeeze(" ").gsub("\r\n Platform"," - Platform").gsub(" - "," - ").gsub("\n","").gsub("\r","").gsub("\\"," / ").strip
+ end
+ end
+ time_points.delete(nil)
+ timetable["time_points"] = time_points
+ timetable["long_name"] = "To " + time_points.last
+ periodtimes = []
+ table.css('tr').each do |row|
+ times = row.css('td').map do |cell|
+ #TODO convert to GTFS time ie. replace " AM" with a
+ time = cell.content.squeeze(" ").strip
+ end
+ if not times.empty?
+ if not (route = times.shift)
+ raise("TODO: account for shifting route numbers eg. intertown/redex 62/162")
+ end
+ periodtimes << times
+ end
+ end
+ if periodtimes.size < 1
+ raise "No times for route " + short_name + " in period " + period
+ end
+ timetable["stop_times"] = { period => periodtimes }
+ # pp timetable
+ filename = timetable["short_name"] + "-" + timetable["long_name"].downcase.gsub(" ","-").gsub("/","") + "." + period + ".yml"
+ puts "Saving " + filename
+ File.open("#{File.dirname(__FILE__)}/output/"+filename, "w") do |f|
+ f.write timetable.to_yaml
+ end
+ timetable
+end
+
+#TODO fix route 934
+Dir.glob("source-html/Route*.htm*") { |file|
+ puts "Opened " + file
+ doc = Nokogiri::HTML(open(file))
+ # Search for nodes by css
+ timetables = []
+ short_name = "";
+ doc.xpath('//title').each do |title|
+ short_name = title.content.gsub("Route_","").gsub("Route ","").squeeze(" ").strip
+ end
+ if short_name == ""
+ raise "Route number(s) not found in