diff --git a/Common.py b/Common.py index d2b448e..99e91a4 100644 --- a/Common.py +++ b/Common.py @@ -64,7 +64,7 @@ network = [{ def reloadConfig(): global config - if(os.path.exists('config.json')): + if (os.path.exists('config.json')): _config_fp = open("config.json", "r", encoding="utf8") _config = json.load(_config_fp) config.update(_config) @@ -100,14 +100,14 @@ def updateNetwork(): def getTimeDelta(a, b): sec = (a - b).seconds - ms = (a - b).microseconds - return sec+(ms/100000.0) + ms = (a - b).microseconds + return sec + (ms / 100000.0) def _doClean(_force=False): global doCleanTime, _clean_flag _disk = psutil.disk_usage(".") - if _disk.percent > config["max"] or getTimeDelta(datetime.now(), doCleanTime) > config["exp"]*86400 or _force: + if _disk.percent > config["max"] or getTimeDelta(datetime.now(), doCleanTime) > config["exp"] * 86400 or _force: _clean_flag = True doCleanTime = datetime.now() appendOperation("执行配置的清理命令") @@ -127,9 +127,9 @@ def doClean(_force=False): def getCurrentStatus(): _disk = psutil.disk_usage(".") - _mem = psutil.virtual_memory() - _net = psutil.net_io_counters() - _delta= getTimeDelta(network[-1]["currentTime"], network[-2]["currentTime"]) + _mem = psutil.virtual_memory() + _net = psutil.net_io_counters() + _delta = getTimeDelta(network[-1]["currentTime"], network[-2]["currentTime"]) if 60 > _delta > 1: _inSpeed = (network[-1]["in"]["currentByte"] - network[-2]["in"]["currentByte"]) / _delta _outSpeed = (network[-1]["out"]["currentByte"] - network[-2]["out"]["currentByte"]) / _delta @@ -312,7 +312,6 @@ def loginBilibili(force=False): class downloader(XiGuaLiveApi): playlist = None - def updRoomInfo(self, force=False): doClean() super(downloader, self).updRoomInfo(force) @@ -339,36 +338,6 @@ class downloader(XiGuaLiveApi): streamUrl = None self.playlist = None - def onLike(self, user): - pass - - def onAd(self, i): - pass - - def onChat(self, chat): - pass - - def onEnter(self, msg): - pass - - def onJoin(self, user): - pass - - def onLeave(self, json): - self.updRoomInfo() - - def onMessage(self, msg): - pass - - def onPresent(self, gift): - pass - - def onPresentEnd(self, gift): - pass - - def onSubscribe(self, user): - pass - api = downloader(config["l_u"]) @@ -399,7 +368,7 @@ def publishVideo(date): global isUpload if forceNotUpload is False: b.finishUpload(config["t_t"].format(date), 17, config["tag"], config["des"], - source=config["src"], no_reprint=0) + source=config["src"], no_reprint=0) b.clear() else: appendUploadStatus("设置了不上传,所以[{}]的录播不会上传了".format(date)) @@ -417,16 +386,16 @@ def encodeVideo(name): appendEncodeStatus("Encoded File >{}< is too small, will ignore it".format(name)) return False global isEncode - isEncode=True + isEncode = True appendEncodeStatus("Encoding >{}< Start".format(name)) - _new_name = os.path.splitext(name)[0]+".mp4" + _new_name = os.path.splitext(name)[0] + ".mp4" _code = os.system(config["enc"].format(f=name, t=_new_name)) if _code != 0: Common.appendError("Encode {} with Non-Zero Return.".format(name)) return False Common.modifyLastEncodeStatus("Encode >{}< Finished".format(name)) uploadQueue.put(_new_name) - isEncode=False + isEncode = False loginBilibili(True) diff --git a/README.md b/README.md index 5294775..8b62b4b 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,5 @@ # XiguaLiveDanmakuHelper -### 因西瓜直播弹幕接口加密了,所以该项目会尽量保证录播(获取房间信息及搜索用户信息)可正常使用,其他的接口看西瓜视频的心情了 - -### 西瓜直播弹幕助手--控制台版 - -界面版:[q792602257/XiguaDanmakuHelperGUI](https://github.com/q792602257/XiguaDanmakuHelperGUI "C# ver") - -### 西瓜直播弹幕接口```api.py``` - -> - 西瓜直播的弹幕接口已经加密,有大佬可以去尝试解析一下 - ### 西瓜直播弹幕助手--录播端```WebMain.py``` > - 能够自动进行ffmpeg转码 @@ -19,8 +9,6 @@ > - 少部分错误包容机制 > - 有一个简单的WEB页面,及简单的控制接口 -### 西瓜直播弹幕助手--礼物端```WinMain.py``` - ### 计划更新 ### 并没有呢,这段时间太忙了 diff --git a/Struct/Chat.py b/Struct/Chat.py deleted file mode 100644 index 31269c6..0000000 --- a/Struct/Chat.py +++ /dev/null @@ -1,31 +0,0 @@ -from .User import User -from .Lottery import Lottery - - -class Chat: - - content ="" - user=None - filterString = ["",] - isFiltered = False - - def __init__(self, json=None, lottery:Lottery = None): - if json: - self.parse(json) - if lottery: - self.filterString.append(lottery.content) - - def parse(self, json): - self.user = User(json) - if "extra" in json: - if "content" in json["extra"]: - self.content = json["extra"]['content'] - if self.content in self.filterString: - self.isFiltered = True - - def __str__(self): - return "{} : {}".format(self.user,self.content) - - def __unicode__(self): - return self.__str__() - diff --git a/Struct/Digg.py b/Struct/Digg.py deleted file mode 100644 index e69de29..0000000 diff --git a/Struct/Gift.py b/Struct/Gift.py deleted file mode 100644 index e07e290..0000000 --- a/Struct/Gift.py +++ /dev/null @@ -1,61 +0,0 @@ -import requests -from .User import User - - -class Gift: - roomID = 0 - giftList = {} - - def __init__(self, json=None): - self.ID = 0 - self.count = 0 - self.amount = 0 - self.user = None - if json: - self.parse(json) - - def parse(self, json): - self.user = User(json) - if "common" in json and json["common"] is not None: - if Gift.roomID != int(json["common"]["room_id"]): - Gift.roomID = int(json["common"]["room_id"]) - self.update() - if "extra" in json and json["extra"] is not None: - if "present_info" in json["extra"] and json["extra"]['present_info'] is not None: - self.ID = int(json["extra"]['present_info']['id']) - self.count = json["extra"]['present_info']['repeat_count'] - elif "present_end_info" in json["extra"] and json["extra"]['present_end_info'] is not None: - self.ID = int(json["extra"]['present_end_info']['id']) - self.count = json["extra"]['present_end_info']['count'] - if self.ID != 0 and self.ID in self.giftList: - self.amount = self.giftList[self.ID]["Price"] * self.count - else: - self.update() - - def update(self): - p = requests.get("https://i.snssdk.com/videolive/gift/get_gift_list?room_id={roomID}" - "&version_code=800&device_platform=android".format(roomID=self.roomID)) - d = p.json() - if "gift_info" not in d: - print("错误:礼物更新失败") - else: - for i in d["gift_info"]: - _id = int(i["id"]) - Gift.giftList[_id] = {"Name": i["name"], "Price": i["diamond_count"]} - - def __str__(self): - if self.ID in self.giftList: - giftN = self.giftList[self.ID]["Name"] - else: - giftN = "未知礼物[{}]".format(self.ID) - return "{user} 送出的 {count} 个 {name}".format(user=self.user, count=self.count, name=giftN) - - def __unicode__(self): - return self.__str__() - - def __repr__(self): - if self.ID in self.giftList: - giftN = self.giftList[self.ID]["Name"] - else: - giftN = "未知礼物" - return "西瓜礼物【{}(ID:{})】".format(giftN, self.ID) diff --git a/Struct/Lottery.py b/Struct/Lottery.py deleted file mode 100644 index e2d9eb8..0000000 --- a/Struct/Lottery.py +++ /dev/null @@ -1,71 +0,0 @@ -# coding=utf-8 -import requests -import time -from .LuckyUser import LuckyUser - - -class Lottery: - ID = 0 - isActive = False - content = "" - isFinished = False - luckyUsers = [] - joinedUserCount = 0 - prizeName = "" - finish = 0 - - def __init__(self, json=None): - if json: - self.parse(json) - - def parse(self, json): - if "lottery_info" in json and json["lottery_info"] is not None: - self.isActive = int(json["lottery_info"]["status"]) > 0 - self.ID = json["lottery_info"]["lottery_id"] - for i in json["lottery_info"]['conditions']: - if i['type'] != 3: - continue - 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 - elif "extra" in json and json["extra"] is not None: - if "lottery_info" in json["extra"] and json["extra"]["lottery_info"] is not None: - return self.parse(json["extra"]) - - def update(self): - if self.isActive: - if not self.isFinished and self.finish > time.time(): - self.checkFinished() - return True - return False - - def checkFinished(self): - p = requests.get("https://i.snssdk.com/videolive/lottery/check_user_right?lottery_id={}" - "&version_code=730&device_platform=android".format( - self.ID - )) - d = p.json() - if d["base_resp"]["status_code"] != 0: - self.isActive = False - self.isFinished = False - return - self.isActive = int(d["lottery_info"]["status"]) > 0 - self.isFinished = int(d["lottery_info"]["status"]) == 2 - self.joinedUserCount = int(d["lottery_info"]["candidate_num"]) - if self.isFinished: - self.luckyUsers = [ LuckyUser(i) for i in d["lottery_info"]["lucky_users"] ] - - def __str__(self): - if self.isFinished: - ret = "恭喜以下中奖用户:\n" - for i in self.luckyUsers: - ret += "> {} {}\n".format(i,self.prizeName) - ret += "> 参与人数:{}".format(self.joinedUserCount) - return ret - elif self.isActive: - return "正在抽奖中。。。\n" \ - "> 参与人数:{}".format(self.joinedUserCount) - else: - return "抽奖已失效" diff --git a/Struct/LuckyUser.py b/Struct/LuckyUser.py deleted file mode 100644 index 2fb195e..0000000 --- a/Struct/LuckyUser.py +++ /dev/null @@ -1,19 +0,0 @@ -from .User import User - -class LuckyUser: - - user = None - count = 0 - - def __init__(self, json=None): - if json: - self.parse(json) - - def parse(self, json): - self.user = User() - self.user.ID = json['user_id'] - self.user.name = json['user_name'] - self.count = int(json["grant_count"]) - - def __str__(self): - return "用户 {} 获得了 {} 个".format(self.user,self.count) diff --git a/Struct/MemberMsg.py b/Struct/MemberMsg.py deleted file mode 100644 index 2dcdeea..0000000 --- a/Struct/MemberMsg.py +++ /dev/null @@ -1,36 +0,0 @@ -from .User import User - - -class MemberMsg: - type = 0 - content = "" - user = None - - def __init__(self, json=None): - if json: - self.parse(json) - - def parse(self, json): - self.user = User(json) - if "extra" in json: - if "action" in json["extra"]: - self.type = json["extra"]['action'] - elif "content" in json["extra"]: - self.content = json["extra"]['content'] - - def __str__(self): - if self.type == 3: - return "{} 被禁言了".format(self.user) - elif self.type == 4: - return "{} 被取消禁言了".format(self.user) - elif self.type == 5: - return "{} 被任命为房管".format(self.user) - elif self.type == 1: - return "{} 进入了房间".format(self.user) - else: - if self.content == "": - return "未知消息{} 关于用户 {}".format(self.type, self.user) - return self.content.format(self.user) - - def __unicode__(self): - return self.__str__() \ No newline at end of file diff --git a/WinMain.py b/WinMain.py deleted file mode 100644 index c932523..0000000 --- a/WinMain.py +++ /dev/null @@ -1,218 +0,0 @@ -import os -import sys -import time - -import requests - -from Struct.MemberMsg import MemberMsg -from Struct.User import User -from Struct.Gift import Gift -from Struct.Chat import Chat -from Struct.Lottery import Lottery -from api import XiGuaLiveApi as Api -import msvcrt -import ctypes - -SHOW_ALL = False - - -def readInput(caption, default, timeout: int = 5): - start_time = time.time() - print('{}({})\r\n>'.format(caption, default), end="") - input = '' - while True: - if msvcrt.kbhit(): - chr = msvcrt.getwche() - if ord(chr) == 13: # enter_key - break - elif ord(chr) == 27: - break - elif ord(chr) == 8: - if input != "": - input = input[:-1] - msvcrt.putch(b" ") - msvcrt.putch(b" ") - msvcrt.putch(b"\b") - msvcrt.putch(b"\b") - if len(input) == 0: - start_time = time.time() - elif 32 > ord(chr) or 255 > ord(chr) > 126: # space_char - continue - else: - input += chr - if len(input) == 0 and (time.time() - start_time) > timeout: - break - - if len(input) > 0: - print() - return input - else: - print("使用默认值") - return default - - -STD_INPUT_HANDLE = -10 -STD_OUTPUT_HANDLE = -11 -STD_ERROR_HANDLE = -12 -std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) -# 字体颜色定义 ,关键在于颜色编码,由2位十六进制组成,分别取0~f,前一位指的是背景色,后一位指的是字体色 -# 由于该函数的限制,应该是只有这16种,可以前景色与背景色组合。也可以几种颜色通过或运算组合,组合后还是在这16种颜色中 - -# Windows CMD命令行 字体颜色定义 text colors -FOREGROUND_BLACK = 0x00 # black. -FOREGROUND_DARKBLUE = 0x01 # dark blue. -FOREGROUND_DARKGREEN = 0x02 # dark green. -FOREGROUND_DARKSKYBLUE = 0x03 # dark skyblue. -FOREGROUND_DARKRED = 0x04 # dark red. -FOREGROUND_DARKPINK = 0x05 # dark pink. -FOREGROUND_DARKYELLOW = 0x06 # dark yellow. -FOREGROUND_DARKWHITE = 0x07 # dark white. -FOREGROUND_DARKGRAY = 0x08 # dark gray. -FOREGROUND_BLUE = 0x09 # blue. -FOREGROUND_GREEN = 0x0a # green. -FOREGROUND_SKYBLUE = 0x0b # skyblue. -FOREGROUND_RED = 0x0c # red. -FOREGROUND_PINK = 0x0d # pink. -FOREGROUND_YELLOW = 0x0e # yellow. -FOREGROUND_WHITE = 0x0f # white. - -# Windows CMD命令行 背景颜色定义 background colors -BACKGROUND_BLACK = 0x00 # dark blue. -BACKGROUND_DARKBLUE = 0x10 # dark blue. -BACKGROUND_DARKGREEN = 0x20 # dark green. -BACKGROUND_DARKSKYBLUE = 0x30 # dark skyblue. -BACKGROUND_DARKRED = 0x40 # dark red. -BACKGROUND_DARKPINK = 0x50 # dark pink. -BACKGROUND_DARKYELLOW = 0x60 # dark yellow. -BACKGROUND_DARKWHITE = 0x70 # dark white. -BACKGROUND_DARKGRAY = 0x80 # dark gray. -BACKGROUND_BLUE = 0x90 # blue. -BACKGROUND_GREEN = 0xa0 # green. -BACKGROUND_SKYBLUE = 0xb0 # skyblue. -BACKGROUND_RED = 0xc0 # red. -BACKGROUND_PINK = 0xd0 # pink. -BACKGROUND_YELLOW = 0xe0 # yellow. -BACKGROUND_WHITE = 0xf0 # white. - - -def set_cmd_text_color(color, handle=std_out_handle): - Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color) - return Bool - - -def resetColor(): - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_WHITE) - - -class WinMain(Api): - _tmp = 0 - - def getTitle(self): - self._tmp += 1 - if self._tmp > 10: - self._tmp = 0 - if self._tmp < 5: - return "{} 的直播间 --弹幕助手 by JerryYan".format(self.roomLiver) - else: - if self.roomPopularity == 0: - self._tmp = 0 - return self.getTitle() - else: - return "人气:{} --弹幕助手 by JerryYan".format(self.roomPopularity) - - def onMessage(self, msg: str): - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_DARKGRAY) - print("消息 : ", msg) - resetColor() - - def onJoin(self, user: User): - set_cmd_text_color(BACKGROUND_WHITE | FOREGROUND_BLACK) - print("欢迎", user, "加入了粉丝团") - resetColor() - - def onSubscribe(self, user: User): - if SHOW_ALL: - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_DARKGRAY) - print("用户", user, "关注了主播") - resetColor() - - def onEnter(self, msg:MemberMsg): - if SHOW_ALL: - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_DARKGRAY) - print("提示 :", msg) - resetColor() - - def onChat(self, chat: Chat): - if SHOW_ALL: - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_WHITE) - if not chat.isFiltered: - print(chat) - resetColor() - - def onLottery(self, i:Lottery): - set_cmd_text_color(FOREGROUND_WHITE | BACKGROUND_DARKGRAY) - print(i) - resetColor() - - def onPresent(self, gift: Gift): - if SHOW_ALL: - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_DARKGRAY) - print("连击 :", gift) - resetColor() - - def onPresentEnd(self, gift: Gift): - set_cmd_text_color(BACKGROUND_WHITE | FOREGROUND_BLACK) - print("感谢", gift) - resetColor() - - def onLike(self, user: User): - if SHOW_ALL: - set_cmd_text_color(BACKGROUND_BLACK | FOREGROUND_DARKGRAY) - print("用户", user, "点了喜欢") - resetColor() - - def onLeave(self, json: any): - return - - -def warning(*args): - print(*args) - - -if __name__ == "__main__": - name = "永恒de草薙" - resetColor() - print("西瓜直播弹幕助手 by JerryYan") - if len(sys.argv) > 1: - name = sys.argv[1] - if len(sys.argv) > 2: - SHOW_ALL = sys.argv[2] == "a" - else: - name = readInput("请输入主播用户名,默认为", name, 3) - api = WinMain(name) - while not api.isValidRoom: - set_cmd_text_color(FOREGROUND_RED) - print("未找到对应房间或未开播,等待1分钟后重试") - resetColor() - time.sleep(60) - api.updRoomInfo() - print("进入", api.roomLiver, "的直播间") - os.system("title {}".format(api.getTitle())) - print("=" * 30) - while True: - if api.isLive: - os.system("title {}".format(api.getTitle())) - try: - api.getDanmaku() - except requests.exceptions.BaseHTTPError: - print("网络错误,请确认网络") - time.sleep(5) - except Exception as e: - print(e.__str__()) - time.sleep(1) - else: - set_cmd_text_color(FOREGROUND_RED) - print("主播未开播,等待1分钟后重试") - resetColor() - time.sleep(60) - api.updRoomInfo() diff --git a/XiguaCommon_pb2.py b/XiguaCommon_pb2.py deleted file mode 100644 index 3bc09f1..0000000 --- a/XiguaCommon_pb2.py +++ /dev/null @@ -1,278 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: XiguaCommon.proto - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -import XiguaUser_pb2 as XiguaUser__pb2 -import XiguaGift_pb2 as XiguaGift__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='XiguaCommon.proto', - package='', - syntax='proto2', - serialized_options=None, - serialized_pb=b'\n\x11XiguaCommon.proto\x1a\x0fXiguaUser.proto\x1a\x0fXiguaGift.proto\"*\n\x05Style\x12\r\n\x05\x63olor\x18\x01 \x01(\t\x12\x12\n\nfontWeight\x18\x04 \x01(\x05\"g\n\x06Params\x12\x0c\n\x04type\x18\x01 \x02(\x05\x12\x15\n\x05style\x18\x02 \x01(\x0b\x32\x06.Style\x12\x0e\n\x06string\x18\x0b \x01(\t\x12\x13\n\x04user\x18\x15 \x01(\x0b\x32\x05.User\x12\x13\n\x04gift\x18\x16 \x01(\x0b\x32\x05.Gift\"_\n\x0b\x44isplayText\x12\x0e\n\x06method\x18\x01 \x02(\t\x12\x0e\n\x06\x66ormat\x18\x02 \x02(\t\x12\x17\n\x07\x62gStyle\x18\x03 \x01(\x0b\x32\x06.Style\x12\x17\n\x06params\x18\x04 \x01(\x0b\x32\x07.Params\"u\n\nCommonInfo\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\x0e\n\x06msg_id\x18\x02 \x01(\x05\x12\x0f\n\x07room_id\x18\x03 \x01(\x05\x12\x13\n\x0b\x63reate_time\x18\x04 \x01(\x05\x12!\n\x0b\x64isplayText\x18\x08 \x01(\x0b\x32\x0c.DisplayText' - , - dependencies=[XiguaUser__pb2.DESCRIPTOR,XiguaGift__pb2.DESCRIPTOR,]) - - - - -_STYLE = _descriptor.Descriptor( - name='Style', - full_name='Style', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='color', full_name='Style.color', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='fontWeight', full_name='Style.fontWeight', index=1, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=55, - serialized_end=97, -) - - -_PARAMS = _descriptor.Descriptor( - name='Params', - full_name='Params', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='type', full_name='Params.type', index=0, - number=1, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='style', full_name='Params.style', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='string', full_name='Params.string', index=2, - number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='user', full_name='Params.user', index=3, - number=21, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='gift', full_name='Params.gift', index=4, - number=22, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=99, - serialized_end=202, -) - - -_DISPLAYTEXT = _descriptor.Descriptor( - name='DisplayText', - full_name='DisplayText', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='method', full_name='DisplayText.method', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='format', full_name='DisplayText.format', index=1, - number=2, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bgStyle', full_name='DisplayText.bgStyle', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='params', full_name='DisplayText.params', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=204, - serialized_end=299, -) - - -_COMMONINFO = _descriptor.Descriptor( - name='CommonInfo', - full_name='CommonInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='method', full_name='CommonInfo.method', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='msg_id', full_name='CommonInfo.msg_id', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='room_id', full_name='CommonInfo.room_id', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='create_time', full_name='CommonInfo.create_time', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='displayText', full_name='CommonInfo.displayText', index=4, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=301, - serialized_end=418, -) - -_PARAMS.fields_by_name['style'].message_type = _STYLE -_PARAMS.fields_by_name['user'].message_type = XiguaUser__pb2._USER -_PARAMS.fields_by_name['gift'].message_type = XiguaGift__pb2._GIFT -_DISPLAYTEXT.fields_by_name['bgStyle'].message_type = _STYLE -_DISPLAYTEXT.fields_by_name['params'].message_type = _PARAMS -_COMMONINFO.fields_by_name['displayText'].message_type = _DISPLAYTEXT -DESCRIPTOR.message_types_by_name['Style'] = _STYLE -DESCRIPTOR.message_types_by_name['Params'] = _PARAMS -DESCRIPTOR.message_types_by_name['DisplayText'] = _DISPLAYTEXT -DESCRIPTOR.message_types_by_name['CommonInfo'] = _COMMONINFO -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Style = _reflection.GeneratedProtocolMessageType('Style', (_message.Message,), { - 'DESCRIPTOR' : _STYLE, - '__module__' : 'XiguaCommon_pb2' - # @@protoc_insertion_point(class_scope:Style) - }) -_sym_db.RegisterMessage(Style) - -Params = _reflection.GeneratedProtocolMessageType('Params', (_message.Message,), { - 'DESCRIPTOR' : _PARAMS, - '__module__' : 'XiguaCommon_pb2' - # @@protoc_insertion_point(class_scope:Params) - }) -_sym_db.RegisterMessage(Params) - -DisplayText = _reflection.GeneratedProtocolMessageType('DisplayText', (_message.Message,), { - 'DESCRIPTOR' : _DISPLAYTEXT, - '__module__' : 'XiguaCommon_pb2' - # @@protoc_insertion_point(class_scope:DisplayText) - }) -_sym_db.RegisterMessage(DisplayText) - -CommonInfo = _reflection.GeneratedProtocolMessageType('CommonInfo', (_message.Message,), { - 'DESCRIPTOR' : _COMMONINFO, - '__module__' : 'XiguaCommon_pb2' - # @@protoc_insertion_point(class_scope:CommonInfo) - }) -_sym_db.RegisterMessage(CommonInfo) - - -# @@protoc_insertion_point(module_scope) diff --git a/XiguaGift_pb2.py b/XiguaGift_pb2.py deleted file mode 100644 index a3c20c7..0000000 --- a/XiguaGift_pb2.py +++ /dev/null @@ -1,122 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: XiguaGift.proto - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='XiguaGift.proto', - package='', - syntax='proto2', - serialized_options=None, - serialized_pb=b'\n\x0fXiguaGift.proto\"\\\n\x04Gift\x12\n\n\x02id\x18\x01 \x02(\x05\x12\x1a\n\x04gift\x18\x02 \x02(\x0b\x32\x0c.Gift.Detail\x1a,\n\x06\x44\x65tail\x12\x0f\n\x07gift_id\x18\x01 \x02(\t\x12\x11\n\tgift_name\x18\x02 \x02(\t' -) - - - - -_GIFT_DETAIL = _descriptor.Descriptor( - name='Detail', - full_name='Gift.Detail', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='gift_id', full_name='Gift.Detail.gift_id', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='gift_name', full_name='Gift.Detail.gift_name', index=1, - number=2, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=67, - serialized_end=111, -) - -_GIFT = _descriptor.Descriptor( - name='Gift', - full_name='Gift', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='Gift.id', index=0, - number=1, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='gift', full_name='Gift.gift', index=1, - number=2, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_GIFT_DETAIL, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=19, - serialized_end=111, -) - -_GIFT_DETAIL.containing_type = _GIFT -_GIFT.fields_by_name['gift'].message_type = _GIFT_DETAIL -DESCRIPTOR.message_types_by_name['Gift'] = _GIFT -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Gift = _reflection.GeneratedProtocolMessageType('Gift', (_message.Message,), { - - 'Detail' : _reflection.GeneratedProtocolMessageType('Detail', (_message.Message,), { - 'DESCRIPTOR' : _GIFT_DETAIL, - '__module__' : 'XiguaGift_pb2' - # @@protoc_insertion_point(class_scope:Gift.Detail) - }) - , - 'DESCRIPTOR' : _GIFT, - '__module__' : 'XiguaGift_pb2' - # @@protoc_insertion_point(class_scope:Gift) - }) -_sym_db.RegisterMessage(Gift) -_sym_db.RegisterMessage(Gift.Detail) - - -# @@protoc_insertion_point(module_scope) diff --git a/XiguaUser_pb2.py b/XiguaUser_pb2.py deleted file mode 100644 index 0d81479..0000000 --- a/XiguaUser_pb2.py +++ /dev/null @@ -1,593 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: XiguaUser.proto - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='XiguaUser.proto', - package='', - syntax='proto2', - serialized_options=None, - serialized_pb=b'\n\x0fXiguaUser.proto\"\x96\x07\n\x04User\x12\n\n\x02id\x18\x01 \x02(\x05\x12\x10\n\x08nickname\x18\x03 \x02(\t\x12\x0e\n\x06gender\x18\x04 \x02(\x05\x12!\n\x0b\x61vatarThumb\x18\t \x02(\x0b\x32\x0c.User.Avatar\x12\"\n\x0c\x61vatarMedium\x18\n \x01(\x0b\x32\x0c.User.Avatar\x12!\n\x0b\x61vatarLarge\x18\x0b \x01(\x0b\x32\x0c.User.Avatar\x12\x1a\n\x05\x62\x61\x64ge\x18\x15 \x03(\x0b\x32\x0b.User.Badge\x12\x1c\n\x06\x66ollow\x18\x16 \x01(\x0b\x32\x0c.User.Follow\x12 \n\x08payGrade\x18\x17 \x02(\x0b\x32\x0e.User.PayGrade\x12\x11\n\ttotalPaid\x18\" \x02(\x05\x1a!\n\x06\x41vatar\x12\x0b\n\x03url\x18\x01 \x02(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a\xcd\x01\n\x05\x42\x61\x64ge\x12\x0b\n\x03url\x18\x01 \x03(\t\x12\x10\n\x08localUrl\x18\x02 \x01(\t\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\r\n\x05width\x18\x04 \x01(\x05\x12\x0c\n\x04type\x18\x06 \x01(\x05\x12\x0f\n\x07\x63lickTo\x18\x07 \x01(\t\x12,\n\x0b\x66\x61nClubText\x18\x08 \x01(\x0b\x32\x17.User.Badge.FanClubText\x1a\x39\n\x0b\x46\x61nClubText\x12\x0c\n\x04text\x18\x01 \x02(\t\x12\r\n\x05\x63olor\x18\x02 \x01(\t\x12\r\n\x05level\x18\x03 \x02(\x05\x1a\x33\n\x06\x46ollow\x12\x14\n\tfollowing\x18\x01 \x01(\x05:\x01\x30\x12\x13\n\x08\x66ollower\x18\x02 \x01(\x05:\x01\x30\x1a\xa1\x01\n\x08PayGrade\x12\x0f\n\x07\x63urrent\x18\x01 \x02(\x05\x12\r\n\x05level\x18\x06 \x02(\x05\x12\x18\n\x10\x63urrentLevelNeed\x18\n \x01(\x05\x12\x15\n\rnextLevelNeed\x18\x0b \x01(\x05\x12\x0f\n\x07\x63ontent\x18\r \x01(\t\x12\x1a\n\x05\x62\x61\x64ge\x18\x13 \x02(\x0b\x32\x0b.User.Badge\x12\x17\n\x0ftoNextLevelNeed\x18\x15 \x01(\x05\x1a(\n\nHonorLevel\x12\x1a\n\x05\x62\x61\x64ge\x18\x13 \x02(\x0b\x32\x0b.User.Badge\x1a\x90\x01\n\x05Noble\x12\x0f\n\x07\x63ontent\x18\x04 \x02(\t\x12)\n\x07\x62oarder\x18\x08 \x01(\x0b\x32\x18.User.Noble.NobleBoarder\x1aK\n\x0cNobleBoarder\x12\x0f\n\x07urlList\x18\x01 \x03(\t\x12\x0b\n\x03uri\x18\x02 \x02(\t\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\r\n\x05width\x18\x04 \x01(\x05' -) - - - - -_USER_AVATAR = _descriptor.Descriptor( - name='Avatar', - full_name='User.Avatar', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='url', full_name='User.Avatar.url', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='id', full_name='User.Avatar.id', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=291, - serialized_end=324, -) - -_USER_BADGE_FANCLUBTEXT = _descriptor.Descriptor( - name='FanClubText', - full_name='User.Badge.FanClubText', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='text', full_name='User.Badge.FanClubText.text', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='color', full_name='User.Badge.FanClubText.color', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='level', full_name='User.Badge.FanClubText.level', index=2, - number=3, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=475, - serialized_end=532, -) - -_USER_BADGE = _descriptor.Descriptor( - name='Badge', - full_name='User.Badge', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='url', full_name='User.Badge.url', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='localUrl', full_name='User.Badge.localUrl', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='height', full_name='User.Badge.height', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='width', full_name='User.Badge.width', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='type', full_name='User.Badge.type', index=4, - number=6, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='clickTo', full_name='User.Badge.clickTo', index=5, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='fanClubText', full_name='User.Badge.fanClubText', index=6, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_USER_BADGE_FANCLUBTEXT, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=327, - serialized_end=532, -) - -_USER_FOLLOW = _descriptor.Descriptor( - name='Follow', - full_name='User.Follow', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='following', full_name='User.Follow.following', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=True, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='follower', full_name='User.Follow.follower', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=True, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=534, - serialized_end=585, -) - -_USER_PAYGRADE = _descriptor.Descriptor( - name='PayGrade', - full_name='User.PayGrade', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='current', full_name='User.PayGrade.current', index=0, - number=1, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='level', full_name='User.PayGrade.level', index=1, - number=6, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='currentLevelNeed', full_name='User.PayGrade.currentLevelNeed', index=2, - number=10, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='nextLevelNeed', full_name='User.PayGrade.nextLevelNeed', index=3, - number=11, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='content', full_name='User.PayGrade.content', index=4, - number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='badge', full_name='User.PayGrade.badge', index=5, - number=19, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='toNextLevelNeed', full_name='User.PayGrade.toNextLevelNeed', index=6, - number=21, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=588, - serialized_end=749, -) - -_USER_HONORLEVEL = _descriptor.Descriptor( - name='HonorLevel', - full_name='User.HonorLevel', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='badge', full_name='User.HonorLevel.badge', index=0, - number=19, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=751, - serialized_end=791, -) - -_USER_NOBLE_NOBLEBOARDER = _descriptor.Descriptor( - name='NobleBoarder', - full_name='User.Noble.NobleBoarder', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='urlList', full_name='User.Noble.NobleBoarder.urlList', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='uri', full_name='User.Noble.NobleBoarder.uri', index=1, - number=2, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='height', full_name='User.Noble.NobleBoarder.height', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='width', full_name='User.Noble.NobleBoarder.width', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=863, - serialized_end=938, -) - -_USER_NOBLE = _descriptor.Descriptor( - name='Noble', - full_name='User.Noble', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='content', full_name='User.Noble.content', index=0, - number=4, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='boarder', full_name='User.Noble.boarder', index=1, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_USER_NOBLE_NOBLEBOARDER, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=794, - serialized_end=938, -) - -_USER = _descriptor.Descriptor( - name='User', - full_name='User', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='User.id', index=0, - number=1, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='nickname', full_name='User.nickname', index=1, - number=3, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='gender', full_name='User.gender', index=2, - number=4, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='avatarThumb', full_name='User.avatarThumb', index=3, - number=9, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='avatarMedium', full_name='User.avatarMedium', index=4, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='avatarLarge', full_name='User.avatarLarge', index=5, - number=11, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='badge', full_name='User.badge', index=6, - number=21, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='follow', full_name='User.follow', index=7, - number=22, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='payGrade', full_name='User.payGrade', index=8, - number=23, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='totalPaid', full_name='User.totalPaid', index=9, - number=34, type=5, cpp_type=1, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_USER_AVATAR, _USER_BADGE, _USER_FOLLOW, _USER_PAYGRADE, _USER_HONORLEVEL, _USER_NOBLE, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=20, - serialized_end=938, -) - -_USER_AVATAR.containing_type = _USER -_USER_BADGE_FANCLUBTEXT.containing_type = _USER_BADGE -_USER_BADGE.fields_by_name['fanClubText'].message_type = _USER_BADGE_FANCLUBTEXT -_USER_BADGE.containing_type = _USER -_USER_FOLLOW.containing_type = _USER -_USER_PAYGRADE.fields_by_name['badge'].message_type = _USER_BADGE -_USER_PAYGRADE.containing_type = _USER -_USER_HONORLEVEL.fields_by_name['badge'].message_type = _USER_BADGE -_USER_HONORLEVEL.containing_type = _USER -_USER_NOBLE_NOBLEBOARDER.containing_type = _USER_NOBLE -_USER_NOBLE.fields_by_name['boarder'].message_type = _USER_NOBLE_NOBLEBOARDER -_USER_NOBLE.containing_type = _USER -_USER.fields_by_name['avatarThumb'].message_type = _USER_AVATAR -_USER.fields_by_name['avatarMedium'].message_type = _USER_AVATAR -_USER.fields_by_name['avatarLarge'].message_type = _USER_AVATAR -_USER.fields_by_name['badge'].message_type = _USER_BADGE -_USER.fields_by_name['follow'].message_type = _USER_FOLLOW -_USER.fields_by_name['payGrade'].message_type = _USER_PAYGRADE -DESCRIPTOR.message_types_by_name['User'] = _USER -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -User = _reflection.GeneratedProtocolMessageType('User', (_message.Message,), { - - 'Avatar' : _reflection.GeneratedProtocolMessageType('Avatar', (_message.Message,), { - 'DESCRIPTOR' : _USER_AVATAR, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.Avatar) - }) - , - - 'Badge' : _reflection.GeneratedProtocolMessageType('Badge', (_message.Message,), { - - 'FanClubText' : _reflection.GeneratedProtocolMessageType('FanClubText', (_message.Message,), { - 'DESCRIPTOR' : _USER_BADGE_FANCLUBTEXT, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.Badge.FanClubText) - }) - , - 'DESCRIPTOR' : _USER_BADGE, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.Badge) - }) - , - - 'Follow' : _reflection.GeneratedProtocolMessageType('Follow', (_message.Message,), { - 'DESCRIPTOR' : _USER_FOLLOW, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.Follow) - }) - , - - 'PayGrade' : _reflection.GeneratedProtocolMessageType('PayGrade', (_message.Message,), { - 'DESCRIPTOR' : _USER_PAYGRADE, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.PayGrade) - }) - , - - 'HonorLevel' : _reflection.GeneratedProtocolMessageType('HonorLevel', (_message.Message,), { - 'DESCRIPTOR' : _USER_HONORLEVEL, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.HonorLevel) - }) - , - - 'Noble' : _reflection.GeneratedProtocolMessageType('Noble', (_message.Message,), { - - 'NobleBoarder' : _reflection.GeneratedProtocolMessageType('NobleBoarder', (_message.Message,), { - 'DESCRIPTOR' : _USER_NOBLE_NOBLEBOARDER, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.Noble.NobleBoarder) - }) - , - 'DESCRIPTOR' : _USER_NOBLE, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User.Noble) - }) - , - 'DESCRIPTOR' : _USER, - '__module__' : 'XiguaUser_pb2' - # @@protoc_insertion_point(class_scope:User) - }) -_sym_db.RegisterMessage(User) -_sym_db.RegisterMessage(User.Avatar) -_sym_db.RegisterMessage(User.Badge) -_sym_db.RegisterMessage(User.Badge.FanClubText) -_sym_db.RegisterMessage(User.Follow) -_sym_db.RegisterMessage(User.PayGrade) -_sym_db.RegisterMessage(User.HonorLevel) -_sym_db.RegisterMessage(User.Noble) -_sym_db.RegisterMessage(User.Noble.NobleBoarder) - - -# @@protoc_insertion_point(module_scope) diff --git a/Xigua_pb2.py b/Xigua_pb2.py deleted file mode 100644 index fadd908..0000000 --- a/Xigua_pb2.py +++ /dev/null @@ -1,193 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: Xigua.proto - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -import XiguaCommon_pb2 as XiguaCommon__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='Xigua.proto', - package='', - syntax='proto2', - serialized_options=None, - serialized_pb=b'\n\x0bXigua.proto\x1a\x11XiguaCommon.proto\"\xf4\x01\n\tXiguaLive\x12\x1d\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x0f.XiguaLive.Data\x12\x0e\n\x06\x63ursor\x18\x02 \x02(\t\x12\x16\n\x0e\x66\x65tch_interval\x18\x03 \x01(\x05\x12\x0b\n\x03now\x18\x04 \x01(\x05\x12\x14\n\x0cinternal_ext\x18\x05 \x02(\t\x1a}\n\x04\x44\x61ta\x12\x0e\n\x06method\x18\x01 \x02(\t\x12(\n\x07message\x18\x02 \x02(\x0b\x32\x17.XiguaLive.Data.Message\x1a;\n\x07Message\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\t' - , - dependencies=[XiguaCommon__pb2.DESCRIPTOR,]) - - - - -_XIGUALIVE_DATA_MESSAGE = _descriptor.Descriptor( - name='Message', - full_name='XiguaLive.Data.Message', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commonInfo', full_name='XiguaLive.Data.Message.commonInfo', index=0, - number=1, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='content', full_name='XiguaLive.Data.Message.content', index=1, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=220, - serialized_end=279, -) - -_XIGUALIVE_DATA = _descriptor.Descriptor( - name='Data', - full_name='XiguaLive.Data', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='method', full_name='XiguaLive.Data.method', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='message', full_name='XiguaLive.Data.message', index=1, - number=2, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_XIGUALIVE_DATA_MESSAGE, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=154, - serialized_end=279, -) - -_XIGUALIVE = _descriptor.Descriptor( - name='XiguaLive', - full_name='XiguaLive', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='XiguaLive.data', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='cursor', full_name='XiguaLive.cursor', index=1, - number=2, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='fetch_interval', full_name='XiguaLive.fetch_interval', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='now', full_name='XiguaLive.now', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='internal_ext', full_name='XiguaLive.internal_ext', index=4, - number=5, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_XIGUALIVE_DATA, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=35, - serialized_end=279, -) - -_XIGUALIVE_DATA_MESSAGE.fields_by_name['commonInfo'].message_type = XiguaCommon__pb2._COMMONINFO -_XIGUALIVE_DATA_MESSAGE.containing_type = _XIGUALIVE_DATA -_XIGUALIVE_DATA.fields_by_name['message'].message_type = _XIGUALIVE_DATA_MESSAGE -_XIGUALIVE_DATA.containing_type = _XIGUALIVE -_XIGUALIVE.fields_by_name['data'].message_type = _XIGUALIVE_DATA -DESCRIPTOR.message_types_by_name['XiguaLive'] = _XIGUALIVE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -XiguaLive = _reflection.GeneratedProtocolMessageType('XiguaLive', (_message.Message,), { - - 'Data' : _reflection.GeneratedProtocolMessageType('Data', (_message.Message,), { - - 'Message' : _reflection.GeneratedProtocolMessageType('Message', (_message.Message,), { - 'DESCRIPTOR' : _XIGUALIVE_DATA_MESSAGE, - '__module__' : 'Xigua_pb2' - # @@protoc_insertion_point(class_scope:XiguaLive.Data.Message) - }) - , - 'DESCRIPTOR' : _XIGUALIVE_DATA, - '__module__' : 'Xigua_pb2' - # @@protoc_insertion_point(class_scope:XiguaLive.Data) - }) - , - 'DESCRIPTOR' : _XIGUALIVE, - '__module__' : 'Xigua_pb2' - # @@protoc_insertion_point(class_scope:XiguaLive) - }) -_sym_db.RegisterMessage(XiguaLive) -_sym_db.RegisterMessage(XiguaLive.Data) -_sym_db.RegisterMessage(XiguaLive.Data.Message) - - -# @@protoc_insertion_point(module_scope) diff --git a/api.py b/api.py index b99df5c..4d15c87 100644 --- a/api.py +++ b/api.py @@ -3,11 +3,7 @@ import json import sys import random -from Struct.MemberMsg import MemberMsg from Struct.User import User -from Struct.Gift import Gift -from Struct.Chat import Chat -from Struct.Lottery import Lottery import requests import time from datetime import datetime, timedelta @@ -87,94 +83,6 @@ class XiGuaLiveApi: if DEBUG: print(*args) - def onPresent(self, gift: Gift): - """ - 礼物连击中的消息 - Message On Sending Presents - :param gift: Struct of Gift Message - """ - print("礼物连击 :", gift) - - def onPresentEnd(self, gift: Gift): - """ - 礼物送完了的提示信息 - Message On Finished Send Present - :param gift: Struct of Gift Message - """ - print("感谢", gift) - - def onAd(self, i): - """ - 全局广播 - All Channel Broadcasting Message( Just An Ad ) - :param i: JSON DATA if you wanna using it - """ - # print(i) - pass - - def onChat(self, chat: Chat): - """ - 聊天信息 - On Chatting - :param chat: Struct of Chat Message - """ - if not chat.isFiltered: - print(chat) - - def onEnter(self, msg: MemberMsg): - """ - 进入房间消息 - On Entering Room - :param msg: Struct of Member Message - """ - print("提示 :", msg) - - def onSubscribe(self, user: User): - """ - 关注主播时的消息 - On Subscribe - :param user: Struct of User Message - """ - print("消息 :", user, "关注了主播") - - def onJoin(self, user: User): - """ - 加入粉丝团消息 - :param user: - """ - print("欢迎", user, "加入了粉丝团") - - def onMessage(self, msg: str): - """ - 系统消息 - :param msg: - """ - print("消息 :", msg) - - def onLike(self, user: User): - """ - 点击喜欢的消息 - On Like - :param user: - """ - print("用户", user, "点了喜欢") - - def onLeave(self, json: any): - """ - 下播消息 - On Liver Leave - :param json: - """ - print("消息 :", "主播离开了") - self.updRoomInfo() - - def onLottery(self, i: Lottery): - """ - 中奖的内容 - :param i: - """ - print("中奖消息 :", i) - def _checkUsernameIsMatched(self): """ 验证主播名字是自己想要的那个 @@ -227,11 +135,6 @@ class XiGuaLiveApi: self._rawRoomInfo = d["user_info"]['live_info'] if self.isLive: self.roomID = d["user_info"]['live_info']['room_id'] - # 处理抽奖事件 - l = Lottery(self._rawRoomInfo) - if l.isActive: - # 因为现在每个房间只能同时开启一个抽奖,所以放一个就行了 - self.lottery = l return True def updRoomInfo(self, force=False): @@ -293,93 +196,3 @@ class XiGuaLiveApi: for _j in i["cells"]: ret.append(User(_j)) return ret - - def getDanmaku(self): - """ - 获取弹幕 - """ - if not self.isValidRoom: - self.updRoomInfo() - return - p = self.s.get("https://i.snssdk.com/videolive/im/get_msg?cursor={cursor}&room_id={roomID}" - "&version_code=800&device_platform=android".format( - roomID=self.roomID, - cursor=self._cursor - )) - d = p.json() - if "data" not in d or "extra" not in d or "cursor" not in d["extra"]: - if "base_resp" in d and d["base_resp"]["status_code"] != 10038: - print(d["base_resp"]["status_message"]) - self.apiChangedError("接口数据返回错误", d) - return - else: - self._cursor = d["extra"]["cursor"] - if DEBUG: - print("Cursor:\t", self._cursor) - for i in d['data']: - if DEBUG: - print(i) - if "common" not in i and "method" not in i["common"]: - continue - if i["common"]['method'] == "VideoLivePresentMessage": - self.onPresent(Gift(i)) - elif i["common"]['method'] == "VideoLivePresentEndTipMessage": - self.onPresentEnd(Gift(i)) - elif i["common"]['method'] == "VideoLiveRoomAdMessage": - self.onAd(i) - elif i["common"]['method'] == "VideoLiveChatMessage": - self.onChat(Chat(i, self.lottery)) - elif i["common"]['method'] == "VideoLiveMemberMessage": - self.onEnter(MemberMsg(i)) - self._updateRoomPopularity(i) - elif i["common"]['method'] == "VideoLiveSocialMessage": - self.onSubscribe(User(i)) - elif i["common"]['method'] == "VideoLiveJoinDiscipulusMessage": - self.onJoin(User(i)) - elif i["common"]['method'] == "VideoLiveControlMessage": - print("消息:", "主播离开一小会") - # 这个消息代表主播下播了,直接更新房间信息 - self.updRoomInfo(True) - elif i["common"]['method'] == "VideoLiveDiggMessage": - self.onLike(User(i)) - else: - pass - if self.lottery is None or self.lottery.ID == 0: - self.lottery = Lottery(i) - # 更新抽奖信息 - 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分钟自动更新下房间信息 - self.updRoomInfo(len(d['data']) == 0) - - -if __name__ == "__main__": - name = "永恒de草薙" - if len(sys.argv) > 2: - if sys.argv[-1] == "d": - DEBUG = True - name = sys.argv[1] - print("西瓜直播弹幕助手 by JerryYan") - api = XiGuaLiveApi(name) - if not api.isValidRoom: - input("房间不存在") - sys.exit() - print("进入", api.roomLiver, "的直播间") - print("=" * 30) - while True: - if api.isLive: - try: - api.getDanmaku() - time.sleep(1) - except requests.exceptions.BaseHTTPError: - print("网络错误,请确认网络") - time.sleep(5) - except Exception as e: - print(e) - else: - print("主播未开播,等待2分钟后重试") - time.sleep(60) - api.updRoomInfo()