-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex-minimized.html
1 lines (1 loc) · 2.12 KB
/
index-minimized.html
1
<body id=body><div><canvas id=canvas width=800px height=800px></canvas><audio id=audio><source id=source-ogg src="" type=audio/ogg><source id=source-wav src="" type=audio/wav><source id=source-mp3 src="" type=audio/mp3></audio></div><script>var e=base64ToHex(audioFirstFrameBase64),t="0123456789abcdef",a=document.getElementById("body"),n=document.getElementById("canvas"),r=document.getElementById("audio"),o=document.getElementById("source-ogg"),d=document.getElementById("source-wav"),i=document.getElementById("source-mp3"),u=n.getContext("2d"),s=0,c="736730",l="ACA292",m="D06809",g="EA453A",f="18303A",b=new Array(64);function drawBoardFrame(e,t){for(let r=0;r<8;r++)for(let o=0;o<8;o++){var a=t+6*r+48*o,n=b[8*o+r];if(!n)n=hashColorCode(e.slice(a,a+6),tokenId,a);u.clearRect(100*r,100*o,100,100),u.fillStyle="#"+n,u.fillRect(100*r,100*o,100,100)}}function drawBoard(e){requestAnimationFrame((function animate(){drawBoardFrame(e,s),requestAnimationFrame(animate)}));setInterval((function changeColor(){(s+=384)+384>e.length&&(s=0)}),47.3294987675)}function buf2hex(e){return[...new Uint8Array(e)].map((e=>e.toString(16).padStart(2,"0"))).join("")}function buf2base64(e){for(var t="",a=new Uint8Array(e),n=a.byteLength,r=0;r<n;r++)t+=String.fromCharCode(a[r]);return btoa(t)}function base64ToHex(e){for(var t=atob(e),a="",n=0;n<t.length;n++){var r=t.charCodeAt(n).toString(16);a+=2===r.length?r:"0"+r}return a.toUpperCase()}function hashColorCode(e,a,n){var r=BigInt(Number(`0x${e}`)+a+n);r=(r=((r=(r>>BigInt(16)^r)*BigInt(73244475))>>BigInt(16)^r)*BigInt(73244475))>>BigInt(16)^r,r=Number(r%BigInt(16777216));for(var o="",d=0;d<6;d++){o+=t[r>>4*d&15]}return o}b[18]=f,b[19]=c,b[20]=l,b[21]=f,b[26]=l,b[27]=m,b[28]=g,b[29]=c,b[34]=c,b[35]=g,b[36]=m,b[37]=l,b[42]=f,b[43]=l,b[44]=c,b[45]=f,drawBoardFrame(e,0),a.addEventListener("click",(e=>{var t=new XMLHttpRequest;t.open("GET",audioFileUrl,!0),t.responseType="arraybuffer",t.onload=function(){const e=buf2hex(t.response),a=buf2base64(t.response);o.src="data:audio/ogg;base64,"+a,d.src="data:audio/wav;base64,"+a,i.src="data:audio/mp3;base64,"+a,r.loop=!0,r.load(),drawBoard(e),r.play()},t.send()}));</script></body>