From: Maxious Date: Sat, 11 Feb 2012 06:10:07 +0000 Subject: add binary protobuf GTFSRT format X-Git-Url: https://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=714da6e6c4eb0d53169c105039fe5f387bc0db45 --- add binary protobuf GTFSRT format --- --- a/include/common-transit.inc.php +++ b/include/common-transit.inc.php @@ -172,7 +172,8 @@ if (sizeof($informedEntities) > 0) { $affectsFilteredEntities = true; - $informed_count++; + foreach ($informedEntities as $informedEntity) { + $informed_count++; $informed = Array(); $es = new transit_realtime\EntitySelector(); if ($informedEntity['informed_class'] == "agency") { @@ -190,6 +191,7 @@ $es->setTrip($td); } $alert->addInformedEntity($es); +} } if ($current_alert['cause'] != "") { $alert->setCause(constant("transit_realtime\Alert\Cause::" . $current_alert['cause'])); @@ -216,7 +218,7 @@ if ($current_alert['description'] != "") { $tsDescriptionText = new transit_realtime\TranslatedString(); $tDescriptionText = new transit_realtime\TranslatedString\Translation(); - $tDescriptionText->setText($current_alert['description']); + $tDescriptionText->setText(trim($current_alert['description'])); $tDescriptionText->setLanguage("en"); $tsDescriptionText->addTranslation($tDescriptionText); $alert->setDescriptionText($tsDescriptionText); --- a/include/common.inc.php +++ b/include/common.inc.php @@ -51,8 +51,9 @@ || strstr($_SERVER['PHP_SELF'], "lib/") || strstr($_SERVER['PHP_SELF'], "geo/") || strstr($_SERVER['PHP_SELF'], "include/") - || strstr($_SERVER['PHP_SELF'], "servicealerts/")) + || strstr($_SERVER['PHP_SELF'], "rtpis/")) { $basePath = "../"; +} function isDebugServer() { --- a/rtpis/gtfs-realtime.php +++ b/rtpis/gtfs-realtime.php @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -include ('include/common.inc.php'); +include ('../include/common.inc.php'); function accept_header($header = false) { // http://jrgns.net/parse_http_accept_header $toret = null; @@ -36,9 +36,23 @@ } return $toret; } +function usage() { +echo "Usage notes: Must specify format json/protobuf and gtfs-realtime feedtype alerts/updates. If callback is specified, will provide jsonp. Can filter with parmaters filter_class route/stop and filter_id with the id specified in GTFS."; +die(); +} + +$filter_class = (isset($_REQUEST['filter_class']) ? $_REQUEST['filter_class'] : ""); +$filter_id = (isset($_REQUEST['filter_id']) ? $_REQUEST['filter_id']:""); + $json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json"); if ($_REQUEST['json']) { - $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsJSON($filter_class,$filter_id); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsJSON($filter_class,$filter_id); +} else { + usage(); +} header('Content-Type: application/json; charset=utf8'); // header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); header('Access-Control-Max-Age: 3628800'); @@ -47,7 +61,25 @@ $json = '(' . $return . ');'; //must wrap in parens and end with semicolon //print_r($_GET['callback'] . $json); //callback is prepended for json-p } - else + else { echo $return; + } +} else if ($_REQUEST['protobuf']) { +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsBinary($filter_class,$filter_id); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsBinary($filter_class,$filter_id); +} else { + usage(); +} + header('Content-Type: application/x-protobuf'); +header('Content-Disposition: attachment; filename="'.(isset($_REQUEST['updates'])?"updates.":"alerts.").date("c").'.protobuf"'); +// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); + header('Access-Control-Max-Age: 3628800'); + header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); + echo $return; +} else { +usage(); } ?> + --- a/rtpis/servicealert_editor.php +++ b/rtpis/servicealert_editor.php @@ -116,8 +116,7 @@
- +
@@ -185,3 +184,4 @@ } include_footer(); ?> + --- a/rtpis/siri.php +++ b/rtpis/siri.php @@ -1,8 +1,80 @@ $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens); + } + } + usort($toret, array('Parser', 'compare_media_ranges')); + } + return $toret; +} +function usage() { +echo "Usage notes: Must specify format json/xml. If callback is specified, will provide jsonp. Can filter with parmaters filter_class route/stop and filter_id with the id specified in GTFS." +die(); +} +$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json"); +if ($_REQUEST['json']) { +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else { + usage(); +} + header('Content-Type: application/json; charset=utf8'); +// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); + header('Access-Control-Max-Age: 3628800'); + header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); + if (isset($_GET['callback'])) { + $json = '(' . $return . ');'; //must wrap in parens and end with semicolon + //print_r($_GET['callback'] . $json); //callback is prepended for json-p + } + else { + echo $return; + } +} else if ($_REQUEST['xml']) { +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsBinary($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsBinary($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else { + usage(); +} + header('Content-Type: application/json; charset=utf8'); +// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); + header('Access-Control-Max-Age: 3628800'); + header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); + echo $return; +} else { +usage(); +} ?>