} else { while ($row = $result->fetch_assoc()) { $route_id = $row['route_id']; $route = ShuttleSchedule::getRoute($route_id); $trip = $route->anyTrip($time); // skip rows whose start times are more than 1.5 loops ago if ($time - $row['start_time'] > 1.5 * $trip->duration()) continue; $stop_id = $row['stop_id']; $next_seconds = -1; $source = 'null'; $route_preds = ShuttleSchedule::getNextLoop($route_id); if (array_key_exists('lastUpdate', $route_preds)) { unset($route_preds['lastUpdate']); $source = 'nextbus'; } else { $source = 'schedule'; } $stop_preds = $route_preds[$stop_id]; $next_time = $stop_preds[0]; $next_seconds = $next_time - $time; $stopname = ShuttleSchedule::getStop($stop_id)->name; if ($next_seconds > 0 && $next_seconds < SHUTTLE_NOTIFY_THRESHOLD) { $shuttle = $route->long_name; $minutes = intval($next_seconds / 60);