tytdlite/TYTDLite/Assets/video_init_download.html

67 lines
2.2 KiB
HTML
Raw Normal View History

2024-07-01 00:50:11 +00:00
<progress id="progress" value="0" max="100"></progress>
<div id="putme"></div>
<noscript>
<a href="/video?v={{v}}&res={{res}}" class="button">Download Here (refresh if times out)</a>
</noscript>
<script>
const putme = document.getElementById('putme');
const progress = document.getElementById('progress');
const sse = new EventSource('./init_download_event?v={{v}}&res={{res}}');
sse.onmessage = (e)=>{
var data=JSON.parse(e.data);
if(data.type === 'progress')
{
progress.value = data.progress*100;
}
else if(data.type === "error")
{
const h1 = document.createElement('h1');
h1.innerText = "Error";
const p = document.createElement('p');
p.innerText = data.error;
putme.appendChild(h1);
putme.appendChild(p);
sse.close();
}
else if(data.type === "done")
{
const a = document.createElement('a');
const i = document.createElement('i');
const span = document.createElement('span');
const rotext = document.createElement('div');
rotext.classList.add('field');
rotext.classList.add('label');
rotext.classList.add('border');
rotext.classList.add('round');
const input = document.createElement('input');
input.type = "text";
input.readOnly=true;
input.value = new URL(data.url,window.location.href).toString();
rotext.appendChild(input);
const lbl = document.createElement('label');
lbl.innerText = "Url";
rotext.appendChild(lbl);
/*<div class="field label border">
<input type="text">
<label>Label</label>
</div>*/
span.innerText = "Download";
i.innerText="download";
a.classList.add('button');
a.href = data.url;
a.appendChild(i);
a.appendChild(span);
putme.appendChild(a);
putme.appendChild(document.createElement('br'));
putme.appendChild(rotext);
sse.close();
}
};
</script>