diff --git a/api/video.js b/api/video.js index ba333c5..c70736b 100644 --- a/api/video.js +++ b/api/video.js @@ -3,6 +3,7 @@ const {render} = require("pinski/plugins") const db = require("../utils/db") const {getToken, getUser} = require("../utils/getuser") const pug = require("pug") +const converters = require("../utils/converters") class InstanceError extends Error { constructor(error, identifier) { @@ -50,6 +51,11 @@ module.exports = [ if (!format.second__height && format.resolution) format.second__height = +format.resolution.slice(0, -1) if (!format.second__order) format.second__order = formatOrder(format) } + for (const rec of video.recommendedVideos) { + if (!rec.second__lengthText && rec.lengthSeconds > 0) { + rec.second__lengthText = converters.lengthSecondsToLengthText(rec.lengthSeconds) + } + } const subscribed = user.isSubscribed(video.authorId) return render(200, "pug/video.pug", {video, subscribed}) } catch (e) { diff --git a/utils/converters.js b/utils/converters.js index cf78c34..e875a44 100644 --- a/utils/converters.js +++ b/utils/converters.js @@ -18,4 +18,14 @@ function timeToPastText(timestamp) { }, null) || "just now" } +function lengthSecondsToLengthText(seconds) { + return [Math.floor(seconds/3600), Math.floor(seconds/60)%60, seconds%60] + .reduce((a, c, i, t) => ( + a ? a : c || i == 1 ? t.slice(i) : false + ), false) + .map((x, i) => i === 0 ? x : (x+"").padStart(2, "0")) + .join(":") +} + module.exports.timeToPastText = timeToPastText +module.exports.lengthSecondsToLengthText = lengthSecondsToLengthText