/* * @author Claudio Giampaolo * @version 2.1.2 * * refresh shot script */ function updateView(data){ let { src, date, time, place, timeshot, delay } = data || { delay: 300 }; let now = Date.now(); document.getElementById("cam_shot").src = src + "?r=" + now; document.getElementById("cam_date").innerHTML = date; document.getElementById("cam_time").innerHTML = time; document.getElementById("cam_place").innerHTML = place; // timer let epoch = parseInt( now/1000 ); // ms -> s let tout = delay - (epoch - timeshot); if(tout<0) // in caso di blocco della webcam -> tout <0 => uso il delay suggerito tout = delay; setTimeout(refreshShot, tout * 1000); } function loadManifest(url) { let conn = new XMLHttpRequest(); conn.open("GET", url, true); conn.onreadystatechange = (c, ev) => { if (conn.readyState == XMLHttpRequest.DONE) try{ let json = JSON.parse(conn.responseText); updateView(json); } catch(e) { console.error('Error on parsing JSON response:', e.message || e); } }; conn.send(); } function refreshShot() { let url = "https://storage.googleapis.com/webcam-rol-capture/handler.manifest?r=" + Date.now(); // manifest direct link loadManifest(url); } refreshShot();