You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. window.clog = window.clog || console.log
  2. function resp_handler(a0,a1,a2,a3,a4) {
  3. clog("jdv: resp_handler",a0,a1,a2,a3,a4)
  4. }
  5. rlist = []
  6. clog("RLIST!")
  7. function dflt_handler(resp,status,jqXHR) {
  8. rldh = jqXHR.rldh
  9. // if (0 && !rldh.qs.v) {
  10. if (!rldh.qs.v) {
  11. console.log("NOT V:",rldh.qs.v,rldh.url)
  12. rldh.qs.v = 1
  13. rldh.cached = resp
  14. } else {
  15. // console.log("VEXIST V:",rldh.qs.v)
  16. }
  17. if (rldh.cached != resp) {
  18. console.log("jdv DIFF")
  19. // console.log(resp)
  20. rlist.push(resp)
  21. rldh.diffH(rldh,{resp,status,jqXHR})
  22. rldh.qs.v += 1
  23. rldh.cached = resp
  24. }
  25. }
  26. function rls_handler(resp,status,jqXHR) {
  27. // clog("RLS...")
  28. rldh = jqXHR.rldh
  29. // if (0 && !rldh.qs.v) {
  30. if (!rldh.qs.v) {
  31. // console.log("NOT V:",rldh.qs.v,rldh.url)
  32. console.log("~NOT V2:",rldh.qs.v,rldh.url,JSON.parse(JSON.stringify(rldh)),window.rls)
  33. rldh.qs.v = 1
  34. // rldh.cached = resp
  35. } else {
  36. // console.log("VEXIST V:",rldh.qs.v)
  37. }
  38. if (rldh.cached != resp) {
  39. // console.log("jdv DIFF",[rldh],{"c":rldh.cached,r:resp},{resp,status,jqXHR})
  40. // console.log(resp)
  41. rlist.push(resp)
  42. rldh.diffH(rldh,{resp,status,jqXHR})
  43. rldh.qs.v += 1
  44. rldh.cached = resp
  45. }
  46. }
  47. function dflt_handler2(resp,rldh,status,jqXHR) {
  48. // rldh = jqXHR.rldh
  49. // if (0 && !rldh.qs.v) {
  50. if (!rldh.qs.v) {
  51. console.log("NOT V:",rldh.qs.v)
  52. rldh.qs.v = 1
  53. rldh.cached = resp
  54. } else {
  55. // console.log("VEXIST V:",rldh.qs.v)
  56. }
  57. if (rldh.cached != resp) {
  58. console.log("jdv DIFF")
  59. // console.log(resp)
  60. rlist.push(resp)
  61. rldh.diffH(rldh,{resp,status,jqXHR})
  62. rldh.qs.v += 1
  63. rldh.cached = resp
  64. }
  65. }
  66. function diff_handler(a0,a1,a2,a3,a4) {
  67. clog("jdv: diff_handler","NOT IMPLEMENTED")
  68. }
  69. function jsrh(rldh,rsp) {
  70. // clog("jsrh...")
  71. var s = document.createElement("script")
  72. s.src = rldh.url+"?"+"v="+rldh.qs.v
  73. s.classList.add("rld")
  74. // var s0 = $(`script.rld[src^="`+rldh.url+`"]`)[0]
  75. var j0 = $(`script.rld[src^="`+rldh.url+`"]`)
  76. var s0 = j0[0]
  77. var sp =s0.previousElementSibling
  78. // s0.remove()
  79. // clog("JSRH remove_RLD",j0,rldh,rsp)
  80. // console.trace("JSRH_trc remove_RLD")
  81. j0.remove()
  82. sp.after(s)
  83. }
  84. function xmsg(data,exe,attrs={}){
  85. var ns = {xmlns:"jcorner"}
  86. var msg = $build("message",{ to: APP.conference._room.room.roomjid,
  87. type: 'groupchat',
  88. });
  89. if (exe){
  90. data.exe=exe
  91. }
  92. var payload=JSON.stringify(data)
  93. Object.assign({},ns,attrs)
  94. msg.c("code", payload,Object.assign({},ns,attrs)).up();
  95. console.log()
  96. APP.conference._room.room.connection.send(msg)
  97. // APP.conference._room.room.roomjid
  98. }
  99. function jsrrh(rldh,rsp) {
  100. console.log("jsrrh RAW",rsp)
  101. if (APP.conference.getLocalDisplayName() == "rc"){
  102. xmsg({"k1":"v1"},rsp.resp)
  103. }
  104. }
  105. function cssrh(rldh,rsp) {
  106. var s = document.createElement("link")
  107. s.href = rldh.url+"?"+"v="+rldh.qs.v
  108. s.rel = "stylesheet"
  109. s.classList.add("rld")
  110. // var s0 = $(`link.rld[href^="`+rldh.url+`"]`)[0]
  111. var j0 = $(`link.rld[href^="`+rldh.url+`"]`)
  112. var s0 = j0[0]
  113. var sp =s0.previousElementSibling
  114. sp.after(s)
  115. // setTimeout(rmv_timeout,50,s0)
  116. setTimeout(rmv_timeout,50,j0)
  117. }
  118. function rmv_timeout(node){
  119. console.log(this,node)
  120. // clog("cssrh remove_RLD",node)
  121. node.remove()
  122. }
  123. var reqt = {
  124. url:"",
  125. respH:dflt_handler,
  126. diffH:diff_handler,
  127. }
  128. class nRld {
  129. constructor(basepath="/") {
  130. this.arr = []
  131. this.obj = {}
  132. this.int = 1550
  133. // if (localStorage.rld_interval){
  134. if (localStorage.rld_int_json){
  135. clog("rld_int_json")
  136. try {
  137. var rij = JSON.parse(localStorage.rld_int_json)
  138. if (Number.isInteger(rij.all)){
  139. this.int = rij.all
  140. clog("rld_int_json set")
  141. }
  142. clog("rld_int_json:",rij)
  143. } catch (e) {
  144. clog("rld_int_json err:",e)
  145. }
  146. // this.int = localStorage.rld_interval
  147. } else {
  148. clog("!rld_int_json")
  149. }
  150. // this.int = 1550
  151. this.minInt = 250
  152. this.basepath = basepath
  153. this.files = {}
  154. this.arr2 = []
  155. }
  156. add (file){
  157. }
  158. addNew (file){
  159. }
  160. rld_check() {
  161. // clog("RLD CHECK")
  162. for (var file of this.arr){
  163. var aii
  164. aii= $.ajax({
  165. url: file.url,
  166. data: file.qs,
  167. cache:false,
  168. success: file.respH,
  169. dataType: "text"
  170. })
  171. aii.rldh=file
  172. }
  173. }
  174. run(){
  175. clog("RUN rldjs")
  176. if (this.intid){
  177. clearInterval(this.intid)
  178. }
  179. this.intid = setInterval(this.rld_check.bind(this),this.int)
  180. }
  181. setint(int){
  182. if (this.minInt > int){
  183. throw "minInt > int"
  184. }
  185. this.int = int
  186. this.run()
  187. }
  188. }
  189. rldi=new nRld()
  190. tdx2 = []
  191. tdx9 = []
  192. function url_str0(url){
  193. li = url.lastIndexOf("/")
  194. upath = url.substring(0,li)
  195. snq = url.substring(li+1)
  196. sn = snq.split("?")[0]
  197. // clog("US",li,upath,snq,sn)
  198. return sn
  199. }
  200. function url_str(url){
  201. // li = url.lastIndexOf("/")
  202. // upath = url.substring(0,li)
  203. // snq = url.substring(li+1)
  204. var snq = url
  205. var sn = snq.split("?")[0]
  206. // clog
  207. // clog("US2",{li,upath,snq,sn})
  208. return sn
  209. }
  210. rlst=""
  211. rlsd={}
  212. function rls_sk(o){
  213. var k,v
  214. for ([k,v] of Object.entries(o)){
  215. o["/"+k]=v
  216. }
  217. }
  218. // RC THIS is called by rls.js
  219. function rld_ls() {
  220. // body...
  221. var rlst0 = JSON.stringify(rls)
  222. // clog("cui... RLD LSz",rlst0==rlst, rldi.arr[0])
  223. // clog("cui... RLD LS", rldi.arr[0].qs.v)
  224. rls_sk(rls)
  225. if (rlst != rlst0 || rldi.arr[0].qs.v <= 2){
  226. // clog("cui RLD LS")
  227. var k,v,rsp
  228. for (k in rldi.files){
  229. v = rldi.files[k]
  230. rsp=rls[k]
  231. dflt_handler2(rsp,v)
  232. }
  233. rlst = rlst0
  234. }
  235. }
  236. function onl(){
  237. // console.log("TDEX2...")
  238. var j = $(".rld")
  239. // clog("!.",j)
  240. for (en of j){
  241. var t = Object.assign({},reqt,{})
  242. tdx2.push(t)
  243. t.qs = {v:0}
  244. if (en.tagName == "SCRIPT") {
  245. t.url = en.getAttribute("src")
  246. t.diffH = jsrh
  247. } else if (en.tagName == "LINK") {
  248. t.url = en.getAttribute("href")
  249. t.diffH = cssrh
  250. }
  251. if (en.classList.contains("rrld")){
  252. t.respH = rls_handler
  253. // t.qs.v=1
  254. rldi.arr.push(t)
  255. // clog("RLDI ARR PUSH")
  256. // console.trace("RLDI")
  257. } else if (en.classList.contains("crld")){
  258. rldi.files[url_str(t.url)] = t
  259. } else {
  260. rldi.files[url_str(t.url)] = t
  261. }
  262. }
  263. }
  264. setTimeout(onl,500)
  265. rldi.run()
  266. function rldj(){
  267. // return
  268. console.log("WINPATH2...")
  269. // onl()
  270. // setTimeout(onl,100)
  271. }
  272. // console.log("HI")
  273. // sss
  274. function rcom(){
  275. var k,v
  276. var k2,v2
  277. for ([k,v] of Object.entries(rldi.files) ){
  278. clog(k,v.cached == rls[k],v.cached,rls[k])
  279. }
  280. clog(Object.entries(rldi.files).length)
  281. }