Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

rldjs2.js 6.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  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. rldh = jqXHR.rldh
  28. // if (0 && !rldh.qs.v) {
  29. if (!rldh.qs.v) {
  30. // console.log("NOT V:",rldh.qs.v,rldh.url)
  31. console.log("~NOT V2:",rldh.qs.v,rldh.url,JSON.parse(JSON.stringify(rldh)),window.rls)
  32. rldh.qs.v = 1
  33. // rldh.cached = resp
  34. } else {
  35. // console.log("VEXIST V:",rldh.qs.v)
  36. }
  37. if (rldh.cached != resp) {
  38. // console.log("jdv DIFF",[rldh],{"c":rldh.cached,r:resp},{resp,status,jqXHR})
  39. // console.log(resp)
  40. rlist.push(resp)
  41. rldh.diffH(rldh,{resp,status,jqXHR})
  42. rldh.qs.v += 1
  43. rldh.cached = resp
  44. }
  45. }
  46. function dflt_handler2(resp,rldh,status,jqXHR) {
  47. // rldh = jqXHR.rldh
  48. // if (0 && !rldh.qs.v) {
  49. if (!rldh.qs.v) {
  50. console.log("NOT V:",rldh.qs.v)
  51. rldh.qs.v = 1
  52. rldh.cached = resp
  53. } else {
  54. // console.log("VEXIST V:",rldh.qs.v)
  55. }
  56. if (rldh.cached != resp) {
  57. console.log("jdv DIFF")
  58. // console.log(resp)
  59. rlist.push(resp)
  60. rldh.diffH(rldh,{resp,status,jqXHR})
  61. rldh.qs.v += 1
  62. rldh.cached = resp
  63. }
  64. }
  65. function diff_handler(a0,a1,a2,a3,a4) {
  66. clog("jdv: diff_handler","NOT IMPLEMENTED")
  67. }
  68. function jsrh(rldh,rsp) {
  69. var s = document.createElement("script")
  70. s.src = rldh.url+"?"+"v="+rldh.qs.v
  71. s.classList.add("rld")
  72. // var s0 = $(`script.rld[src^="`+rldh.url+`"]`)[0]
  73. var j0 = $(`script.rld[src^="`+rldh.url+`"]`)
  74. var s0 = j0[0]
  75. var sp =s0.previousElementSibling
  76. // s0.remove()
  77. // clog("JSRH remove_RLD",j0,rldh,rsp)
  78. // console.trace("JSRH_trc remove_RLD")
  79. j0.remove()
  80. sp.after(s)
  81. }
  82. function xmsg(data,exe,attrs={}){
  83. var ns = {xmlns:"jcorner"}
  84. var msg = $build("message",{ to: APP.conference._room.room.roomjid,
  85. type: 'groupchat',
  86. });
  87. if (exe){
  88. data.exe=exe
  89. }
  90. var payload=JSON.stringify(data)
  91. Object.assign({},ns,attrs)
  92. msg.c("code", payload,Object.assign({},ns,attrs)).up();
  93. console.log()
  94. APP.conference._room.room.connection.send(msg)
  95. // APP.conference._room.room.roomjid
  96. }
  97. function jsrrh(rldh,rsp) {
  98. console.log("jsrrh RAW",rsp)
  99. if (APP.conference.getLocalDisplayName() == "rc"){
  100. xmsg({"k1":"v1"},rsp.resp)
  101. }
  102. }
  103. function cssrh(rldh,rsp) {
  104. var s = document.createElement("link")
  105. s.href = rldh.url+"?"+"v="+rldh.qs.v
  106. s.rel = "stylesheet"
  107. s.classList.add("rld")
  108. // var s0 = $(`link.rld[href^="`+rldh.url+`"]`)[0]
  109. var j0 = $(`link.rld[href^="`+rldh.url+`"]`)
  110. var s0 = j0[0]
  111. if (s0){
  112. var sp =s0.previousElementSibling
  113. sp.after(s)
  114. // setTimeout(rmv_timeout,50,s0)
  115. setTimeout(rmv_timeout,50,j0)
  116. }
  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. // RC THIS is called by rls.js
  213. function rld_ls() {
  214. // body...
  215. var rlst0 = JSON.stringify(rls)
  216. // clog("cui... RLD LSz",rlst0==rlst, rldi.arr[0])
  217. // clog("cui... RLD LS", rldi.arr[0].qs.v)
  218. if (rlst != rlst0 || rldi.arr[0].qs.v <= 2){
  219. // clog("cui RLD LS")
  220. var k,v,rsp
  221. for (k in rldi.files){
  222. v = rldi.files[k]
  223. rsp=rls[k]
  224. dflt_handler2(rsp,v)
  225. }
  226. rlst = rlst0
  227. }
  228. }
  229. function onl(){
  230. // console.log("TDEX2...")
  231. var j = $(".rld")
  232. // clog("!.",j)
  233. for (en of j){
  234. var t = Object.assign({},reqt,{})
  235. tdx2.push(t)
  236. t.qs = {v:0}
  237. if (en.tagName == "SCRIPT") {
  238. t.url = en.getAttribute("src")
  239. t.diffH = jsrh
  240. } else if (en.tagName == "LINK") {
  241. t.url = en.getAttribute("href")
  242. t.diffH = cssrh
  243. }
  244. if (en.classList.contains("rrld")){
  245. t.respH = rls_handler
  246. // t.qs.v=1
  247. rldi.arr.push(t)
  248. // clog("RLDI ARR PUSH")
  249. // console.trace("RLDI")
  250. } else if (en.classList.contains("crld")){
  251. rldi.files[url_str(t.url)] = t
  252. } else {
  253. rldi.files[url_str(t.url)] = t
  254. }
  255. }
  256. }
  257. setTimeout(onl,500)
  258. rldi.run()
  259. function rldj(){
  260. // return
  261. console.log("WINPATH2...")
  262. // onl()
  263. // setTimeout(onl,100)
  264. }
  265. // console.log("HI")
  266. // sss
  267. function rcom(){
  268. var k,v
  269. var k2,v2
  270. for ([k,v] of Object.entries(rldi.files) ){
  271. clog(k,v.cached == rls[k],v.cached,rls[k])
  272. }
  273. clog(Object.entries(rldi.files).length)
  274. }