def run(self): # 先从数据库中查询管理员和关注的群号码(加快后面的访问速度) db = DBDriver(variable.DbFile) db.openConn() db.exec_(variable.Table_Admin) db.exec_(variable.Table_Group) db.exec_(variable.Table_Ask) # [('892768447',), ('892768447',)] try: variable.Admins = set([j for i in db.select(variable.Select_Admin) for j in i]) variable.Groups = set([j for i in db.select(variable.Select_Group) for j in i]) print("管理员: %s", variable.Admins) print("关注群: %s", variable.Groups) except Exception as e: print.error(e) db.closeConn() if self.login(): t = 0 self._event.start() while self._run: if variable.Exit: self.stop() break if variable.Offine: break # 心跳包轮询 if t > 5: data = {"from":variable.Email, "to":variable.Email, "title":"QQ下线", "msg":"网络无连接"} self._http.post(variable.EmailUrl, data) self.stop() break time.sleep(1) # 1秒一轮询 ret = self.check() print("ret: %s", ret) retcode = ret.get("retcode") if retcode == 100006: break # post数据有误 if retcode == 102 or retcode == 108: continue # 无消息 if retcode == 116: variable.Ptwebqq = ret.get("p") continue # 更新ptwebqq值 if retcode == 0: # 消息广播 self.msg_handler(ret.get("result")) continue if ret == "": t = t + 1 continue # 返回数据有误
def get(self, *args, **kwargs): ver = self.get_argument("ver", "") com = self.get_argument("com", "") if ver == "start_smartqq": print("start") if variable.smartqq == None: variable.smartqq = SmartQQ() if os.path.exists(QrCodePath): os.remove(QrCodePath) variable.smartqq.start() self.redirect("/qrcode") elif ver == "close_smartqq": variable.smartqq.stop() variable.smartqq = None self.write("机器人已经关闭") self.finish() elif ver == variable.AddAdmin and com: print("添加管理员: ", com) db = DBDriver(variable.DbFile) db.openConn() db.exec_(variable.Table_Admin) db.exec_(variable.Table_Group) db.exec_(variable.Table_Ask) result = db.exec_(variable.Insert_Admin, com) db.closeConn() if result: variable.Admins.add(com) self.write("添加管理员: {0} 成功".format(com)) self.finish() elif ver == variable.AddAdmin and com: print("删除管理员: ", com) db = DBDriver(variable.DbFile) db.openConn() db.exec_(variable.Table_Admin) db.exec_(variable.Table_Group) db.exec_(variable.Table_Ask) result = db.exec_(variable.Del_Admin, com) db.closeConn() if result: variable.Admins.remove(com) self.write("删除管理员: {0} 成功".format(com)) self.finish() elif ver == variable.AddAttention and com: print("添加关注群: ", com) db = DBDriver(variable.DbFile) db.openConn() db.exec_(variable.Table_Admin) db.exec_(variable.Table_Group) db.exec_(variable.Table_Ask) result = db.exec_(variable.Insert_Group, com) db.closeConn() if result: variable.Groups.add(com) self.write("添加关注群: {0} 成功".format(com)) self.finish() elif ver == variable.AddAttention and com: print("删除关注群: ", com) db = DBDriver(variable.DbFile) db.openConn() db.exec_(variable.Table_Admin) db.exec_(variable.Table_Group) db.exec_(variable.Table_Ask) result = db.exec_(variable.Del_Group, com) db.closeConn() if result: variable.Groups.remove(com) self.write("删除关注群: {0} 成功".format(com)) self.finish() else: self.render("index.html")
def __init__(self): DBDriver.__init__(self, variable.DbFile) self.openConn()