38 wiersze
3.5 KiB
JavaScript
38 wiersze
3.5 KiB
JavaScript
|
import sortArrayOfObjects from"/js/modules/sortArrayOfObjects.min.js";import loadEmbedScript from"/js/modules/loadEmbedScript.min.js";import Cookie from"/js/cookies/main.min.js";const cookieManager=new Cookie,fileInput=document.getElementById("file-input"),introElement=document.getElementById("intro"),resultsElement=document.getElementById("results"),userInfo=document.getElementById("user-info"),userAvatar=document.getElementById("user-avatar"),userDescription=document.getElementById("user-description"),userDataBreakdown=document.getElementById("user-data-breakdown"),chartElement=document.getElementById("chart"),handleUpload=()=>{fileInput&&fileInput.addEventListener("change",async e=>{var n=new FormData;n.set("archive",fileInput.files[0]);n=await(await fetch("/extract-data",{method:"POST",body:n})).json();if(console.log(n),n&&n.data){introElement.classList.add("d-none"),resultsElement.classList.remove("d-none");n=n.data;let e="",t="",o=(n.actor?(e+=`
|
||
|
<p class="mb-0">
|
||
|
<strong>${n.actor.name||n.actor.preferredUsername}</strong>
|
||
|
</p>
|
||
|
${n.actor.summary.replaceAll('class="invisible"',"")}
|
||
|
`,n.actor.attachment&&(e+=`
|
||
|
<ul class="list-group">
|
||
|
${n.actor.attachment.map(e=>`
|
||
|
<li class="list-group-item">${e.name}: ${e.value.replace('class="invisible"',"")}</li>
|
||
|
`).join("")}
|
||
|
</ul>
|
||
|
`),userDescription.innerHTML=`<div>${e}</div>`,userAvatar.innerHTML=`
|
||
|
<img class="img-thumbnail" width="64" height="64" src="data:image/jpg;base64,${n.avatar}">
|
||
|
`):(userInfo.remove(),userDescription.remove()),[]),a,r=0;n?.outbox?.orderedItems?o=n.outbox.orderedItems:n?.outbox&&(o=n.outbox),(r=o.length)&&(a=o[0]);var i={weekday:"long",year:"numeric",month:"long",day:"numeric"};n.actor&&(l=moment(n.actor.published),l=moment().diff(l,"days"),t+=`
|
||
|
<p>
|
||
|
You created your account on <strong>${new Date(n.actor.published).toLocaleDateString(void 0,i)}</strong>, which is <strong>${l.toLocaleString()} day(s) ago</strong>. Since then, you posted <strong>${r.toLocaleString()} times</strong>, or about ${Math.round(r/l).toLocaleString()} time(s) a day on average.
|
||
|
</p>
|
||
|
`);let s;"mastodon"===n.format?(a&&(i=a?.object?.id||a?.id,l=new URL(i),s=l.protocol+"//"+l.hostname,t=t+`
|
||
|
<p>
|
||
|
Here's your <a href="${i}" target="_blank">first post</a>!
|
||
|
</p>
|
||
|
`+`
|
||
|
<iframe
|
||
|
src="${i}/embed"
|
||
|
class="mastodon-embed"
|
||
|
style="max-width: 100%; border: 0" width="400"
|
||
|
allowfullscreen="allowfullscreen"></iframe>
|
||
|
`),t+=`
|
||
|
<p class="mt-4">
|
||
|
And this is what your posting history looks like.
|
||
|
</p>
|
||
|
`):t+=`
|
||
|
<p>
|
||
|
Here's what your posting history looks like.
|
||
|
</p>
|
||
|
`,userDataBreakdown.innerHTML=t,"mastodon"===n.format&&loadEmbedScript(s);var l={labels:o.map(e=>moment(e.published||e.createdAt)),datasets:[{label:"Your posts in time",data:o.map((e,t)=>({x:moment(e.published||e.createdAt),y:new Date(e.published||e.createdAt).getHours()})),backgroundColor:["#ff6384"]}]};new Chart(chartElement,{type:"scatter",data:l,options:{scales:{x:{type:"time",position:"bottom",ticks:{beginAtZero:!1,stepSize:10}},y:{ticks:{beginAtZero:!1,display:!1},scaleLabel:{display:!1},minorTickInterval:null}}}})}})};export default handleUpload;
|
||
|
//# sourceMappingURL=handleUpload.min.js.map
|