diff --git a/html/src/app.js b/html/src/app.js index 05746655..7420b655 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -7601,12 +7601,41 @@ import gameLogService from './service/gamelog.js' }; $app.methods.userOnlineFor = function (ctx) { + var timeToText = function (sec) { + var n = Number(sec); + if (isNaN(n)) { + return escapeTag(sec); + } + n = Math.floor(n / 1000); + var arr = []; + if (n < 0) { + n = -n; + } + if (n >= 86400) { + arr.push(`${Math.floor(n / 86400)}d`); + n %= 86400; + } + if (n >= 3600) { + arr.push(`${Math.floor(n / 3600)}h`); + n %= 3600; + } + if (n >= 60) { + arr.push(`${Math.floor(n / 60)}m`); + n %= 60; + } + if (n || + arr.length === 0) { + arr.push(`${n}s`); + } + return arr.join(' '); + }; + if (ctx.ref.state === 'online') { - return ctx.ref.$online_for; + return timeToText(Date.now() - ctx.ref.$online_for) } else if (ctx.ref.$offline_for) { - return ctx.ref.$offline_for; + return timeToText(Date.now() - ctx.ref.$offline_for) } else { - return false; + return '-'; } }; diff --git a/html/src/index.pug b/html/src/index.pug index 5a42b79e..5447e817 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -774,9 +774,7 @@ html .detail span.name(v-if="userDialog.ref.state === 'online'") Online For span.name(v-else) Offline For - span.extra - timer(v-if="userOnlineFor(userDialog)" :epoch="userOnlineFor(userDialog)") - span(v-else) - + span.extra(v-text="userOnlineFor(userDialog)") .x-friend-item .detail span.name Last Login