選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

rldjs2.js 6.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  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. var sp =s0.previousElementSibling
  112. sp.after(s)
  113. // setTimeout(rmv_timeout,50,s0)
  114. setTimeout(rmv_timeout,50,j0)
  115. }
  116. function rmv_timeout(node){
  117. console.log(this,node)
  118. // clog("cssrh remove_RLD",node)
  119. node.remove()
  120. }
  121. var reqt = {
  122. url:"",
  123. respH:dflt_handler,
  124. diffH:diff_handler,
  125. }
  126. class nRld {
  127. constructor(basepath="/") {
  128. this.arr = []
  129. this.obj = {}
  130. this.int = 1550
  131. // if (localStorage.rld_interval){
  132. if (localStorage.rld_int_json){
  133. clog("rld_int_json")
  134. try {
  135. var rij = JSON.parse(localStorage.rld_int_json)
  136. if (Number.isInteger(rij.all)){
  137. this.int = rij.all
  138. clog("rld_int_json set")
  139. }
  140. clog("rld_int_json:",rij)
  141. } catch (e) {
  142. clog("rld_int_json err:",e)
  143. }
  144. // this.int = localStorage.rld_interval
  145. } else {
  146. clog("!rld_int_json")
  147. }
  148. // this.int = 1550
  149. this.minInt = 250
  150. this.basepath = basepath
  151. this.files = {}
  152. this.arr2 = []
  153. }
  154. add (file){
  155. }
  156. addNew (file){
  157. }
  158. rld_check() {
  159. // clog("RLD CHECK")
  160. for (var file of this.arr){
  161. var aii
  162. aii= $.ajax({
  163. url: file.url,
  164. data: file.qs,
  165. cache:false,
  166. success: file.respH,
  167. dataType: "text"
  168. })
  169. aii.rldh=file
  170. }
  171. }
  172. run(){
  173. clog("RUN rldjs")
  174. if (this.intid){
  175. clearInterval(this.intid)
  176. }
  177. this.intid = setInterval(this.rld_check.bind(this),this.int)
  178. }
  179. setint(int){
  180. if (this.minInt > int){
  181. throw "minInt > int"
  182. }
  183. this.int = int
  184. this.run()
  185. }
  186. }
  187. rldi=new nRld()
  188. tdx2 = []
  189. tdx9 = []
  190. function url_str0(url){
  191. li = url.lastIndexOf("/")
  192. upath = url.substring(0,li)
  193. snq = url.substring(li+1)
  194. sn = snq.split("?")[0]
  195. // clog("US",li,upath,snq,sn)
  196. return sn
  197. }
  198. function url_str(url){
  199. // li = url.lastIndexOf("/")
  200. // upath = url.substring(0,li)
  201. // snq = url.substring(li+1)
  202. var snq = url
  203. var sn = snq.split("?")[0]
  204. // clog
  205. // clog("US2",{li,upath,snq,sn})
  206. return sn
  207. }
  208. rlst=""
  209. rlsd={}
  210. // RC THIS is called by rls.js
  211. function rld_ls() {
  212. // body...
  213. var rlst0 = JSON.stringify(rls)
  214. // clog("cui... RLD LSz",rlst0==rlst, rldi.arr[0])
  215. // clog("cui... RLD LS", rldi.arr[0].qs.v)
  216. if (rlst != rlst0 || rldi.arr[0].qs.v <= 2){
  217. // clog("cui RLD LS")
  218. var k,v,rsp
  219. for (k in rldi.files){
  220. v = rldi.files[k]
  221. rsp=rls[k]
  222. dflt_handler2(rsp,v)
  223. }
  224. rlst = rlst0
  225. }
  226. }
  227. function onl(){
  228. // console.log("TDEX2...")
  229. var j = $(".rld")
  230. // clog("!.",j)
  231. for (en of j){
  232. var t = Object.assign({},reqt,{})
  233. tdx2.push(t)
  234. t.qs = {v:0}
  235. if (en.tagName == "SCRIPT") {
  236. t.url = en.getAttribute("src")
  237. t.diffH = jsrh
  238. } else if (en.tagName == "LINK") {
  239. t.url = en.getAttribute("href")
  240. t.diffH = cssrh
  241. }
  242. if (en.classList.contains("rrld")){
  243. t.respH = rls_handler
  244. // t.qs.v=1
  245. rldi.arr.push(t)
  246. // clog("RLDI ARR PUSH")
  247. // console.trace("RLDI")
  248. } else if (en.classList.contains("crld")){
  249. rldi.files[url_str(t.url)] = t
  250. } else {
  251. rldi.files[url_str(t.url)] = t
  252. }
  253. }
  254. }
  255. setTimeout(onl,500)
  256. rldi.run()
  257. function rldj(){
  258. // return
  259. console.log("WINPATH2...")
  260. // onl()
  261. // setTimeout(onl,100)
  262. }
  263. // console.log("HI")
  264. // sss
  265. function rcom(){
  266. var k,v
  267. var k2,v2
  268. for ([k,v] of Object.entries(rldi.files) ){
  269. clog(k,v.cached == rls[k],v.cached,rls[k])
  270. }
  271. clog(Object.entries(rldi.files).length)
  272. }