From: Maxious Date: Wed, 25 Jan 2012 05:26:58 +0000 Subject: Avoid validation for cheap SSL certificates used by Transport for Canberra X-Git-Url: http://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=e782e44a6c17cdcd3e054c7cb5d2d1d950a8d0d0 --- Avoid validation for cheap SSL certificates used by Transport for Canberra --- --- a/about.php +++ b/about.php @@ -35,7 +35,8 @@ Some icons by Joseph Wain / glyphish.com
Native clients also available for iPhone(cbrTimetable by Sandor Kolotenko , ACT Buses by David Sullivan) - , Android (MyBus 2.0 by Imagine Team) + , Android (MyBus 2.0 by Imagine Team, GetMe2 Canberra by +Colin Thompson ) and Windows Phone 7 (TransHub Canberra by Soul Solutions) Other web clients include iTranzit.
GTFS-realtime API: --- a/include/common-request.inc.php +++ b/include/common-request.inc.php @@ -57,11 +57,14 @@ if (isset($_REQUEST['stopids'])) { $stopids = explode(",", filter_var($_REQUEST['stopids'], FILTER_SANITIZE_STRING)); } -if (isset($_REQUEST['routeids'])) { - $routeids = explode(",", filter_var($_REQUEST['routeids'], FILTER_SANITIZE_STRING)); -} if (isset($_REQUEST['tripid'])) { $tripid = filter_var($_REQUEST['tripid'], FILTER_SANITIZE_STRING); +} +if (isset($_REQUEST['routeid'])) { + $routeid = filter_var($_REQUEST['routeid'], FILTER_SANITIZE_STRING); +} +if (isset($_REQUEST['directionid'])) { + $directionid = filter_var($_REQUEST['directionid'], FILTER_SANITIZE_STRING); } if (isset($_REQUEST['stopid'])) { $stopid = filter_var($_REQUEST['stopid'], FILTER_SANITIZE_NUMBER_INT); --- a/include/common-session.inc.php +++ b/include/common-session.inc.php @@ -61,8 +61,10 @@ } //debug(print_r($_SESSION, true) , "session"); -function current_time() { - return ($_REQUEST['time'] ? $_REQUEST['time'] : date("H:i:s")); +function current_time($time = "") { + if ($_REQUEST['time']) return $_REQUEST['time']; + else if ($time != "") date("H:i:s",$time); + else return date("H:i:s"); } ?> --- a/include/common-template.inc.php +++ b/include/common-template.inc.php @@ -175,7 +175,7 @@
'; if ($GTFSREnabled) { $overrides = getServiceOverride(); - if ($overrides['service_id']) { + if (isset($overrides['service_id'])) { if ($overrides['service_id'] == "noservice") { echo '
Buses are not running today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; --- a/include/common-transit.inc.php +++ b/include/common-transit.inc.php @@ -20,41 +20,44 @@ 'saturday', 'weekday' ); -function service_period_day ($spid) { - $idParts = explode("-",$spid); - return strtolower($idParts[2]); -} + function service_period($date = "") { - if (isset($_REQUEST['service_period'])) + if (isset($_REQUEST['service_period'])) { return $_REQUEST['service_period']; + } + $override = getServiceOverride($date); - if ($override['service_id']) { - return service_period_day ($override['service_id']); - } - - switch (date('w', ($date != "" ? $date : time()))) { - case 0: - return 'sunday'; - case 6: - return 'saturday'; - default: - return 'weekday'; - } -} + if (isset($override['service_id'])) { + return strtolower($override['service_id']); + } + $date = ($date != "" ? $date : time()); + $dow = date('w', $date); + + switch ($dow) { + case 0: + return 'sunday'; + case 6: + return 'saturday'; + default: + return 'weekday'; + } +} + function service_ids($service_period) { switch ($service_period) { case 'sunday': - return Array("2010-TUGGSUN-Sunday-20","2010-BELCSUN-Sunday-19"); + return Array("Sunday", "Sunday"); case 'saturday': - return Array("2010-BELCSAT-Saturday-19","2010-TUGGSAT-Saturday-19"); + return Array("Saturday", "Saturday"); default: //return 'weekday'; - return Array("2010-BELCMAST-Weekday-15","2010-TUGGMAST-Weekday-14"); - } -} + return Array("Weekday", "Weekday-SchoolVacation"); + } +} + function valid_service_ids() { - return array_merge(service_ids(""),service_ids('saturday'),service_ids('sunday')); + return array_merge(service_ids(""), service_ids('saturday'), service_ids('sunday')); } function midnight_seconds($time = "") { --- a/include/db/route-dao.inc.php +++ b/include/db/route-dao.inc.php @@ -61,8 +61,8 @@ } return $query->fetchAll(); } -function getRouteDescription($routeID) { - $trip = getRouteNextTrip($routeID); +function getRouteDescription($routeID, $directionID) { + $trip = getRouteNextTrip($routeID, $directionID); $start = getTripStartingPoint($trip['trip_id']); $end = getTripDestination($trip['trip_id']); return "From ".$start['stop_name']." to ".$end['stop_name']; @@ -86,30 +86,6 @@ $query = "Select * from routes order by route_short_name;"; debug($query, "database"); $query = $conn->prepare($query); - $query->execute(); - if (!$query) { - databaseError($conn->errorInfo()); - return Array(); - } - return $query->fetchAll(); -} - -function getRoutesByNumber($routeNumber = "", $directionID = "",$service_period = "") { - global $conn; - if ($routeNumber != "") { - $query = "Select distinct routes.route_id,routes.route_short_name,routes.route_long_name,service_id from routes join trips on trips.route_id = -routes.route_id join stop_times on stop_times.trip_id = trips.trip_id -where route_short_name = :routeNumber OR route_short_name LIKE :routeNumber2 order by route_short_name;"; - } else { - $query = "SELECT DISTINCT route_short_name from routes order by route_short_name"; - } - debug($query, "database"); - $query = $conn->prepare($query); - if ($routeNumber != "") { - $query->bindParam(":routeNumber", $routeNumber); - $routeNumber2 = "% " . $routeNumber; - $query->bindParam(":routeNumber2", $routeNumber2); - } $query->execute(); if (!$query) { databaseError($conn->errorInfo()); @@ -141,16 +117,21 @@ return $query->fetchAll(); } -function getRouteNextTrip($routeID) { +function getRouteNextTrip($routeID, $directionID) { global $conn; - $query = "select routes.route_id,direction_id,trips.trip_id,departure_time from routes join trips on trips.route_id = routes.route_id -join stop_times on stop_times.trip_id = trips.trip_id where arrival_time > :currentTime and routes.route_id = :routeID order by + $query = "select routes.route_id,direction_id,trips.trip_id,trip_headsign,departure_time from routes join trips on trips.route_id = routes.route_id +join stop_times on stop_times.trip_id = trips.trip_id where arrival_time between :currentTime and :futureTime +and routes.route_id = :routeID and trips.direction_id = :directionID order by arrival_time limit 1"; debug($query, "database"); $query = $conn->prepare($query); $query->bindParam(":currentTime", current_time()); + $futureTime = current_time(strtotime(current_time() ." +2h")); + if (date("h",strtotime(current_time()) > 22)) $futureTime = "23:59:59"; + $query->bindParam(":futureTime", $futureTime); $query->bindParam(":routeID", $routeID); + $query->bindParam(":directionID", $directionID); $query->execute(); databaseError($conn->errorInfo()); if (!$query) { @@ -158,15 +139,21 @@ return Array(); } $r = $query->fetch(PDO :: FETCH_ASSOC); - - // past last trip of the day special case - if (sizeof($r) < 16) { - $query = "select * from routes join trips on trips.route_id = routes.route_id -join stop_times on stop_times.trip_id = trips.trip_id where routes.route_id = :routeID order by + return $r; +} + +function getRouteFirstTrip($routeID,$directionID) { + global $conn; + + $query = "select * from routes join trips on trips.route_id = routes.route_id +join stop_times on stop_times.trip_id = trips.trip_id where routes.route_id = :routeID +and trips.direction_id = :directionID order by arrival_time DESC limit 1"; debug($query, "database"); $query = $conn->prepare($query); $query->bindParam(":routeID", $routeID); + + $query->bindParam(":directionID", $directionID); $query->execute(); if (!$query) { databaseError($conn->errorInfo()); @@ -174,12 +161,11 @@ } $r = $query->fetch(PDO :: FETCH_ASSOC); - } - return $r; -} - -function getRouteAtStop($routeID, $stop_id) { - $nextTrip = getRouteNextTrip($routeID); + return $r; +} + +function getRouteAtStop($routeID, $directionID, $stop_id) { + $nextTrip = getRouteNextTrip($routeID, $directionID); if ($nextTrip['trip_id']) { foreach (getTripStopTimes($nextTrip['trip_id']) as $tripStop) { if ($tripStop['stop_id'] == $stop_id) @@ -189,7 +175,7 @@ return Array(); } -function getRoutesTrips($routeIDs, $directionID = "", $service_period = "") { +function getRouteTrips($routeID, $directionID = "", $service_period = "") { global $conn; if ($service_period == "") $service_period = service_period(); @@ -201,12 +187,11 @@ $directionSQL = " and direction_id = :directionID "; $query = "select routes.route_id,trips.trip_id,service_id,arrival_time, stop_id, stop_sequence from routes join trips on trips.route_id = routes.route_id join stop_times on stop_times.trip_id = trips.trip_id where (service_id=:service_periodA OR service_id=:service_periodB) -AND (routes.route_id = :routeIDA OR routes.route_id = :routeIDB) " . $directionSQL . " and stop_sequence = '1' order by +AND (routes.route_id = :routeID) " . $directionSQL . " and stop_sequence = '1' order by arrival_time "; debug($query, "database"); $query = $conn->prepare($query); - $query->bindParam(":routeIDA", $routeIDs[0]); - $query->bindParam(":routeIDB", $routeIDs[1]); + $query->bindParam(":routeID", $routeID); $query->bindParam(":service_periodA", $sidA); $query->bindParam(":service_periodB", $sidB); if ($directionSQL != "") @@ -290,7 +275,7 @@ if ($limit != "") $limitSQL = " LIMIT :limit "; global $conn; - $query = "SELECT service_id,trips.route_id,route_short_name,route_long_name,min(stops.stop_id) as stop_id, + $query = "SELECT service_id,trips.route_id,trips.direction_id,route_short_name,route_long_name,min(stops.stop_id) as stop_id, min(ST_Distance(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), FALSE)) as distance FROM stop_times join trips on trips.trip_id = stop_times.trip_id @@ -298,7 +283,7 @@ join stops on stops.stop_id = stop_times.stop_id WHERE (service_id=:service_periodA OR service_id=:service_periodB) AND ST_DWithin(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), :distance, FALSE) - group by service_id,trips.route_id,route_short_name,route_long_name + group by service_id,trips.route_id,trips.direction_id,route_short_name,route_long_name order by distance $limitSQL"; debug($query, "database"); $query = $conn->prepare($query); --- a/index.php +++ b/index.php @@ -20,7 +20,7 @@
-

busness time


Canberra Bus Timetables and Trip Planner +

busness time


Canberra Bus Timetables and Trip Planner
Launch Trip Planner... @@ -37,9 +37,9 @@
  • Routes By Suburb
  • Nearby Routes
  • + Busness R&D + MyWay Balance and Timeliness Survey Results Busness R&D'; - echo ' MyWay Balance and Timeliness Survey Results'; include_footer(true) ?> --- a/myway/myway_api.json.php +++ b/myway/myway_api.json.php @@ -84,6 +84,9 @@ curl_setopt($ch, CURLOPT_REFERER, "https://www.transport.act.gov.au/ARTS/getbalance.asp"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 30); + // ssl ignore + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //execute post $pageHTML = curl_exec($ch); if (curl_errno($ch)) --- a/routeList.php +++ b/routeList.php @@ -32,38 +32,35 @@ } function displayRoutes($routes) { - global $nearby; echo '