1 var afb = new AFB("api", "mysecret");
5 function getParameterByName(name, url) {
7 url = window.location.href;
9 name = name.replace(/[\[\]]/g, "\\$&");
10 var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
11 results = regex.exec(url);
12 if (!results) return null;
13 if (!results[2]) return '';
14 return decodeURIComponent(results[2].replace(/\+/g, " "));
17 // default soundcard is "PCH"
18 var devid=getParameterByName("devid");
19 if (!devid) devid="hw:0";
21 var sndname=getParameterByName("sndname");
22 if (!sndname) sndname="PCH";
24 var quiet=getParameterByName("quiet");
25 if (!quiet) quiet="99";
28 ws = new afb.ws(onopen, onabort);
32 document.getElementById("background").style.background = "lightgray";
33 document.getElementById("main").style.visibility = "visible";
34 callbinder("ll-auth", "getuser", "");
35 ws.onevent("*", gotevent);
39 document.getElementById("background").style.background = "IndianRed";
42 function replyok(obj) {
43 console.log("replyok:" + JSON.stringify(obj));
44 document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj);
46 document.getElementById("usertitle").innerHTML = "A valid user is logged in";
47 document.getElementById("userid").innerHTML = obj.response.user;
48 document.getElementById("userdevice").innerHTML = obj.response.device;
49 document.getElementById("background").style.background = "lightgreen";
52 function replyerr(obj) {
53 console.log("replyerr:" + JSON.stringify(obj));
54 document.getElementById("output").innerHTML = "ERROR: "+JSON.stringify(obj);
57 function gotevent(obj) {
58 console.log("gotevent:" + JSON.stringify(obj));
59 document.getElementById("outevt").innerHTML = (evtidx++) +": "+JSON.stringify(obj);
61 document.getElementById("question").innerHTML = "";
62 document.getElementById("output").innerHTML = "";
63 document.getElementById("message").innerHTML = "";
65 if (obj.event == "ll-auth/login") {
66 document.getElementById("usertitle").innerHTML = "A valid user is logged in";
67 document.getElementById("userid").innerHTML = obj.data.user;
68 document.getElementById("userdevice").innerHTML = obj.data.device;
69 document.getElementById("background").style.background = "lightgreen";
72 if (obj.event == "ll-auth/logout") {
73 document.getElementById("usertitle").innerHTML = "No user";
74 document.getElementById("userid").innerHTML = "";
75 document.getElementById("userdevice").innerHTML = "";
76 document.getElementById("background").style.background = "lightgray";
79 if (obj.event == "ll-auth/failed") {
80 document.getElementById("message").innerHTML = obj.data.message;
84 function send(message) {
85 var api = document.getElementById("api").value;
86 var verb = document.getElementById("verb").value;
87 document.getElementById("question").innerHTML = "subscribe: "+api+"/"+verb + " (" + JSON.stringify(message) +")";
88 ws.call(api+"/"+verb, {data:message}).then(replyok, replyerr);
92 function callbinder(api, verb, query) {
93 console.log ("subscribe api="+api+" verb="+verb+" query=" +query);
94 document.getElementById("question").innerHTML = "apicall: " + api+"/"+verb +" ("+ JSON.stringify(query)+")";
95 ws.call(api+"/"+verb, query).then(replyok, replyerr);