Files
einundzwanzig.space/src/soundboard.pug
2021-06-28 18:33:36 +02:00

57 lines
2.3 KiB
Plaintext

extends /template.pug
block vars
- const title = 'Soundboard'
- const description = 'Das Einundzwanzig Podcast Soundboard.'
block main
#soundboard.wrap
script.
window.player = { songs: [], continue_next: false, autoplay: true };
window.playSound = index => {
Amplitude.playSongAtIndex(index)
const { url } = Amplitude.getSongAtIndex(index)
const [, slug] = url.match(/^\/sounds\/(.*)\.mp3$/)
window.location.hash = slug
}
section
h1= title
.player.player--soundboard
.player__bottom
progress.player__progress.amplitude-song-played-progress(data-amplitude-main-song-played-progress="true")
.player__time
span.player__current-time
span.player__current-minutes.amplitude-current-minutes(data-amplitude-main-current-minutes="true")
= ':'
span.player__current-seconds.amplitude-current-seconds(data-amplitude-main-current-seconds="true")
span.player__duration
span.player__duration-minutes.amplitude-duration-minutes(data-amplitude-main-duration-minutes="true")
= ':'
span.player__duration-seconds.amplitude-duration-seconds(data-amplitude-main-duration-seconds="true")
.player__controls
.player__button.amplitude-play-pause(data-amplitude-main-play-pause="true" id="play-pause")
+sprite("pause").player__button__icon--pause
+sprite("play").player__button__icon--play
.player__info
.player__name(data-amplitude-song-info="name" data-amplitude-main-song-info="true")
- let index = 0
each group in soundboard
h2= group.title
div.sounds
each sound in group.sounds
script.
window.player.songs.push({ album: '#{group.title}', name: '#{sound.title.replace("'", "\\'")}', url: '#{sound.file}' })
button.button(type="button" onclick=`playSound(${index})`)= sound.title
- index++
script.
document.addEventListener("DOMContentLoaded", () => {
const { hash } = window.location
if (hash) {
const index = Amplitude.getSongs().findIndex(sound => sound.url === `/sounds/${hash.substring(1)}.mp3`)
if (index > -1) playSound(index)
}
})