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 # 返回数据有误