def __init__(self, qid, event_queue): self.logger = get_logger() self.qid = qid self.aid = 1003903 self.clientid = random.randrange(11111111, 99999999) self.msg_id = random.randrange(1111111, 99999999) self.group_map = {} # 群映射 self.group_m_map = {} # 群到群成员的映射 self.uin_qid_map = {} # uin 到 qq号的映射 self.check_code = None self.skey = None self.ptwebqq = None self.require_check = False self.QUIT = False self.last_msg = {} self.event_queue = event_queue self.check_data = None # CheckHanlder返回的数据 self.blogin_data = None # 登录前返回的数据 self.rc = 1 self.start_time = time.time() self.hb_last_time = self.start_time self.poll_last_time = self.start_time self._helper = HttpHelper() self.connected = False self.polled = False self.heartbeated = False self.group_lst_updated = False
def upload(self, datapath, tag = ""): (filepath, tempfilename) = os.path.split(datapath) (filename, extension) = os.path.splitext(tempfilename) extension = extension[1:len(extension)] files = { "file" : open(datapath, "rb") } path = "/file/upload/store_dataResource_files" data = None jsData = HttpHelper.Request_post_sync(self.ip, self.port, path, None, files) if jsData['code'] == 0: if jsData['data'] != '': dataId = jsData['data'] formData = { "author": self.userName, "fileName": filename, "sourceStoreId": dataId, "suffix": extension, "type": "OTHER" } dataUrl = "/dataResource" jsresult = HttpHelper.Request_post_sync(self.ip, self.port, dataUrl, formData) if jsresult['code'] == 0: data = DCData(self.ip, self.port, dataId) return data
def testify(self, timeout=7200): path = "/modelser/testify/" + self.id jsData = HttpHelper.Request_get_sync(self.ip, self.port, path) if jsData["status"] == 1: title = None testifies = jsData["testifies"] for index, item in enumerate(testifies): title = item["title"] break if title == None: return -2 #! Error in read testify title jsData = HttpHelper.Request_put_sync( self.ip, self.port, "/modelser/testify/" + self.id + "?path=" + title) if jsData["status"] == 1: inputs = jsData["dataInputs"][0]['inputs'] list_data = [] for index, item in enumerate(inputs): list_data.append( DataConfigrationItem(item["StateId"], "", item["Event"], item["DataId"])) recordid = self.invoke(list_data) if recordid != -1: jsData = HttpHelper.Request_get_sync( self.ip, self.port, "/modelserrun/json/" + recordid) msr = None if jsData["result"] == "suc": jsMsr = jsData["data"] jsData = HttpHelper.Request_get_sync( self.ip, self.port, "/modelins/json/" + CommonMethod.getJsonValue(jsMsr, "msr_guid")) mis = None if jsData["result"] == "suc" and int( jsData["code"]) == 1: jsMis = jsData["data"] mis = ModelServiceInstance( self.ip, self.port, str(CommonMethod.getJsonValue(jsMis, "state")), str(CommonMethod.getJsonValue(jsMis, "event")), str(CommonMethod.getJsonValue(jsMis, "guid")), str(CommonMethod.getJsonValue(jsMis, "start")), str( CommonMethod.getJsonValue( CommonMethod.getJsonValue(jsMis, "ms"), "_id"))) if mis.wait4Status(4, timeout) < 0: mis.kill() return -6 # Timeout if mis.status == 4: return 1 else: return -5 #Error in running model service return -4 #! Record can not be found return -3 #! Error in read testify files return -1 #! Error in read testify files
def get_group_msg_img(self, uin, info): """ 获取消息中的图片 """ name = info.get("name") file_id = info.get("file_id") key = info.get("key") server = info.get("server") ip, port = server.split(":") gid = self.group_map.get(uin, {}).get("gid") url = "http://web2.qq.com/cgi-bin/get_group_pic" params = [("type", 0), ("gid", gid), ("uin", uin),("rip", ip), ("rport", port), ("fid", file_id), ("pic", name), ("vfwebqq", self.vfwebqq), ("t", time.time())] helper = HttpHelper(url, params) helper.add_header("Referer", "http://web2.qq.com/") return helper.open()
def get_group_msg_img(self, uin, info): """ 获取消息中的图片 """ name = info.get("name") file_id = info.get("file_id") key = info.get("key") server = info.get("server") ip, port = server.split(":") gid = self.group_map.get(uin, {}).get("gid") url = "http://web2.qq.com/cgi-bin/get_group_pic" params = [("type", 0), ("gid", gid), ("uin", uin), ("rip", ip), ("rport", port), ("fid", file_id), ("pic", name), ("vfwebqq", self.vfwebqq), ("t", time.time())] helper = HttpHelper(url, params) helper.add_header("Referer", "http://web2.qq.com/") return helper.open()
def isExist(self): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/geodata/json/" + self.id) if CommonMethod.getJsonValue(jsData, "result") == "suc" : if CommonMethod.getJsonValue(jsData, "data") == "": return False return True return False
def getModelServiceByID(self, msid): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/modelser/json/" + msid) ms = None if CommonMethod.getJsonValue(jsData, "result") == "suc": jsMs = CommonMethod.getJsonValue(jsData, "data") model = CommonMethod.getJsonValue(jsMs, "ms_model") if model == "": return None user = CommonMethod.getJsonValue(jsMs, "ms_user") if user == "": user = {"u_name": "", "u_email": ""} ms = ModelService( self.ip, self.port, CommonMethod.getJsonValue(jsMs, "_id"), CommonMethod.getJsonValue(model, "m_name"), CommonMethod.getJsonValue(model, "m_type"), CommonMethod.getJsonValue(model, "m_url"), CommonMethod.getJsonValue(model, "p_id"), CommonMethod.getJsonValue(model, "m_id"), CommonMethod.getJsonValue(model, "m_register"), CommonMethod.getJsonValue(jsMs, "ms_des"), CommonMethod.getJsonValue(jsMs, "ms_xml"), CommonMethod.getJsonValue(jsMs, "mv_num"), int(CommonMethod.getJsonValue(jsMs, "ms_platform")), CommonMethod.getJsonValue(jsMs, "ms_update"), CommonMethod.getJsonValue(jsMs, "ms_img"), CommonMethod.getJsonValue(user, "u_name"), CommonMethod.getJsonValue(user, "u_email"), int(CommonMethod.getJsonValue(jsMs, "ms_status")), int(CommonMethod.getJsonValue(jsMs, "ms_limited")), int(CommonMethod.getJsonValue(jsMs, "ms_permission"))) return ms
def get_check_img(self, vcode): """ 获取验证图片 """ url = "https://ssl.captcha.qq.com/getimage" params = [("aid", self.aid), ("r", random.random()), ("uin", self.qid)] helper = HttpHelper(url, params, jar=http_sock.cookiejar) res = helper.open() path = tempfile.mktemp() fp = open(path, 'wb') fp.write(res.read()) fp.close() res = upload_file("check.jpg", path) print res.geturl() check_code = None while not check_code: check_code = raw_input("打开上面连接输出图片上的验证码: ") return check_code.strip()
def upload(self, datapath, tag="", security=False): md5 = CommonMethod.getFileMd5(datapath) path = "/data?md5=" + md5 jsData = HttpHelper.Request_get_sync(self.ip, self.port, path) data = None if jsData['result'] == 'suc': if (jsData['data'] != ''): pwd = jsData['data']['d_pwd'] pwd = CommonMethod.decryption(CommonMethod.decryption(pwd)) data = ExData(self.ip, self.port, str(jsData['data']['id']), pwd) else: data = {"datatag": tag, "pwd": "true"} files = {"datafile": open(datapath, "rb")} r = requests.post("http://" + self.ip + ":" + str(self.port) + "/data", data, files=files) jsData = json.loads(r.text) if jsData['result'] == 'suc': pwd = jsData['data']['d_pwd'] pwd = CommonMethod.decryption(CommonMethod.decryption(pwd)) data = ExData(self.ip, self.port, str(jsData['data']['id']), pwd) return data
def get_check_img(self, vcode): """ 获取验证图片 """ url = "https://ssl.captcha.qq.com/getimage" params = [("aid", self.aid), ("r", random.random()), ("uin", self.qid)] helper = HttpHelper(url, params, jar = http_sock.cookiejar) res = helper.open() path = tempfile.mktemp() fp = open(path, 'wb') fp.write(res.read()) fp.close() res = upload_file("check.jpg", path) print res.geturl() check_code = None while not check_code: check_code = raw_input("打开上面连接输出图片上的验证码: ") return check_code.strip()
def refresh(self): path = "/modelser/json" + self.id jsData = HttpHelper.Request_get_sync(self.ip, self.port, path) if jsData["result"] == "suc": jsMs = jsData["data"] self.status = int(CommonMethod.getJsonValue(jsMs, "ms_status")) self.limitation = int(CommonMethod.getJsonValue( jsMs, "ms_limited")) return 1 return -1
def createTask(self, pid, dxserver=None, username="******"): resJson = HttpHelper.Request_get_sync(self.ip, self.port, '/server?pid=' + pid) if resJson['result'] != 'suc' or resJson['code'] != 1: return None if dxserver == None: resJson = HttpHelper.Request_get_sync(self.ip, self.port, '/dxserver?ac=recommend') if resJson['result'] == 'suc' and len(resJson['data']) > 0: type = resJson['data']['type'] if type == 1: dxserver = GeoDataExServer(resJson['data']['ds_ip'], int(resJson['data']['ds_port'])) else: dxserver = GeoDataServiceServer( resJson['data']['ds_ip'], int(resJson['data']['ds_port']), username) else: return None return Task(self.ip, self.port, pid, dxserver, username)
def invoke(self, list_data): path = "/modelser/" + self.id + "?ac=run&inputdata=[" for index, item in enumerate(list_data): path += "{\"StateId\":\"" + item.stateid + "\",\"StateName\":\"" + item.statename + "\",\"Event\":\"" + item.eventname + "\",\"DataId\":\"" + item.dataid + "\",\"Destoryed\":\"" + str( item.destoryed) + "\"}," path = path.rstrip(',') path += "]" jsData = HttpHelper.Request_get_sync(self.ip, self.port, path) recordid = -1 if jsData["result"] == "suc": recordid = jsData["data"] return recordid
def getModelServiceRunningRecordByID(self, msrid): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/modelserrun/json/" + msrid) msr = None if jsData["result"] == "suc": jsMsr = jsData["data"] msr = ModelServiceRunningRecord( self.ip, self.port, CommonMethod.getJsonValue(jsMsr, "_id"), CommonMethod.getJsonValue( CommonMethod.getJsonValue(jsMsr, "msr_ms"), "_id"), CommonMethod.getJsonValue(jsMsr, "msr_guid"), int(CommonMethod.getJsonValue(jsMsr, "msr_status"))) return msr
def getDataByID(self, dataid): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/geodata/json/" + dataid) dat = None if jsData["result"] == "suc" and jsData["data"] != "": jsGData = jsData["data"] dat = Data(CommonMethod.getJsonValue(jsGData, "gd_id"), CommonMethod.getJsonValue(jsGData, "gd_tag"), CommonMethod.getJsonValue(jsGData, "gd_type"), int(CommonMethod.getJsonValue(jsGData, "gd_size")), CommonMethod.getJsonValue(jsGData, "gd_value"), CommonMethod.getJsonValue(jsGData, "gd_datetime"), self.ip, self.port) return dat
def refresh(self): resJson = HttpHelper.Request_get_sync(self.ip, self.port, '/task/' + self.tid) if resJson['result'] == 'suc': self.status = resJson['data']['t_status'] for item in resJson['data']['t_outputs']: dataItem = { "StateName": item["StateName"], "Event": item["Event"], "Url": item["Url"], "Tag": item["Tag"] } self.outputdata.append(dataItem) return self.status
def subscribeTask(self, task): params = { "inputs": json.dumps(task.inputdata), "username": task.username, "pid": task.pid } resJson = HttpHelper.Request_post_sync(self.ip, self.port, '/task', params) if resJson != "Error": if resJson["result"] == "suc": task._bind(resJson["data"], "Inited") return 1 return -2 return -1
def refresh(self): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/modelins/json/" + self.guid) if jsData["result"] == "suc": jsMis = jsData["data"] if jsMis != None: self.state = CommonMethod.getJsonValue(jsMis, "state") self.event = CommonMethod.getJsonValue(jsMis, "event") self.status = ModelServiceInstance.ConvertString2Status( CommonMethod.getJsonValue(jsMis, "status")) RunningLog.AppendJson2Log( self.logs, CommonMethod.getJsonValue(jsMis, "log")) self.statusDes = CommonMethod.getJsonValue(jsMis, "statusDes") else: self.status = INSTA_FINISHED
def getModelServiceInstanceByGUID(self, guid): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/modelins/json/" + guid) mis = None if jsData["result"] == "suc" and int(jsData["code"]) == 1: jsMis = jsData["data"] mis = ModelServiceInstance( self.ip, self.port, str(CommonMethod.getJsonValue(jsMis, "state")), str(CommonMethod.getJsonValue(jsMis, "event")), str(CommonMethod.getJsonValue(jsMis, "guid")), str(CommonMethod.getJsonValue(jsMis, "start")), str( CommonMethod.getJsonValue( CommonMethod.getJsonValue(jsMis, "ms"), "_id"))) return mis
def getModelServicesList(self, start=0, count=-1): query = '' if count < 1: query = '' else: query = ("?start=" + str(start) + "&count=" + str(count)) jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/modelser/json/all" + query) mslist = [] if CommonMethod.getJsonValue(jsData, "result") == "suc": jsMss = CommonMethod.getJsonValue(jsData, "data") for index, item in enumerate(jsMss): model = CommonMethod.getJsonValue(item, "ms_model") if model == "": continue user = CommonMethod.getJsonValue(item, "ms_user") if user == "": user = {"u_name": "", "u_email": ""} try: if CommonMethod.getJsonValue(item, "ms_limited") == "": item['ms_limited'] = u'0' ms = ModelService( self.ip, self.port, CommonMethod.getJsonValue(item, "_id"), CommonMethod.getJsonValue(model, "m_name"), CommonMethod.getJsonValue(model, "m_type"), CommonMethod.getJsonValue(model, "m_url"), CommonMethod.getJsonValue(model, "p_id"), CommonMethod.getJsonValue(model, "m_id"), CommonMethod.getJsonValue(model, "m_register"), CommonMethod.getJsonValue(item, "ms_des"), CommonMethod.getJsonValue(item, "mv_xml"), CommonMethod.getJsonValue(item, "mv_num"), int(CommonMethod.getJsonValue(item, "ms_platform")), CommonMethod.getJsonValue(item, "ms_update"), CommonMethod.getJsonValue(item, "ms_img"), CommonMethod.getJsonValue(user, "u_name"), CommonMethod.getJsonValue(user, "u_email"), int(CommonMethod.getJsonValue(item, "ms_status")), int(CommonMethod.getJsonValue(item, "ms_limited")), int(CommonMethod.getJsonValue(item, "ms_permission"))) mslist.append(ms) except ZeroDivisionError as ex: print(str(ex)) return mslist
def refresh(self): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/modelserrun/json/" + self.id) if jsData["result"] == "suc": msr = CommonMethod.getJsonValue(jsData, "data") self.status = int(CommonMethod.getJsonValue(msr, "msr_status")) self.timespan = float(CommonMethod.getJsonValue(msr, "msr_span")) self.standout = CommonMethod.getJsonValue( CommonMethod.getJsonValue(msr, "msr_runninginfo"), "StdErr") self.standerr = CommonMethod.getJsonValue( CommonMethod.getJsonValue(msr, "msr_runninginfo"), "StdOut") self.invokeerr = CommonMethod.getJsonValue( CommonMethod.getJsonValue(msr, "msr_runninginfo"), "InvokeErr") self.inputs = [] for index, item in enumerate( CommonMethod.getJsonValue(msr, "msr_input")): self.inputs.append(DataConfigrationItem.MakeUpDataItem(item)) self.outputs = [] for index, item in enumerate( CommonMethod.getJsonValue(msr, "msr_output")): self.outputs.append(DataConfigrationItem.MakeUpDataItem(item))
class WebQQ(object): """ WebQQ :param :qid QQ号 :param :event_queue pyxmpp2时间队列""" def __init__(self, qid, event_queue): self.logger = get_logger() self.qid = qid self.aid = 1003903 self.clientid = random.randrange(11111111, 99999999) self.msg_id = random.randrange(1111111, 99999999) self.group_map = {} # 群映射 self.group_m_map = {} # 群到群成员的映射 self.uin_qid_map = {} # uin 到 qq号的映射 self.check_code = None self.skey = None self.ptwebqq = None self.require_check = False self.QUIT = False self.last_msg = {} self.event_queue = event_queue self.check_data = None # CheckHanlder返回的数据 self.blogin_data = None # 登录前返回的数据 self.rc = 1 self.start_time = time.time() self.hb_last_time = self.start_time self.poll_last_time = self.start_time self._helper = HttpHelper() self.connected = False self.polled = False self.heartbeated = False self.group_lst_updated = False def event(self, event, delay=0): """ timeout可以延迟将事件放入事件队列 """ if delay: target = partial(self.put_delay_event, self.event_queue, event, delay) t = threading.Thread(target=target) t.setDaemon(True) t.start() else: self.event_queue.put(event) def put_delay_event(self, queue, event, delay): """ 应当放入线程中 """ time.sleep(delay) queue.put(event) def ptui_checkVC(self, r, vcode, uin): """ 处理检查的回调 返回三个值 """ if int(r) == 0: self.logger.info("Check Ok") self.check_code = vcode else: self.logger.warn("Check Error") self.check_code = self.get_check_img(vcode) self.require_check = True return r, self.check_code, uin def get_check_img(self, vcode): """ 获取验证图片 """ url = "https://ssl.captcha.qq.com/getimage" params = [("aid", self.aid), ("r", random.random()), ("uin", self.qid)] helper = HttpHelper(url, params, jar=http_sock.cookiejar) res = helper.open() path = tempfile.mktemp() fp = open(path, 'wb') fp.write(res.read()) fp.close() res = upload_file("check.jpg", path) print res.geturl() check_code = None while not check_code: check_code = raw_input("打开上面连接输出图片上的验证码: ") return check_code.strip() def handle_pwd(self, password): """ 根据检查返回结果,调用回调生成密码和保存验证码 """ r, self._vcode, huin = eval("self." + self.check_data.rstrip(";")) pwd = md5(md5(password).digest() + huin).hexdigest().upper() return md5(pwd + self._vcode).hexdigest().upper() def ptuiCB(self, scode, r, url, status, msg, nickname=None): """ 模拟JS登录之前的回调, 保存昵称 """ if int(scode) == 0: self.logger.info("Get ptwebqq Ok") self.skey = http_sock.cookie['.qq.com']['/']['skey'].value self.ptwebqq = http_sock.cookie['.qq.com']['/']['ptwebqq'].value self.logined = True else: self.logger.warn("Get ptwebqq Error") if nickname: self.nickname = nickname def get_qid_with_uin(self, uin): """ 根据uin获取QQ号 """ url = "http://s.web2.qq.com/api/get_friend_uin2" params = [("tuin", uin), ("verifysession", ""), ("type", 4), ("code", ""), ("vfwebqq", self.vfwebqq), ("t", time.time())] self._helper.change(url, params) self._helper.add_header( "Referer", "http://d.web2.qq.com/proxy." "html?v=20110331002&callback=1&id=3") res = self._helper.open() data = res.read() if data: info = json.loads(data) if info.get("retcode") == 0: return info.get("result", {}).get("account") def get_group_msg_img(self, uin, info): """ 获取消息中的图片 """ name = info.get("name") file_id = info.get("file_id") key = info.get("key") server = info.get("server") ip, port = server.split(":") gid = self.group_map.get(uin, {}).get("gid") url = "http://web2.qq.com/cgi-bin/get_group_pic" params = [("type", 0), ("gid", gid), ("uin", uin), ("rip", ip), ("rport", port), ("fid", file_id), ("pic", name), ("vfwebqq", self.vfwebqq), ("t", time.time())] helper = HttpHelper(url, params) helper.add_header("Referer", "http://web2.qq.com/") return helper.open() def get_group_name(self, gcode): """ 根据gcode获取群名 """ return self.group_map.get(gcode, {}).get("name") def get_group_member_nick(self, gcode, uin): return self.group_m_map.get(gcode, {}).get(uin, {}).get("nick")
def connect(self): jsData = HttpHelper.Request_get_sync(self.ip, self.port, "/ping") if (jsData['data'] == 'OK'): return True else: return False
def start(self): jsData = HttpHelper.Request_put_sync( self.ip, self.port, '/modelser/' + self.id + '?ac=start') if CommonMethod.getJsonValue(jsData, 'result') == 'suc': return 1 return -1
class WebQQ(object): """ WebQQ :param :qid QQ号 :param :event_queue pyxmpp2时间队列""" def __init__(self, qid, event_queue): self.logger = get_logger() self.qid = qid self.aid = 1003903 self.clientid = random.randrange(11111111, 99999999) self.msg_id = random.randrange(1111111, 99999999) self.group_map = {} # 群映射 self.group_m_map = {} # 群到群成员的映射 self.uin_qid_map = {} # uin 到 qq号的映射 self.check_code = None self.skey = None self.ptwebqq = None self.require_check = False self.QUIT = False self.last_msg = {} self.event_queue = event_queue self.check_data = None # CheckHanlder返回的数据 self.blogin_data = None # 登录前返回的数据 self.rc = 1 self.start_time = time.time() self.hb_last_time = self.start_time self.poll_last_time = self.start_time self._helper = HttpHelper() self.connected = False self.polled = False self.heartbeated = False self.group_lst_updated = False def event(self, event, delay = 0): """ timeout可以延迟将事件放入事件队列 """ if delay: target = partial(self.put_delay_event, self.event_queue, event, delay) t = threading.Thread(target = target) t.setDaemon(True) t.start() else: self.event_queue.put(event) def put_delay_event(self, queue,event, delay): """ 应当放入线程中 """ time.sleep(delay) queue.put(event) def ptui_checkVC(self, r, vcode, uin): """ 处理检查的回调 返回三个值 """ if int(r) == 0: self.logger.info("Check Ok") self.check_code = vcode else: self.logger.warn("Check Error") self.check_code = self.get_check_img(vcode) self.require_check = True return r, self.check_code, uin def get_check_img(self, vcode): """ 获取验证图片 """ url = "https://ssl.captcha.qq.com/getimage" params = [("aid", self.aid), ("r", random.random()), ("uin", self.qid)] helper = HttpHelper(url, params, jar = http_sock.cookiejar) res = helper.open() path = tempfile.mktemp() fp = open(path, 'wb') fp.write(res.read()) fp.close() res = upload_file("check.jpg", path) print res.geturl() check_code = None while not check_code: check_code = raw_input("打开上面连接输出图片上的验证码: ") return check_code.strip() def handle_pwd(self, password): """ 根据检查返回结果,调用回调生成密码和保存验证码 """ r, self._vcode, huin = eval("self." + self.check_data.rstrip(";")) pwd = md5(md5(password).digest() + huin).hexdigest().upper() return md5(pwd + self._vcode).hexdigest().upper() def ptuiCB(self, scode, r, url, status, msg, nickname = None): """ 模拟JS登录之前的回调, 保存昵称 """ if int(scode) == 0: self.logger.info("Get ptwebqq Ok") self.skey = http_sock.cookie['.qq.com']['/']['skey'].value self.ptwebqq = http_sock.cookie['.qq.com']['/']['ptwebqq'].value self.logined = True else: self.logger.warn("Get ptwebqq Error") if nickname: self.nickname = nickname def get_qid_with_uin(self, uin): """ 根据uin获取QQ号 """ url = "http://s.web2.qq.com/api/get_friend_uin2" params = [("tuin", uin), ("verifysession", ""),("type",4), ("code", ""), ("vfwebqq", self.vfwebqq), ("t", time.time())] self._helper.change(url, params) self._helper.add_header("Referer", "http://d.web2.qq.com/proxy." "html?v=20110331002&callback=1&id=3") res = self._helper.open() data = res.read() if data: info = json.loads(data) if info.get("retcode") == 0: return info.get("result", {}).get("account") def get_group_msg_img(self, uin, info): """ 获取消息中的图片 """ name = info.get("name") file_id = info.get("file_id") key = info.get("key") server = info.get("server") ip, port = server.split(":") gid = self.group_map.get(uin, {}).get("gid") url = "http://web2.qq.com/cgi-bin/get_group_pic" params = [("type", 0), ("gid", gid), ("uin", uin),("rip", ip), ("rport", port), ("fid", file_id), ("pic", name), ("vfwebqq", self.vfwebqq), ("t", time.time())] helper = HttpHelper(url, params) helper.add_header("Referer", "http://web2.qq.com/") return helper.open() def get_group_name(self, gcode): """ 根据gcode获取群名 """ return self.group_map.get(gcode, {}).get("name") def get_group_member_nick(self, gcode, uin): return self.group_m_map.get(gcode, {}).get(uin, {}).get("nick")
def connect(self): strData = HttpHelper.Request_get_str_sync(self.ip, self.port, "/ping") if strData == "OK": return True else: return False
def restart(self): path = "/modelins/" + self.guid + "?ac=restart" jsData = HttpHelper.Request_put_sync(self.ip, self.port, path) if jsData["result"] == "suc": return True return False