Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

rldjs2.js 6.7KB

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