def exec_cmd(msg=''): fd = open(gen.action_file,'w') fd.close() gen.get_signal(gen.if_file) while 1: cmd = 'select * from cmd where valid = "cmd"' res = sql.run_sql_cmd(cmd) if len(res) == 0: break time.sleep(1) res = sql.read('cmd','succ') ret = True if res != [(None,None)]: print "<p>%s update successful"%(msg) res = sql.read('cmd','err') if res != [(None,None)]: for rec in res: errcmd = rec[1].split(":")[0] err = rec[1].split(":")[1] cmdtype = gen.get_cmd_type(errcmd) print "<p>Update FAILED: %s"%(err) ret = False cmd = 'delete from cmd' sql.run_sql_cmd(cmd) return ret
def exec_cmd(msg=''): fd = open(gen.action_file, 'w') fd.close() gen.get_signal(gen.if_file) while 1: cmd = 'select * from cmd where valid = "cmd"' res = sql.run_sql_cmd(cmd) if len(res) == 0: break time.sleep(1) res = sql.read('cmd', 'succ') ret = True if res != [(None, None)]: print "<p>%s update successful" % (msg) res = sql.read('cmd', 'err') if res != [(None, None)]: for rec in res: errcmd = rec[1].split(":")[0] err = rec[1].split(":")[1] cmdtype = gen.get_cmd_type(errcmd) print "<p>Update FAILED: %s" % (err) ret = False cmd = 'delete from cmd' sql.run_sql_cmd(cmd) return ret
def ShutUp(msg, QQ, GroupID): import json if '#禁言' in msg: Adminer = sql.read('SELECT * FROM Admin;') if str(QQ) in list( itertools.chain.from_iterable([list(x) for x in Adminer])): try: shutupuserid = json.loads(msg)['UserID'][0] time = json.loads(msg)['Content'].split(' ')[2] except: POST.GroupMsg(msg='缺少参数', groupid=GroupID, picurl=0, picbase=0, atUser=0) return POST.SetShutUpUser(qq=shutupuserid, time=time, groupid=GroupID) POST.GroupMsg(msg='操作成功', groupid=GroupID, picurl=0, picbase=0, atUser=0) else: POST.GroupMsg(msg='非许可用户,不可使用该命令', groupid=GroupID, picurl=0, picbase=0, atUser=0)
def login_refresh(): ctime = int(time.time()) res = sql.read('val','login:%s'%(os.environ['REMOTE_ADDR'])) if res[0][0] == None: sql.insert('val','login:%s'%(os.environ['REMOTE_ADDR']),ctime) else: sql.modify('val','login:%s'%(os.environ['REMOTE_ADDR']),ctime) return
def login_refresh(): ctime = int(time.time()) res = sql.read('val', 'login:%s' % (os.environ['REMOTE_ADDR'])) if res[0][0] == None: sql.insert('val', 'login:%s' % (os.environ['REMOTE_ADDR']), ctime) else: sql.modify('val', 'login:%s' % (os.environ['REMOTE_ADDR']), ctime) return
def login_check(): res = sql.read('val','login:%s'%(os.environ['REMOTE_ADDR'])) if res[0][0] == None: sql.insert('val','login:%s'%(os.environ['REMOTE_ADDR']),0) res = [(0,0)] lastmtime = res[0][0] ctime = int(time.time()) if (ctime - lastmtime) > (5*60): return False return True
def login_check(): res = sql.read('val', 'login:%s' % (os.environ['REMOTE_ADDR'])) if res[0][0] == None: sql.insert('val', 'login:%s' % (os.environ['REMOTE_ADDR']), 0) res = [(0, 0)] lastmtime = res[0][0] ctime = int(time.time()) if (ctime - lastmtime) > (5 * 60): return False return True
def passwd(): pwd = sql.read('val','webpass')[0][1] if pwd != form['opass'].value: gen.redirect(page='passwd',latency=3,msg='Error: Web password does not match record.') return if form['npass1'].value != form['npass2'].value: gen.redirect(page='passwd',latency=3,msg='Error: New passwords do not match.') return sql.modify('val','webpass',form['npass1'].value) print "<p>New password updated"
def passwd(): pwd = sql.read('val', 'webpass')[0][1] if pwd != form['opass'].value: gen.redirect(page='passwd', latency=3, msg='Error: Web password does not match record.') return if form['npass1'].value != form['npass2'].value: gen.redirect(page='passwd', latency=3, msg='Error: New passwords do not match.') return sql.modify('val', 'webpass', form['npass1'].value) print "<p>New password updated"
def Block(Type, GroupID, MsgSeq, MsgRandom, QQ): Adminer = sql.read('SELECT * FROM Admin;') if str(QQ) in str(Adminer): return else: POST.CheHui(GroupID=GroupID, MsgSeq=MsgSeq, MsgRandom=MsgRandom) POST.GroupMsg(msg=f'监测到违规信息,已经撤回,类型为{Type}', groupid=GroupID, picurl=0, picbase=0, atUser=0) POST.SetShutUpUser(qq=QQ, time=config['TextShutupTime'], groupid=GroupID)
def handle(): print 'handling' res = sql.read('cmd','cmd') cmd = '' for rec in res: print rec[1] out = sub.Popen([rec[1]],shell=True,stdout=nfp,stderr=sub.PIPE).communicate() if len(out[1]) > 1: cmd = "insert into cmd (valid,valchar) values('err','%s:%s')"%(rec[1],out[1]) else: cmd = "insert into cmd (valid,valchar) values('succ','%s')"%(rec[1]) sql.run_sql_cmd(cmd) cmd = 'delete from cmd where valid = "cmd"' sql.run_sql_cmd(cmd)
def handle(): print 'handling' res = sql.read('cmd', 'cmd') cmd = '' for rec in res: print rec[1] out = sub.Popen([rec[1]], shell=True, stdout=nfp, stderr=sub.PIPE).communicate() if len(out[1]) > 1: cmd = "insert into cmd (valid,valchar) values('err','%s:%s')" % ( rec[1], out[1]) else: cmd = "insert into cmd (valid,valchar) values('succ','%s')" % ( rec[1]) sql.run_sql_cmd(cmd) cmd = 'delete from cmd where valid = "cmd"' sql.run_sql_cmd(cmd)
def privacy(): try: dur = int(form['dur'].value) ctime = int(time.time()) ntime = ctime + dur*60 res = sql.read('val','privend') if res[0][0] == None: sql.insert('val','privend',ntime) else: sql.modify('val','privend',ntime) cmd = 'pgrep tie && killall tie' sql.insert('cmd','cmd',[0,cmd]) ret = exec_cmd('Privacy Settings ') if ret: print "<p>Private mode enabled for %s minutes"%(dur) else: pass except: print "<p>Private mode not enabled"
def privacy(): try: dur = int(form['dur'].value) ctime = int(time.time()) ntime = ctime + dur * 60 res = sql.read('val', 'privend') if res[0][0] == None: sql.insert('val', 'privend', ntime) else: sql.modify('val', 'privend', ntime) cmd = 'pgrep tie && killall tie' sql.insert('cmd', 'cmd', [0, cmd]) ret = exec_cmd('Privacy Settings ') if ret: print "<p>Private mode enabled for %s minutes" % (dur) else: pass except: print "<p>Private mode not enabled"
def login(): res = sql.read('val','webpass') if res[0][1] == None: sql.insert('val','webpass',gen.default_pass) res = [(0,gen.default_pass)] pwd = res[0][1] if pwd == form['pwd'].value: gen.login_refresh() latency = 0 dest = 'main' msg = '' else: latency = 4 dest = 'login' msg = '<p>Wrong Password! Going back to login page...' print "Content-Type: text/html" print print '<html>\ <body>\ <meta http-equiv="REFRESH" content="%s;url=%s.py">\n\ %s\ </html>\ '%(latency,dest,msg)
def login(): res = sql.read('val', 'webpass') if res[0][1] == None: sql.insert('val', 'webpass', gen.default_pass) res = [(0, gen.default_pass)] pwd = res[0][1] if pwd == form['pwd'].value: gen.login_refresh() latency = 0 dest = 'main' msg = '' else: latency = 4 dest = 'login' msg = '<p>Wrong Password! Going back to login page...' print "Content-Type: text/html" print print '<html>\ <body>\ <meta http-equiv="REFRESH" content="%s;url=%s.py">\n\ %s\ </html>\ ' % (latency, dest, msg)
def GetUserBilibili(QQ): import sql QQ = str(QQ) tmp = sql.read(f'SELECT * FROM bilibili WHERE QQ="{QQ}"') return ({"csrf": tmp[1], "cookie": tmp[2]})
#!/usr/bin/env python import cgi import cgitb import gen import sql import os cgitb.enable() res = sql.read("val", "login:%s" % (os.environ["REMOTE_ADDR"])) if res[0][0] == None: sql.insert("val", "login:%s" % (os.environ["REMOTE_ADDR"]), 0) else: sql.modify("val", "login:%s" % (os.environ["REMOTE_ADDR"]), 0) gen.print_header() print "\ Logged out successfully\ <p><a href=login.py>Log back in</a>\ </html>\ "