From 9316b1e8552bd01d7786b24f8a0e42ec4c8c8220 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 17 Mar 2019 22:12:18 +0800 Subject: [PATCH] Fix : avoid exception when network is not stable --- api.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/api.py b/api.py index 364bbd8..66908b5 100644 --- a/api.py +++ b/api.py @@ -136,12 +136,15 @@ class XiGuaLiveApi: :return: """ if self.isLive: - p = s.post("https://i.snssdk.com/videolive/room/enter?version_code=730" - "&device_platform=android", - data="room_id={roomID}&version_code=730" - "&device_platform=android".format(roomID=self.roomID), - headers={"Content-Type":"application/x-www-form-urlencoded"}) - d = p.json() + try: + p = s.post("https://i.snssdk.com/videolive/room/enter?version_code=730" + "&device_platform=android", + data="room_id={roomID}&version_code=730" + "&device_platform=android".format(roomID=self.roomID), + headers={"Content-Type":"application/x-www-form-urlencoded"}) + d = p.json() + except: + return False self.isValidRoom = d["base_resp"]["status_code"] == 0 if d["base_resp"]["status_code"] != 0: return False @@ -263,6 +266,8 @@ class XiGuaLiveApi: self.onJoin(User(i)) elif i["common"]['method'] == "VideoLiveControlMessage": print("消息:", "主播离开一小会") + # 这个消息代表主播下播了,直接更新房间信息 + self.updRoomInfo() elif i["common"]['method'] == "VideoLiveDiggMessage": self.onLike(User(i)) else: @@ -270,11 +275,13 @@ class XiGuaLiveApi: if self.lottery is None or self.lottery.ID == 0: self.lottery = Lottery(i) self._updRoomCount += 1 + # 更新抽奖信息 if self.lottery is not None and self.lottery.ID != 0: self.lottery.update() if self.lottery.isFinished: self.onLottery(self.lottery) self.lottery = None + # 2分钟自动更新下房间信息 if self._updRoomCount > 120 or len(d['data']) == 0: self.updRoomInfo() self._updRoomCount = 0