8 Commits

4 changed files with 28 additions and 16 deletions

View File

@ -6,7 +6,7 @@ class Gift:
ID:int = 0 ID:int = 0
count:int = 0 count:int = 0
roomID:int = 0 roomID:int = 0
giftList:dict = {10001: {"Name": "西瓜", "Price": 0}} giftList:dict = {}
amount:int = 0 amount:int = 0
user:User = None user:User = None
@ -33,7 +33,8 @@ class Gift:
self.update() self.update()
def update(self): def update(self):
p = requests.get("https://i.snssdk.com/videolive/gift/get_gift_list?room_id={roomID}".format(roomID = self.roomID)) p = requests.get("https://i.snssdk.com/videolive/gift/get_gift_list?room_id={roomID}"
"&version_code=730&device_platform=android".format(roomID = self.roomID))
d = p.json() d = p.json()
if "gift_info" not in d: if "gift_info" not in d:
print("错误:礼物更新失败") print("错误:礼物更新失败")

View File

@ -2,6 +2,8 @@ import os
import sys import sys
import time import time
import requests
from Gift import Gift from Gift import Gift
from Lottery import Lottery from Lottery import Lottery
from MemberMsg import MemberMsg from MemberMsg import MemberMsg
@ -192,6 +194,9 @@ if __name__ == "__main__":
os.system("title {}".format(api.getTitle())) os.system("title {}".format(api.getTitle()))
try: try:
api.getDanmaku() api.getDanmaku()
except requests.exceptions.BaseHTTPError:
print("网络错误,请确认网络")
time.sleep(5)
except Exception as e: except Exception as e:
print(e.__str__()) print(e.__str__())
time.sleep(1) time.sleep(1)

11
api.py
View File

@ -189,9 +189,10 @@ class XiGuaLiveApi:
self.onLike(User(i)) self.onLike(User(i))
else: else:
pass pass
self.lottery = Lottery(i) if self.lottery is None or self.lottery.ID == 0:
self.lottery = Lottery(i)
self._updRoomCount += 1 self._updRoomCount += 1
if self.lottery is not None or self.lottery.ID != 0: if self.lottery is not None and self.lottery.ID != 0:
self.lottery.update() self.lottery.update()
if self.lottery.isFinished: if self.lottery.isFinished:
self.onLottery(self.lottery) self.onLottery(self.lottery)
@ -203,8 +204,7 @@ class XiGuaLiveApi:
if __name__ == "__main__": if __name__ == "__main__":
# name = "永恒de草薙" name = "永恒de草薙"
name = "尤美"
if len(sys.argv) > 2: if len(sys.argv) > 2:
if sys.argv[-1] == "d": if sys.argv[-1] == "d":
DEBUG = True DEBUG = True
@ -221,6 +221,9 @@ if __name__ == "__main__":
if api.isLive: if api.isLive:
try: try:
api.getDanmaku() api.getDanmaku()
except requests.exceptions.BaseHTTPError:
print("网络错误,请确认网络")
time.sleep(5)
except Exception as e: except Exception as e:
print(e) print(e)
time.sleep(1) time.sleep(1)

View File

@ -23,13 +23,16 @@ class downloader(XiGuaLiveApi):
self.updPlayList() self.updPlayList()
def updPlayList(self): def updPlayList(self):
if "stream_url" not in self._rawRoomInfo: if self.isLive:
if self.playlist is None: if "stream_url" in self._rawRoomInfo:
self.apiChangedError("无法获取直播链接") if self.playlist is None:
self.playlist = False self.apiChangedError("无法获取直播链接")
self.playlist = False
else:
self.playlist = self._rawRoomInfo["stream_url"]["alternate_pull_url"]
self.playlist = self.playlist.replace("_uhd","").replace("_sd","").replace("_ld","")
else: else:
self.playlist = self._rawRoomInfo["stream_url"]["alternate_pull_url"] print("未开播,等待开播")
self.playlist = self.playlist.replace("_uhd","").replace("_sd","").replace("_ld","")
def onLike(self, user): def onLike(self, user):
pass pass
@ -76,8 +79,11 @@ class downloader(XiGuaLiveApi):
print("{} : Add Sequence {}".format(datetime.strftime(datetime.now(), "%y%m%d %H%M"), print("{} : Add Sequence {}".format(datetime.strftime(datetime.now(), "%y%m%d %H%M"),
len(self.files))) len(self.files)))
q.put(i) q.put(i)
else:
print("PlayList {}".format(self.playlist))
self.genNewName() self.genNewName()
def genNewName(self): def genNewName(self):
if len(self.files) > 800: if len(self.files) > 800:
q.put(True) q.put(True)
@ -166,10 +172,7 @@ if __name__ == "__main__":
ut = threading.Thread(target=upload, args=(d,)) ut = threading.Thread(target=upload, args=(d,))
ut.setDaemon(True) ut.setDaemon(True)
ut.start() ut.start()
try: api.preDownload()
api.preDownload()
except:
pass
time.sleep(3) time.sleep(3)
else: else:
if d is not None: if d is not None: