Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

rldjs2.js 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. 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 j0 = $(`script.rld[src^="`+rldh.url+`"]`)[0]
  73. var s0 = j0[0]
  74. var sp =s0.previousElementSibling
  75. // s0.remove()
  76. j0.remove()
  77. sp.after(s)
  78. }
  79. function xmsg(data,exe,attrs={}){
  80. var ns = {xmlns:"jcorner"}
  81. var msg = $build("message",{ to: APP.conference._room.room.roomjid,
  82. type: 'groupchat',
  83. });
  84. if (exe){
  85. data.exe=exe
  86. }
  87. var payload=JSON.stringify(data)
  88. Object.assign({},ns,attrs)
  89. msg.c("code", payload,Object.assign({},ns,attrs)).up();
  90. console.log()
  91. APP.conference._room.room.connection.send(msg)
  92. // APP.conference._room.room.roomjid
  93. }
  94. function jsrrh(rldh,rsp) {
  95. console.log("jsrrh RAW",rsp)
  96. if (APP.conference.getLocalDisplayName() == "rc"){
  97. xmsg({"k1":"v1"},rsp.resp)
  98. }
  99. }
  100. function cssrh(rldh,rsp) {
  101. var s = document.createElement("link")
  102. s.href = rldh.url+"?"+"v="+rldh.qs.v
  103. s.rel = "stylesheet"
  104. s.classList.add("rld")
  105. // var s0 = $(`link.rld[href^="`+rldh.url+`"]`)[0]
  106. var j0 = $(`link.rld[href^="`+rldh.url+`"]`)
  107. var s0 = j0[0]
  108. var sp =s0.previousElementSibling
  109. sp.after(s)
  110. // setTimeout(rmv_timeout,50,s0)
  111. setTimeout(rmv_timeout,50,j0)
  112. }
  113. function rmv_timeout(node){
  114. console.log(this,node)
  115. node.remove()
  116. }
  117. var reqt = {
  118. url:"",
  119. respH:dflt_handler,
  120. diffH:diff_handler,
  121. }
  122. class nRld {
  123. constructor(basepath="/") {
  124. this.arr = []
  125. this.obj = {}
  126. this.int = 1550
  127. // if (localStorage.rld_interval){
  128. if (localStorage.rld_int_json){
  129. clog("rld_int_json")
  130. try {
  131. var rij = JSON.parse(localStorage.rld_int_json)
  132. if (Number.isInteger(rij.all)){
  133. this.int = rij.all
  134. clog("rld_int_json set")
  135. }
  136. clog("rld_int_json:",rij)
  137. } catch (e) {
  138. clog("rld_int_json err:",e)
  139. }
  140. // this.int = localStorage.rld_interval
  141. } else {
  142. clog("!rld_int_json")
  143. }
  144. // this.int = 1550
  145. this.minInt = 250
  146. this.basepath = basepath
  147. this.files = {}
  148. this.arr2 = []
  149. }
  150. add (file){
  151. }
  152. addNew (file){
  153. }
  154. rld_check() {
  155. // clog("RLD CHECK")
  156. for (var file of this.arr){
  157. var aii
  158. aii= $.ajax({
  159. url: file.url,
  160. data: file.qs,
  161. cache:false,
  162. success: file.respH,
  163. dataType: "text"
  164. })
  165. aii.rldh=file
  166. }
  167. }
  168. run(){
  169. clog("RUN rldjs")
  170. if (this.intid){
  171. clearInterval(this.intid)
  172. }
  173. this.intid = setInterval(this.rld_check.bind(this),this.int)
  174. }
  175. setint(int){
  176. if (this.minInt > int){
  177. throw "minInt > int"
  178. }
  179. this.int = int
  180. this.run()
  181. }
  182. }
  183. rldi=new nRld()
  184. tdx2 = []
  185. tdx9 = []
  186. function url_str0(url){
  187. li = url.lastIndexOf("/")
  188. upath = url.substring(0,li)
  189. snq = url.substring(li+1)
  190. sn = snq.split("?")[0]
  191. // clog("US",li,upath,snq,sn)
  192. return sn
  193. }
  194. function url_str(url){
  195. // li = url.lastIndexOf("/")
  196. // upath = url.substring(0,li)
  197. // snq = url.substring(li+1)
  198. var snq = url
  199. var sn = snq.split("?")[0]
  200. // clog
  201. // clog("US2",{li,upath,snq,sn})
  202. return sn
  203. }
  204. rlst=""
  205. rlsd={}
  206. // RC THIS is called by rls.js
  207. function rld_ls() {
  208. // body...
  209. var rlst0 = JSON.stringify(rls)
  210. // clog("cui... RLD LSz",rlst0==rlst, rldi.arr[0])
  211. // clog("cui... RLD LS", rldi.arr[0].qs.v)
  212. if (rlst != rlst0 || rldi.arr[0].qs.v <= 2){
  213. // clog("cui RLD LS")
  214. var k,v,rsp
  215. for (k in rldi.files){
  216. v = rldi.files[k]
  217. rsp=rls[k]
  218. dflt_handler2(rsp,v)
  219. }
  220. rlst = rlst0
  221. }
  222. }
  223. function onl(){
  224. console.log("TDEX2...")
  225. var j = $(".rld")
  226. clog("!.",j)
  227. for (en of j){
  228. var t = Object.assign({},reqt,{})
  229. tdx2.push(t)
  230. t.qs = {v:0}
  231. if (en.tagName == "SCRIPT") {
  232. t.url = en.getAttribute("src")
  233. t.diffH = jsrh
  234. } else if (en.tagName == "LINK") {
  235. t.url = en.getAttribute("href")
  236. t.diffH = cssrh
  237. }
  238. if (en.classList.contains("rrld")){
  239. t.respH = rls_handler
  240. // t.qs.v=1
  241. rldi.arr.push(t)
  242. clog("RLDI ARR PUSH")
  243. console.trace("RLDI")
  244. } else if (en.classList.contains("crld")){
  245. rldi.files[url_str(t.url)] = t
  246. } else {
  247. rldi.files[url_str(t.url)] = t
  248. }
  249. }
  250. }
  251. setTimeout(onl,500)
  252. rldi.run()
  253. function rldj(){
  254. // return
  255. console.log("WINPATH2...")
  256. // onl()
  257. // setTimeout(onl,100)
  258. }
  259. console.log("HI")
  260. // sss
  261. function rcom(){
  262. var k,v
  263. var k2,v2
  264. for ([k,v] of Object.entries(rldi.files) ){
  265. clog(k,v.cached == rls[k],v.cached,rls[k])
  266. }
  267. }