소스 검색

trying rsync

trc_dbg
jfinn 1 주 전
부모
커밋
69ee67a3cf

+ 7
- 1
indx/jsyncdb/ev_inc0.js 파일 보기

@@ -13,8 +13,14 @@ function ord_dec(o) {
13 13
 
14 14
 
15 15
 save_orig_class(window.glob_u.cls.reg_cb_ord)
16
-dec_class_method_v0(window.glob_u.cls.reg_cb_ord.prototype,"_run_cbs_ub",ord_dec,nop)
16
+// dec_class_method_v0(window.glob_u.cls.reg_cb_ord.prototype,"_run_cbs_ub",ord_dec,nop)
17
+dec_class_method_v0(window.glob_u.cls.reg_cb_ord.prototype,"_run_cbs_ub",nop,nop)
17 18
 // dec_class_method_v0(window.glob_u.cls.reg_cb_ord.prototype,"_run_cbs_ub",_run_cbs_ord_dec,nop)
18 19
 glob_u.cb.ws.init()
19 20
 
21
+
22
+clog("abc123")
20 23
 // glob_u.cb.ws
24
+
25
+
26
+// /usr/games/srvi_v/logs/

+ 28
- 1
indx/jsyncdb/jsync_rx.js 파일 보기

@@ -292,7 +292,22 @@ function clear_msgs(){
292 292
 glob_u.cb.ws.reg_cb(log_new_msg,"WS_MESSAGE:[M2]","log_new_msg",101)
293 293
 
294 294
 
295
-vinfo()
295
+function vfinfo(){
296
+	var k,v
297
+	gcnt  = 0
298
+
299
+	var r = {arr:[],arr2:[]}
300
+	let views = glob_u.tvar.msgs.last.v 
301
+	for ([k,v] of Object.entries(views)){
302
+		if (typeof(v.file_name) == "string" && v.file_name.includes("url")){
303
+			clog(k,v)
304
+		}
305
+	}
306
+
307
+}
308
+
309
+vfinfo()
310
+// vinfo()
296 311
 
297 312
 window.olog = window.olog || console.log
298 313
 
@@ -329,3 +344,15 @@ console.debug = function() {
329 344
   }
330 345
   console.log.apply(console, args);
331 346
 };
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+

+ 2
- 1
indx/jsyncdb/jsync_rx1.js 파일 보기

@@ -16,4 +16,5 @@ function find_nodes(argument) {
16 16
 	// prototype.__proto__
17 17
 }
18 18
 
19
-// find_nodes()
19
+// find_nodes()
20
+

+ 3
- 0
indx/jsyncdb/jsync_rx2.js 파일 보기

@@ -0,0 +1,3 @@
1
+
2
+
3
+// MODIFY

+ 184
- 0
indx/jsyncdb/jsyncdb_index_v4r.html 파일 보기

@@ -0,0 +1,184 @@
1
+<html itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">
2
+  <head>
3
+
4
+<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
5
+
6
+
7
+
8
+
9
+
10
+<script class="win_keys2 win_keys_glob_attrs" src="/ign/j9/dbg/glob_attrs.js?c=01x"></script>
11
+
12
+
13
+<script src="/ign/libs/jquery-3.5.1.min.js"></script>
14
+
15
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>
16
+
17
+
18
+<script class="rld" src="/ign/indx/jsyncdb/jsync_dep.js"></script>
19
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
20
+<script class="rld" src="/ign/indx/jsyncdb/jsync_ord.js"></script>
21
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
22
+<script class="rld" src="/ign/indx/jsyncdb/jsync_ws.js"></script>
23
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
24
+<script class="rld" src="/ign/indx/jsyncdb/jsync_sto.js"></script>
25
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
26
+<script class="rld" src="/ign/indx/jsyncdb/jsync_init.js"></script>
27
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
28
+<script class="rld" src="/ign/indx/jsyncdb/jsync_test.js"></script>
29
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
30
+<script class="rld" src="/ign/indx/jsyncdb/jsync_demo.js"></script>
31
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>                             
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+<script class="rld" src="/ign/indx/jsyncdb/jsync_test2.js"></script>
41
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>
42
+
43
+
44
+<script class="rld" src="/ign/xf/nginx_tx/j9_dep/i0.js?c=01x"></script>
45
+<script class="rld" src="/ign/indx/jsyncdb/ev_inc0.js?c=01x"></script>
46
+<script class="rld" src="/ign/indx/jsyncdb/ev_inc.js?c=01x"></script>
47
+
48
+<!-- 
49
+ -->
50
+
51
+<!-- <script class="rld" src="/jsync_lib.js"></script> -->
52
+<!-- <script class="rld" src="/jsync_demo.js"></script> -->
53
+<!-- <script class="rld z1" src="jsync_demo.js"></script> -->
54
+
55
+
56
+
57
+<style type="text/css">
58
+
59
+
60
+</style>
61
+ <!-- <link  class="rld" rel="stylesheet" href="/jsync_demo.css"> -->
62
+ <!-- <link  class="rld" rel="stylesheet" href="jsync_demo.css"> -->
63
+ <link  class="rld" rel="stylesheet" href="/ign/indx/jsyncdb/ev_inc.css?c=01x">
64
+ <link  class="rld" rel="stylesheet" href="/ign/indx/jsyncdb/jsync_demo.css?c=01x">
65
+
66
+
67
+<script class="win_keys" src="/ign/j9/dbg/win_keys.js?c=01x"></script>
68
+<script src="/ign/j7/rldjs/rldjs5.js?v=139"></script>
69
+<script class="rld" src="/ign/j7/rldjs/rldws.js?v=139"></script>
70
+<script class="rld rrld" src="/ign/rls.js?<!--#echo var='rtqs'-->"></script>
71
+<script class="rld rrld_u" src="/ign/rls_u.js?<!--#echo var='rtqs'-->"></script>
72
+
73
+<script type="text/javascript">
74
+
75
+window.nginx_v1 = {
76
+  "target_server_name":`<!--#echo var="target_server_name"-->`,
77
+  "ssl_server_name":`<!--#echo var="ssl_server_name"-->`,
78
+
79
+    ssl_certificate: `/etc/letsencrypt/live/<!--#echo var="target_server_name"-->/fullchain.pem`,
80
+    ssl_certificate_key: `/etc/letsencrypt/live/<!--#echo var="target_server_name"-->/privkey.pem`,
81
+
82
+}
83
+
84
+
85
+  function hide_demo(argument) {
86
+    clog("hide_demo")
87
+    $(".show_demo").removeClass("show_demo").addClass("hide_demo")
88
+
89
+  }
90
+  function show_demo(argument) {
91
+    clog("show_demo")
92
+    // body...
93
+    $(".hide_demo").removeClass("hide_demo").addClass("show_demo")
94
+  }
95
+
96
+function evl_btn_h(event,node){
97
+  _evl_btn_h(...arguments)
98
+
99
+}
100
+function eval_h(event,node){
101
+  _eval_h(...arguments)
102
+}
103
+
104
+
105
+</script>
106
+
107
+</head>
108
+<body>
109
+
110
+<div id="root_div">
111
+  <span class="iblock_2"></span>
112
+  <span class="iblock_1"></span>
113
+</div>
114
+<div class="json_container show_demo">
115
+  <button class="demo_hide_btn" onclick="hide_demo()">hide demo</button>
116
+  <button class="demo_show_btn" onclick="show_demo()">show demo</button><br>
117
+
118
+  <!-- <div class="db_disp"></div> -->
119
+  <code class="db_disp" ></code>
120
+&#8595; eval msto.x={} {enter} &#8595;
121
+<!-- <br>  <textarea class="eval_txt" onkeypress="eval_h(event,this)"></textarea> -->
122
+<span class="evl_cnt">
123
+  
124
+<br>  <textarea class="eval_txt" onkeyup="evl_btn_h(event,this)" data-ev_type="keyup"></textarea> 
125
+<span class="btn_cnt">
126
+  
127
+<button class="evl_btn evl_btn1" data-ev_type="b" data-btn-type="b" onclick="evl_btn_h(event,this)"><</button>
128
+<button class="evl_btn evl_btn2" data-ev_type="f" data-btn-type="f" onclick="evl_btn_h(event,this)">></button>
129
+<button class="evl_btn evl_btn3" data-ev_type="e" data-btn-type="e" onclick="evl_btn_h(event,this)">eval</button>
130
+</span>
131
+</span>
132
+<br>
133
+<code class="eval_result"></code>
134
+</div>
135
+<div id="oops_i_lied"><div class="code_container">
136
+in this demo the global variable msto_prx is the root of the database.
137
+we will use the global variable msto because it is a little nicer (has shortcuts to the parts you have exclusive write permissions to).
138
+
139
+<b>open devtools on two pages connected to the same database to begin</b>
140
+to get a copy of the datastructure without the Proxies:
141
+<code>jc(msto)</code><div class="hidden-boundary"></div>
142
+
143
+ set values<code>
144
+
145
+msto.key = "value"<div class="hidden-boundary"></div>
146
+
147
+  msto.example = {
148
+    str:"these are supported data types",
149
+    number:12.7,
150
+    bool:true,
151
+    arr:["val0",1,{z:1},["a","b"]],
152
+    obj:{d:"there is a max depth of 15"},
153
+    str2:"null isn't fully supported yet and can break things",
154
+  }
155
+</code>
156
+  you can paste this shorter statement to avoid newlines in your devtools history :)
157
+
158
+<code>msto.example={str:"str_val",bool:true,number:12.7,arr:["val0",1,{z:2},["a","b"]],obj:{d:"depth 2?"},str2:"another string"}</code><div class="hidden-boundary"></div>
159
+get values
160
+  <code>
161
+msto.example.arr[0]<div class="hidden-boundary"></div>
162
+// "val0"
163
+
164
+msto.example.arr[2]<div class="hidden-boundary"></div>
165
+// {z:2}</code>
166
+the datastructure should have syncronized msto & msto_prx on both webpages 
167
+<span class="db_desc">
168
+values can be strings, numbers, booleans, objects or arrays
169
+null and undefined are not supported yet
170
+local changes are immediate
171
+and deletes are local only (for now)
172
+after a value is set is pushed to everyone else who is connected
173
+
174
+msto.ws_channels and msto.participants are write protected 
175
+msto.my_data links to the path you have write access to as does msto.my_channel
176
+participants and channels write only data are automatically deleted after they leave
177
+the data is not persistent it exists in the webpages of those connected
178
+if everyone leaves a room the datastructure is destroyed
179
+
180
+
181
+</span></div></div>
182
+
183
+</body>
184
+</html>

