From c395570cb08cda0dfd5d034abb25de2c6051abd3 Mon Sep 17 00:00:00 2001 From: rosenrose Date: Thu, 24 Feb 2022 17:00:28 +0900 Subject: [PATCH] dont' delete files --- src/utils/log.js | 24 ++++++++++++++++++++++++ src/utils/parseProgress.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/utils/log.js create mode 100644 src/utils/parseProgress.js diff --git a/src/utils/log.js b/src/utils/log.js new file mode 100644 index 0000000..bb2f0fb --- /dev/null +++ b/src/utils/log.js @@ -0,0 +1,24 @@ +let logging = false; +let customLogger = () => {}; + +const setLogging = (_logging) => { + logging = _logging; +}; + +const setCustomLogger = (logger) => { + customLogger = logger; +}; + +const log = (type, message) => { + customLogger({ type, message }); + if (logging) { + console.log(`[${type}] ${message}`); + } +}; + +module.exports = { + logging, + setLogging, + setCustomLogger, + log, +}; diff --git a/src/utils/parseProgress.js b/src/utils/parseProgress.js new file mode 100644 index 0000000..dc1658a --- /dev/null +++ b/src/utils/parseProgress.js @@ -0,0 +1,28 @@ +let duration = 0; +let ratio = 0; + +const ts2sec = (ts) => { + const [h, m, s] = ts.split(':'); + return (parseFloat(h) * 60 * 60) + (parseFloat(m) * 60) + parseFloat(s); +}; + +module.exports = (message, progress) => { + if (typeof message === 'string') { + if (message.startsWith(' Duration')) { + const ts = message.split(', ')[0].split(': ')[1]; + const d = ts2sec(ts); + progress({ duration: d, ratio }); + if (duration === 0 || duration > d) { + duration = d; + } + } else if (message.startsWith('frame') || message.startsWith('size')) { + const ts = message.split('time=')[1].split(' ')[0]; + const t = ts2sec(ts); + ratio = t / duration; + progress({ ratio, time: t }); + } else if (message.startsWith('video:')) { + progress({ ratio: 1 }); + duration = 0; + } + } +};