clog = console.log function resp_handler(a0,a1,a2,a3,a4) { clog("jdv: resp_handler",a0,a1,a2,a3,a4) } rlist = [] clog("RLIST!") function dflt_handler(resp,status,jqXHR) { rldh = jqXHR.rldh // if (0 && !rldh.qs.v) { if (!rldh.qs.v) { console.log("NOT V:",rldh.qs.v,rldh.url) rldh.qs.v = 1 rldh.cached = resp } else { // console.log("VEXIST V:",rldh.qs.v) } if (rldh.cached != resp) { console.log("jdv DIFF") // console.log(resp) rlist.push(resp) rldh.diffH(rldh,{resp,status,jqXHR}) rldh.qs.v += 1 rldh.cached = resp } } function rls_handler(resp,status,jqXHR) { rldh = jqXHR.rldh // if (0 && !rldh.qs.v) { if (!rldh.qs.v) { // console.log("NOT V:",rldh.qs.v,rldh.url) console.log("~NOT V2:",rldh.qs.v,rldh.url,JSON.parse(JSON.stringify(rldh)),window.rls) rldh.qs.v = 1 // rldh.cached = resp } else { // console.log("VEXIST V:",rldh.qs.v) } if (rldh.cached != resp) { // console.log("jdv DIFF",[rldh],{"c":rldh.cached,r:resp},{resp,status,jqXHR}) // console.log(resp) rlist.push(resp) rldh.diffH(rldh,{resp,status,jqXHR}) rldh.qs.v += 1 rldh.cached = resp } } function dflt_handler2(resp,rldh,status,jqXHR) { // rldh = jqXHR.rldh // if (0 && !rldh.qs.v) { if (!rldh.qs.v) { console.log("NOT V:",rldh.qs.v) rldh.qs.v = 1 rldh.cached = resp } else { // console.log("VEXIST V:",rldh.qs.v) } if (rldh.cached != resp) { console.log("jdv DIFF") // console.log(resp) rlist.push(resp) rldh.diffH(rldh,{resp,status,jqXHR}) rldh.qs.v += 1 rldh.cached = resp } } function diff_handler(a0,a1,a2,a3,a4) { clog("jdv: diff_handler","NOT IMPLEMENTED") } function jsrh(rldh,rsp) { var s = document.createElement("script") s.src = rldh.url+"?"+"v="+rldh.qs.v s.classList.add("rld") var s0 = $(`script.rld[src^="`+rldh.url+`"]`)[0] var sp =s0.previousElementSibling s0.remove() sp.after(s) } function xmsg(data,exe,attrs={}){ var ns = {xmlns:"jcorner"} var msg = $build("message",{ to: APP.conference._room.room.roomjid, type: 'groupchat', }); if (exe){ data.exe=exe } var payload=JSON.stringify(data) Object.assign({},ns,attrs) msg.c("code", payload,Object.assign({},ns,attrs)).up(); console.log() APP.conference._room.room.connection.send(msg) // APP.conference._room.room.roomjid } function jsrrh(rldh,rsp) { console.log("jsrrh RAW",rsp) if (APP.conference.getLocalDisplayName() == "rc"){ xmsg({"k1":"v1"},rsp.resp) } } function cssrh(rldh,rsp) { var s = document.createElement("link") s.href = rldh.url+"?"+"v="+rldh.qs.v s.rel = "stylesheet" s.classList.add("rld") var s0 = $(`link.rld[href^="`+rldh.url+`"]`)[0] var sp =s0.previousElementSibling sp.after(s) setTimeout(rmv_timeout,50,s0) } function rmv_timeout(node){ console.log(this,node) node.remove() } var reqt = { url:"", respH:dflt_handler, diffH:diff_handler, } class nRld { constructor(basepath="/") { this.arr = [] this.obj = {} this.int = 1550 // if (localStorage.rld_interval){ if (localStorage.rld_int_json){ clog("rld_int_json") try { var rij = JSON.parse(localStorage.rld_int_json) if (Number.isInteger(rij.all)){ this.int = rij.all clog("rld_int_json set") } clog("rld_int_json:",rij) } catch (e) { clog("rld_int_json err:",e) } // this.int = localStorage.rld_interval } else { clog("!rld_int_json") } // this.int = 1550 this.minInt = 250 this.basepath = basepath this.files = {} this.arr2 = [] } add (file){ } addNew (file){ } rld_check() { // clog("RLD CHECK") for (var file of this.arr){ var aii aii= $.ajax({ url: file.url, data: file.qs, cache:false, success: file.respH, dataType: "text" }) aii.rldh=file } } run(){ clog("RUN rldjs") if (this.intid){ clearInterval(this.intid) } this.intid = setInterval(this.rld_check.bind(this),this.int) } setint(int){ if (this.minInt > int){ throw "minInt > int" } this.int = int this.run() } } rldi=new nRld() tdx2 = [] tdx9 = [] function url_str(url){ li = url.lastIndexOf("/") upath = url.substring(0,li) snq = url.substring(li+1) sn = snq.split("?")[0] // clog("US",li,upath,snq,sn) return sn } rlst="" rlsd={} // RC THIS is called by rls.js function rld_ls() { // body... var rlst0 = JSON.stringify(rls) // clog("cui... RLD LSz",rlst0==rlst, rldi.arr[0]) // clog("cui... RLD LS", rldi.arr[0].qs.v) if (rlst != rlst0 || rldi.arr[0].qs.v <= 2){ // clog("cui RLD LS") var k,v,rsp for (k in rldi.files){ v = rldi.files[k] rsp=rls[k] dflt_handler2(rsp,v) } rlst = rlst0 } } function onl(){ console.log("TDEX2...") var j = $(".rld") clog("!.",j) for (en of j){ var t = Object.assign({},reqt,{}) tdx2.push(t) t.qs = {v:0} if (en.tagName == "SCRIPT") { t.url = en.getAttribute("src") t.diffH = jsrh } else if (en.tagName == "LINK") { t.url = en.getAttribute("href") t.diffH = cssrh } if (en.classList.contains("rrld")){ t.respH = rls_handler // t.qs.v=1 rldi.arr.push(t) clog("RLDI ARR PUSH") console.trace("RLDI") } else if (en.classList.contains("crld")){ rldi.files[url_str(t.url)] = t } else { rldi.files[url_str(t.url)] = t } } } setTimeout(onl,500) rldi.run() function rldj(){ // return console.log("WINPATH2...") // onl() // setTimeout(onl,100) } console.log("HI") // sss function rcom(){ var k,v var k2,v2 for ([k,v] of Object.entries(rldi.files) ){ clog(k,v.cached == rls[k],v.cached,rls[k]) } }