-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[daemon][gui] departure tab (using opendata) #feature
- Loading branch information
spaceAngel
committed
Nov 3, 2021
1 parent
ecac0ed
commit 2d8e2b9
Showing
10 changed files
with
214 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
keys: | ||
lastfm: <samplekey> | ||
golemio: <samplekey> | ||
systemLimits: | ||
systemLimits: | ||
cpu: | ||
|
@@ -52,7 +53,12 @@ mainpanel: | |
- covid | ||
- hospitals | ||
- files | ||
- transport | ||
|
||
mail: | ||
host: imap.server.example | ||
port: 993 | ||
username: [email protected] | ||
username: [email protected] | ||
departures: | ||
- Muzeum | ||
- Můstek |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
.transport { | ||
padding-bottom: 200px; | ||
.departure { | ||
margin: 10px 10px 10px 40px; | ||
clear: both; | ||
font-size: 22px; | ||
|
||
.type, .name, .meta, .timer { | ||
float: left; | ||
} | ||
|
||
.type { | ||
font-size: 36px; | ||
width: 70px; | ||
text-align: center; | ||
padding-top: 16px; | ||
} | ||
|
||
.name { | ||
font-size: 50px; | ||
font-weight: bold; | ||
width: 100px; | ||
text-align: center; | ||
padding-top: 6px; | ||
} | ||
|
||
.meta { | ||
padding: 10px 10px 0px 20px; | ||
width:500px; | ||
.delay { | ||
color:red; | ||
display: inline-block; | ||
margin-left: 12px; | ||
} | ||
} | ||
|
||
.timer { | ||
font-size:34px; | ||
width:95px; | ||
text-align: right; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
/* global axios, config */ | ||
|
||
var transport = { | ||
departures: [], | ||
|
||
stops: new Map(), | ||
|
||
init: function() { | ||
if (document.getElementById('transport')) { | ||
transport.updateData(); | ||
setInterval( | ||
function() { | ||
transport.updateData() | ||
}, 60000 | ||
); | ||
} | ||
}, | ||
|
||
updateData: async function() { | ||
axios({ | ||
method: 'get', | ||
url: 'https://api.golemio.cz/v2/pid/departureboards/?' + config.publicTransportDepartures, | ||
mode: 'no-cors', | ||
headers: { | ||
'Content-Type': 'application/json', | ||
'X-Access-Token': config.keys.golemio | ||
}, | ||
}).then(async function (response) { | ||
for (var i = 0; i < response.data.stops.length; i++) { | ||
transport.stops.set( | ||
response.data.stops[i].stop_id, | ||
response.data.stops[i].stop_name, | ||
); | ||
} | ||
transport.departures = response.data.departures; | ||
}); | ||
}, | ||
|
||
timeDiff: function timeDifference(datestring) { | ||
var date1 = Date.parse(datestring); | ||
var difference = date1 - Date.now(); | ||
return transport.timeToString(difference); | ||
}, | ||
|
||
timeToString: function(timeval) { | ||
|
||
var daysDifference = Math.floor(timeval/1000/60/60/24); | ||
timeval -= daysDifference*1000*60*60*24; | ||
|
||
var hoursDifference = Math.floor(timeval/1000/60/60); | ||
timeval -= hoursDifference*1000*60*60; | ||
|
||
var minutesDifference = Math.floor(timeval/1000/60); | ||
timeval -= minutesDifference*1000*60; | ||
|
||
var secondsDifference = Math.floor(timeval/1000); | ||
if (secondsDifference < 10) { | ||
secondsDifference = '0' + secondsDifference; | ||
} | ||
|
||
return minutesDifference + ':' + secondsDifference; | ||
|
||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<div v-for="departure in transport.departures" class="departure"> | ||
<template v-if="Date.parse(departure.arrival_timestamp.predicted) > Date.now()"> | ||
<div class="type"> | ||
<i class="fas fa-subway" v-if="departure.route.type==1"></i> | ||
<i class="fas fa-bus" v-if="departure.route.type==3"></i> | ||
<i class="fas fa-tram" v-if="departure.route.type==0"></i> | ||
</div> | ||
<div class="name" v-html="departure.route.short_name"></div> | ||
<div class="meta"> | ||
<div class="route"> | ||
<span v-html="transport.stops.get(departure.stop.id)"></span> | ||
>> | ||
<span v-html="departure.trip.headsign"></span> | ||
</div> | ||
<div class="time"> | ||
<span> | ||
<% (new Date(departure.arrival_timestamp.scheduled)).toLocaleTimeString().substr(0, 5)%> | ||
</span> | ||
<span class="delay" v-if="departure.delay.seconds > 0"> | ||
<% transport.timeToString(departure.delay.seconds * 1000) %> | ||
</span> | ||
</div> | ||
</div> | ||
<div class="timer"> | ||
<span> <% transport.timeDiff(departure.arrival_timestamp.predicted) %></span> | ||
</div> | ||
</template> | ||
</div> |
17 changes: 17 additions & 0 deletions
17
src/CyberPanel/Integration/PublicTransport/Configuration/Configuration.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<?php | ||
|
||
namespace CyberPanel\Integration\PublicTransport\Configuration; | ||
|
||
class Configuration { | ||
|
||
protected array $departures = []; | ||
|
||
public function addDeparture(string $departure) : void { | ||
$this->departures[] = $departure; | ||
} | ||
|
||
public function getDepartures() : array { | ||
return $this->departures; | ||
} | ||
|
||
} |
14 changes: 14 additions & 0 deletions
14
src/CyberPanel/Integration/PublicTransport/Configuration/ConfigurationLoader.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?php | ||
|
||
namespace CyberPanel\Integration\PublicTransport\Configuration; | ||
|
||
class ConfigurationLoader { | ||
|
||
public static function load(array $yaml) : Configuration { | ||
$configuration = new Configuration; | ||
foreach ($yaml as $departure) { | ||
$configuration->addDeparture($departure); | ||
} | ||
return $configuration; | ||
} | ||
} |
21 changes: 21 additions & 0 deletions
21
src/CyberPanel/Integration/PublicTransport/PublicTransportModule.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<?php | ||
|
||
namespace CyberPanel\Integration\PublicTransport; | ||
|
||
use CyberPanel\Configuration\ConfigurationLoader as ConfLoader; | ||
use \CyberPanel\Integration\PublicTransport\Configuration\ConfigurationLoader; | ||
|
||
class PublicTransportModule { | ||
|
||
private function __construct() { | ||
} | ||
|
||
public static function init() : void { | ||
ConfLoader::registerSubLoader( | ||
'departures', | ||
ConfigurationLoader::class | ||
); | ||
|
||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters