Spaces:
Running
Running
<html lang='en'> | |
<head> | |
<title>N/A</title> | |
<meta charset='utf-8'> | |
<meta name="viewport" content="width=device-width, initial-scale=1.00"> | |
<meta name="robots" content="noindex,nofollow,noarchive"> | |
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.min.js" integrity="sha512-6+YN/9o9BWrk6wSfGxQGpt3EUK6XeHi6yeHV+TYD2GR0Sj/cggRpXr1BrAQf0as6XslxomMUxXp2vIl+fv0QRA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> | |
<script src="https://cdn.plyr.io/3.7.3/plyr.js"></script> | |
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest/dist/hls.min.js"></script> | |
<link rel="stylesheet" href="https://cdn.plyr.io/3.7.3/plyr.css" /> | |
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" /> | |
<link href="https://cdn.jsdelivr.net/gh/daydreamer-json/SomeFontRepo@main/somefontrepo.css" rel="stylesheet" type="text/css" media="all"> | |
<style> | |
html, body { | |
color: #fff; | |
background: #000; | |
margin: 0; | |
padding: 0; | |
line-height: 1; | |
width: 100vw; | |
height: 100vh; | |
font-family: 'SDK_JP_Web', system-ui; | |
} | |
#h2string1 { | |
margin: 0; | |
padding: 0; | |
line-height: 1; | |
} | |
#main { | |
position: absolute; | |
top: 50%; | |
left: 50%; | |
transform: translate(-50%, -50%); | |
text-align: center; | |
margin: 0; | |
padding: 0; | |
white-space: normal; | |
letter-spacing: -0.02em; | |
text-shadow: 0 0 30px #cccccc; | |
z-index: 100; | |
} | |
#cover_bg_container { | |
width: 100vw; | |
height: 100vh; | |
overflow: hidden; | |
} | |
#cover_bg { | |
z-index: 95; | |
width: 100vw; | |
height: 100vh; | |
opacity: 0.3; | |
object-fit: cover; | |
object-position: 50% 50%; | |
} | |
.do-not-select { | |
user-select: none; | |
} | |
.do-not-bold { | |
font-weight: normal; | |
} | |
</style> | |
</head> | |
<body> | |
<div id='cover_bg_container' class='do-not-select'> | |
<img id='cover_bg' src='' style='display: none;' class='do-not-select'> | |
</div> | |
<div id='main'> | |
<h2 id='h2string1' class='do-not-select do-not-bold'> </h1> | |
<h1 id='h1string1' class='do-not-select do-not-bold'> </h1> | |
<div id='trackInfo' class='do-not-select'> | |
<h3 id='trackInfo_trackName' class='do-not-bold' style='display: none;'> </h3> | |
<h4 id='trackInfo_albumName' class='do-not-bold' style='display: none;'> </h4> | |
<h4 id='trackInfo_artistName' class='do-not-bold' style='display: none;'> </h4> | |
<p id='trackInfo_copyright' style='display: none;'> </p> | |
</div> | |
</div> | |
<script> | |
let BASE_SETTINGS = { | |
base64var: { | |
pageTitle: 'R2Vuc2hpbiBJbXBhY3QgTXVzaWMgSnVrZWJveA==', | |
h2string1: 'R2Vuc2hpbiBJbXBhY3QgTXVzaWMgSnVrZWJveA==' | |
}, | |
audioRootURL: 'https://raw.githubusercontent.com/daydreamer-json/discography_cdn_005/main/mhy/genshin', | |
playStartButtonText_init_pc: 'CLICK TO PLAY', | |
playStartButtonText_init_mobile: 'TAP TO PLAY', | |
playStartButtonText_loading: 'LOADING ...', | |
playStartButtonText_playing: 'NOW PLAYING', | |
trackInfoLabel_loading: 'Loading ...', | |
forceCompressedFormat: true | |
}; | |
function detectMobileDevice() { | |
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { | |
return 'mobile' | |
} else { | |
return 'pc' | |
} | |
} | |
function display_deobfuscate() { | |
document.title = atob(BASE_SETTINGS.base64var.pageTitle); | |
document.getElementById('h2string1').textContent = atob(BASE_SETTINGS.base64var.h2string1); | |
} | |
function randomTrackSelector(db) { | |
let random32bitArray = new Uint32Array(3); | |
window.crypto.getRandomValues(random32bitArray); | |
let randomizedAlbumIndex = random32bitArray[0] % db.list.length; | |
let randomizedDiscIndex = random32bitArray[1] % db.list[randomizedAlbumIndex].discs.length; | |
let randomizedTrackIndex = random32bitArray[2] % db.list[randomizedAlbumIndex].discs[randomizedDiscIndex].tracks.length; | |
return { | |
albumIndex: randomizedAlbumIndex, | |
discIndex: randomizedDiscIndex, | |
trackIndex: randomizedTrackIndex | |
}; | |
} | |
function playAudioURLBuilder(db, randomTrackSelectorOutput) { | |
let deviceType = detectMobileDevice(); | |
/* | |
let bpsArray = new Array(); | |
for (let i = 0; i < db.list[randomTrackSelectorOutput.albumIndex].availableFmts.length; i++) { | |
bpsArray.push(db.list[randomTrackSelectorOutput.albumIndex].availableFmts[i].bps); | |
}; | |
bpsArray.sort((a, b) => b - a); | |
*/ | |
let formatPath = ''; | |
let formatExt = ''; | |
if (BASE_SETTINGS.forceCompressedFormat) { | |
formatPath = db.list[randomTrackSelectorOutput.albumIndex].availableFmts[db.list[randomTrackSelectorOutput.albumIndex].availableFmts.length - 1].path; | |
formatExt = db.list[randomTrackSelectorOutput.albumIndex].availableFmts[db.list[randomTrackSelectorOutput.albumIndex].availableFmts.length - 1].ext; | |
} else if (deviceType == 'pc') { | |
formatPath = db.list[randomTrackSelectorOutput.albumIndex].availableFmts[0].path; | |
formatExt = db.list[randomTrackSelectorOutput.albumIndex].availableFmts[0].ext; | |
} else if (deviceType == 'mobile') { | |
formatPath = db.list[randomTrackSelectorOutput.albumIndex].availableFmts[db.list[randomTrackSelectorOutput.albumIndex].availableFmts.length - 1].path; | |
formatExt = db.list[randomTrackSelectorOutput.albumIndex].availableFmts[db.list[randomTrackSelectorOutput.albumIndex].availableFmts.length - 1].ext; | |
} | |
let trackTotal = 0; | |
let trackCountArray = new Array(); | |
for (let i = 0; i < db.list[randomTrackSelectorOutput.albumIndex].discs.length; i++) { | |
trackTotal += db.list[randomTrackSelectorOutput.albumIndex].discs[i].tracks.length; | |
trackCountArray.push(db.list[randomTrackSelectorOutput.albumIndex].discs[i].tracks.length); | |
}; | |
let selectedTrackNum = 0; | |
if (randomTrackSelectorOutput.discIndex == 0) { | |
selectedTrackNum = randomTrackSelectorOutput.trackIndex + 1; | |
} else { | |
let E7BF25ECDBAAF938 = 0; | |
for (let i = 0; i < randomTrackSelectorOutput.discIndex; i++) { | |
E7BF25ECDBAAF938 += trackCountArray[i]; | |
} | |
selectedTrackNum = E7BF25ECDBAAF938 + randomTrackSelectorOutput.trackIndex + 1; | |
} | |
let selectedTrackNumStr = ''; | |
if (trackTotal >= 100) { | |
selectedTrackNumStr = selectedTrackNum.toString().padStart(3, '0'); | |
} else if (trackTotal < 100) { | |
selectedTrackNumStr = selectedTrackNum.toString().padStart(2, '0'); | |
} | |
let filename = encodeURIComponent(db.list[randomTrackSelectorOutput.albumIndex].discs[randomTrackSelectorOutput.discIndex].tracks[randomTrackSelectorOutput.trackIndex].trackName['en-US'].replace(/'/g, '_')); | |
let buildedURL = `${BASE_SETTINGS.audioRootURL}/${db.list[randomTrackSelectorOutput.albumIndex].rootPath}/${formatPath}/${selectedTrackNumStr}_${filename}.${formatExt}`; | |
return buildedURL; | |
} | |
function playAudio() { | |
document.getElementById('h1string1').removeEventListener('click', playAudio); | |
if (typeof audioPlayer !== 'undefined') { | |
audioPlayer.unload(); | |
}; | |
fetch(`${BASE_SETTINGS.audioRootURL}/db.json`) | |
.then(response => response.json()) | |
.then(data => { | |
console.log('Database loaded successfully'); | |
const FILE_DATABASE = data; | |
let deviceType = detectMobileDevice(); | |
let randomTrackSelectorOutput = randomTrackSelector(FILE_DATABASE); | |
var audioPlayer = new Howl ({ | |
src: [playAudioURLBuilder(FILE_DATABASE, randomTrackSelectorOutput)], | |
html5: true | |
}); | |
window.audioPlayer = audioPlayer; | |
document.getElementById('h1string1').textContent = BASE_SETTINGS.playStartButtonText_loading; | |
document.getElementById('trackInfo_trackName').textContent = BASE_SETTINGS.trackInfoLabel_loading; | |
document.getElementById('trackInfo_albumName').textContent = BASE_SETTINGS.trackInfoLabel_loading; | |
document.getElementById('trackInfo_artistName').textContent = BASE_SETTINGS.trackInfoLabel_loading; | |
document.getElementById('trackInfo_copyright').textContent = BASE_SETTINGS.trackInfoLabel_loading; | |
audioPlayer.on('loaderror', function(){ | |
console.error('Audio "loaderror" has occured. Retrying ...'); | |
playAudio(); | |
}); | |
audioPlayer.on('playerror', function(){ | |
console.error('Audio "playerror" has occured. Retrying ...'); | |
playAudio(); | |
}); | |
audioPlayer.on('load', function(){ | |
audioPlayer.play(); | |
document.getElementById('h1string1').addEventListener('click', playAudio); | |
document.getElementById('h1string1').textContent = BASE_SETTINGS.playStartButtonText_playing; | |
console.log(`Now playing "${FILE_DATABASE.list[randomTrackSelectorOutput.albumIndex].discs[randomTrackSelectorOutput.discIndex].tracks[randomTrackSelectorOutput.trackIndex].trackName['en-US']}"`); | |
console.log(`URL: ${audioPlayer._src}`); | |
document.getElementById('trackInfo_trackName').textContent = FILE_DATABASE.list[randomTrackSelectorOutput.albumIndex].discs[randomTrackSelectorOutput.discIndex].tracks[randomTrackSelectorOutput.trackIndex].trackName['en-US']; | |
document.getElementById('trackInfo_albumName').textContent = FILE_DATABASE.list[randomTrackSelectorOutput.albumIndex].albumTitle; | |
document.getElementById('trackInfo_artistName').textContent = FILE_DATABASE.list[randomTrackSelectorOutput.albumIndex].albumArtist; | |
document.getElementById('trackInfo_copyright').textContent = FILE_DATABASE.list[randomTrackSelectorOutput.albumIndex].copyright; | |
document.getElementById('cover_bg').src = `${BASE_SETTINGS.audioRootURL}/${FILE_DATABASE.list[randomTrackSelectorOutput.albumIndex].rootPath}/cover.webp`; | |
if (document.getElementById('trackInfo_trackName').style.display == 'none' && document.getElementById('trackInfo_albumName').style.display == 'none' && document.getElementById('trackInfo_artistName').style.display == 'none' && document.getElementById('trackInfo_copyright').style.display == 'none' && document.getElementById('cover_bg').style.display == 'none') { | |
document.getElementById('trackInfo_trackName').style.display = 'block'; | |
document.getElementById('trackInfo_albumName').style.display = 'block'; | |
document.getElementById('trackInfo_artistName').style.display = 'block'; | |
document.getElementById('trackInfo_copyright').style.display = 'block'; | |
document.getElementById('cover_bg').style.display = 'block'; | |
} | |
audioPlayer.on('end', playAudio); | |
}); | |
}) | |
.catch(error => { | |
console.error(error); | |
alert('Failed to load database file'); | |
}); | |
} | |
document.addEventListener('DOMContentLoaded', function() { | |
display_deobfuscate(); | |
let deviceType = detectMobileDevice(); | |
if (deviceType == 'pc') { | |
document.getElementById('h1string1').textContent = BASE_SETTINGS.playStartButtonText_init_pc; | |
} else if (deviceType == 'mobile') { | |
document.getElementById('h1string1').textContent = BASE_SETTINGS.playStartButtonText_init_mobile; | |
}; | |
var audioPlayer = new Howl ({ | |
src: ['https://archive.org/download/audio-silent-wavs-one-second-half-second-quarter-second/silent_quarter-second.mp3'] | |
}); | |
window.audioPlayer = audioPlayer; | |
}); | |
window.onload = function () { | |
document.getElementById('h1string1').addEventListener('click', playAudio); | |
} | |
</script> | |
</body> | |
</html> |