From 1b920fa55c7556ba5e4795a3a87a1d14807c075b Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 1 Feb 2019 13:08:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=9B=A0isValidRoom?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E5=BC=B9=E5=B9=95=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8A=BD=E5=A5=96=E7=BB=93=E6=9D=9F=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lottery.py | 12 +++++++++++- api.py | 14 ++++++++------ bilibili.py | 2 -- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Lottery.py b/Lottery.py index 5e4a430..1c8a154 100644 --- a/Lottery.py +++ b/Lottery.py @@ -1,5 +1,5 @@ import requests - +import time from LuckyUser import LuckyUser @@ -11,6 +11,7 @@ class Lottery: luckyUsers = [] joinedUserCount = 0 prizeName = "" + finish:int = 0 def __init__(self, json=None): if json: @@ -26,6 +27,15 @@ class Lottery: self.content = i["content"] self.joinedUserCount = int(json["lottery_info"]["candidate_num"]) self.prizeName = json["lottery_info"]["prize_info"]["name"] + _delta = int(json["lottery_info"]["draw_time"]) - int(json["lottery_info"]["current_time"]) + self.finish = time.time()+_delta+1 + + def update(self): + if self.finish > time.time(): + self.checkFinished() + return True + else: + return False def checkFinished(self): p = requests.get("https://i.snssdk.com/videolive/lottery/check_user_right?lottery_id={}" diff --git a/api.py b/api.py index 3515424..a8cc8b8 100644 --- a/api.py +++ b/api.py @@ -104,7 +104,8 @@ class XiGuaLiveApi: p = s.get("https://security.snssdk.com/video/app/search/live/?version_code=730&device_platform=android" "&format=json&keyword={}".format(self.name)) d = p.json() - if "data" in d: + self.isValidRoom = d["base_resp"]["status_code"] == 0 + if "data" in d and d["data"] is not None: for i in d["data"]: if i["block_type"] != 0: continue @@ -145,6 +146,7 @@ class XiGuaLiveApi: def getDanmaku(self): if not self.isValidRoom: + self.updRoomInfo() return p = s.get("https://i.snssdk.com/videolive/im/get_msg?cursor={cursor}&room_id={roomID}" "&version_code=730&device_platform=android".format( @@ -188,12 +190,12 @@ class XiGuaLiveApi: else: pass self._updRoomCount += 1 + if self.lottery is not None: + self.lottery.update() if self._updRoomCount > 120 or len(d['data']) == 0: - if self.lottery is not None: - self.lottery.checkFinished() - if self.lottery.isFinished: - self.onLottery(self.lottery) - self.lottery = None + if self.lottery.isFinished: + self.onLottery(self.lottery) + self.lottery = None self.updRoomInfo() self._updRoomCount = 0 return diff --git a/bilibili.py b/bilibili.py index ff12c31..47d4f23 100644 --- a/bilibili.py +++ b/bilibili.py @@ -422,8 +422,6 @@ class Bilibili: "videos": self.videos} ) print(r.text) - for _p in self.files: - os.remove(_p.path) def addChannel(self, name, intro=''): """