--- a/maxious-canberra-transit-feed/01-extracttimes.rb +++ b/maxious-canberra-transit-feed/01-extracttimes.rb @@ -14,7 +14,11 @@ timetable = {"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 + timing_point = tp.content.squeeze(" ").gsub(" Platform"," (Platform").gsub(" - "," - ").gsub("\n","").gsub("\r","").gsub("\\"," / ").squeeze(" ").strip + if (tp.content.match('Platform')) + timing_point.concat(")") + end; + timing_point end end time_points.delete(nil) @@ -24,7 +28,7 @@ table.css('tr').each do |row| times = row.css('td').map do |cell| time = cell.content.squeeze(" ").strip - time = time.gsub(" AM","a").gsub(" PM","p").gsub("12:08 AM","1208x").gsub(":","").gsub("1.","1").gsub("2.","2") + time = time.gsub(/ *A\S?M/,"a").gsub(/ ?P\S?M/,"p").gsub("12:08 AM","1208x").gsub(":","").gsub("1.","1").gsub("2.","2") time = time.gsub("3.","3").gsub("4.","4") time = time.gsub("5.","5").gsub("6.","6").gsub("7.","7").gsub("8.","8").gsub("9.","9").gsub("10.","10") time = time.gsub("11.","11").gsub("12.","12").gsub(/\.+/,"-") @@ -41,7 +45,8 @@ end timetable[period] = periodtimes.to_a # pp timetable - filename = timetable["short_name"] + "-" + timetable["long_name"].downcase.gsub(" ","-").gsub("/","") + "." + period + ".yml" + filename = timetable["short_name"] + "-" + timetable["long_name"]+ "." + period + ".yml" + filename = filename.downcase.gsub(" ","-").gsub("/","-").gsub("(","").gsub(")","") puts "Saving " + filename File.open("#{File.dirname(__FILE__)}/output/"+filename, "w") do |f| f.write timetable.to_yaml @@ -57,7 +62,7 @@ timetables = [] short_name = ""; doc.xpath('//title').each do |title| - short_name = title.content.gsub("Route_","").gsub("Route ","").squeeze(" ").strip + short_name = title.content.gsub("Route_","").gsub("Route ","").gsub(", ","/").squeeze(" ").strip end if short_name == "" raise "Route number(s) not found in tag"