Skip to content

Commit e73c7bc

Browse files
save file
1 parent b896827 commit e73c7bc

1 file changed

Lines changed: 153 additions & 0 deletions

File tree

html/chat-room/chat-room.html

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,173 @@
3838
}//initmod
3939

4040

41+
//:
42+
43+
var hdr;
44+
var display;
4145

4246
obj.init = async function(){
4347
debug=eval(debug.mod);
4448
debug('init');
49+
hdr = mod['chat-room-hdr'];
50+
display = mod['chat-room-display'];
51+
52+
4553
await mod.auto();
4654

55+
4756
}//init
4857

4958

5059

5160
obj.initdom = async function(){
61+
62+
post.start();
63+
5264
}//initdom
5365

5466

67+
//:
68+
69+
70+
async function post(path,json){
71+
72+
post.promise = new Promise(fn);
73+
return post.promise;
74+
75+
76+
async function fn(resolve){
77+
78+
var url = server+path;
79+
var body = JSON.stringify(json);
80+
var headers = {};
81+
debug(url,body);
82+
var err;
83+
try{
84+
85+
var res = await fetch(url,{headers,method:'post',body});
86+
87+
}//try
88+
catch(err2){
89+
90+
err = err2;
91+
92+
}//catch
93+
if(err){
94+
var error = err.toString();
95+
log.red(error);
96+
exit();
97+
return;
98+
}
99+
if(!res.ok){
100+
var txt = await res.text();
101+
var error = `${res.status} ${res.statusText||txt}`;
102+
console.log(error);
103+
console.log(txt);
104+
log.red(error);
105+
exit();
106+
return;
107+
}
108+
109+
var result = await res.json();
110+
if(result.error){
111+
log.red(result.error);
112+
exit();
113+
return;
114+
}
115+
exit(result);
116+
117+
118+
function exit(result){
119+
//console.log(4);
120+
post.promise = null;
121+
resolve(result);
122+
123+
}//exit
124+
125+
}//fn
126+
127+
}//post
128+
129+
130+
post.start = async function(){
131+
132+
var result = await post('start',{room});
133+
if(!result)return;
134+
135+
var list = result.list;
136+
display.list(list);
137+
138+
post.update.initial();
139+
140+
}//start
141+
142+
143+
post.update = async function(){
144+
145+
var ts = msgs.at(-1).ts;
146+
var result = await post('update',{room,ts});
147+
if(!result)return;
148+
149+
var list = result.list;
150+
display.list(list);
151+
152+
if(poll.abort)return;
153+
154+
post.timer = setTimeout(post.update,poll.time);
155+
156+
}//update
157+
158+
159+
post.update.initial = function(){
160+
161+
if(!Number.isFinite(poll.time))return;
162+
post.timer = setTimeout(post.update,poll.time);
163+
164+
}//initial
165+
166+
167+
post.msg = async function({user,password,txt}){
168+
//console.log('post.msg');
169+
clearTimeout(post.timer);
170+
if(post.promise){
171+
//console.log('post.promise');
172+
await post.promise;
173+
}
174+
175+
var ts = msgs.at(-1).ts;
176+
var result = await post('msg',{room,user,password,txt,ts});
177+
if(!result)return;
178+
179+
var list = result.list;
180+
display.list(list);
181+
182+
post.update.initial();
183+
184+
}//msg
185+
186+
187+
post.del = async function({id,password}){
188+
189+
clearTimeout(post.timer);
190+
if(post.promise){
191+
await post.promise;
192+
}
193+
194+
var ts = msgs.at(-1).ts;
195+
var result = await post('del',{room,id,password,ts});
196+
if(!result)return;
197+
198+
var list = result.list;
199+
display.list(list);
200+
201+
post.update.initial();
202+
return true;
203+
204+
}//del
205+
206+
207+
55208

56209
return obj;
57210

0 commit comments

Comments
 (0)