67 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
<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>
 |