mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-07-29 14:12:21 +00:00
format seconds into hh:mm:ss
This commit is contained in:
parent
214ae82344
commit
e7741937a3
@ -2,10 +2,10 @@
|
|||||||
<div class="album-h">
|
<div class="album-h">
|
||||||
<div class="a-header rounded card-dark border">
|
<div class="a-header rounded card-dark border">
|
||||||
<div
|
<div
|
||||||
class="art rounded border"
|
|
||||||
:style="{
|
:style="{
|
||||||
backgroundImage: `url("${album_info.image}")`,
|
backgroundImage: `url("${album_info.image}")`,
|
||||||
}"
|
}"
|
||||||
|
class="art rounded border"
|
||||||
></div>
|
></div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
@ -28,10 +28,10 @@
|
|||||||
<div class="circle circular"></div>
|
<div class="circle circular"></div>
|
||||||
<div class="rect rounded"></div>
|
<div class="rect rounded"></div>
|
||||||
<div
|
<div
|
||||||
class="avatar image"
|
|
||||||
:style="{
|
:style="{
|
||||||
backgroundImage: `url("${album_info.artist_image}")`,
|
backgroundImage: `url("${album_info.artist_image}")`,
|
||||||
}"
|
}"
|
||||||
|
class="avatar image"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -47,6 +47,7 @@ export default {
|
|||||||
function playAlbum() {
|
function playAlbum() {
|
||||||
perks.updateQueue(state.album_song_list.value[0], "album");
|
perks.updateQueue(state.album_song_list.value[0], "album");
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
playAlbum,
|
playAlbum,
|
||||||
};
|
};
|
||||||
@ -138,6 +139,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.a-header {
|
.a-header {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -181,6 +183,7 @@ export default {
|
|||||||
.stats {
|
.stats {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.play {
|
.play {
|
||||||
height: 2.5rem;
|
height: 2.5rem;
|
||||||
width: 6rem;
|
width: 6rem;
|
||||||
|
@ -35,7 +35,9 @@ const tabs = {
|
|||||||
queue: "queue",
|
queue: "queue",
|
||||||
};
|
};
|
||||||
|
|
||||||
const current_tab = ref(tabs.queue);
|
const default_tab = tabs.home;
|
||||||
|
|
||||||
|
const current_tab = ref(default_tab);
|
||||||
|
|
||||||
function changeTab(tab) {
|
function changeTab(tab) {
|
||||||
current_tab.value = tab;
|
current_tab.value = tab;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="now-playing border shadow-lg">
|
<div class="now-playing border shadow-lg">
|
||||||
<div class="art-tags">
|
<div class="art-tags">
|
||||||
<div class="duration">{{ current.length }}</div>
|
<div class="duration">{{ formatSeconds(current.length) }}</div>
|
||||||
<div
|
<div
|
||||||
:style="{
|
:style="{
|
||||||
backgroundImage: `url("${current.image}")`,
|
backgroundImage: `url("${current.image}")`,
|
||||||
@ -11,7 +11,7 @@
|
|||||||
<div class="t-a">
|
<div class="t-a">
|
||||||
<p id="title" class="ellipsis">{{ current.title }}</p>
|
<p id="title" class="ellipsis">{{ current.title }}</p>
|
||||||
<div class="separator no-border"></div>
|
<div class="separator no-border"></div>
|
||||||
<div v-if="current.artists[0] != ''" id="artist" class="ellip">
|
<div v-if="current.artists[0] !== ''" id="artist" class="ellip">
|
||||||
<span v-for="artist in putCommas(current.artists)" :key="artist">{{
|
<span v-for="artist in putCommas(current.artists)" :key="artist">{{
|
||||||
artist
|
artist
|
||||||
}}</span>
|
}}</span>
|
||||||
@ -65,9 +65,11 @@ export default {
|
|||||||
const {playPrev} = playAudio;
|
const {playPrev} = playAudio;
|
||||||
const {playPause} = playAudio;
|
const {playPause} = playAudio;
|
||||||
const isPlaying = playAudio.playing;
|
const isPlaying = playAudio.playing;
|
||||||
|
|
||||||
const seek = () => {
|
const seek = () => {
|
||||||
playAudio.seek(document.getElementById("progress").value);
|
playAudio.seek(document.getElementById("progress").value);
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
current,
|
current,
|
||||||
putCommas,
|
putCommas,
|
||||||
@ -77,6 +79,7 @@ export default {
|
|||||||
pos,
|
pos,
|
||||||
seek,
|
seek,
|
||||||
isPlaying,
|
isPlaying,
|
||||||
|
formatSeconds: perks.formatSeconds,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {Progress, HotKeys},
|
components: {Progress, HotKeys},
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
<Filters :filters="filters" @removeFilter="removeFilter"/>
|
<Filters :filters="filters" @removeFilter="removeFilter"/>
|
||||||
<div class="input-loader border">
|
<div class="input-loader border">
|
||||||
<input
|
<input
|
||||||
type="text"
|
|
||||||
id="search"
|
id="search"
|
||||||
@keyup.backspace="removeLastFilter"
|
|
||||||
placeholder="find your music"
|
|
||||||
v-model="query"
|
v-model="query"
|
||||||
|
placeholder="find your music"
|
||||||
|
type="text"
|
||||||
|
@keyup.backspace="removeLastFilter"
|
||||||
/>
|
/>
|
||||||
<div class="search-icon image"></div>
|
<div class="search-icon image"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -20,9 +20,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="scrollable">
|
<div class="scrollable">
|
||||||
<TracksGrid
|
<TracksGrid
|
||||||
:tracks="tracks.tracks"
|
|
||||||
:more="tracks.more"
|
|
||||||
v-if="tracks.tracks.length"
|
v-if="tracks.tracks.length"
|
||||||
|
:more="tracks.more"
|
||||||
|
:tracks="tracks.tracks"
|
||||||
/>
|
/>
|
||||||
<AlbumGrid
|
<AlbumGrid
|
||||||
v-if="albums.albums.length"
|
v-if="albums.albums.length"
|
||||||
@ -36,12 +36,12 @@
|
|||||||
:more="artists.more"
|
:more="artists.more"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class="no-res"
|
|
||||||
v-if="
|
v-if="
|
||||||
!artists.artists.length &&
|
!artists.artists.length &&
|
||||||
!tracks.tracks.length &&
|
!tracks.tracks.length &&
|
||||||
!albums.albums.length && query.length != 0
|
!albums.albums.length && query.length != 0
|
||||||
"
|
"
|
||||||
|
class="no-res"
|
||||||
>
|
>
|
||||||
<div class="no-res-text">
|
<div class="no-res-text">
|
||||||
No results for <span class="highlight rounded">{{ query }}</span>
|
No results for <span class="highlight rounded">{{ query }}</span>
|
||||||
@ -129,7 +129,8 @@ export default {
|
|||||||
tracks.tracks = [];
|
tracks.tracks = [];
|
||||||
|
|
||||||
return;
|
return;
|
||||||
};
|
}
|
||||||
|
;
|
||||||
|
|
||||||
searchMusic(new_query).then((res) => {
|
searchMusic(new_query).then((res) => {
|
||||||
albums.albums = res.albums.albums;
|
albums.albums = res.albums.albums;
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
{{ song.album }}
|
{{ song.album }}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="song-duration">{{ song.length }}</td>
|
<td class="song-duration">{{ formatSeconds(song.length) }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -66,6 +66,7 @@ export default {
|
|||||||
emitLoadAlbum,
|
emitLoadAlbum,
|
||||||
is_playing: state.is_playing,
|
is_playing: state.is_playing,
|
||||||
current: state.current,
|
current: state.current,
|
||||||
|
formatSeconds: perks.formatSeconds,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -4,7 +4,6 @@ import media from "./mediaNotification.js";
|
|||||||
import playAudio from "./playAudio.js";
|
import playAudio from "./playAudio.js";
|
||||||
import state from "./state.js";
|
import state from "./state.js";
|
||||||
|
|
||||||
|
|
||||||
const current = ref(state.current);
|
const current = ref(state.current);
|
||||||
|
|
||||||
const next = ref({
|
const next = ref({
|
||||||
@ -37,7 +36,9 @@ const putCommas = (artists) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function updateNext(song_) {
|
function updateNext(song_) {
|
||||||
const index = state.queue.value.findIndex((item) => item.track_id === song_.track_id);
|
const index = state.queue.value.findIndex(
|
||||||
|
(item) => item.track_id === song_.track_id
|
||||||
|
);
|
||||||
|
|
||||||
if (index == queue.value.length - 1) {
|
if (index == queue.value.length - 1) {
|
||||||
next.value = queue.value[0];
|
next.value = queue.value[0];
|
||||||
@ -50,7 +51,9 @@ function updateNext(song_) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updatePrev(song) {
|
function updatePrev(song) {
|
||||||
const index = state.queue.value.findIndex((item) => item.track_id === song.track_id);
|
const index = state.queue.value.findIndex(
|
||||||
|
(item) => item.track_id === song.track_id
|
||||||
|
);
|
||||||
|
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
prev.value = queue.value[queue.value.length - 1];
|
prev.value = queue.value[queue.value.length - 1];
|
||||||
@ -131,7 +134,6 @@ function focusSearchBox() {
|
|||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
watch(current, (new_current) => {
|
watch(current, (new_current) => {
|
||||||
|
|
||||||
media.showMediaNotif();
|
media.showMediaNotif();
|
||||||
|
|
||||||
updateNext(new_current);
|
updateNext(new_current);
|
||||||
@ -210,11 +212,30 @@ window.addEventListener("keyup", () => {
|
|||||||
key_down_fired = false;
|
key_down_fired = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function formatSeconds(seconds) {
|
||||||
|
const date = new Date(seconds * 1000);
|
||||||
|
|
||||||
|
const hh = date.getUTCHours();
|
||||||
|
const mm = date.getUTCMinutes();
|
||||||
|
const ss = date.getUTCSeconds();
|
||||||
|
|
||||||
|
const _hh = hh < 10 ? `0${hh}` : hh;
|
||||||
|
const _mm = mm < 10 ? `0${mm}` : mm;
|
||||||
|
const _ss = ss < 10 ? `0${ss}` : ss;
|
||||||
|
|
||||||
|
if (hh > 0) {
|
||||||
|
return `${_hh}:${_mm}:${_ss}`;
|
||||||
|
} else {
|
||||||
|
return `${_mm}:${_ss}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
putCommas,
|
putCommas,
|
||||||
readQueue,
|
readQueue,
|
||||||
focusCurrent,
|
focusCurrent,
|
||||||
updateQueue,
|
updateQueue,
|
||||||
|
formatSeconds,
|
||||||
current,
|
current,
|
||||||
queue,
|
queue,
|
||||||
next,
|
next,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user