+ 17
- 0
j7/rldjs/rldjs5.js 파일 보기

@@ -322,6 +322,23 @@ class nRld {
322 322
 	}
323 323
 
324 324
 	rld_check() {
325
+
326
+		var ws_rld_info = this?.rldws_status?.()
327
+		// clog("ws rld_check:",ws_rld_info)
328
+		if (ws_rld_info && ws_rld_info.override){
329
+			return
330
+		} else if (ws_rld_info && ws_rld_info.overide){
331
+		clog("overide is actully spelled override")
332
+
333
+		}
334
+
335
+
336
+		var ws_rld_info2 = this?.rldws_status2?.()
337
+		if (ws_rld_info2){
338
+			clog("ws2 rld_check:",ws_rld_info2)
339
+		}
340
+
341
+		// clog("..")
325 342
 		// clog("RLD CHECK")
326 343
 		for (var file of this.arr){
327 344
 			var aii

+ 233
- 0
j7/rldjs/rldws.js 파일 보기

@@ -0,0 +1,233 @@
1
+
2
+// url
3
+
4
+
5
+// we are doing to need a new dev glob??
6
+
7
+
8
+// function rld_ws_init(argument) {
9
+
10
+
11
+function function_name(argument) {
12
+	// body...
13
+	clog("rldws: function_name onmessage",this,arguments)
14
+
15
+	window.last_fn_targ = [this,arguments]
16
+}
17
+
18
+bfn = function_name.bind({"a":1})
19
+bfn2 = bfn.bind({b:2},{c:3},3,4)
20
+bfn3 = bfn2.bind({b2:2},{c2:3},{d:4},"....")
21
+
22
+bfn_e = function_name.bind()
23
+bfn2_e = bfn_e.bind()
24
+bfn3_e = bfn2_e.bind({b2:2},{c2:3},{d:4},"....")
25
+
26
+dflt_fns = window.dflt_fns || {
27
+	onclose(event){
28
+		
29
+		clog("rldws: onclose WE SHOULD DO SOMTHING!!!!")
30
+	},
31
+	onmessage(event){
32
+		clog("rldws: onmessage",event)
33
+	},
34
+	onerror(event){
35
+		clog("rldws: WS ERR:",[this,arguments])
36
+	},
37
+	onopen(event){
38
+		clog("rldws: onopen")
39
+	},
40
+}
41
+
42
+
43
+
44
+
45
+
46
+// socket_event_handlers = window.socket_event_handlers || {
47
+socket_event_handlers={
48
+	onclose(self,event){
49
+		
50
+		clog("rldws: onclose WE SHOULD DO SOMTHING!!!!",this,arguments)
51
+	},
52
+	onmessage(self,event){
53
+		var data = JSON.parse(event.data)
54
+		// we might support jstp in the future (I haven't defined the protocol yet)
55
+		if (data.CLIENT_KEY =="RLD"){
56
+			// clog(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.")
57
+			self.rld_check_flag = 1
58
+
59
+			clog("WS RLD EVENT..")
60
+			// for compatibility
61
+			rldi.rld_check()
62
+		}
63
+		clog("rldws: onmessage",event,data,[this,arguments])
64
+	},
65
+	onerror(self,event){
66
+		clog("rldws: WS ERR:",[this,arguments])
67
+	},
68
+	onopen(self,event){
69
+		clog("rldws: onopen")
70
+	},
71
+
72
+}
73
+function ws_evh_binder(socket,fns,bind_arr){
74
+	var k,v
75
+	for ([k,v] of Object.entries(fns)){
76
+		if (typeof(v) == "function"){
77
+			socket[k] = v.bind(...bind_arr)
78
+		}
79
+		clog(k,typeof(v),v)
80
+	}
81
+}
82
+
83
+
84
+{
85
+
86
+class jRld{
87
+	constructor (){
88
+		this.version = "jrld 0.0.0"
89
+	}
90
+	rld_check_flag = "?"
91
+	z(){
92
+		clog("z",this,this == window.t)
93
+	}
94
+	// this is for injecting into the old rldjs
95
+	rldws_status(old_rld_inst){
96
+		// clog(this,old_rld_inst,this)
97
+		// let ovr = this.socket.readyState == this.socket.OPEN && !(old_rld_inst.stop_ws_override) && !this.stop_ws_override
98
+		// clog([this.socket.readyState == this.socket.OPEN , !(old_rld_inst.stop_ws_override) , !this.stop_ws_override,!this.rld_check_flag])
99
+		if (this.rld_check_flag){
100
+			setTimeout(this.rldws_status_h2.bind(jrldi,rldi),1)
101
+
102
+		}
103
+		return {override:this.socket.readyState == this.socket.OPEN && !(old_rld_inst.stop_ws_override) && !this.stop_ws_override && !this.rld_check_flag}
104
+	// clog(this)
105
+	}
106
+
107
+	rldws_status_h2(old_rld_inst){
108
+		// clog("rldws_status_h2",this,this.rld_check_flag,arguments)
109
+		this.rld_check_flag = 0
110
+	}
111
+
112
+
113
+}
114
+
115
+
116
+
117
+
118
+clog("hi")
119
+
120
+
121
+
122
+
123
+
124
+window.jRld = jRld
125
+window.orig_jRld = window.orig_jRld || jRld
126
+
127
+}
128
+
129
+
130
+
131
+function resconn_jrldi(){
132
+	if (jrldi.socket)
133
+	jrldi.socket.close()
134
+	window.jrldi = new jRld()
135
+	create_rld_socket(jrldi)
136
+
137
+}
138
+
139
+
140
+// jrldi=0
141
+if (!window.jrldi){
142
+jrldi = new jRld()
143
+}
144
+
145
+function create_rld_socket(jrldi) {
146
+	// host will change in future
147
+	// for now we will append to rldi
148
+	// clog(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
149
+	const room_name = "__RLD_WS__"
150
+
151
+		var o = {
152
+			methods:socket_event_handlers,
153
+		url:'wss://' + window.location.hostname  +`/djc_srv/ws/chat/${room_name}`,
154
+
155
+	}
156
+	var socket = new WebSocket(o.url)
157
+	jrldi.socket = socket
158
+	// Object.assign(socket,o.methods)
159
+	ws_evh_binder(socket,socket_event_handlers,[socket,jrldi])
160
+
161
+	// only if we're using rldjs5
162
+	rldjs5_helper(jrldi)
163
+
164
+	// rldi.socket =
165
+
166
+
167
+
168
+}
169
+
170
+// ws_evh_binder(jrldi.socket,jrldi.socket_event_handlers,[socket,jrldi])
171
+// jrldi.socket.onmessage = jRld.onmessage
172
+// jrldi.socket.onmessage = jRld.socket_event_handlers.onmessage
173
+// jrldi.socket.onmessage = jrldi.socket_event_handlers.onmessage
174
+// jrldi.socket.onmessage = jrldi.onmessage
175
+
176
+function rldjs5_helper(jrldi){
177
+	if (!("stop_ws_override" in rldi)){
178
+	rldi.stop_ws_override = 0
179
+		// clog("jdev a")
180
+	} else {
181
+		// clog("jdev b")
182
+	}
183
+	nRld.prototype.rldws_status = jrldi.rldws_status.bind(jrldi,rldi)
184
+	// rkdjs is un changed so we
185
+}
186
+
187
+// to update socket event handlers
188
+// Object.assign(socket,dflt_fns)
189
+
190
+
191
+/*
192
+nRld.prototype.rldws_status = function rldws_status(){
193
+	clog(this,arguments)
194
+
195
+	return {override:this.try_ws_override}
196
+	// clog(this)
197
+}
198
+*/
199
+
200
+
201
+
202
+
203
+
204
+
205
+clog("rld_ws_init")
206
+
207
+
208
+// clog("::::;")
209
+
210
+
211
+// nRld.prototype.fn = function name(params) {clog("HI",arguments,this)}
212
+// nRld.fn = function name(params) {clog("HI")}
213
+
214
+
215
+
216
+
217
+
218
+// var socket = new WebSocket(o.url)
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+resconn_jrldi()
228
+
229
+
230
+
231
+
232
+
233
+

+ 4
- 1
py_rld/djc/rdir1/i1.py 파일 보기

@@ -212,6 +212,7 @@ class_edit(Mixins.DevMixin,DevMixin_R3)
212 212
 # abc()
213 213
 
214 214
 
215
+
215 216
 # p()
216 217
 glob_cl.fast_timeout = .1
217 218
 glob_cl.timeout = 1
@@ -220,4 +221,6 @@ glob_cl.timeout = 1
220 221
 # redis_info(glob_cl.rconn1)
221 222
 # redis_info(glob_cl.rconn)
222 223
 # glob_cl.fast_timeout = 5.1
223
-# glob_cl.timeout = 5.1
224
+# glob_cl.timeout = 5.1
225
+
226
+

+ 14
- 0
py_rld/djc/rdir1/i3.py 파일 보기

@@ -3,3 +3,17 @@
3 3
 # oinfo(Mixins.ChatConsumer.as_asgi)
4 4
 
5 5
 # p(Mixins.ChatConsumer.as_asgi.__code__)
6
+from django.http import HttpResponse
7
+
8
+
9
+
10
+def post_info(req,*a,**kw):
11
+	p("post_info?",a,kw)
12
+	async_to_sync(glob_cl.acl.group_send)("__RLD_WS__",{"type":"jsto_send","CLIENT_KEY":"RLD"})
13
+	p("~~~~~~~~~~~~~~")
14
+	return {"ret":HttpResponse(",,,,")}
15
+	for en in dir(req):
16
+		p(en)
17
+
18
+
19
+glob_cl.post_info = post_info

+ 7
- 0
py_rld/djc/rdir1/i4.py 파일 보기

@@ -3,3 +3,10 @@
3 3
 print("???")
4 4
 
5 5
 
6
+
7
+
8
+
9
+p(glob_cl.acl.group_add)
10
+p(glob_cl.acl.valid_group_name)
11
+p( inspect.getsourcefile(glob_cl.acl.valid_group_name))
12
+# p(inspectglob_cl.acl.group_add)

+ 4
- 0
xf/nginx_tx/rmix_ui0/rmix_ui_t.html 파일 보기

@@ -27,6 +27,10 @@
27 27
 
28 28
 
29 29
 
30
+
31
+
32
+
33
+
30 34
 
31 35
 
32 36
 

+ 1
- 0
xf/nginx_tx/rmix_ui0/u3.js 파일 보기

@@ -0,0 +1 @@
1
+// CLOSE_WRITE

Loading…
취소
저장