Skip to content

Commit

Permalink
Revert "Merge remote-tracking branch 'iRail/development' into feature…
Browse files Browse the repository at this point in the history
…/interruptions"

This reverts commit f8b4fec, reversing
changes made to 0931daa.

# Conflicts:
#	api/data/NMBS/connections.php
#	api/data/NMBS/liveboard.php
  • Loading branch information
jncn committed Dec 30, 2015
1 parent 37f10c9 commit 4170b47
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 119 deletions.
71 changes: 28 additions & 43 deletions api/data/NMBS/connections.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,47 +160,46 @@ public static function parseHafasXml($serverData, $lang, $fast, $showAlerts = fa

foreach ($xml->ConRes->ConnectionList->Connection as $conn) {
$connection[$i] = new Connection();
$connection[$i]->duration = tools::transformDuration($conn->Overview->Duration->Time);

$connection[$i]->departure = new DepartureArrival();
$connection[$i]->arrival = new DepartureArrival();
$connection[$i]->duration = tools::transformDuration($conn->Overview->Duration->Time);
$connection[$i]->departure->station = $fromstation;
$connection[$i]->departure->direction = (trim($conn->Overview->Departure->BasicStop->Dep->Platform->Text));
$connection[$i]->departure->time = tools::transformTime($conn->Overview->Departure->BasicStop->Dep->Time, $conn->Overview->Date);
$connection[$i]->departure->canceled = $conn->Overview->Departure->BasicStop->StopPrognosis->Status != "SCHEDULED" ? true : false;

$connection[$i]->arrival = new DepartureArrival();
$connection[$i]->arrival->station = $tostation;
$connection[$i]->departure->platform = new Platform();
$connection[$i]->departure->direction = (trim($conn->Overview->Departure->BasicStop->Dep->Platform->Text));
$connection[$i]->departure->platform->name = trim($conn->Overview->Departure->BasicStop->Dep->Platform->Text);
$connection[$i]->arrival->time = tools::transformTime($conn->Overview->Arrival->BasicStop->Arr->Time, $conn->Overview->Date);
$connection[$i]->arrival->canceled = $conn->Overview->Arrival->BasicStop->StopPrognosis->Status != "SCHEDULED" ? true : false;

$connection[$i]->arrival->platform = new Platform();
$connection[$i]->arrival->platform->name = trim($conn->Overview->Arrival->BasicStop->Arr->Platform->Text);
$connection[$i]->arrival->station = $tostation;
//Delay and platform changes
$departureDelay = 0;
$departurePlatform = trim($conn->Overview->Departure->BasicStop->Dep->Platform->Text);
$departurePlatformNormal = true;

$arrivalDelay = 0;
$arrivalPlatform = trim($conn->Overview->Arrival->BasicStop->Arr->Platform->Text);
$arrivalPlatformNormal = true;

$delay0 = 0;
$delay1 = 0;
$platformNormal0 = true;
$platformNormal1 = true;
if ($conn->RtStateList->RtState['value'] == 'HAS_DELAYINFO') {
//echo "delay: " .$conn->Overview -> Departure -> BasicStop -> StopPrognosis -> Dep -> Time . "\n";
$departureDelay = tools::transformTime($conn->Overview->Departure->BasicStop->StopPrognosis->Dep->Time, $conn->Overview->Date) - $connection[$i]->departure->time;
if ($departureDelay < 0) {
$departureDelay = 0;
$delay0 = tools::transformTime($conn->Overview->Departure->BasicStop->StopPrognosis->Dep->Time, $conn->Overview->Date) - $connection[$i]->departure->time;
if ($delay0 < 0) {
$delay0 = 0;
}
$arrivalDelay = tools::transformTime($conn->Overview->Arrival->BasicStop->StopPrognosis->Arr->Time, $conn->Overview->Date) - $connection[$i]->arrival->time;
if ($arrivalDelay < 0) {
$arrivalDelay = 0;
//echo "delay: " .$conn->Overview -> Departure -> BasicStop -> StopPrognosis -> Dep -> Time . "\n";
$delay1 = tools::transformTime($conn->Overview->Arrival->BasicStop->StopPrognosis->Arr->Time, $conn->Overview->Date) - $connection[$i]->arrival->time;
if ($delay1 < 0) {
$delay1 = 0;
}
if (isset($conn->Overview->Departure->BasicStop->StopPrognosis->Dep->Platform->Text)) {
$departurePlatform = trim($conn->Overview->Departure->BasicStop->StopPrognosis->Dep->Platform->Text);
$departurePlatformNormal = false;
$platform0 = trim($conn->Overview->Departure->BasicStop->StopPrognosis->Dep->Platform->Text);
$platformNormal0 = false;
}
if (isset($conn->Overview->Arrival->BasicStop->StopPrognosis->Arr->Platform->Text)) {
$arrivalPlatform = trim($conn->Overview->Arrival->BasicStop->StopPrognosis->Arr->Platform->Text);
$arrivalPlatformNormal = false;
$platform1 = trim($conn->Overview->Arrival->BasicStop->StopPrognosis->Arr->Platform->Text);
$platformNormal1 = false;
}
}
$connection[$i]->departure->delay = $delay0;
$connection[$i]->departure->platform->normal = $platformNormal0;
$connection[$i]->arrival->delay = $delay1;
$connection[$i]->arrival->platform->normal = $platformNormal1;

// Alerts
if ($showAlerts && isset($conn->IList)) {
Expand All @@ -214,16 +213,6 @@ public static function parseHafasXml($serverData, $lang, $fast, $showAlerts = fa
$connection[$i]->alert = $alerts;
}

$connection[$i]->departure->delay = $departureDelay;
$connection[$i]->departure->platform = new Platform();
$connection[$i]->departure->platform->name = $departurePlatform;
$connection[$i]->departure->platform->normal = $departurePlatformNormal;

$connection[$i]->arrival->delay = $arrivalDelay;
$connection[$i]->arrival->platform = new Platform();
$connection[$i]->arrival->platform->name = $arrivalPlatform;
$connection[$i]->arrival->platform->normal = $arrivalPlatformNormal;

$trains = [];
$vias = [];
$directions = [];
Expand All @@ -248,29 +237,25 @@ public static function parseHafasXml($serverData, $lang, $fast, $showAlerts = fa

if ($conn->Overview->Transfers > 0 && strcmp($connsection->Arrival->BasicStop->Station['name'], $conn->Overview->Arrival->BasicStop->Station['name']) != 0) {
//current index for the train: j-1
$departDelay = 0; //Todo: NYImplemented
$connarray = $conn->ConSectionList->ConSection;
$departTime = tools::transformTime($connarray[$connectionindex + 1]->Departure->BasicStop->Dep->Time, $conn->Overview->Date);
$departPlatform = trim($connarray[$connectionindex + 1]->Departure->BasicStop->Dep->Platform->Text);
$departDelay = 0; //Todo: NYImplemented
$departcanceled = $connarray[$connectionindex + 1]->Departure->BasicStop->StopPrognosis->Status != "SCHEDULED" ? true : false;
$arrivalTime = tools::transformTime($connsection->Arrival->BasicStop->Arr->Time, $conn->Overview->Date);
$arrivalPlatform = trim($connsection->Arrival->BasicStop->Arr->Platform->Text);
$arrivalDelay = 0; //Todo: NYImplemented
$arrivalcanceled = $connarray[$connectionindex + 1]->Arrival->BasicStop->StopPrognosis->Status != "SCHEDULED" ? true : false;

$vias[$connectionindex] = new Via();
$vias[$connectionindex]->arrival = new ViaDepartureArrival();
$vias[$connectionindex]->arrival->time = $arrivalTime;
$vias[$connectionindex]->arrival->platform = new Platform();
$vias[$connectionindex]->arrival->platform->name = $arrivalPlatform;
$vias[$connectionindex]->arrival->platform->normal = 1;
$vias[$connectionindex]->arrival->canceled = $arrivalcanceled;
$vias[$connectionindex]->departure = new ViaDepartureArrival();
$vias[$connectionindex]->departure->time = $departTime;
$vias[$connectionindex]->departure->platform = new Platform();
$vias[$connectionindex]->departure->platform->name = $departPlatform;
$vias[$connectionindex]->departure->platform->normal = 1;
$vias[$connectionindex]->departure->canceled = $departcanceled;
$vias[$connectionindex]->timeBetween = $departTime - $arrivalTime;
if (isset($directions[$k - 1])) {
$vias[$connectionindex]->direction = $directions[$k - 1];
Expand Down
44 changes: 14 additions & 30 deletions api/data/NMBS/liveboard.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,56 +115,41 @@ private static function parseData($xml, $time, $lang, $fast = false, $showAlerts
$journey = $data->Journey[$i];

$left = 0;
$canceled = false;
$delay = (string) $journey['delay'];
if ($delay == '-') {
$delay = '0';
}

if ($delay == 'cancel') {
$delay = 0;
$canceled = true;
}

if (isset($journey['e_delay'])) {
$delay = $journey['e_delay'] * 60;
}

preg_match("/\+\s*(\d+)/", $delay, $d);
if (isset($d[1])) {
$delay = $d[1] * 60;
}
preg_match("/\+\s*(\d):(\d+)/", $delay, $d);
if (isset($d[1])) {
$delay = $d[1] * 3600 + $d[2] * 60;
}

$platform = '?'; // Indicate to end user platform is unknown
$platformNormal = true;
$platform = '';
if (isset($journey['platform'])) {
$platform = (string) $journey['platform'];
}

if (isset($journey['newpl'])) {
$platform = (string) $journey['newpl'];
$platformNormal = false;
}

$time = '00d'.(string) $journey['fpTime'].':00';
preg_match("/(..)\/(..)\/(..)/si", (string) $journey['fpDate'], $dayxplode);
$dateparam = '20'.$dayxplode[3].$dayxplode[2].$dayxplode[1];

$unixtime = tools::transformtime($time, $dateparam);

//GET DELAY
preg_match("/\+\s*(\d+)/", $delay, $d);
if (isset($d[1])) {
$delay = $d[1] * 60;
}
preg_match("/\+\s*(\d):(\d+)/", $delay, $d);
if (isset($d[1])) {
$delay = $d[1] * 3600 + $d[2] * 60;
}

if ($fast) {
$stationNode = new Station();
$stationNode->name = (string) $journey['targetLoc'];
$stationNode->name = (string) $journey['dir'];
$stationNode->name = str_replace(' [B]', '', $stationNode->name);
$stationNode->name = str_replace(' [NMBS/SNCB]', '', $stationNode->name);
} else {
$stationNode = stations::getStationFromName($journey['targetLoc'], $lang);
$stationNode = stations::getStationFromName($journey['dir'], $lang);
}

$platformNormal = true;
$veh = $journey['hafasname'];
$veh = substr($veh, 0, 8);
$veh = str_replace(' ', '', $veh);
Expand All @@ -178,7 +163,6 @@ private static function parseData($xml, $time, $lang, $fast = false, $showAlerts
$nodes[$i]->platform = new Platform();
$nodes[$i]->platform->name = $platform;
$nodes[$i]->platform->normal = $platformNormal;
$nodes[$i]->canceled = $canceled;
$nodes[$i]->left = $left;
$hour_ = substr((string) $data->Journey[$i]['fpTime'], 0, 2);
if ($hour_ != '23' && $hour == '23') {
Expand Down
69 changes: 29 additions & 40 deletions api/data/NMBS/vehicleinformation.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,38 +101,13 @@ private static function getData($html, $lang, $fast)
continue;
} // row with no class-attribute contain no data

// Delay and canceled
$splitter = '***';
$delaycontent = preg_replace("/<br\W*?\/>/", $splitter, $node->children[2]);
$delayelements = explode($splitter, strip_tags($delaycontent));
// print_r($delayelements);

$arrivalDelay = trim($delayelements[0]);
$arrivalCanceled = false;
if (!$arrivalDelay) {
$arrivalDelay = 0;
} elseif (stripos($arrivalDelay, '+') !== false) {
$arrivalDelay = preg_replace('/[^0-9]/', '', $arrivalDelay) * 60;
} else {
$arrivalDelay = 0;
$arrivalCanceled = true;
}

$departureDelay = trim($delayelements[1]);
$departureCanceled = false;
if (!$departureDelay) {
$departureDelay = $arrivalDelay ? $arrivalDelay : 0;
} elseif (stripos($departureDelay, '+') !== false) {
$departureDelay = preg_replace('/[^0-9]/', '', $departureDelay) * 60;
} else {
$departureDelay = 0;
$departureCanceled = true;
}
$delaynodearray = $node->children[2]->find('span');
$delay = count($delaynodearray) > 0 ? trim(reset($delaynodearray[0]->nodes[0]->_)) : '0';
$delayseconds = preg_replace('/[^0-9]/', '', $delay) * 60;

// Time
$timenodearray = $node->children[1]->find('span');
$arriveTime = reset($timenodearray[0]->nodes[0]->_);
$departureTime = count($nodes[$i]->children[1]->children) == 3 ? reset($nodes[$i]->children[1]->children[2]->nodes[0]->_) : $arriveTime;
$spans = $node->children[1]->find('span');
$arriveTime = reset($spans[0]->nodes[0]->_);
$departureTime = count($nodes[$i]->children[1]->children) == 3 ? reset($nodes[$i]->children[1]->children[0]->nodes[0]->_) : $arriveTime;

if (count($node->children[3]->find('a'))) {
$as = $node->children[3]->find('a');
Expand All @@ -141,7 +116,6 @@ private static function getData($html, $lang, $fast)
$stationname = reset($node->children[3]->nodes[0]->_);
}

// Platform
$platformnodearray = $node->children[5]->find('span');
if (count($platformnodearray) > 0) {
$normalplatform = 0;
Expand All @@ -150,10 +124,6 @@ private static function getData($html, $lang, $fast)
$normalplatform = 1;
$platform = reset($node->children[5]->nodes[0]->_);
}

if ($platform == "&nbsp;") {
$platform = '?'; // Indicate to end user platform is unknown
}

if (isset($node->children[3]->children[0])) {
$link = $node->children[3]->children[0]->{'attr'}['href'];
Expand Down Expand Up @@ -184,8 +154,7 @@ private static function getData($html, $lang, $fast)

$stops[$j] = new Stop();
$stops[$j]->station = $station;
$stops[$j]->delay = $departureDelay;
$stops[$j]->canceled = $departureCanceled;
$stops[$j]->delay = $delayseconds;
$stops[$j]->time = tools::transformTime('00d'.$departureTime.':00', date('Ymd'));
$stops[$j]->platform = new Platform();
$stops[$j]->platform->name = $platform;
Expand Down Expand Up @@ -339,8 +308,28 @@ private static function parseCorrectUrl($html)
private static function isOtherTrain($serverData)
{
$html = str_get_html($serverData);
$traindata = $html->getElementById('tq_trainroute_content_table_alteAnsicht');
return ! is_object($traindata);
$originalTrainname = null;

$nodes = $html->getElementById('tq_trainroute_content_table_alteAnsicht')
->getElementByTagName('table')
->children;

for ($i = 1; $i < count($nodes); $i++) {
$node = $nodes[$i];
if (! count($node->attr)) {
continue;
} // row with no class-attribute contain no data

$trainname = str_replace(' ', '', reset($node->children[4]->nodes[0]->_));
if (! is_object($originalTrainname)) {
$originalTrainname = $trainname;
} elseif ($trainname != '&nbsp;' && $trainname != $originalTrainname) {
// This URL returns route of the other train
return true;
}
}

return false;
}

private static function getServerDataByUrl($url)
Expand Down
2 changes: 0 additions & 2 deletions api/data/structs.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ class DepartureArrival
public $time;
public $vehicle;
public $platform;
public $canceled;
}

class Platform
Expand Down Expand Up @@ -78,7 +77,6 @@ class Stop
public $time;
public $delay;
public $platform;
public $canceled;
}

class Alert
Expand Down
5 changes: 1 addition & 4 deletions api/output/Xml.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
*/
class Xml extends Printer
{
private $ATTRIBUTES = ['id', '@id', 'locationX', 'locationY', 'standardname', 'left', 'delay', 'canceled', 'normal'];
private $ATTRIBUTES = ['id', '@id', 'locationX', 'locationY', 'standardname', 'left', 'delay', 'normal'];
private $rootname;

// make a stack of array information, always work on the last one
Expand Down Expand Up @@ -88,9 +88,6 @@ public function startObject($name, $object)
if ($elementkey == '@id') {
$elementkey = 'URI';
}
if ($elementkey == 'normal' || $elementkey == 'canceled') {
$elementval = intval($elementval);
}
echo " $elementkey=\"$elementval\"";
} elseif ($elementkey == 'name') {
$named = $elementval;
Expand Down

0 comments on commit 4170b47

Please sign in to comment.