Merge pull request '(fix): leaderboard time' (#35) from dev into main

Reviewed-on: alekswilc/simrail-logs#35
Reviewed-by: Aleksander Wilczyński <aleks@alekswilc.dev>
This commit is contained in:
Aleksander Wilczyński 2024-08-26 19:30:27 +02:00
commit 12ebea50e7
Signed by: gitea
GPG Key ID: CECFC30736A3D1C8
6 changed files with 22 additions and 13 deletions

View File

@ -4,6 +4,6 @@
</span> <span style="color: lightskyblue"> </span> <span style="color: lightskyblue">
<%- msToTime(record.dispatcherTime) %> <%- msToTime(record.dispatcherTime) %>
</span> </summary> </span> </summary>
<p>Spędzona liczba godzin: <%- msToTime(record.dispatcherTime) || 'Brak' %></p> <p>Spędzona liczba godzin: <%- msToTime(record.dispatcherTime, true) || 'Brak' %></p>
<button onclick="location.href = '/profiles/<%- record.steam %>'">Więcej</button> <button onclick="location.href = '/profiles/<%- record.steam %>'">Więcej</button>
</details> </details>

View File

@ -4,7 +4,7 @@
</span> - <span style="color:lightskyblue"> </span> - <span style="color:lightskyblue">
<%- record.trainPoints %> pkt. <%- record.trainPoints %> pkt.
</span></summary> </span></summary>
<p>Spędzona liczba godzin: <%- msToTime(record.trainTime) %></p> <p>Spędzona liczba godzin: <%- msToTime(record.trainTime, true) %></p>
<p>Przejechane kilometry: <%- record.trainDistance / 1000 %>km</p> <p>Przejechane kilometry: <%- record.trainDistance / 1000 %>km</p>
<p>Zdobyte punkty: <%- record.trainPoints %></p> <p>Zdobyte punkty: <%- record.trainPoints %></p>
<button onclick="location.href = '/profiles/<%- record.steam %>'">Więcej</button> <button onclick="location.href = '/profiles/<%- record.steam %>'">Więcej</button>

View File

@ -51,7 +51,7 @@
<summary>Statystyki Steam</summary> <summary>Statystyki Steam</summary>
<p>Zdobyte punkty: <%- steamStats.stats.find(x => x.name === 'SCORE')?.value ?? "0" %></p> <p>Zdobyte punkty: <%- steamStats.stats.find(x => x.name === 'SCORE')?.value ?? "0" %></p>
<p>Przejechane kilometry: <%- (steamStats.stats.find(x => x.name === 'DISTANCE_M')?.value / 1000) ?? "0" %></p> <p>Przejechane kilometry: <%- (steamStats.stats.find(x => x.name === 'DISTANCE_M')?.value / 1000) ?? "0" %></p>
<p>Czas spędzony jako dyżurny ruchu: <%- msToTime((steamStats.stats.find(x => x.name === 'DISPATCHER_TIME')?.value ?? 0)*1_000_000) || 'Nigdy nie wszedł w tryb dyżurnego ruchu.' %></p> <p>Czas spędzony jako dyżurny ruchu: <%- msToTime((steamStats.stats.find(x => x.name === 'DISPATCHER_TIME')?.value ?? 0)*1_000_000, true) || 'Nigdy nie wszedł w tryb dyżurnego ruchu.' %></p>
<br /> <br />
<p style="font-size: smaller;">UWAGA: powyższe statystyki udostępnia platforma STEAM, mogą one być z łatwością manipulowane.</p> <p style="font-size: smaller;">UWAGA: powyższe statystyki udostępnia platforma STEAM, mogą one być z łatwością manipulowane.</p>
@ -73,7 +73,7 @@
<details open> <details open>
<summary><%- name %></summary> <summary><%- name %></summary>
<p>Przejechany dystans: <%- player.trainStats[name].distance / 1000 %>km</p> <p>Przejechany dystans: <%- player.trainStats[name].distance / 1000 %>km</p>
<p>Spędzony czas: <%- msToTime(player.trainStats[name].time) %></p> <p>Spędzony czas: <%- msToTime(player.trainStats[name].time, true) %></p>
<p>Zdobyte punkty: <%- player.trainStats[name].score %></p> <p>Zdobyte punkty: <%- player.trainStats[name].score %></p>
<p>Średnia prędkość: <%- ((player.trainStats[name].distance / (player.trainStats[name].time / 1000)) * 3.6).toFixed(2) %> km/h</p> <p>Średnia prędkość: <%- ((player.trainStats[name].distance / (player.trainStats[name].time / 1000)) * 3.6).toFixed(2) %> km/h</p>
</details> </details>
@ -95,7 +95,7 @@
<li> <li>
<details open> <details open>
<summary><%- name %></summary> <summary><%- name %></summary>
<p>Spędzony czas: <%- msToTime(player.dispatcherStats[name].time) %></p> <p>Spędzony czas: <%- msToTime(player.dispatcherStats[name].time, true) %></p>
</details> </details>
</li> </li>

View File

@ -60,7 +60,7 @@
%> (<%- record.joinedDate ? dayjs(record.joinedDate).fromNow() : '--' %>)</p> %> (<%- record.joinedDate ? dayjs(record.joinedDate).fromNow() : '--' %>)</p>
<p>Data wyjścia: <%- dayjs(record.leftDate).format('HH:mm DD/MM/YYYY') %> (<%- dayjs(record.leftDate).fromNow() <p>Data wyjścia: <%- dayjs(record.leftDate).format('HH:mm DD/MM/YYYY') %> (<%- dayjs(record.leftDate).fromNow()
%>)</p> %>)</p>
<p>Spędzony czas: <%- record.joinedDate ? msToTime(record.leftDate - record.joinedDate) : '--' %> <p>Spędzony czas: <%- record.joinedDate ? msToTime(record.leftDate - record.joinedDate, true) : '--' %>
</p> </p>
<br /> <br />

View File

@ -59,7 +59,7 @@
%> (<%- record.joinedDate ? dayjs(record.joinedDate).fromNow() : '--' %>)</p> %> (<%- record.joinedDate ? dayjs(record.joinedDate).fromNow() : '--' %>)</p>
<p>Data wyjścia: <%- dayjs(record.leftDate).format('HH:mm DD/MM/YYYY') %> (<%- dayjs(record.leftDate).fromNow() <p>Data wyjścia: <%- dayjs(record.leftDate).format('HH:mm DD/MM/YYYY') %> (<%- dayjs(record.leftDate).fromNow()
%>)</p> %>)</p>
<p>Spędzony czas: <%- record.joinedDate ? msToTime(record.leftDate - record.joinedDate) : '--' %> <p>Spędzony czas: <%- record.joinedDate ? msToTime(record.leftDate - record.joinedDate, true) : '--' %>
</p> </p>
<% if (record.distance) { %> <% if (record.distance) { %>
<p>Przejechane kilometry: <%- record.distance / 1000 %></p> <p>Przejechane kilometry: <%- record.distance / 1000 %></p>

View File

@ -1,18 +1,27 @@
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime.js'; import relativeTime from 'dayjs/plugin/relativeTime.js';
import duration from 'dayjs/plugin/duration.js';
import pl from 'dayjs/locale/pl.js'; import pl from 'dayjs/locale/pl.js';
dayjs.extend(duration)
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
dayjs.locale(pl); dayjs.locale(pl);
export const msToTime = (duration: number) => { export const msToTime = (duration: number, long = false) => {
const minutes = Math.floor((duration / (1000 * 60)) % 60); const time = dayjs.duration(duration, 'milliseconds');
const hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
if (minutes === 0 && hours === 0 && duration > 0) if (long) {
return "1m"; let t = '';
if (time.hours()) t+= `${time.hours()}h `;
if (time.minutes()) t+= `${time.minutes()}m `;
if (time.seconds()) t+= `${time.seconds()}s`;
return `${time.humanize} (${t})`;
}
return `${hours ? `${hours}h ` : ''}${minutes ? `${minutes}m` : ''}`; return time.humanize();
} }