if MyDB.llen(RedisKey) == 0: Lists = '' else: Lists = MyDB.lrange(RedisKey, 0, -1) # Uso l'intestazione "web" della mia libreria print(mhl.MyHtml()) print(mhl.MyHtmlHead()) print("<h3>Puoi aggiungerne o eliminarne solamente uno alla volta</h3>") print("(Anche contemporaneamente, ma un'indirizzo solo)") print("<br>") print("<br>") print(mhl.MyActionForm("/cgi-bin/listsipwrite.py", "POST")) print("<table>") print("<tr>") print("<td>") print("Key: ") print("</td>") print("<td>") print(mhl.MyTextForm("key", RedisKey, "40", "required", "readonly")) print("</td>") print("</tr>") for i in range(len(Lists)): print("<tr>") print("<td>")
if MyDB.hexists(RedisKey, "ttl"): TTL = MyDB.hget(RedisKey, "ttl") else: TTL = b"1" if MyDB.hexists(RedisKey, "tcycle"): TCycle = MyDB.hget(RedisKey, "tcycle") else: TCycle = b"1" # Uso l'intestazione "web" della mia libreria print(mhl.MyHtml()) print(mhl.MyHtmlHead()) print(mhl.MyActionForm("/cgi-bin/configwrite.py", "POST")) print("<table>") print("<tr>") print("<td>") print("Key: ") print("</td>") print("<td>") print(mhl.MyTextForm("key", RedisKey, "40", "required", "readonly")) print("</td>") print("</tr>") print("<tr>") print("<td>") print("Nr. tentativi d'invio per messaggio: ")
<ul> <li>Uscita termostato </li> <li>Pin di collegamento del rele` di uscita per comando riscaldamento </li> <li>Questo dipendera` dal programma, nel nostro caso il pin 11 del connettore (GPIO 17). </li> </ul> </li> </ul> <hr/> <br/> """) # Inizio del form print(mhl.MyActionForm(WriteFile, "POST")) print("<table>") # La prima voce non e` modificabile ed e` la chiave Redis (solo visualizzazione) print("<tr>") print("<td>") print("Key: ") print("</td>") print("<td>") print(mhl.MyTextForm("key", RedisKey, "40", "required", "readonly")) print("</td>") print("</tr>") # Per ogni campo ... stampo il campo ed il suo valore. (la funzione "Decode()" serve per trasformare "bin->str") for i in MyDB.hkeys(RedisKey):
Appoggio = flt.Decode( subprocess.check_output( ['/var/www/cgi-bin/setsgraph_init.d.sh', 'status', SetsRedis[i]])) print("<b>", SetsRedis[i], "</b>", Appoggio, "<br/><hr/>") # .split() Divido le parole # [-1] Prendo l'ultima # try int() Intero ? try: int(Appoggio.split()[-1]) SetsRedisOn.append(SetsRedis[i]) except ValueError as e: SetsRedisOff.append(SetsRedis[i]) print("</fieldset>") # Inizio del form print(mhl.MyActionForm(ExecFile, "POST")) print("<table>") # 2 colonne # La prima voce non e` modificabile ed e` la chiave Redis (solo visualizzazione) print("<tr>") print("<td>") print("Start:") print("</td>") print("<td>") print("<fieldset>") # Ho usato il "fieldset" come separatore/raggruppatore print("<legend>Seleziona i demoni da avviare</legend>") for i in range(len(SetsRedisOff)): print(mhl.MyCheckboxForm("start", SetsRedisOff[i]), SetsRedisOff[i], "<br/>") print("</fieldset>")
form = cgi.FieldStorage() if FormName not in form: pass else: RedisKey = cgi.escape(form[FormName].value) print("<h2>", "<center>", "Filtra chiave Redis", "</center>", "</h2>") print("Puoi usare i caratteri \"*\" e \"?\", esempi: ") print("*stringa*, *stringafinale, *stringacon3caratterifinali???<br/>") # Preselezioni print("<p>Preselezioni</p>") # Questi pulsanti richiamano questo file con "valori" preimpostati print(mhl.MyActionForm("", "POST")) print( "<input type=\"submit\" name=\"{0:s}\" value=\"*:Temperatura:*\">".format( FormName)) print("<input type=\"submit\" name=\"{0:s}\" value=\"*:Umidita:*\">".format( FormName)) print("<input type=\"submit\" name=\"{0:s}\" value=\"*:Pioggia:*\">".format( FormName)) print("<input type=\"submit\" name=\"{0:s}\" value=\"*:MotionDect:*\">".format( FormName)) print("<input type=\"submit\" name=\"{0:s}\" value=\"*Valori\">".format( FormName)) print( "<input type=\"submit\" name=\"{0:s}\" value=\"sets:*\">".format(FormName)) print("<input type=\"submit\" name=\"{0:s}\" value=\"*:graph:*\">".format( FormName))
# Account Redis "key" RedisKey = "account:xmpp" if MyDB.hlen(RedisKey) == 0: Username = b"vuoto" #Password = b"vuota" else: Username = MyDB.hget(RedisKey, "username") #Password = MyDB.hget(RedisKey,"password") # Uso l'intestazione "web" della mia libreria print(mhl.MyHtml()) print(mhl.MyHtmlHead()) print(mhl.MyActionForm("/cgi-bin/accountxmppwrite.py", "POST")) print("<table>") print("<tr>") print("<td>") print("Key: ") print("</td>") print("<td>") print(mhl.MyTextForm("key", RedisKey, "40", "required", "readonly")) print("</td>") print("</tr>") print("<tr>") print("<td>") print("Username: ")
Lists = '' else: Lists = MyDB.lrange(RedisKey, 0, -1) # Uso l'intestazione "web" della mia libreria print(mhl.MyHtml()) print(mhl.MyHtmlHead()) print("<h3>Selezione delle liste di invio messaggi di avviso</h3>") print( "Possono essere aggiunte/eliminate contemporaneamente, ma una sola lista alla volta" ) print("<br>") print("<br>") print(mhl.MyActionForm("/cgi-bin/alertlistwrite.py", "POST")) print("<table>") print("<tr>") print("<td>") print("Key: ") print("</td>") print("<td>") print(mhl.MyTextForm("key", RedisKey, "40", "required", "readonly")) print("</td>") print("</tr>") for i in range(len(Lists)): print("<tr>") print("<td>")
print ("</tr>") for i in range(len(Msg)): print ("<tr>") print ("<td>") print (Decode(Msg[i])) print ("</td>") for j in ["date", "type", "desc", "value", "um"]: print ("<td>") print (Decode(MyDB.hget(Msg[i],j))) print ("</td>") print ("</tr>") print ("</table>") print ("<br>") print (mhl.MyActionForm("/cgi-bin/messagewrite.py","POST")) print ("<table>") print ("<tr>") print ("<td>") print ("<b>Spostare messaggi \"inviati/in invio\" in \"vecchi messaggi\" ? </b>") print ("</td>") print ("<td>") print (mhl.MyCheckboxForm("key","new:"+RedisKey+"*")) print ("</td>") print ("</tr>") print ("<tr>") print ("<td colspan=\"4\">") print ("<hr/>") print ("</td>") print ("</tr>") print ("<tr>")
print(mhl.MyHtml()) print(mhl.MyHtmlHead()) # Scrivo il Titolo/Testo della pagina print("<h1>", "<center>", TestoPagina, "</center>", "</h1>") #print ("<hr/>","<br/>") # Eventuale help/annotazione print(""" Seleziona il file del grafico che vuoi visualizzare. <br/> <br/> """) # Inizio del form print( mhl.MyActionForm(ViewFile, "GET") ) # Ho usato il GET invece del POST per utilizzare il refresh nel "view" (ma serve ?) print("<table>") print("<tr>") print("<td>") print(mhl.MyDropDown(FormName, FileList, "")) print("</td>") print("</tr>") print("<tr>") print("<td>") #print ("<hr/>") print("</td>") print("</tr>") print("<tr>")
form=cgi.FieldStorage() # In realta` questo script non viene eseguito da un'altro che passa parametri, # quindi le 4 righe seguenti potrei eliminarle. if FormName not in form: pass else: RedisKey = cgi.escape(form[FormName].value) print ("<h2>","<center>","Filtra chiave Redis","</center>","</h2>") print ("Puoi usare i caratteri \"*\" e \"?\", esempi:<br/>") print ("*stringa*, *stringafinale, *stringacon3caratterifinali???<br/><br/>") # Inizio del form print (mhl.MyActionForm("/cgi-bin/readsetsredis.py","POST")) print ("<table>") # 2 colonne print ("<tr>") print ("<td>") print ("Inserisci il filtro:") print ("</td>") print ("<td>") print (mhl.MyTextForm(FormName,RedisKey,"40","required","")) # Ho messo 40, ma un chiave puo` arrivare a 125 caratteri (se non ricordo male) print ("</td>") print ("</tr>") print ("<tr>") print ("<td colspan=\"2\">") #print ("<hr/>") # La linea orizzontale
ConfigNow = mjl.ReadJsonFile(ConfigFile) # Start web page - Uso l'intestazione "web" della mia libreria print(mhl.MyHtml()) print(mhl.MyHtmlHead()) print("<h1>", "<center>", TestoPagina, "</center>", "</h1>") #print ("<hr/>","<br/>") print("Ho lasciato la possibilita` di lasciare vuota la password", "<hr/>", "<br/>") # Estraggo i valori della configurazione redis ConfigNow = mjl.SearchValueJsonVar(ConfigNow, "redis") print(mhl.MyActionForm(ExecFile, "POST")) print("<table>") # Cerco nell'array il valore for i in range(len(ConfigNow)): if "hostname" == (ConfigNow[i]["name"]): # Appoggio a variabile KeyRead = ConfigNow[i]["value"] print("<tr>") print("<td>") print("Hostname: ") print("</td>") print("<td>") print(mhl.MyTextForm("hostname", KeyRead, "40", "required", "")) print("</td>")
print ("</td>") print ("<td>") print (str(MyDB.lindex(RedisKey,"-1"))) print ("</td>") print ("</tr>") print ("<br/>") # Aggiungo uno spazio (una riga) print ("<tr>") print ("<td colspan=\"2\">") print ("<hr/>") # La linea orizzontale print ("</td>") print ("</tr>") # Visualizza print (mhl.MyActionForm("/cgi-bin/viewlistredis.py","POST")) print ("<tr>") print ("<td>") print ("Key: ") # Testo nella 1a colonna print ("</td>") print ("<td>") print (mhl.MyTextForm(FormName,RedisKey,"40","required","readonly")) print ("</td>") print ("</tr>") print ("<tr>") print ("<td>") print ("") # Testo nella 1a colonna print ("</td>") print ("<td>") print (mhl.MyButtonForm("submit","Visualizza tutti i valori"))