def doaddpc(req): req.default_response() validcode = True try: id, digit = req.form["user"].value.split("-") id = int(id) if digit != database.gen_usercode(id): validcode = False except: validcode = False if validcode: user = req.form["user"].value cu = database.cx.cursor() cu.execute("select name from costumers where id=%d;" % id) a = cu.fetchone() cu.close() if a: username = a[0] if len(username) > 23: tmp = "" for x in username.split(): if len(tmp + x) <= 20: tmp += x + " " if tmp == "": username = username[:20] else: username = tmp.strip() username += "..." else: validcode = False if not validcode: username = "******" user = "" try: ts = h2ts(req.form["end"].value, req.form["start"].value) if not ts is None: if validcode: cu.execute( "update costumers set total_use=total_use+%d where id=%d;" % (int(round((ts - time.time()) / 60.0)), id) ) database.cx.commit() cu.close() cfgloader.do_iptables(req.form["computer"].value, True) pcs[req.form["computer"].value] = [username, req.form["start"].value, req.form["end"].value, user, ts] except: pass req.wfile.write( """<html> <head> <title>pycyber</title> <script language="javascript" type="text/javascript"><!-- window.close(); --></script> </head> </html>""" )
def kill(id): ip = cfgloader.cfg['ips'][id] try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1.5) sock.connect((ip, config.shutdownport)) data = sock.recv(1024) sock.sendall(data) sock.close() except: import main main.addalert(gettext("Couldn't send shutdown command to <b>%s</b>. Please check if the computer is on and if the network cable is correctly plugged.") % id) cfgloader.do_iptables(id, False) deathcheck.add(ip, id)
def dochange(req): id = req.form["id"].value if req.form.has_key("change"): newid = req.form["computer"].value if newid != id: pcs[newid] = pcs[id] pcs.pop(id) id = newid pcs[id][2] = req.form["end"].value pcs[id][4] = h2ts(pcs[id][2], pcs[id][1]) else: credit = round((pcs[id][4] - time.time()) / 60.0) try: userid = int(pcs[id][3].split("-")[0]) except: pass else: if credit > 0: cu = database.cx.cursor() cu.execute( "update costumers set credit=credit+%d,total_use=total_use-%d where id=%d;" % (credit, credit, userid) ) database.cx.commit() cu.close() pcs.pop(id) if req.form.has_key("shutdown"): pckiller.kill(id) else: cfgloader.do_iptables(id, False) req.wfile.write( """<html> <head> <title>pycyber</title> <script language="javascript" type="text/javascript"><!-- window.close(); --></script> </head> </html>""" )