UNPKG

fluro

Version:

Promise based HTTP Fluro client for the browser and node.js

129 lines (102 loc) 3.99 kB
import _ from 'lodash'; /////////////////////////////////////////////////////////////////////////////// /** * @classdesc A static service that provides useful tools when working with video content * @class * @hideconstructor */ var FluroVideo = {}; /////////////////////////////////////////////////////////////////////////////// /** * @alias FluroVideo.readableMilliseconds * @param {Number} milliseconds The number of milliseconds to get duration for * @return {String} The query string * @example * Fluro.readableMilliseconds(100000) */ FluroVideo.readableMilliseconds = function(milliseconds) { var oneSecond = 1000; var oneMinute = oneSecond * 60; var oneHour = oneMinute * 60; var oneDay = oneHour * 24; var seconds = (milliseconds % oneMinute) / oneSecond; var minutes = Math.floor((milliseconds % oneHour) / oneMinute); var hours = Math.floor((milliseconds % oneDay) / oneHour); var days = Math.floor(milliseconds / oneDay); var timeString = ''; if (days !== 0) { timeString += (days !== 1) ? (days + ' days ') : (days + ' day '); } if (hours !== 0) { timeString += (hours !== 1) ? (hours + ' hrs ') : (hours + 'hr '); } if (minutes !== 0) { timeString += (minutes !== 1) ? (minutes + ' mins ') : (minutes + 'min '); } if (seconds !== 0 || milliseconds < 1000) { timeString += (seconds !== 1) ? (seconds.toFixed(0) + 's ') : (seconds.toFixed(0) + 's '); } return timeString; } /////////////////////////////////////////////////////////////////////////////// /** * @alias FluroVideo.readableSeconds * @param {Number} seconds The number of seconds to get duration for * @return {String} The query string * @example * Fluro.readableSeconds(10) */ FluroVideo.readableSeconds = function(seconds) { var milliseconds = seconds * 1000; var oneSecond = 1000; var oneMinute = oneSecond * 60; var oneHour = oneMinute * 60; var oneDay = oneHour * 24; var seconds = (milliseconds % oneMinute) / oneSecond; var minutes = Math.floor((milliseconds % oneHour) / oneMinute); var hours = Math.floor((milliseconds % oneDay) / oneHour); var days = Math.floor(milliseconds / oneDay); var timeString = ''; if (days !== 0) { timeString += (days !== 1) ? (days + ' days ') : (days + ' day '); } if (hours !== 0) { timeString += (hours !== 1) ? (hours + ' hrs ') : (hours + 'hr '); } if (minutes !== 0) { timeString += (minutes !== 1) ? (minutes + ' mins ') : (minutes + 'min '); } if (seconds !== 0 || milliseconds < 1000) { timeString += (seconds !== 1) ? (seconds.toFixed(1) + 's ') : (seconds.toFixed(1) + 's '); } return timeString; } /////////////////////////////////////////////////////////////////////////////// /** * @alias FluroVideo.hhmmss * @param {Number} seconds The number of seconds to get duration for * @return {String} The query string * @example * //Returns 01:02:00 * Fluro.hhmmss(62) */ FluroVideo.hhmmss = function(secs) { function pad(str) { return ("0" + str).slice(-2); } // function hhmmss(secs) { var minutes = Math.floor(secs / 60); secs = secs % 60; var hours = Math.floor(minutes / 60) minutes = minutes % 60; return pad(hours) + ":" + pad(minutes) + ":" + pad(secs); // return pad(minutes)+":"+pad(secs); // } // return hhmmss(seconds); } ///////////////////////////////////////////// ///////////////////////////////////////////// ///////////////////////////////////////////// ///////////////////////////////////////////// ///////////////////////////////////////////// export default FluroVideo;