Start using new HSL API
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
var app = angular.module('infoApp', ['ngAnimate', 'ngRoute']);
|
||||
|
||||
app.controller('infoscreen_main', function($scope,$http,$timeout){
|
||||
var templates = [];
|
||||
$scope.init = function(rot){
|
||||
@@ -103,13 +104,22 @@ app.controller('EventController', function($scope, $http) {
|
||||
})
|
||||
});
|
||||
|
||||
app.filter('unixTimeToDifference', function() {
|
||||
return function(input) {
|
||||
var date = moment.unix(input);
|
||||
var now = moment();
|
||||
var res = date.diff(now, 'minutes');
|
||||
return res;
|
||||
}
|
||||
})
|
||||
|
||||
app.controller('timetableCtrl',
|
||||
function($scope, $http, $interval) {
|
||||
function load(){
|
||||
function load() {
|
||||
$http.get('/infoscreen/hsl_data')
|
||||
.then(function(data, status, headers, config) { //eslint-disable-line no-unused-vars
|
||||
$scope.arr=[];
|
||||
parse(data);
|
||||
$scope.stoptimes = data.data;
|
||||
$scope.error = data.data.error || null;
|
||||
});
|
||||
$http.get('/infoscreen/hsl_data/settings')
|
||||
.then(function(data, status, headers, config) { //eslint-disable-line no-unused-vars
|
||||
@@ -117,112 +127,20 @@ app.controller('timetableCtrl',
|
||||
$scope.hurryThreshold = data.data['hurry_threshold'];
|
||||
});
|
||||
}
|
||||
$scope.$on('$destroy', function() {
|
||||
$interval.cancel(inter1);
|
||||
$interval.cancel(inter2);
|
||||
$interval.cancel(inter3);
|
||||
});
|
||||
var objects;
|
||||
$scope.arr=[];
|
||||
var dict=[];
|
||||
function parse(data){
|
||||
objects=data['data'];
|
||||
for(var objectIndex in objects){
|
||||
var stop = objects[objectIndex];
|
||||
|
||||
var lineIndex;
|
||||
for (lineIndex in stop['lines']){
|
||||
var elem=stop['lines'][lineIndex].split(":");
|
||||
dict[elem[0]]=elem[1];
|
||||
}
|
||||
for (lineIndex in stop['departures']){
|
||||
var line = stop['departures'][lineIndex];
|
||||
var time = line['time'];
|
||||
var date = line['date'];
|
||||
var hours = Math.floor(time / 100);
|
||||
var minutes = time % 100;
|
||||
if (hours >= 24) {
|
||||
hours -= 24;
|
||||
date++;
|
||||
}
|
||||
var code = line['code'].substring(1, 5);
|
||||
if (code.charAt(0) == '0') {
|
||||
code = code.substring(1,4);
|
||||
}
|
||||
|
||||
var departure = {
|
||||
"stop": stop['name'].split(",")[0],
|
||||
"dist": stop['dist'],
|
||||
"bus": code,
|
||||
"date": date,
|
||||
"time": pad(hours, 2) + ":" + pad(minutes, 2),
|
||||
"laststop": dict[line['code']].split(",")[0].split(" l.")[0],
|
||||
"hurry": false
|
||||
};
|
||||
if(departure['laststop']=='Otaniemi')
|
||||
break;
|
||||
if(departure['stop']=='Alvar Aallon puisto')
|
||||
departure['stop']="A. A. puisto"
|
||||
var trigger = true;
|
||||
for (var arrIndex = $scope.arr.length - 1; arrIndex >= 0; arrIndex--) {
|
||||
if ($scope.arr[arrIndex]['bus'] == departure['bus'] &&
|
||||
$scope.arr[arrIndex]['laststop'] == departure['laststop']) {
|
||||
|
||||
if ($scope.arr[arrIndex]['dist'] == departure['dist']){
|
||||
break;
|
||||
}
|
||||
else if ($scope.arr[arrIndex]['dist'] > departure['dist']){
|
||||
$scope.arr.splice(arrIndex, 1);
|
||||
}
|
||||
else {
|
||||
trigger = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (trigger) {
|
||||
$scope.arr.push(departure);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function pad(num, size) {
|
||||
var s = num + "";
|
||||
while (s.length < size) {
|
||||
s = "0" + s;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
delOld();
|
||||
}
|
||||
function delOld(){
|
||||
var tooSoon = typeof($scope.departureThreshold) != 'undefined' ? $scope.departureThreshold: 0;
|
||||
var hurry = typeof($scope.hurryThreshold) != 'undefined' ? $scope.hurryThreshold : 0;
|
||||
var f = new Date();
|
||||
for (var a=$scope.arr.length-1; a>=0; a--) {
|
||||
var time=$scope.arr[a]['time'].split(":");
|
||||
var date=$scope.arr[a]['date'].toString();
|
||||
var d = new Date(f);
|
||||
d.setFullYear(date.substring(0,4), date.substring(4,6)-1, date.substring(6,8));
|
||||
d.setHours(time[0]);
|
||||
d.setMinutes(time[1]);
|
||||
var diff=(d.getTime()-f.getTime());
|
||||
$scope.arr[a]['timedelta']=Math.floor(diff/60000);
|
||||
if(diff < tooSoon*60000) {
|
||||
$scope.arr.splice(a,1);
|
||||
}
|
||||
else if (diff < hurry*60000) {
|
||||
$scope.arr[a]['hurry']=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
function updateTime(){
|
||||
function update_clock() {
|
||||
$scope.clock = Date.now();
|
||||
}
|
||||
$scope.clock = Date.now();
|
||||
|
||||
$scope.$on('$destroy', function() {
|
||||
$interval.cancel(load_interval);
|
||||
$interval.cancel(clock_interval);
|
||||
});
|
||||
|
||||
var load_interval = $interval(load, 5000);
|
||||
var clock_interval = $interval(update_clock, 1000);
|
||||
|
||||
update_clock();
|
||||
load();
|
||||
var inter1=$interval(delOld,2000);
|
||||
var inter2=$interval(load,10000);
|
||||
var inter3=$interval(updateTime, 1000);
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user