Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

rldjs.js 5.4KB

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