Esempio n. 1
0
 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    # 返回数据有误
Esempio n. 2
0
 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")
Esempio n. 3
0
 def __init__(self):
     DBDriver.__init__(self, variable.DbFile)
     self.openConn()