Improved www.ttss.krakow.pl
Jacek Kowalski
2023-12-18 ee953eef09cc090dc98a09038ab97be55875a2a5
common.js
@@ -4,7 +4,7 @@
   t: 'proxy_tram.php',
   // t: 'http://www.ttss.krakow.pl/internetservice',
   b: 'proxy_bus.php',
   // b: 'http://91.223.13.70/internetservice',
   // b: 'http://ttss.mpk.krakow.pl/internetservice',
};
var ttss_types = ['t', 'b'];
@@ -22,29 +22,32 @@
 ********/
function Deferred(promise, request) {
   return {
      promise: promise,
      request: request,
      abort: function() {
         request.abort.bind(request);
         return Deferred(promise, request);
      },
      done: function(func) {
         return Deferred(promise.then(func), request);
      },
      fail: function(func) {
         return Deferred(promise.catch(func), request);
      },
      always: function(func) {
         return Deferred(promise.finally(func), request);
      },
   };
   this.promise = promise;
   this.request = request;
}
Deferred.prototype = {
   promise: null,
   request: null,
   abort: function() {
      this.request.abort.bind(this.request);
      return new Deferred(this.promise, this.request);
   },
   done: function(func) {
      return new Deferred(this.promise.then(func), this.request);
   },
   fail: function(func) {
      return new Deferred(this.promise.catch(func), this.request);
   },
   always: function(func) {
      return new Deferred(this.promise.finally(func), this.request);
   },
};
Deferred.all = function(iterable) {
   return Deferred(
   return new Deferred(
      Promise.all(
         iterable.map(x => x.promise)
         iterable.map(function(x) {
            return x.promise;
         })
      )
   );
};
@@ -56,6 +59,7 @@
      var self = this;
      var request = new XMLHttpRequest();
      var promise = new Promise(function(resolve, reject) {
         request.open('GET', url, true);
         request.timeout = self.timeout;
         request.onreadystatechange = function() {
            if(this.readyState == 4) {
@@ -70,10 +74,9 @@
               }
            }
         };
         request.open('GET', url, true);
         request.send();
      });
      return Deferred(promise, request);
      return new Deferred(promise, request);
   },
};
@@ -165,10 +168,9 @@
}
function parseTime(date, time) {
   var result = new Date(date.getFullYear(), date.getMonth(), date.getDay());
   var result = new Date(date.getTime());
   var time_split = time.split(':');
   result.setHours(time_split[0]);
   result.setMinutes(time_split[1]);
   result.setHours(time_split[0], time_split[1], 0);
   
   if(result.getTime() - date.getTime() > 72000000) {
      result.setTime(result.getTime() - 86400000);