deemixer/public/js/modules/utils.js

59 lines
1.3 KiB
JavaScript
Raw Normal View History

function isValidURL(text) {
if (text.toLowerCase().startsWith('http')) {
if (text.toLowerCase().indexOf('deezer.com') >= 0 || text.toLowerCase().indexOf('open.spotify.com') >= 0)
return true
} else if (text.toLowerCase().startsWith('spotify:')) return true
return false
}
2020-04-14 14:48:13 +00:00
function convertDuration(duration) {
2020-04-09 10:24:49 +00:00
//convert from seconds only to mm:ss format
let mm, ss
2020-04-09 10:24:49 +00:00
mm = Math.floor(duration / 60)
ss = duration - mm * 60
2020-04-09 10:24:49 +00:00
//add leading zero if ss < 0
if (ss < 10) {
ss = '0' + ss
2020-04-09 10:24:49 +00:00
}
return mm + ':' + ss
2020-04-09 10:24:49 +00:00
}
function convertDurationSeparated(duration) {
let hh, mm, ss
2020-04-09 10:24:49 +00:00
mm = Math.floor(duration / 60)
hh = Math.floor(mm / 60)
ss = duration - mm * 60
mm -= hh * 60
2020-04-09 10:24:49 +00:00
return [hh, mm, ss]
}
function numberWithDots(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.')
}
2020-04-23 19:03:12 +00:00
// On scroll event, returns currentTarget = null
// Probably on other events too
function debounce(func, wait, immediate) {
2020-04-19 20:02:06 +00:00
var timeout
return function () {
var context = this
var args = arguments
var later = function () {
timeout = null
if (!immediate) func.apply(context, args)
}
var callNow = immediate && !timeout
clearTimeout(timeout)
timeout = setTimeout(later, wait)
if (callNow) func.apply(context, args)
}
2020-04-09 10:24:49 +00:00
}
export default {
isValidURL,
convertDuration,
convertDurationSeparated,
numberWithDots,
debounce
}