| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 | #!/usr/bin/python3import cgiimport cgitb; cgitb.enable()  # for troubleshootingprint( "Content-type: text/html")print()print( """<html><head><title>Licht WEB</title></head><body>  <h3> Licht WEB  </h3>""")#form = cgi.FieldStorage()#message = form.getvalue("message", "(no message)")print("<br>")import osENV = os.environfor env in ENV:    val=ENV[env]    #print(env)    #print(" = ")    #print(val)    #print("<br>")ARGS = {}if "QUERY_STRING" in ENV:    _args = ENV["QUERY_STRING"]    if "&" in _args:        args = _args.split("&")    else:        args = _args        for arg in args:        import urllib.parse        if "=" in arg:            k,v = arg.split("=",1)            v = urllib.parse.unquote(v)            ARGS[k]=v            print("{} = {} <br>".format(k,v))js = """<script>function xGET(){    dmx = document.getElementById("DMX").value;    val = document.getElementById("VALUE").value;    fade = document.getElementById("FADE").value;    xget(dmx,val,fade)}function cmd2(){    xcmd2 = document.getElementById("cmd2").value;     _cmd2(xcmd2)}function _cmd2(xcmd2=""){    const http = new XMLHttpRequest();    url = './light.cgi?&CMD2=' + xcmd2    http.open("GET", url);    http.send();    http.onreadystatechange = (e) => {      console.log('done',e)    }}function xget(dmx=1,val=100,fade=1){    const http = new XMLHttpRequest();    url = './light.cgi?&CMD=[{"VALUE": '+val+', "args": [], "FADE": '+fade+', "DMX": "'+dmx+'"}]'    http.open("GET", url);    http.send();    http.onreadystatechange = (e) => {      console.log('done',e)    }}function hN(){ // NEXT    dmx = document.getElementById("highlight").value;    dmx = parseInt(dmx) +1    document.getElementById("highlight").value = dmx;    if( dmx != 63 && dmx != 66){        xget(dmx,255,0)    }    dmx -= 1    if( dmx != 63 && dmx != 66){        xget(dmx,0,0)    }    }function hP(){ // PREVIEW    dmx = document.getElementById("highlight").value;    dmx = parseInt(dmx)-1    document.getElementById("highlight").value = dmx;        if( dmx != 63 && dmx != 66){        xget(dmx,255,0)    }    dmx += 1    if( dmx != 63 && dmx != 66){        xget(dmx,0,0)    }}</script>DMX<input type=number id=DMX value=10><br>VALUE<input type=number id=VALUE value=255><br>FADE<input type=number id=FADE value=1><br><input type=button value=GO onclick=xGET()><br><br><br>Highlight<input type=button value="-" onclick=hP() size=10><input type=number id=highlight value=10 size=5><input type=button value="+" onclick=hN() size=10><br><br><br>CMD2:<input id=cmd2 value=10 size=5 type=text value='10,200;11,200'><input type=button value="GO" onclick=cmd2() size=10><br><br>"""#if "CMD" not in ARGS:#    pass#elif "CMD2" not in ARGS:#    pass#else:if 1:    print(js)    print("<br>")    print("beispiel <br>")    print('&CMD=[{"VALUE": 55, "args": [], "FADE": 3, "DMX": "1"}]')    print("<br>")if "CMD" in ARGS:    CMD = ARGS["CMD"]    CMD = CMD.replace("'","")    CMD = CMD.replace("<","")    CMD = CMD.replace(">","")    CMD = CMD.replace(";","")    CMD = CMD.replace("|","")    #python3 /opt/LibreLight/Xdesk/lib/zchat.py data '[{"VALUE": 255, "args": [], "FADE": 0, "DMX": "1"}]    cmd = 'python3 /opt/LibreLight/Xdesk/lib/zchat.py data \'{}\''.format(CMD)    print("$ ",cmd, "<br>")    print("<br>")    r=os.popen(cmd)    for l in r:        l=l.replace("<","<")        l=l.replace(">",">")        print(">",l,"<br>")if "CMD2" in ARGS:    import lib.zchat as zchat    import json    c = zchat.Client()    cmd2 = ARGS["CMD2"]    print("<br>")    print("CMD2",cmd2)    print("<br>")    for j in cmd2.split(";"):        if "," in j:            fade= 0.3            dmx,val = j.split(",")            val = int(val)            try:                data =[{"VALUE": val, "args": [], "FADE": fade, "DMX": str(dmx)}]                i = json.dumps(data)                print("i",i)                print("<br>")                #i = input("cmd:")                c.send(bytes(i,"utf8"))            except Exception as e:                print("e",e)print( """</html>""")
 |