From 3f6d68d9671ddb7ba1c4f3a35021b84856dafb6a Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Sat, 21 Jul 2018 23:00:25 +0200 Subject: adding initial support for nodeinfo --- server/helpers/utils.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'server/helpers') diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts index 8fa861281..834d788c8 100644 --- a/server/helpers/utils.ts +++ b/server/helpers/utils.ts @@ -104,6 +104,36 @@ function computeResolutionsToTranscode (videoFileHeight: number) { return resolutionsEnabled } +const timeTable = { + ms: 1, + second: 1000, + minute: 60000, + hour: 3600000, + day: 3600000 * 24, + week: 3600000 * 24 * 7, + month: 3600000 * 24 * 30 +} +export function parseDuration (duration: number | string, defaultDuration: number): number { + if (typeof duration === 'number') return duration + + if (typeof duration === 'string') { + const split = duration.match(/^([\d\.,]+)\s?(\w+)$/) + + if (split.length === 3) { + const len = parseFloat(split[1]) + let unit = split[2].replace(/s$/i,'').toLowerCase() + if (unit === 'm') { + unit = 'ms' + } + + return (len || 1) * (timeTable[unit] || 0) + } + } + + logger.error('Duration could not be properly parsed, defaulting to ' + defaultDuration) + return defaultDuration +} + function resetSequelizeInstance (instance: Model, savedFields: object) { Object.keys(savedFields).forEach(key => { const value = savedFields[key] -- cgit v1.2.3