From 3cdd12644e9432624a8704728f42d6f1ebe1e267 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Tue, 31 Dec 2019 15:43:35 +0800
Subject: [PATCH 01/70] =?UTF-8?q?=E5=BD=95=E6=92=AD=E7=AB=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 53 +---
README.md | 12 -
Struct/Chat.py | 31 ---
Struct/Digg.py | 0
Struct/Gift.py | 61 -----
Struct/Lottery.py | 71 ------
Struct/LuckyUser.py | 19 --
Struct/MemberMsg.py | 36 ---
WinMain.py | 218 ----------------
XiguaCommon_pb2.py | 278 ---------------------
XiguaGift_pb2.py | 122 ---------
XiguaUser_pb2.py | 593 --------------------------------------------
Xigua_pb2.py | 193 --------------
api.py | 187 --------------
14 files changed, 11 insertions(+), 1863 deletions(-)
delete mode 100644 Struct/Chat.py
delete mode 100644 Struct/Digg.py
delete mode 100644 Struct/Gift.py
delete mode 100644 Struct/Lottery.py
delete mode 100644 Struct/LuckyUser.py
delete mode 100644 Struct/MemberMsg.py
delete mode 100644 WinMain.py
delete mode 100644 XiguaCommon_pb2.py
delete mode 100644 XiguaGift_pb2.py
delete mode 100644 XiguaUser_pb2.py
delete mode 100644 Xigua_pb2.py
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()
From d05125095919191aa7ea8065e6a6d00153b50867 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Tue, 31 Dec 2019 15:56:21 +0800
Subject: [PATCH 02/70] =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/api.py b/api.py
index 4d15c87..8b6cbfe 100644
--- a/api.py
+++ b/api.py
@@ -30,16 +30,10 @@ COMMON_HEADERS = {
class XiGuaLiveApi:
- isLive = False
- isValidRoom = False
- _rawRoomInfo = {}
- name = ""
- roomID = 0
- roomLiver = None
- roomPopularity = 0
- _cursor = "0"
- lottery = None
- s = requests.session()
+ isValidRoom: bool
+ isLive: bool
+ roomLiver: User or None
+ roomID: int
def __init__(self, name=None):
"""
@@ -54,6 +48,14 @@ class XiGuaLiveApi:
self.name = name.name
else:
self.name = str(name)
+ self.isLive = False
+ self.isValidRoom = False
+ self._rawRoomInfo = {}
+ self.roomID = 0
+ self.roomLiver = None
+ self.roomPopularity = 0
+ self._cursor = "0"
+ self.s = requests.session()
self.s.headers.update(COMMON_HEADERS)
self._updRoomAt = datetime.now()
self.updRoomInfo(True)
@@ -145,7 +147,7 @@ class XiGuaLiveApi:
if not force and self._updRoomAt > (datetime.now() - timedelta(minutes=3)):
return self.isLive
self._updRoomAt = datetime.now()
- if self.isLive:
+ if self.isValidRoom:
return self._updateUserOnly()
else:
return self._forceSearchUser()
From 9d246dfcba0d9825e9bc4678d08d961c8cece99b Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Tue, 31 Dec 2019 16:33:38 +0800
Subject: [PATCH 03/70] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?=
=?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Demo/256_.json | 1 -
Demo/324_.txt | Bin 24667 -> 0 bytes
Demo/Xigua.proto | 21 -
Demo/XiguaCommon.proto | 35 -
Demo/XiguaGift.proto | 10 -
Demo/XiguaUser.proto | 68 -
Demo/result.txt | 1104 --------
Demo/result2.txt | 4406 -----------------------------
Demo/result3.txt | 1434 ----------
Demo/result4.json | 2576 -----------------
Demo/result4.txt | 6007 ----------------------------------------
Model/DataBase.py | 8 -
Model/Files.py | 10 -
api.py | 1 +
14 files changed, 1 insertion(+), 15680 deletions(-)
delete mode 100755 Demo/256_.json
delete mode 100644 Demo/324_.txt
delete mode 100755 Demo/Xigua.proto
delete mode 100644 Demo/XiguaCommon.proto
delete mode 100644 Demo/XiguaGift.proto
delete mode 100644 Demo/XiguaUser.proto
delete mode 100755 Demo/result.txt
delete mode 100755 Demo/result2.txt
delete mode 100755 Demo/result3.txt
delete mode 100644 Demo/result4.json
delete mode 100644 Demo/result4.txt
delete mode 100644 Model/DataBase.py
delete mode 100644 Model/Files.py
diff --git a/Demo/256_.json b/Demo/256_.json
deleted file mode 100755
index 3f7ef76..0000000
--- a/Demo/256_.json
+++ /dev/null
@@ -1 +0,0 @@
-{"data":[{"common":{"method":"WebcastGiftMessage","msg_id":6776109193264286477,"room_id":6776099199801887501,"create_time":1577688331073,"is_show_msg":true,"describe":"扬家军灬轻描淡写:送给主播 1个粉丝团","display_text":{"key":"webcast_xigua_gift_message","default_pattern":"{0:user} 送给主播{2:string}个{1:gift}","default_format":{"color":"#ffff9500","weight":400},"pieces":[{"type":11,"format":{"color":"#61000000","weight":400},"user_value":{"user":{"id":3188232986307261,"nickname":"扬家军灬轻描淡写","avatar_thumb":{"url_list":["http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/41416a96df8f40b3aae8414bbe815bbb~120x256.image"]},"badge_image_list":[{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"},{"url_list":["http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","image_type":7,"content":{"name":"扬家军","font_color":"#FFFFFF","level":13}}],"follow_info":{"following_count":7,"follower_count":8},"pay_grade":{"level":9,"new_im_icon_with_level":{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"}},"fans_club":{"data":{"club_name":"扬家军","level":13,"user_fans_club_status":1,"badge":{"icons":{"2":{"url_list":["http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","height":48,"width":150}},"title":"扬家军"}}},"user_attr":{},"display_id":"0","sec_uid":"MS4wLjABAAAAbExVLsj5LpMYrmBvNpwUh7Vkn9XIfXAEIrNmjhuAj0X7peCxQtTwXxoqe9VBqM-5"},"with_colon":true}},{"type":12,"format":{"color":"#ffff9500","weight":400},"gift_value":{"gift_id":794,"name_ref":{"key":"live_gift_794","default_pattern":"粉丝团"}}},{"type":1,"format":{"color":"#ffff9500","weight":400},"string_value":"1"}]}},"gift_id":794,"fan_ticket_count":49589085,"group_count":1,"repeat_count":1,"combo_count":1,"user":{"id":3188232986307261,"nickname":"扬家军灬轻描淡写","avatar_thumb":{"url_list":["http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/41416a96df8f40b3aae8414bbe815bbb~120x256.image"]},"badge_image_list":[{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"},{"url_list":["http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","image_type":7,"content":{"name":"扬家军","font_color":"#FFFFFF","level":13}}],"follow_info":{"following_count":7,"follower_count":8},"pay_grade":{"level":9,"new_im_icon_with_level":{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"}},"fans_club":{"data":{"club_name":"扬家军","level":13,"user_fans_club_status":1,"badge":{"icons":{"2":{"url_list":["http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","height":48,"width":150}},"title":"扬家军"}}},"user_attr":{},"display_id":"0","sec_uid":"MS4wLjABAAAAbExVLsj5LpMYrmBvNpwUh7Vkn9XIfXAEIrNmjhuAj0X7peCxQtTwXxoqe9VBqM-5"},"group_id":1577688331,"income_taskgifts":38199328,"room_fan_ticket_count":9152,"priority":{"queue_sizes":[-1,-1,50,150],"self_queue_priority":1,"priority":3},"gift":{"image":{"url_list":["http://p3-webcast-xgcdn.byteimg.com/img/mosaic-legacy/2d04e00056087c6330f20~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/mosaic-legacy/2d04e00056087c6330f20~tplv-obj.png","http://p1-webcast-xgcdn.byteimg.com/img/mosaic-legacy/2d04e00056087c6330f20~tplv-obj.png"],"uri":"2d04e00056087c6330f20","avg_color":"#524037"},"describe":"粉丝团","id":794,"fansclub_info":{"min_level":1},"doodle":true,"for_fansclub":true,"combo":true,"type":1,"diamond_count":1,"is_displayed_on_panel":true,"name":"粉丝团","icon":{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/mosaic-legacy/2d04e00056087c6330f20~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/mosaic-legacy/2d04e00056087c6330f20~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/mosaic-legacy/2d04e00056087c6330f20~tplv-obj.png"],"uri":"2d04e00056087c6330f20","avg_color":"#53537A"}}},{"common":{"method":"WebcastGiftMessage","msg_id":6776119408571173635,"room_id":6776099199801887501,"create_time":1577688334671,"is_show_msg":true,"describe":"扬家军灬轻描淡写:送给主播 1个粉丝团","display_text":{"key":"webcast_xigua_gift_message","default_pattern":"{0:user} 送给主播{2:string}个{1:gift}","default_format":{"color":"#ffff9500","weight":400},"pieces":[{"type":11,"format":{"color":"#61000000","weight":400},"user_value":{"user":{"id":3188232986307261,"nickname":"扬家军灬轻描淡写","avatar_thumb":{"url_list":["http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/41416a96df8f40b3aae8414bbe815bbb~120x256.image"]},"badge_image_list":[{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"},{"url_list":["http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","image_type":7,"content":{"name":"扬家军","font_color":"#FFFFFF","level":13}}],"follow_info":{"following_count":7,"follower_count":8},"pay_grade":{"level":9,"new_im_icon_with_level":{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"}},"fans_club":{"data":{"club_name":"扬家军","level":13,"user_fans_club_status":1,"badge":{"icons":{"2":{"url_list":["http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","height":48,"width":150}},"title":"扬家军"}}},"user_attr":{},"display_id":"0","sec_uid":"MS4wLjABAAAAbExVLsj5LpMYrmBvNpwUh7Vkn9XIfXAEIrNmjhuAj0X7peCxQtTwXxoqe9VBqM-5","noble_info":{"noble_background":{"height":1008,"width":1125},"noble_icon":{"height":105,"width":111,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast"},"noble_name":"普通用户","noble_big_icon":{"height":366,"width":615},"noble_icon_with_back":{"height":60,"width":108},"noble_boarder":{"url_list":["http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"],"uri":"webcast/noble_boarder.png","height":64,"width":64}}},"with_colon":true}},{"type":12,"format":{"color":"#ffff9500","weight":400},"gift_value":{"gift_id":794,"name_ref":{"key":"live_gift_794","default_pattern":"粉丝团"}}},{"type":1,"format":{"color":"#ffff9500","weight":400},"string_value":"1"}]}},"gift_id":794,"fan_ticket_count":49589085,"group_count":1,"repeat_count":1,"combo_count":1,"user":{"id":3188232986307261,"nickname":"扬家军灬轻描淡写","avatar_thumb":{"url_list":["http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/41416a96df8f40b3aae8414bbe815bbb~120x256.image"]},"badge_image_list":[{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"},{"url_list":["http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","image_type":7,"content":{"name":"扬家军","font_color":"#FFFFFF","level":13}}],"follow_info":{"following_count":7,"follower_count":8},"pay_grade":{"level":9,"new_im_icon_with_level":{"url_list":["http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"],"uri":"webcast/xigua_paygrade_level_9.png","height":16,"width":30,"image_type":1,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"}},"fans_club":{"data":{"club_name":"扬家军","level":13,"user_fans_club_status":1,"badge":{"icons":{"2":{"url_list":["http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"],"uri":"webcast/xigua_fansclub_medal_13.png","height":48,"width":150}},"title":"扬家军"}}},"user_attr":{},"display_id":"0","sec_uid":"MS4wLjABAAAAbExVLsj5LpMYrmBvNpwUh7Vkn9XIfXAEIrNmjhuAj0X7peCxQtTwXxoqe9VBqM-5","noble_info":{"noble_background":{"height":1008,"width":1125},"noble_icon":{"height":105,"width":111,"open_web_url":"sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast"},"noble_name":"普通用户","noble_big_icon":{"height":366,"width":615},"noble_icon_with_back":{"height":60,"width":108},"noble_boarder":{"url_list":["http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image","http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image","http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"],"uri":"webcast/noble_boarder.png","height":64,"width":64}}},"repeat_end":1,"income_taskgifts":38199328,"room_fan_ticket_count":9152,"priority":{"queue_sizes":[-1,-1,50,150],"self_queue_priority":1,"priority":3}}],"extra":{"cursor":"6776119808963431181_1577688338520_1_1","fetch_interval":1000,"now":1577688338520},"internal_ext":"fetch_time:1577688338520|start_time:1577688331121|ack_ids:6776095023547009795_6b8,6776119325653846792_6b8,6776119325653879560_6b8|fetch_id:6776119775153097485|flag:1|seq:70","status_code":0}
\ No newline at end of file
diff --git a/Demo/324_.txt b/Demo/324_.txt
deleted file mode 100644
index 9562691f5c4f1a79ee471ecfe1b9c595075ee8f5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 24667
zcmeHP3vd+W9cMQWmL-s54RA1>coQe7<21>>ADLz>RY|{
zH?26b>-Eo8-|9Pc_UM5#r8qS8;6!xtk|Z^MW1zNP^w$ES{!ohQRd?bQ^>H-K7xieF90`>NLbc_gNL&oar9rh;l$VxkDnsMoCG(QNN+QF_vV1o|;*BK3
zmIXq9H*<%H?xJC$+Xyv7|H(oZq<9e}N>dUlZL9?>DU+7!D&Rv8KT>zglk$s-OKW4I
zqWXhsgBtWRWzlf$-Fh_GP#TeLH$J2ZQ^Q4=9a_Rz(ZEymdVGaARPh27j|U^N7z9ex
zt=HhaA)qe#S$!;6Y49{&Oid{!tH59C8)bn6>kNj1i<%geBjNPjq+Ni|QJ_oUtu7Ld
z#AX`I1s?)oMQtpr(?h`$eQ8v!j7FmM(GnnlhJe1bQi|w$BvewT25Rf{N}#4CKr(^)
zcqL!r_Xh(Fsy`YObuAJL`TdotAJYuI2cwI=o9s0)9G8Rj60l!I4EhPuEc}Euq-i@7
zzcbp-G{6pR?1~hFQhILr3_fz|1awsU`U7oGJ=?Zs2R8DGs>I8icL>Txe&T^!pvSV2
zoAI1E)I$08iJgaccI-LEcC_s6e12Qo;irVtn~!xo`t)|!{CYc#OUnHAL8D%R+F|tX
za4$Xb;=U#bOWWr?@Q6+D&HG^J5Dej;!LTRmE0~)#
zk6tqK_9;`RfETrN*-fEoGwxV?!?Za+ubDD)#*%9Uf0)qfuA5&o7x&jMns?20jWfbi
z=Fa5r$-+DvR{ZMQ*4Ms1#tKAAr39U!-C;JnSJN9Fc-Xs7So~
zqp?6k0H77s9|-HQh$(6mQ&qtIO990nGh&2a66HIJscA%s0eR}<;B(9`)%xW~FcPaQ
zCMg5y7_X8fX+Tho$!b)uB+egEl95TP4+i6MOjW}rbpZem!eWC#9X!};sN^_H>H@l2
zl-K^yQ>RyK@7TJpecjj8OLhMr%Y{HU(C}NYkLs6e^daw3fz3b{c0_Q25<5_|x1rJn2A$dJWI0cUn
zL50Wz*JG2=`~(h2pl$*PmcVj5cR$~;<>8_U2$cEIBA6gN4_xp4&nVY4F1nJ;1;kL5Xy_48OoiBHo3AgJd`{a%@7J=zZxLx;X
zpQ7EMG!VrLnF%L*Wy16DJU0_QKp9MCCfu%`x?uX^D=TrMwWDb5f@wDsKDeqb7fidE
z@IhA|x?uXewXXvK)r${Ir!wKEj7<2papSOu
zSx#swMG=%nC=^c%VBN#jL<2ihXiG)?jXnbA35$Z#YkAo&=Dy!^?%Z{D9(
z{bRJaTZXu~F#%MEmx~ReE+)#_j7Je54iu|H9{$r~orlkC%JF=@VS6N7B4fTq$KPtg)7$t(>9l6a1!1cFsq
z0%!qeF{&{`!<A3cQ5^Sy&Cya^#yWRlS`N0s1kl
zoRJ~{Nin#h0$mm*N|qANsP9!nMaE#i042rqkw5hXtJ*g|(YEJky0t6!5R`+w
z2YE)fK=)+h`P*Fs%dGg$=$yN_4eTZ8OBh9pa?xyL1U3R|g+a*s6f|@7XpScrG;_TP
zqt6@7TrI9K_UaB!?q6qg+gcf8s`j*pr=XF`XyMA}-qNmBXV=x#&tmX~>5WpTrg}Cp
zgNxA10$dm;Zxp%NRW~dXu9E|dB4cj&P4{eD1j#gHa27HwZ9Tow4BEln@Cy*6tHXW<)*Noz{dC914J7Ekr5T#_
z!PPgQvs3G>ezz^m2_lLUm~slID2^pbjx;AzjKd^;Bq;c_YDH>{$CpeGiP7n^L~8oAHFSegH3hr4remR4j@vfwYkIZM
z0Y-1HGWMt31B?cBFw*zcwlOHkYLVpXIT^`Wjw1sL_ea=ShGRg&nLgd>feWAE8qBFh
zy-q(e_gp)ZeMWp7-~c0M;&(>dnFiRQow?Amd}cT*&76tAN;lK19Mkz>&iLNiGWhk
dJr)J(HyN5IXr5ZG1;yG5e0f}5TtQIy{{i2n+J^uD
diff --git a/Demo/Xigua.proto b/Demo/Xigua.proto
deleted file mode 100755
index e456548..0000000
--- a/Demo/Xigua.proto
+++ /dev/null
@@ -1,21 +0,0 @@
-syntax = "proto2";
-import "XiguaCommon.proto";
-
-
-message XiguaLive {
- message Data {
- message Message {
- required CommonInfo commonInfo = 1;
- optional string content = 3;
- }
- // WebcastChatMessage 聊天
- // WebcastGiftMessage 礼物
- required string method = 1;
- required Message message = 2;
- }
- repeated Data data = 1;
- required string cursor = 2;
- optional int32 fetch_interval = 3;
- optional int32 now = 4;
- required string internal_ext = 5;
-}
\ No newline at end of file
diff --git a/Demo/XiguaCommon.proto b/Demo/XiguaCommon.proto
deleted file mode 100644
index 2b37acb..0000000
--- a/Demo/XiguaCommon.proto
+++ /dev/null
@@ -1,35 +0,0 @@
-syntax = "proto2";
-import "XiguaUser.proto";
-import "XiguaGift.proto";
-// 样式
-message Style {
- optional string color = 1;
- optional int32 fontWeight = 4;
-}
-// 参数
-message Params {
- // 1 字符串
- // 11 用户
- // 12 礼物
- required int32 type = 1;
- optional Style style = 2;
- optional string string = 11;
- optional User user = 21;
- optional Gift gift = 22;
-}
-// 自定义显示信息
-message DisplayText {
- // 参数
- required string method = 1;
- required string format = 2;
- optional Style bgStyle = 3;
- optional Params params = 4;
-}
-// 通用定义
-message CommonInfo {
- optional string method = 1;
- optional int32 msg_id = 2;
- optional int32 room_id = 3;
- optional int32 create_time = 4;
- optional DisplayText displayText = 8;
-}
\ No newline at end of file
diff --git a/Demo/XiguaGift.proto b/Demo/XiguaGift.proto
deleted file mode 100644
index ab656bf..0000000
--- a/Demo/XiguaGift.proto
+++ /dev/null
@@ -1,10 +0,0 @@
-syntax = "proto2";
-// 礼物
-message Gift {
- message Detail {
- required string gift_id = 1;
- required string gift_name = 2;
- }
- required int32 id = 1;
- required Detail gift = 2;
-}
diff --git a/Demo/XiguaUser.proto b/Demo/XiguaUser.proto
deleted file mode 100644
index 104e65b..0000000
--- a/Demo/XiguaUser.proto
+++ /dev/null
@@ -1,68 +0,0 @@
-syntax = "proto2";
-// 用户信息
-message User {
- // 头像
- message Avatar {
- required string url = 1;
- optional string id = 2;
- }
- // 头衔
- message Badge {
- message FanClubText {
- required string text = 1;
- optional string color = 2;
- required int32 level = 3;
- }
- repeated string url = 1;
- optional string localUrl = 2;
- optional int32 height = 3;
- optional int32 width = 4;
- // 3 房管
- // 6 贵族
- // 7 粉丝团
- optional int32 type = 6;
- optional string clickTo = 7;
- optional FanClubText fanClubText = 8;
- }
- // 粉丝和粉
- message Follow {
- optional int32 following = 1 [default = 0];
- optional int32 follower = 2 [default = 0];
- }
- // 花钱等级
- message PayGrade {
- required int32 current = 1;
- required int32 level = 6;
- optional int32 currentLevelNeed = 10;
- optional int32 nextLevelNeed = 11;
- optional string content = 13;
- required Badge badge = 19;
- optional int32 toNextLevelNeed = 21;
- }
- // 荣誉等级
- message HonorLevel {
- required Badge badge = 19;
- }
- // 贵族
- message Noble {
- message NobleBoarder {
- repeated string urlList = 1;
- required string uri = 2;
- optional int32 height = 3;
- optional int32 width = 4;
- }
- required string content = 4;
- optional NobleBoarder boarder = 8;
- }
- required int32 id = 1;
- required string nickname = 3;
- required int32 gender = 4;
- // 这个顺序可能有点迷,不是很清楚
- required Avatar avatarThumb = 9;
- optional Avatar avatarMedium = 10;
- optional Avatar avatarLarge = 11;
- repeated Badge badge = 21;
- optional Follow follow = 22;
- required PayGrade payGrade = 23;
- required int32 totalPaid = 34;
-}
diff --git a/Demo/result.txt b/Demo/result.txt
deleted file mode 100755
index 3532acb..0000000
--- a/Demo/result.txt
+++ /dev/null
@@ -1,1104 +0,0 @@
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776095429262838536
- 3: 6776046237389949709
- 4: 1577682868037
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "31"
- }
- }
- }
- 2: 10001
- 3: 4877269
- 4: 1
- 5: 31
- 6: 31
- 7 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 11: 1577682859
- 12: 9562129
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776096315337149188
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 51701203011
- 3: "\344\270\200\344\270\226\346\213\245\346\234\2112"
- 9 {
- 1: "http://p1.pstatp.com/thumb/173b6002b1b2f7dbdca17"
- 2: "173b6002b1b2f7dbdca17"
- }
- 22 {
- 1: 5
- 2: 17
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAApJw57AiopOgAc42H_4TpLSu0UOusGIpUOuJiMcFijQk"
- }
- }
- }
- }
- }
- 2 {
- 1: 51701203011
- 3: "\344\270\200\344\270\226\346\213\245\346\234\2112"
- 9 {
- 1: "http://p1.pstatp.com/thumb/173b6002b1b2f7dbdca17"
- 2: "173b6002b1b2f7dbdca17"
- }
- 22 {
- 1: 5
- 2: 17
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAApJw57AiopOgAc42H_4TpLSu0UOusGIpUOuJiMcFijQk"
- }
- 3: 4368
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776095565866044164
- 3: 6776046237389949709
- 4: 1577682868207
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "32"
- }
- }
- }
- 2: 10001
- 3: 4877269
- 4: 1
- 5: 32
- 6: 32
- 7 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 11: 1577682859
- 12: 9562126
- }
-}
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776095595369073419
- 3: 6776046237389949709
- 4: 1577682868387
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "33"
- }
- }
- }
- 2: 10001
- 3: 4877269
- 4: 1
- 5: 33
- 6: 33
- 7 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 11: 1577682859
- 12: 9562133
- }
-}
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776095429262904072
- 3: 6776046237389949709
- 4: 1577682868548
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11 {
- 6 {
- }
- }
- }
- }
- }
- 2: 10001
- 3: 4877269
- 4: 1
- 5: 34
- 6: 34
- 7 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 11: 1577682859
- 12: 9562130
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776096296886438656
- 3: 6776046237389949709
- 4: 1577682868754
- 6: 1
- 8 {
- 1: "webcast_chat_display_text"
- 2: "{0:user}{1:string}"
- 3 {
- 1: "#ff36c0cf"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#60000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 96060857254
- 3: "\351\232\217\347\274\230\351\232\217\345\277\203Nice"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/f6c1f0a2eed94c6da6c63f953cf5e5d9~120x256.image"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 2: "webcast/xigua_admin_badge_v2.png"
- 3: 16
- 4: 28
- 6: 3
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_13.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 13
- }
- }
- 22 {
- 1: 211
- 2: 87
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 13
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_13.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32 {
- 2: 1
- }
- 38: "0"
- 46: "MS4wLjABAAAA2vT_skbNZqnuk8RNpxG7NnH0giN8I6ulbp1Ib03V6kc"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 2: 1
- }
- }
- 4 {
- 1: 1
- 11: "\347\203\237\345\223\245\345\245\213\350\265\267\345\217\215\345\207\273\357\274\214"
- }
- }
- }
- 2 {
- 1: 96060857254
- 3: "\351\232\217\347\274\230\351\232\217\345\277\203Nice"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/f6c1f0a2eed94c6da6c63f953cf5e5d9~120x256.image"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 2: "webcast/xigua_admin_badge_v2.png"
- 3: 16
- 4: 28
- 6: 3
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_13.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 13
- }
- }
- 22 {
- 1: 211
- 2: 87
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 13
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_13.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_13.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32 {
- 2: 1
- }
- 38: "0"
- 46: "MS4wLjABAAAA2vT_skbNZqnuk8RNpxG7NnH0giN8I6ulbp1Ib03V6kc"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: "\347\203\237\345\223\245\345\245\213\350\265\267\345\217\215\345\207\273\357\274\214"
- }
-}
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776095541777566475
- 3: 6776046237389949709
- 4: 1577682868756
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "35"
- }
- }
- }
- 2: 10001
- 3: 4877269
- 4: 1
- 5: 35
- 6: 35
- 7 {
- 1: 108702526628
- 3: "\346\264\273\347\201\265482"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 10 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 11 {
- 1: "http://p9-xg.bytecdn.cn/thumb/dafc0001a84b5d7bdaf5"
- 2: "dafc0001a84b5d7bdaf5"
- }
- 15: 1
- 22 {
- 1: 23
- 2: 4
- }
- 23 {
- 13: "\350\267\235\347\246\2731\347\272\247\350\277\230\345\267\2561\351\222\273\347\237\263"
- 19: ""
- 21: 1
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 37: 1
- 38: "0"
- 44 {
- 2: 2
- }
- 46: "MS4wLjABAAAAG1Dgaxsju3mrU8P-4n8PMiyre39zuzoIU4VN4Hx3jlk"
- 48: ""
- 1028: "108702526628"
- }
- 11: 1577682859
- 12: 9562136
- }
-}
-2: "6776095541777566475_1577682868824_6776096294789352203_1"
-3: 1000
-4: 1577682868824
-5: "fetch_time:1577682868824|start_time:1577682856715|fetch_id:6776095765112277774|flag:0|seq:6"
diff --git a/Demo/result2.txt b/Demo/result2.txt
deleted file mode 100755
index f527d67..0000000
--- a/Demo/result2.txt
+++ /dev/null
@@ -1,4406 +0,0 @@
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776094930906420743
- 3: 6776046237389949709
- 4: 1577682546805
- 6: 1
- }
- 2 {
- 1: 63221195737
- 3: "\344\271\236\344\270\220\344\270\255\347\232\204\351\234\270\344\270\27317"
- 4: 1
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/2c5d0019f4df1067488e"
- 2: "2c5d0019f4df1067488e"
- }
- 22 {
- 1: 30
- 2: 3
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAdNaZPjCipFmR2wcODonTJz12-Nxxc5b-rE6YI88tRg4"
- }
- 3: "\350\265\260\344\272\206\343\200\202\346\215\241\344\270\234\350\245\277"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094936090626830
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 73258030131
- 3: "\347\224\237\344\272\216\345\214\227\344\270\216\351\201\207\344\272\216\345\215\227"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/15301f445a164de999d9dbdf9001bb34~120x256.image"
- }
- 22 {
- 1: 17
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAuAFYDPQzrGwnSsHWU3-0tTMTMb99agGIZPaBiz0H3qA"
- }
- }
- }
- }
- }
- 2 {
- 1: 73258030131
- 3: "\347\224\237\344\272\216\345\214\227\344\270\216\351\201\207\344\272\216\345\215\227"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/15301f445a164de999d9dbdf9001bb34~120x256.image"
- }
- 22 {
- 1: 17
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAuAFYDPQzrGwnSsHWU3-0tTMTMb99agGIZPaBiz0H3qA"
- }
- 3: 4033
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094937756076812
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 68823028183
- 3: "\345\234\243\346\235\2578"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff6100005ec2b4942af3~120x256.image"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 5
- }
- }
- 22 {
- 1: 22
- 2: 41
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 5
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAY4V7kjbl3WbVf_xhpHjUfluKnenDA3RIEXN8rRMcjl4"
- }
- }
- }
- }
- }
- 2 {
- 1: 68823028183
- 3: "\345\234\243\346\235\2578"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff6100005ec2b4942af3~120x256.image"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 5
- }
- }
- 22 {
- 1: 22
- 2: 41
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 5
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAY4V7kjbl3WbVf_xhpHjUfluKnenDA3RIEXN8rRMcjl4"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4041
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776094932810795788
- 3: 6776046237389949709
- 4: 1577682547968
- 6: 1
- }
- 2 {
- 1: 106105915100
- 3: "2\344\270\252\345\217\243\345\220\203\350\215\257"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/da8500183464d18265b0"
- 2: "da8500183464d18265b0"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_3.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 22 {
- 1: 46
- 2: 5
- }
- 23 {
- 6: 3
- 19 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_3.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAArHp0E4z9xClHim4mTkHjBJV0rzMkrq97XOWsd1f8bzw"
- }
- 3: "\344\270\200\351\246\226\345\207\211\345\207\211\351\200\201\347\273\231\344\275\240"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094941275228935
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 6099836306
- 3: "haoran79071754"
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3796/2975850990~120x256.image"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- 21 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_7.png"
- 6: 7
- 8 {
- 1: "\345\246\226\345\244\247\345\244\247"
- 2: "#FFFFFF"
- 3: 7
- }
- }
- 22 {
- 1: 68
- 2: 7
- }
- 23 {
- 6: 11
- 19 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\345\246\226\345\244\247\345\244\247"
- 2: 7
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_7.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\345\246\226\345\244\247\345\244\247"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAiMA7ZrJRUqFSSYD7h6jJ7_prYHx-gbDxfboH11qM3lw"
- }
- }
- }
- }
- }
- 2 {
- 1: 6099836306
- 3: "haoran79071754"
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3796/2975850990~120x256.image"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- 21 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_7.png"
- 6: 7
- 8 {
- 1: "\345\246\226\345\244\247\345\244\247"
- 2: "#FFFFFF"
- 3: 7
- }
- }
- 22 {
- 1: 68
- 2: 7
- }
- 23 {
- 6: 11
- 19 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\345\246\226\345\244\247\345\244\247"
- 2: 7
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_7.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_7.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\345\246\226\345\244\247\345\244\247"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAiMA7ZrJRUqFSSYD7h6jJ7_prYHx-gbDxfboH11qM3lw"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4041
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094942239574796
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 997988799882285
- 3: "\345\270\246\350\264\247\345\260\217\350\276\276\344\272\272"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/ac44103b50c84d0bb41900afa3dd5400~120x256.image"
- }
- 22 {
- 1: 8
- 2: 2876
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_H8wBjz9vWUjiTRxUaWpjBZum-T9Za_FiU8hO8WZg0o"
- }
- }
- }
- }
- }
- 2 {
- 1: 997988799882285
- 3: "\345\270\246\350\264\247\345\260\217\350\276\276\344\272\272"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/ac44103b50c84d0bb41900afa3dd5400~120x256.image"
- }
- 22 {
- 1: 8
- 2: 2876
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_H8wBjz9vWUjiTRxUaWpjBZum-T9Za_FiU8hO8WZg0o"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094943170775819
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 53077476093
- 3: "\347\214\233140674662"
- 4: 1
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/1gvL9ficRs1HvRMa3aiaNB8Pbib73EhZxmeQpz10RXP7DubO3crGFhcZ0rY2tIx8DNx3guRZQq3zC7HTByowa0R2qK6Yp9d6VPe/64"
- }
- 22 {
- 1: 131
- 2: 10
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAreBSPmB7N0KOov7l3M5aK-JJtyf5C7913fA2zDzGXOw"
- }
- }
- }
- }
- }
- 2 {
- 1: 53077476093
- 3: "\347\214\233140674662"
- 4: 1
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/1gvL9ficRs1HvRMa3aiaNB8Pbib73EhZxmeQpz10RXP7DubO3crGFhcZ0rY2tIx8DNx3guRZQq3zC7HTByowa0R2qK6Yp9d6VPe/64"
- }
- 22 {
- 1: 131
- 2: 10
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAreBSPmB7N0KOov7l3M5aK-JJtyf5C7913fA2zDzGXOw"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094942927407883
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 92363708900
- 3: "\346\234\261\346\255\243\345\205\265534"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/bcb40ad0e57546d8a7ef6bdc0e5158a7~120x256.image"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 22 {
- 1: 34
- 2: 5
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAyeUkrvkmBVMRe7hBaVHKziA8eZBXnGFipXKz3HrjKjU"
- }
- }
- }
- }
- }
- 2 {
- 1: 92363708900
- 3: "\346\234\261\346\255\243\345\205\265534"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/bcb40ad0e57546d8a7ef6bdc0e5158a7~120x256.image"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 22 {
- 1: 34
- 2: 5
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAyeUkrvkmBVMRe7hBaVHKziA8eZBXnGFipXKz3HrjKjU"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776094946618313484
- 3: 6776046237389949709
- 4: 1577682548629
- }
- 2 {
- 1: 1009
- 2 {
- 1: 51315490218
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/dac40015f669ef0b696f"
- 2: "dac40015f669ef0b696f"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 999
- 2 {
- 1: 3694848579
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216b00276a5a0c528bc1"
- 2: "216b00276a5a0c528bc1"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 1: 520
- 2 {
- 1: 58955217257
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/1a6c001a0bf7aca465bb~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 1: 520
- 2 {
- 1: 50031132577
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3795/3044413937"
- 2: "3795/3044413937"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 1: 396
- 2 {
- 1: 101097368136
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56d0004f6575163d569~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 1: 102
- 2 {
- 1: 7095750389
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/216f00202a3c546467d8~120x256.image"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 1: 48
- 2 {
- 1: 452616060933764
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/user-avatar/7c4bf3f97697cc6cdf5d4e248998820a~120x256.image"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 1: 38
- 2 {
- 1: 76749795271
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/46c1000b70f372d7bd1a~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 1: 36
- 2 {
- 1: 4211394254
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/aad7000caf3accc3cb92~120x256.image"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 1: 32
- 2 {
- 1: 107676364786
- 2: 433533
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff0f00005366d597962c~120x256.image"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 1: 30
- 2 {
- 1: 96456577532
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/3792/5112637127"
- 2: "3792/5112637127"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 1: 30
- 2 {
- 1: 6091992132
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/cTh78d4zFPcFldlibFa6AuKOEziayianNlEeR5Sl37ZcYrRqRIVrIxcFdVOMuiaBlQBnwdYr8lmMAcWJz2r2fc9qicE3lpTqz8ppia/64"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 1: 28
- 2 {
- 1: 100772221334
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/dab4000b17db0ad6d8e0~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 1: 20
- 2 {
- 1: 62002479122
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/da58000d4f38ebb8fc63"
- 2: "da58000d4f38ebb8fc63"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 1: 20
- 2 {
- 1: 23360742751
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/2c6100121cdc8ca1a742"
- 2: "2c6100121cdc8ca1a742"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 1: 19
- 2 {
- 1: 101690799346
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/dab20003f078a9e68fa4"
- 2: "dab20003f078a9e68fa4"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 1: 18
- 2 {
- 1: 3996777637
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2498000aa13c994faaba~120x256.image"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 1: 16
- 2 {
- 1: 1719254794638445
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 1: 15
- 2 {
- 1: 4300866929
- 2: 348641
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff040000839016b23c56~120x256.image"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 1: 12
- 2 {
- 1: 980371329783180
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3791/5035712059"
- 2: "3791/5035712059"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 4033
- 4: "42\344\270\207\344\272\272\346\260\224"
- 6: 426764
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094944407980812
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 50503134090
- 3: "\351\255\201\345\233\227"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/1bf60010c710d1a045ac"
- 2: "1bf60010c710d1a045ac"
- }
- 22 {
- 1: 24
- 2: 7
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA9uCg19bEDkIkKX9dpF3kjlvyNmqioA3-lDU7a4NonQ0"
- }
- }
- }
- }
- }
- 2 {
- 1: 50503134090
- 3: "\351\255\201\345\233\227"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/1bf60010c710d1a045ac"
- 2: "1bf60010c710d1a045ac"
- }
- 22 {
- 1: 24
- 2: 7
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA9uCg19bEDkIkKX9dpF3kjlvyNmqioA3-lDU7a4NonQ0"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094944072387339
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 104629436766
- 3: "\347\235\277\347\221\236\351\224\2208231"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/daa60007351bd6f21ae2"
- 2: "daa60007351bd6f21ae2"
- }
- 22 {
- 1: 13
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAVdrIFjmQoFIP7IOYYD6D2a_7gCaov5rfabQLYT8ncsY"
- }
- }
- }
- }
- }
- 2 {
- 1: 104629436766
- 3: "\347\235\277\347\221\236\351\224\2208231"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/daa60007351bd6f21ae2"
- 2: "daa60007351bd6f21ae2"
- }
- 22 {
- 1: 13
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAVdrIFjmQoFIP7IOYYD6D2a_7gCaov5rfabQLYT8ncsY"
- }
- 3: 4033
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094949030021892
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 70263029581
- 3: "6000010"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/3e7c000136faee86cddf"
- 2: "3e7c000136faee86cddf"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_3.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_3.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 3
- }
- }
- 22 {
- 1: 5
- 2: 1
- }
- 23 {
- 6: 3
- 19 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_3.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 3
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_3.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAu0AlxOal2MNv_zRuQTW-gVPH-RmD41FBxJtF8E6QQNE"
- }
- }
- }
- }
- }
- 2 {
- 1: 70263029581
- 3: "6000010"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/3e7c000136faee86cddf"
- 2: "3e7c000136faee86cddf"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_3.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_3.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 3
- }
- }
- 22 {
- 1: 5
- 2: 1
- }
- 23 {
- 6: 3
- 19 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_3.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_3.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 3
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_3.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAu0AlxOal2MNv_zRuQTW-gVPH-RmD41FBxJtF8E6QQNE"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094950758451971
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 6053395016
- 3: "\351\231\210\345\224\220\345\256\211\345\220\211"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/24990016b636c608a68c"
- 2: "24990016b636c608a68c"
- }
- 22 {
- 1: 141
- 2: 4
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAACAz1arvpt5T2GJRaMkYUoXJt9pyJp00a4X6VK37LeD8"
- }
- }
- }
- }
- }
- 2 {
- 1: 6053395016
- 3: "\351\231\210\345\224\220\345\256\211\345\220\211"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/24990016b636c608a68c"
- 2: "24990016b636c608a68c"
- }
- 22 {
- 1: 141
- 2: 4
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAACAz1arvpt5T2GJRaMkYUoXJt9pyJp00a4X6VK37LeD8"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094952402455307
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 61625370940
- 3: "sunwu\345\210\232"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/216f0025e253ff80e146"
- 2: "216f0025e253ff80e146"
- }
- 22 {
- 1: 92
- 2: 72
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAUOK4GaPCsuDYIWk22V5lEul0Xc1ifn_OycMzXGzSYvo"
- }
- }
- }
- }
- }
- 2 {
- 1: 61625370940
- 3: "sunwu\345\210\232"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/216f0025e253ff80e146"
- 2: "216f0025e253ff80e146"
- }
- 22 {
- 1: 92
- 2: 72
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAUOK4GaPCsuDYIWk22V5lEul0Xc1ifn_OycMzXGzSYvo"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776094952814136068
- 3: 6776046237389949709
- 4: 1577682550801
- }
- 2 {
- 1: 1009
- 2 {
- 1: 51315490218
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/dac40015f669ef0b696f"
- 2: "dac40015f669ef0b696f"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 999
- 2 {
- 1: 3694848579
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216b00276a5a0c528bc1"
- 2: "216b00276a5a0c528bc1"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 1: 520
- 2 {
- 1: 58955217257
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/1a6c001a0bf7aca465bb~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 1: 520
- 2 {
- 1: 50031132577
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3795/3044413937"
- 2: "3795/3044413937"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 1: 396
- 2 {
- 1: 101097368136
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56d0004f6575163d569~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 1: 102
- 2 {
- 1: 7095750389
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/216f00202a3c546467d8~120x256.image"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 1: 48
- 2 {
- 1: 452616060933764
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/user-avatar/7c4bf3f97697cc6cdf5d4e248998820a~120x256.image"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 1: 38
- 2 {
- 1: 76749795271
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/46c1000b70f372d7bd1a~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 1: 36
- 2 {
- 1: 4211394254
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/aad7000caf3accc3cb92~120x256.image"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 1: 32
- 2 {
- 1: 107676364786
- 2: 433533
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff0f00005366d597962c~120x256.image"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 1: 30
- 2 {
- 1: 96456577532
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/3792/5112637127"
- 2: "3792/5112637127"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 1: 30
- 2 {
- 1: 6091992132
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/cTh78d4zFPcFldlibFa6AuKOEziayianNlEeR5Sl37ZcYrRqRIVrIxcFdVOMuiaBlQBnwdYr8lmMAcWJz2r2fc9qicE3lpTqz8ppia/64"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 1: 28
- 2 {
- 1: 100772221334
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/dab4000b17db0ad6d8e0~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 1: 20
- 2 {
- 1: 62002479122
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/da58000d4f38ebb8fc63"
- 2: "da58000d4f38ebb8fc63"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 1: 20
- 2 {
- 1: 23360742751
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/2c6100121cdc8ca1a742"
- 2: "2c6100121cdc8ca1a742"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 1: 19
- 2 {
- 1: 101690799346
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/dab20003f078a9e68fa4"
- 2: "dab20003f078a9e68fa4"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 1: 18
- 2 {
- 1: 3996777637
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2498000aa13c994faaba~120x256.image"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 1: 16
- 2 {
- 1: 1719254794638445
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 1: 15
- 2 {
- 1: 4300866929
- 2: 348641
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff040000839016b23c56~120x256.image"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 1: 12
- 2 {
- 1: 980371329783180
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3791/5035712059"
- 2: "3791/5035712059"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 4041
- 4: "42\344\270\207\344\272\272\346\260\224"
- 6: 426764
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094956198169356
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 95348551144
- 3: "\347\250\213\347\220\206\344\274\237"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/dacc0011150648a64640"
- 2: "dacc0011150648a64640"
- }
- 21 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_2.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&__live_platform__=webcast&type=popup&gravity=bottom&height=400&radius=8"
- }
- 22 {
- 1: 18
- 2: 1
- }
- 23 {
- 6: 2
- 19 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_2.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&__live_platform__=webcast&type=popup&gravity=bottom&height=400&radius=8"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAb6mvE6gciAUV7_B5h7USBV6NKzdoHxJTlfyD0JqpTQc"
- }
- }
- }
- }
- }
- 2 {
- 1: 95348551144
- 3: "\347\250\213\347\220\206\344\274\237"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/dacc0011150648a64640"
- 2: "dacc0011150648a64640"
- }
- 21 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_2.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&__live_platform__=webcast&type=popup&gravity=bottom&height=400&radius=8"
- }
- 22 {
- 1: 18
- 2: 1
- }
- 23 {
- 6: 2
- 19 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_2.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_2.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&__live_platform__=webcast&type=popup&gravity=bottom&height=400&radius=8"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAb6mvE6gciAUV7_B5h7USBV6NKzdoHxJTlfyD0JqpTQc"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4041
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094956517001996
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 51734346370
- 3: "\345\215\216\344\270\275\350\275\254\350\272\25390892"
- 4: 2
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/9fd40004a05695030d28"
- 2: "9fd40004a05695030d28"
- }
- 22 {
- 1: 47
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAKzpqlsCPmbM9csIxAW8MTOtQmaVdcJpbFmhibQDIXzk"
- }
- }
- }
- }
- }
- 2 {
- 1: 51734346370
- 3: "\345\215\216\344\270\275\350\275\254\350\272\25390892"
- 4: 2
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/9fd40004a05695030d28"
- 2: "9fd40004a05695030d28"
- }
- 22 {
- 1: 47
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAKzpqlsCPmbM9csIxAW8MTOtQmaVdcJpbFmhibQDIXzk"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094958337460999
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 6628852924
- 3: "\346\211\223\345\260\217\346\200\252\345\205\275\347\232\204Adam"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/5d500029ab3a5ccd9dd3"
- 2: "5d500029ab3a5ccd9dd3"
- }
- 22 {
- 1: 286
- 2: 14
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAy1nDK5CuJgM1Nt-CHgBZ6GwyK_EQgwP_SprdTmtp9_o"
- }
- }
- }
- }
- }
- 2 {
- 1: 6628852924
- 3: "\346\211\223\345\260\217\346\200\252\345\205\275\347\232\204Adam"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/5d500029ab3a5ccd9dd3"
- 2: "5d500029ab3a5ccd9dd3"
- }
- 22 {
- 1: 286
- 2: 14
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAy1nDK5CuJgM1Nt-CHgBZ6GwyK_EQgwP_SprdTmtp9_o"
- }
- 3: 4041
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094960744876807
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 66087262008
- 3: "\346\234\211\347\202\271\347\264\25719715"
- 4: 1
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/36400005708744aac400"
- 2: "36400005708744aac400"
- }
- 22 {
- 1: 55
- 2: 5
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAALyGp2TRQs4g5HkemS_BVyFPyAjvccf9R21E4qdmiTY8"
- }
- }
- }
- }
- }
- 2 {
- 1: 66087262008
- 3: "\346\234\211\347\202\271\347\264\25719715"
- 4: 1
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/36400005708744aac400"
- 2: "36400005708744aac400"
- }
- 22 {
- 1: 55
- 2: 5
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAALyGp2TRQs4g5HkemS_BVyFPyAjvccf9R21E4qdmiTY8"
- }
- 3: 4041
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776094964658146056
- 3: 6776046237389949709
- 4: 1577682552546
- }
- 2 {
- 1: 1009
- 2 {
- 1: 51315490218
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/dac40015f669ef0b696f"
- 2: "dac40015f669ef0b696f"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 999
- 2 {
- 1: 3694848579
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216b00276a5a0c528bc1"
- 2: "216b00276a5a0c528bc1"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 1: 520
- 2 {
- 1: 58955217257
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/1a6c001a0bf7aca465bb~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 1: 520
- 2 {
- 1: 50031132577
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3795/3044413937"
- 2: "3795/3044413937"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 1: 396
- 2 {
- 1: 101097368136
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56d0004f6575163d569~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 1: 102
- 2 {
- 1: 7095750389
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/216f00202a3c546467d8~120x256.image"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 1: 48
- 2 {
- 1: 452616060933764
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/user-avatar/7c4bf3f97697cc6cdf5d4e248998820a~120x256.image"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 1: 38
- 2 {
- 1: 76749795271
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/46c1000b70f372d7bd1a~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 1: 36
- 2 {
- 1: 4211394254
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/aad7000caf3accc3cb92~120x256.image"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 1: 32
- 2 {
- 1: 107676364786
- 2: 433533
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff0f00005366d597962c~120x256.image"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 1: 30
- 2 {
- 1: 96456577532
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/3792/5112637127"
- 2: "3792/5112637127"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 1: 30
- 2 {
- 1: 6091992132
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/cTh78d4zFPcFldlibFa6AuKOEziayianNlEeR5Sl37ZcYrRqRIVrIxcFdVOMuiaBlQBnwdYr8lmMAcWJz2r2fc9qicE3lpTqz8ppia/64"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 1: 28
- 2 {
- 1: 100772221334
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/dab4000b17db0ad6d8e0~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 1: 20
- 2 {
- 1: 62002479122
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/da58000d4f38ebb8fc63"
- 2: "da58000d4f38ebb8fc63"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 1: 20
- 2 {
- 1: 23360742751
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/2c6100121cdc8ca1a742"
- 2: "2c6100121cdc8ca1a742"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 1: 19
- 2 {
- 1: 101690799346
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/dab20003f078a9e68fa4"
- 2: "dab20003f078a9e68fa4"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 1: 18
- 2 {
- 1: 3996777637
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2498000aa13c994faaba~120x256.image"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 1: 16
- 2 {
- 1: 1719254794638445
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 1: 15
- 2 {
- 1: 4300866929
- 2: 348641
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff040000839016b23c56~120x256.image"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 1: 12
- 2 {
- 1: 980371329783180
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3791/5035712059"
- 2: "3791/5035712059"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 4041
- 4: "42\344\270\207\344\272\272\346\260\224"
- 6: 426778
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094960816392968
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 2123860304991844
- 3: "\351\233\252\350\216\262\350\201\224\347\233\237696"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/user-avatar/e1034ee332f3a360de1f440a1926d912~120x256.image"
- }
- 21 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_8.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_8.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 22 {
- 1: 17
- }
- 23 {
- 6: 8
- 19 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_8.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_8.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAjHO40vuUlWpBw6xrCHAIzLLBr5Lm90PYVaX4IHF0CS0-vVt1lJ7jBF47M5A7jkc0"
- }
- }
- }
- }
- }
- 2 {
- 1: 2123860304991844
- 3: "\351\233\252\350\216\262\350\201\224\347\233\237696"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/user-avatar/e1034ee332f3a360de1f440a1926d912~120x256.image"
- }
- 21 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_8.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_8.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 22 {
- 1: 17
- }
- 23 {
- 6: 8
- 19 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_8.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_8.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAjHO40vuUlWpBw6xrCHAIzLLBr5Lm90PYVaX4IHF0CS0-vVt1lJ7jBF47M5A7jkc0"
- }
- 3: 4049
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094963341396739
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 100159301874
- 3: "\344\270\200\350\265\267\350\265\260\350\277\207\347\232\204\346\227\245\345\255\2203668"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/daaa00069579f9347cfb"
- 2: "daaa00069579f9347cfb"
- }
- 22 {
- 1: 27
- 2: 2
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAABZJ6JhoM1WejPbD5fYsa11CqVqGvBpyFiUqnEqRC7k"
- }
- }
- }
- }
- }
- 2 {
- 1: 100159301874
- 3: "\344\270\200\350\265\267\350\265\260\350\277\207\347\232\204\346\227\245\345\255\2203668"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/daaa00069579f9347cfb"
- 2: "daaa00069579f9347cfb"
- }
- 22 {
- 1: 27
- 2: 2
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAABZJ6JhoM1WejPbD5fYsa11CqVqGvBpyFiUqnEqRC7k"
- }
- 3: 4040
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094964540836621
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 4067605756
- 3: "\350\200\201\345\205\265\344\277\235\351\222\223"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/3796/2975850990"
- 2: "3796/2975850990"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 22 {
- 1: 35
- 2: 15
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAACtnp9r-xDc2ZWBMB3qYeQqT2DbPGpPL65XTRc1-7I2Q"
- }
- }
- }
- }
- }
- 2 {
- 1: 4067605756
- 3: "\350\200\201\345\205\265\344\277\235\351\222\223"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/3796/2975850990"
- 2: "3796/2975850990"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 22 {
- 1: 35
- 2: 15
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAACtnp9r-xDc2ZWBMB3qYeQqT2DbPGpPL65XTRc1-7I2Q"
- }
- 3: 4049
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776094967443081987
- 3: 6776046237389949709
- 4: 1577682554289
- }
- 2 {
- 1: 1009
- 2 {
- 1: 51315490218
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/dac40015f669ef0b696f"
- 2: "dac40015f669ef0b696f"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 999
- 2 {
- 1: 3694848579
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216b00276a5a0c528bc1"
- 2: "216b00276a5a0c528bc1"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 1: 520
- 2 {
- 1: 58955217257
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/1a6c001a0bf7aca465bb~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 1: 520
- 2 {
- 1: 50031132577
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3795/3044413937"
- 2: "3795/3044413937"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 1: 396
- 2 {
- 1: 101097368136
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56d0004f6575163d569~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 1: 102
- 2 {
- 1: 7095750389
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/216f00202a3c546467d8~120x256.image"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 1: 48
- 2 {
- 1: 452616060933764
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/user-avatar/7c4bf3f97697cc6cdf5d4e248998820a~120x256.image"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 1: 38
- 2 {
- 1: 76749795271
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/46c1000b70f372d7bd1a~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 1: 36
- 2 {
- 1: 4211394254
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/aad7000caf3accc3cb92~120x256.image"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 1: 32
- 2 {
- 1: 107676364786
- 2: 433533
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff0f00005366d597962c~120x256.image"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 1: 30
- 2 {
- 1: 96456577532
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/3792/5112637127"
- 2: "3792/5112637127"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 1: 30
- 2 {
- 1: 6091992132
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/cTh78d4zFPcFldlibFa6AuKOEziayianNlEeR5Sl37ZcYrRqRIVrIxcFdVOMuiaBlQBnwdYr8lmMAcWJz2r2fc9qicE3lpTqz8ppia/64"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 1: 28
- 2 {
- 1: 100772221334
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/dab4000b17db0ad6d8e0~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 1: 20
- 2 {
- 1: 62002479122
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/da58000d4f38ebb8fc63"
- 2: "da58000d4f38ebb8fc63"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 1: 20
- 2 {
- 1: 23360742751
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/2c6100121cdc8ca1a742"
- 2: "2c6100121cdc8ca1a742"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 1: 19
- 2 {
- 1: 101690799346
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/dab20003f078a9e68fa4"
- 2: "dab20003f078a9e68fa4"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 1: 18
- 2 {
- 1: 3996777637
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2498000aa13c994faaba~120x256.image"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 1: 16
- 2 {
- 1: 1719254794638445
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 1: 15
- 2 {
- 1: 4300866929
- 2: 348641
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff040000839016b23c56~120x256.image"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 1: 12
- 2 {
- 1: 980371329783180
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3791/5035712059"
- 2: "3791/5035712059"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 4049
- 4: "42\344\270\207\344\272\272\346\260\224"
- 6: 426778
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094968164649731
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 77206076756
- 3: "\347\201\265\351\276\231\346\240\270\351\233\225V\345\255\246\346\265\267V"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/5acb00191e332925df8d"
- 2: "5acb00191e332925df8d"
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- 21 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_10.png"
- 6: 7
- 8 {
- 1: "\345\267\245\346\240\270\345\214\240"
- 2: "#FFFFFF"
- 3: 10
- }
- }
- 22 {
- 1: 80
- 2: 16
- }
- 23 {
- 6: 11
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\345\267\245\346\240\270\345\214\240"
- 2: 10
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_10.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\345\267\245\346\240\270\345\214\240"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAqApC07ZpZa7UhpBpzaHPR1yqxLVZL5rpyDFv1npMcKw"
- }
- }
- }
- }
- }
- 2 {
- 1: 77206076756
- 3: "\347\201\265\351\276\231\346\240\270\351\233\225V\345\255\246\346\265\267V"
- 4: 1
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/5acb00191e332925df8d"
- 2: "5acb00191e332925df8d"
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- 21 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_10.png"
- 6: 7
- 8 {
- 1: "\345\267\245\346\240\270\345\214\240"
- 2: "#FFFFFF"
- 3: 10
- }
- }
- 22 {
- 1: 80
- 2: 16
- }
- 23 {
- 6: 11
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\345\267\245\346\240\270\345\214\240"
- 2: 10
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_10.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_10.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\345\267\245\346\240\270\345\214\240"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAqApC07ZpZa7UhpBpzaHPR1yqxLVZL5rpyDFv1npMcKw"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4049
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094968026352398
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 99666319456
- 3: "\344\274\230\350\264\250\345\244\226\345\242\231\345\210\233\344\275\234\350\200\205"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/da9e000236a46013b552~120x256.image"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_7.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 22 {
- 1: 19
- 2: 10
- }
- 23 {
- 6: 7
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_7.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAaUFeONE38a6l_Xbx_JPKAC6OXyH54TszcbhKgzbOnlA"
- }
- }
- }
- }
- }
- 2 {
- 1: 99666319456
- 3: "\344\274\230\350\264\250\345\244\226\345\242\231\345\210\233\344\275\234\350\200\205"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/da9e000236a46013b552~120x256.image"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_7.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 22 {
- 1: 19
- 2: 10
- }
- 23 {
- 6: 7
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_7.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_7.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAaUFeONE38a6l_Xbx_JPKAC6OXyH54TszcbhKgzbOnlA"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4041
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094971163314947
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 14225607845
- 3: "\345\257\214\345\271\263\345\260\217\345\260\217\346\233\274"
- 4: 2
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/4f954625c04c4183bff8f58b2991c659~120x256.image"
- }
- 22 {
- 1: 78
- 2: 3
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAxL2OdYfZoSyd8yv3D5UyK-NxKCBqtEgvxTcBT2h1poM"
- }
- }
- }
- }
- }
- 2 {
- 1: 14225607845
- 3: "\345\257\214\345\271\263\345\260\217\345\260\217\346\233\274"
- 4: 2
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/4f954625c04c4183bff8f58b2991c659~120x256.image"
- }
- 22 {
- 1: 78
- 2: 3
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAxL2OdYfZoSyd8yv3D5UyK-NxKCBqtEgvxTcBT2h1poM"
- }
- 3: 4049
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094973004647180
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 54236103268
- 3: "\346\227\240\350\204\232\345\260\217\351\243\236\351\270\237"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/150e0007cdf6ce59cfcd"
- 2: "150e0007cdf6ce59cfcd"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 5
- }
- }
- 22 {
- 1: 187
- 2: 106
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 5
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAZItaBELJaLJBbypwHjVgY89UNH9EnF_FR8Ni-vrKPcc"
- }
- }
- }
- }
- }
- 2 {
- 1: 54236103268
- 3: "\346\227\240\350\204\232\345\260\217\351\243\236\351\270\237"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/150e0007cdf6ce59cfcd"
- 2: "150e0007cdf6ce59cfcd"
- }
- 21 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 5
- }
- }
- 22 {
- 1: 187
- 2: 106
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 5
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_5.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_5.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAZItaBELJaLJBbypwHjVgY89UNH9EnF_FR8Ni-vrKPcc"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 4049
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776094949931993869
- 3: 6776046237389949709
- 4: 1577682555873
- 6: 1
- }
- 2 {
- 1: 87766312219
- 3: "\345\244\217\346\262\220lx"
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/9f589b489722457f941b0492e92a56fc~120x256.image"
- }
- 21 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_9.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_3.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 3
- }
- }
- 22 {
- 1: 6
- 2: 1
- }
- 23 {
- 6: 9
- 19 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_9.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_9.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&height=400&radius=8&__live_platform__=webcast&type=popup&gravity=bottom"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 3
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_3.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_3.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_Kg7MtTNiVqoIiaOZSBSu7bEegMhDVvdoQljbU8448s"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: "\346\215\256\347\202\271\351\203\275\350\242\253\344\272\272\345\215\240\344\272\206\357\274\214\346\262\241\345\276\227\351\235\242\345\255\220"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776094970790398723
- 3: 6776046237389949709
- 4: 1577682556047
- }
- 2 {
- 1: 1009
- 2 {
- 1: 51315490218
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/dac40015f669ef0b696f"
- 2: "dac40015f669ef0b696f"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 999
- 2 {
- 1: 3694848579
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216b00276a5a0c528bc1"
- 2: "216b00276a5a0c528bc1"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 1: 520
- 2 {
- 1: 58955217257
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/1a6c001a0bf7aca465bb~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 1: 520
- 2 {
- 1: 50031132577
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3795/3044413937"
- 2: "3795/3044413937"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 1: 396
- 2 {
- 1: 101097368136
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56d0004f6575163d569~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 1: 102
- 2 {
- 1: 7095750389
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/216f00202a3c546467d8~120x256.image"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 1: 48
- 2 {
- 1: 452616060933764
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/user-avatar/7c4bf3f97697cc6cdf5d4e248998820a~120x256.image"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 1: 38
- 2 {
- 1: 76749795271
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/46c1000b70f372d7bd1a~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 1: 36
- 2 {
- 1: 4211394254
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/aad7000caf3accc3cb92~120x256.image"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 1: 32
- 2 {
- 1: 107676364786
- 2: 433533
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff0f00005366d597962c~120x256.image"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 1: 30
- 2 {
- 1: 96456577532
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/3792/5112637127"
- 2: "3792/5112637127"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 1: 30
- 2 {
- 1: 6091992132
- 9 {
- 1: "http://wx.qlogo.cn/mmopen/cTh78d4zFPcFldlibFa6AuKOEziayianNlEeR5Sl37ZcYrRqRIVrIxcFdVOMuiaBlQBnwdYr8lmMAcWJz2r2fc9qicE3lpTqz8ppia/64"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 1: 28
- 2 {
- 1: 100772221334
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/dab4000b17db0ad6d8e0~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 1: 20
- 2 {
- 1: 62002479122
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/da58000d4f38ebb8fc63"
- 2: "da58000d4f38ebb8fc63"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 1: 20
- 2 {
- 1: 23360742751
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/2c6100121cdc8ca1a742"
- 2: "2c6100121cdc8ca1a742"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 1: 19
- 2 {
- 1: 101690799346
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/dab20003f078a9e68fa4"
- 2: "dab20003f078a9e68fa4"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 1: 18
- 2 {
- 1: 3996777637
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2498000aa13c994faaba~120x256.image"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 1: 16
- 2 {
- 1: 1719254794638445
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 1: 15
- 2 {
- 1: 4300866929
- 2: 348641
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff040000839016b23c56~120x256.image"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 1: 12
- 2 {
- 1: 980371329783180
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3791/5035712059"
- 2: "3791/5035712059"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 4049
- 4: "42\344\270\207\344\272\272\346\260\224"
- 6: 426778
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776094977027214091
- 3: 6776046237389949709
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 5721876245
- 3: "\344\270\200\350\250\253\345\236\250\350\255\26761423436"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/249c002c82f6d0d812d4"
- 2: "249c002c82f6d0d812d4"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 9
- }
- }
- 22 {
- 1: 99
- 2: 6
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 9
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAVNrMHFQctXLD0T_7P52m_ZVfnEolHW9lwFDyK6E-GR4"
- }
- }
- }
- }
- }
- 2 {
- 1: 5721876245
- 3: "\344\270\200\350\250\253\345\236\250\350\255\26761423436"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/249c002c82f6d0d812d4"
- 2: "249c002c82f6d0d812d4"
- }
- 21 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 6: 7
- 8 {
- 1: "\347\203\237\345\223\245"
- 2: "#FFFFFF"
- 3: 9
- }
- }
- 22 {
- 1: 99
- 2: 6
- }
- 23 {
- 6: 5
- 19 {
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\347\203\237\345\223\245"
- 2: 9
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p9-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\203\237\345\223\245"
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAVNrMHFQctXLD0T_7P52m_ZVfnEolHW9lwFDyK6E-GR4"
- }
- 3: 4049
- 10: 1
- 14: "42\344\270\207\344\272\272\346\260\224"
- }
-}
-2: "6776094977027214091_1577682556530_6776094380026710796_1"
-3: 1000
-4: 1577682556530
-5: "fetch_time:1577682556530|start_time:1577682509823|fetch_id:6776094936740793091|flag:0|seq:65"
diff --git a/Demo/result3.txt b/Demo/result3.txt
deleted file mode 100755
index 04eaf79..0000000
--- a/Demo/result3.txt
+++ /dev/null
@@ -1,1434 +0,0 @@
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776119321150065420
- 3: 6776099199801887501
- 4: 1577688399452
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108307861429
- 3: "\345\276\201\346\234\215\344\271\213\345\210\2033"
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 10 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 11 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 15: 1
- 21 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 12
- }
- }
- 22 {
- 1: 44
- 2: 2
- }
- 23 {
- 1: 91
- 6: 5
- 10: 51
- 11: 99
- 13: "\350\267\235\347\246\2736\347\272\247\350\277\230\345\267\2569\351\222\273\347\237\263"
- 19 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21: 9
- }
- 24 {
- 1 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 12
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- 32: ""
- 34: 91
- 37: 1
- 38: "0"
- 44 {
- 2: 3
- }
- 46: "MS4wLjABAAAA3yzYmDHkqQDPKUALHwC9_n1fhIVUR0_uZSCIxHnARL8"
- 48 {
- 2: 1651802804437003
- 3: 1651802804437003
- }
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 5: 1577808000
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- 1028: "108307861429"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "11"
- }
- }
- }
- 2: 10001
- 3: 49589085
- 4: 1
- 5: 11
- 6: 11
- 7 {
- 1: 108307861429
- 3: "\345\276\201\346\234\215\344\271\213\345\210\2033"
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 10 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 11 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 15: 1
- 21 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 12
- }
- }
- 22 {
- 1: 44
- 2: 2
- }
- 23 {
- 1: 91
- 6: 5
- 10: 51
- 11: 99
- 13: "\350\267\235\347\246\2736\347\272\247\350\277\230\345\267\2569\351\222\273\347\237\263"
- 19 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21: 9
- }
- 24 {
- 1 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 12
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- 32: ""
- 34: 91
- 37: 1
- 38: "0"
- 44 {
- 2: 3
- }
- 46: "MS4wLjABAAAA3yzYmDHkqQDPKUALHwC9_n1fhIVUR0_uZSCIxHnARL8"
- 48 {
- 2: 1651802804437003
- 3: 1651802804437003
- }
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 5: 1577808000
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- 1028: "108307861429"
- }
- 11: 1577688394
- 12: 38199386
- }
-}
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776119550116809480
- 3: 6776099199801887501
- 4: 1577688399828
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108307861429
- 3: "\345\276\201\346\234\215\344\271\213\345\210\2033"
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 10 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 11 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 15: 1
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 12
- }
- }
- 22 {
- 1: 44
- 2: 2
- }
- 23 {
- 1: 91
- 6: 5
- 10: 51
- 11: 99
- 13: "\350\267\235\347\246\2736\347\272\247\350\277\230\345\267\2569\351\222\273\347\237\263"
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21: 9
- }
- 24 {
- 1 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 12
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- 32: ""
- 34: 91
- 37: 1
- 38: "0"
- 44 {
- 2: 3
- }
- 46: "MS4wLjABAAAA3yzYmDHkqQDPKUALHwC9_n1fhIVUR0_uZSCIxHnARL8"
- 48 {
- 2: 1651802804437003
- 3: 1651802804437003
- }
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 5: 1577808000
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- 1028: "108307861429"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "12"
- }
- }
- }
- 2: 10001
- 3: 49589085
- 4: 1
- 5: 12
- 6: 12
- 7 {
- 1: 108307861429
- 3: "\345\276\201\346\234\215\344\271\213\345\210\2033"
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 10 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 11 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 15: 1
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 12
- }
- }
- 22 {
- 1: 44
- 2: 2
- }
- 23 {
- 1: 91
- 6: 5
- 10: 51
- 11: 99
- 13: "\350\267\235\347\246\2736\347\272\247\350\277\230\345\267\2569\351\222\273\347\237\263"
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21: 9
- }
- 24 {
- 1 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 12
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- 32: ""
- 34: 91
- 37: 1
- 38: "0"
- 44 {
- 2: 3
- }
- 46: "MS4wLjABAAAA3yzYmDHkqQDPKUALHwC9_n1fhIVUR0_uZSCIxHnARL8"
- 48 {
- 2: 1651802804437003
- 3: 1651802804437003
- }
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 5: 1577808000
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- 1028: "108307861429"
- }
- 11: 1577688394
- 12: 38199388
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776120076622990087
- 3: 6776099199801887501
- 4: 1577688400030
- }
- 2 {
- 1: 2997
- 2 {
- 1: 109781518892
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/1fe3313f1d384167a678770d045caec6~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 1105
- 2 {
- 1: 58159565215
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/da8f0019a1e68c81f0ac"
- 2: "da8f0019a1e68c81f0ac"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 1: 817
- 2 {
- 1: 52379408873
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/24990023eae5e3325fcc~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 1: 520
- 2 {
- 1: 4750751180
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e574000198d2cc55d1bd~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 1: 199
- 2 {
- 1: 107860180929
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/edaf699f4aa24be4b032e2a97e5ffe33~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 1: 198
- 2 {
- 1: 110939390696
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/dada001b0c0662714273~120x256.image"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 1: 30
- 2 {
- 1: 144768134026116
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/e9f0a46135f64dbf8a980aca4442892c~120x256.image"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 1: 15
- 2 {
- 1: 106730450628
- 9 {
- 1: "http://s0.pstatp.com/image/avatar.png"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 1: 10
- 2 {
- 1: 2889153583261468
- 2: 361962
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ffc8000040315f32bfc0~120x256.image"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 1: 7
- 2 {
- 1: 59424196425
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/fe4f834b2bc6432bb8723916d617e570~120x256.image"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 1: 6
- 2 {
- 1: 52884675804
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daec001b63b3e0dd37d7~120x256.image"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 1: 5
- 2 {
- 1: 62878793771
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/7f29e64da0b2490ca698bcae5698e98c~120x256.image"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 1: 3
- 2 {
- 1: 18832317498
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/dadb00050de627ab3cbc"
- 2: "dadb00050de627ab3cbc"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 1: 2
- 2 {
- 1: 59199520587
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5acc000b1b21ea190f61"
- 2: "5acc000b1b21ea190f61"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 1: 2
- 2 {
- 1: 3188232986307261
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/41416a96df8f40b3aae8414bbe815bbb~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 1: 1
- 2 {
- 1: 6952484464
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/72900163990b4b9a49d"
- 2: "72900163990b4b9a49d"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 1: 1
- 2 {
- 1: 6246719531
- 2: 504859
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f60011dae615c75f20~120x256.image"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 1: 1
- 2 {
- 1: 61761360309
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/173b700195f4b6b9d4f22"
- 2: "173b700195f4b6b9d4f22"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 1: 1
- 2 {
- 1: 5511241493
- 2: 264265
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/2dedf0001644893e84c64~120x256.image"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 1: 1
- 2 {
- 1: 54262787632
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/382f000f53111d2e5553"
- 2: "382f000f53111d2e5553"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 3950
- 4: "50\344\270\207\344\272\272\346\260\224"
- 6: 507411
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776120073947040520
- 3: 6776099199801887501
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 4633269507
- 3: "\346\235\216\345\244\247\346\224\266\346\224\266\346\224\266"
- 4: 1
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216c002be06993e69986"
- 2: "216c002be06993e69986"
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_15.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 6: 7
- 8 {
- 1: "\345\270\203\346\222\251\345\246\271"
- 2: "#FFFFFF"
- 3: 6
- }
- }
- 22 {
- 1: 211
- 2: 11
- }
- 23 {
- 6: 15
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_15.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\345\270\203\346\222\251\345\246\271"
- 2: 6
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\345\270\203\346\222\251\345\246\271"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAfEeOhUuM50vGxbmUJO1H7o4zi7n02Ta7OFQz9Ici5dc"
- }
- }
- }
- }
- }
- 2 {
- 1: 4633269507
- 3: "\346\235\216\345\244\247\346\224\266\346\224\266\346\224\266"
- 4: 1
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/216c002be06993e69986"
- 2: "216c002be06993e69986"
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_15.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 6: 7
- 8 {
- 1: "\345\270\203\346\222\251\345\246\271"
- 2: "#FFFFFF"
- 3: 6
- }
- }
- 22 {
- 1: 211
- 2: 11
- }
- 23 {
- 6: 15
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_15.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_15.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\345\270\203\346\222\251\345\246\271"
- 2: 6
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\345\270\203\346\222\251\345\246\271"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAfEeOhUuM50vGxbmUJO1H7o4zi7n02Ta7OFQz9Ici5dc"
- }
- 3: 3959
- 10: 1
- 14: "50\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776120075566074635
- 3: 6776099199801887501
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 3816292311
- 3: "\351\253\230\345\206\267\345\245\263\347\216\21327864546"
- 4: 2
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3795/3033762272~120x256.image"
- }
- 22 {
- 1: 28
- 2: 5
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAbmkVOcqBnNaFHzOZ9d0DJdbxsswGmapGMa3GEU4vdFA"
- }
- }
- }
- }
- }
- 2 {
- 1: 3816292311
- 3: "\351\253\230\345\206\267\345\245\263\347\216\21327864546"
- 4: 2
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3795/3033762272~120x256.image"
- }
- 22 {
- 1: 28
- 2: 5
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAbmkVOcqBnNaFHzOZ9d0DJdbxsswGmapGMa3GEU4vdFA"
- }
- 3: 3959
- 10: 1
- 14: "50\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastGiftMessage"
- 2 {
- 1 {
- 1: "WebcastGiftMessage"
- 2: 6776119321150196492
- 3: 6776099199801887501
- 4: 1577688400336
- 6: 1
- 8 {
- 1: "webcast_xigua_gift_message"
- 2: "{0:user} \351\200\201\347\273\231\344\270\273\346\222\255{2:string}\344\270\252{1:gift}"
- 3 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#ffffd600"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108307861429
- 3: "\345\276\201\346\234\215\344\271\213\345\210\2033"
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 10 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 11 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 15: 1
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 12
- }
- }
- 22 {
- 1: 44
- 2: 2
- }
- 23 {
- 1: 91
- 6: 5
- 10: 51
- 11: 99
- 13: "\350\267\235\347\246\2736\347\272\247\350\277\230\345\267\2569\351\222\273\347\237\263"
- 19 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 21: 9
- }
- 24 {
- 1 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 12
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- 32: ""
- 34: 91
- 37: 1
- 38: "0"
- 44 {
- 2: 3
- }
- 46: "MS4wLjABAAAA3yzYmDHkqQDPKUALHwC9_n1fhIVUR0_uZSCIxHnARL8"
- 48 {
- 2: 1651802804437003
- 3: 1651802804437003
- }
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 5: 1577808000
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- 1028: "108307861429"
- }
- 2: 1
- }
- }
- 4 {
- 1: 12
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 22 {
- 1: 10001
- 2 {
- 1: "live_gift_10001"
- 2: "\350\245\277\347\223\234"
- }
- }
- }
- 4 {
- 1: 1
- 2 {
- 1: "#ffff9d5c"
- 4: 400
- }
- 11: "13"
- }
- }
- }
- 2: 10001
- 3: 49589085
- 4: 1
- 5: 13
- 6: 13
- 7 {
- 1: 108307861429
- 3: "\345\276\201\346\234\215\344\271\213\345\210\2033"
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 10 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 11 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe540000c8b96ba57ccc~120x256.image"
- }
- 15: 1
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 12
- }
- }
- 22 {
- 1: 44
- 2: 2
- }
- 23 {
- 1: 91
- 6: 5
- 10: 51
- 11: 99
- 13: "\350\267\235\347\246\2736\347\272\247\350\277\230\345\267\2569\351\222\273\347\237\263"
- 19 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_5.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_5.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&gravity=bottom&height=400&radius=8&__live_platform__=webcast&type=popup"
- }
- 21: 9
- }
- 24 {
- 1 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 12
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_12.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_12.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- 32: ""
- 34: 91
- 37: 1
- 38: "0"
- 44 {
- 2: 3
- }
- 46: "MS4wLjABAAAA3yzYmDHkqQDPKUALHwC9_n1fhIVUR0_uZSCIxHnARL8"
- 48 {
- 2: 1651802804437003
- 3: 1651802804437003
- }
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 5: 1577808000
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- 1028: "108307861429"
- }
- 11: 1577688394
- 12: 38199387
- }
-}
-2: "6776119321150196492_1577688400488_1_1"
-3: 1000
-4: 1577688400488
-5: "fetch_time:1577688400488|start_time:1577688331121|fetch_id:6776119333825481483|flag:0|seq:130"
diff --git a/Demo/result4.json b/Demo/result4.json
deleted file mode 100644
index db42e96..0000000
--- a/Demo/result4.json
+++ /dev/null
@@ -1,2576 +0,0 @@
-{
- "data": [
- {
- "common": {
- "method": "WebcastGiftMessage",
- "msg_id": 6776419903051713293,
- "room_id": 6776400016475949838,
- "create_time": 1577758349888,
- "is_show_msg": true,
- "display_text": {
- "key": "webcast_xigua_gift_message",
- "default_pattern": "{0:user} 送给主播{2:string}个{1:gift}",
- "default_format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "pieces": [
- {
- "type": 11,
- "format": {
- "color": "#ffffd600",
- "weight": 400
- },
- "user_value": {
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom\u0026height=400"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "with_colon": true
- }
- },
- {
- "type": 12,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "gift_value": {
- "gift_id": 10001,
- "name_ref": {
- "key": "live_gift_10001",
- "default_pattern": "西瓜"
- }
- }
- },
- {
- "type": 1,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "string_value": "28"
- }
- ]
- }
- },
- "gift_id": 10001,
- "fan_ticket_count": 1437262,
- "group_count": 1,
- "repeat_count": 28,
- "combo_count": 28,
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom\u0026height=400"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "group_id": 1577758338,
- "income_taskgifts": 499410
- },
- {
- "common": {
- "method": "WebcastGiftMessage",
- "msg_id": 6776419516128004875,
- "room_id": 6776400016475949838,
- "create_time": 1577758350315,
- "is_show_msg": true,
- "display_text": {
- "key": "webcast_xigua_gift_message",
- "default_pattern": "{0:user} 送给主播{2:string}个{1:gift}",
- "default_format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "pieces": [
- {
- "type": 11,
- "format": {
- "color": "#ffffd600",
- "weight": 400
- },
- "user_value": {
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "with_colon": true
- }
- },
- {
- "type": 12,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "gift_value": {
- "gift_id": 10001,
- "name_ref": {
- "key": "live_gift_10001",
- "default_pattern": "西瓜"
- }
- }
- },
- {
- "type": 1,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "string_value": "29"
- }
- ]
- }
- },
- "gift_id": 10001,
- "fan_ticket_count": 1437262,
- "group_count": 1,
- "repeat_count": 29,
- "combo_count": 29,
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "group_id": 1577758338,
- "income_taskgifts": 499411
- },
- {
- "common": {
- "method": "WebcastGiftMessage",
- "msg_id": 6776419750828395272,
- "room_id": 6776400016475949838,
- "create_time": 1577758350668,
- "is_show_msg": true,
- "display_text": {
- "key": "webcast_xigua_gift_message",
- "default_pattern": "{0:user} 送给主播{2:string}个{1:gift}",
- "default_format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "pieces": [
- {
- "type": 11,
- "format": {
- "color": "#ffffd600",
- "weight": 400
- },
- "user_value": {
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026height=400\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "with_colon": true
- }
- },
- {
- "type": 12,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "gift_value": {
- "gift_id": 10001,
- "name_ref": {
- "key": "live_gift_10001",
- "default_pattern": "西瓜"
- }
- }
- },
- {
- "type": 1,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "string_value": "30"
- }
- ]
- }
- },
- "gift_id": 10001,
- "fan_ticket_count": 1437262,
- "group_count": 1,
- "repeat_count": 30,
- "combo_count": 30,
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026height=400\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "group_id": 1577758338,
- "income_taskgifts": 499409
- },
- {
- "common": {
- "method": "WebcastGiftMessage",
- "msg_id": 6776419738929564419,
- "room_id": 6776400016475949838,
- "create_time": 1577758351063,
- "is_show_msg": true,
- "display_text": {
- "key": "webcast_xigua_gift_message",
- "default_pattern": "{0:user} 送给主播{2:string}个{1:gift}",
- "default_format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "pieces": [
- {
- "type": 11,
- "format": {
- "color": "#ffffd600",
- "weight": 400
- },
- "user_value": {
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom\u0026height=400"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "with_colon": true
- }
- },
- {
- "type": 12,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "gift_value": {
- "gift_id": 10001,
- "name_ref": {
- "key": "live_gift_10001",
- "default_pattern": "西瓜"
- }
- }
- },
- {
- "type": 1,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "string_value": "31"
- }
- ]
- }
- },
- "gift_id": 10001,
- "fan_ticket_count": 1437262,
- "group_count": 1,
- "repeat_count": 31,
- "combo_count": 31,
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom\u0026height=400"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "group_id": 1577758338,
- "income_taskgifts": 499413
- },
- {
- "common": {
- "method": "WebcastGiftMessage",
- "msg_id": 6776419903051844365,
- "room_id": 6776400016475949838,
- "create_time": 1577758351531,
- "is_show_msg": true,
- "display_text": {
- "key": "webcast_xigua_gift_message",
- "default_pattern": "{0:user} 送给主播{2:string}个{1:gift}",
- "default_format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "pieces": [
- {
- "type": 11,
- "format": {
- "color": "#ffffd600",
- "weight": 400
- },
- "user_value": {
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026height=400\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "with_colon": true
- }
- },
- {
- "type": 12,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "gift_value": {
- "gift_id": 10001,
- "name_ref": {
- "key": "live_gift_10001",
- "default_pattern": "西瓜"
- }
- }
- },
- {
- "type": 1,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "string_value": "32"
- }
- ]
- }
- },
- "gift_id": 10001,
- "fan_ticket_count": 1437262,
- "group_count": 1,
- "repeat_count": 32,
- "combo_count": 32,
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026height=400\u0026radius=8\u0026__live_platform__=webcast\u0026type=popup\u0026gravity=bottom"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "group_id": 1577758338,
- "income_taskgifts": 499415
- },
- {
- "common": {
- "method": "WebcastGiftMessage",
- "msg_id": 6776420021502528267,
- "room_id": 6776400016475949838,
- "create_time": 1577758352033,
- "is_show_msg": true,
- "display_text": {
- "key": "webcast_xigua_gift_message",
- "default_pattern": "{0:user} 送给主播{2:string}个{1:gift}",
- "default_format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "pieces": [
- {
- "type": 11,
- "format": {
- "color": "#ffffd600",
- "weight": 400
- },
- "user_value": {
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "with_colon": true
- }
- },
- {
- "type": 12,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "gift_value": {
- "gift_id": 10001,
- "name_ref": {
- "key": "live_gift_10001",
- "default_pattern": "西瓜"
- }
- }
- },
- {
- "type": 1,
- "format": {
- "color": "#ffff9d5c",
- "weight": 400
- },
- "string_value": "33"
- }
- ]
- }
- },
- "gift_id": 10001,
- "fan_ticket_count": 1437262,
- "group_count": 1,
- "repeat_count": 33,
- "combo_count": 33,
- "user": {
- "id": 5418509573,
- "nickname": "马家班丶青藤",
- "gender": 1,
- "signature": "若能避开猛烈的狂喜,自然不会有悲痛来袭。",
- "avatar_thumb": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_medium": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "avatar_large": {
- "url_list": [
- "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- ]
- },
- "status": 1,
- "badge_image_list": [
- {
- "url_list": [
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_admin_badge_v2.png",
- "height": 16,
- "width": 28,
- "image_type": 3
- },
- {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "image_type": 6,
- "content": {
- "name": "伯爵",
- "font_color": "#FFFFFF",
- "level": 28
- }
- },
- {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "image_type": 7,
- "content": {
- "name": "马钱",
- "font_color": "#FFFFFF",
- "level": 20
- }
- }
- ],
- "follow_info": {
- "following_count": 193,
- "follower_count": 70
- },
- "pay_grade": {
- "total_diamond_count": 164540,
- "level": 28,
- "this_grade_min_diamond": 100000,
- "this_grade_max_diamond": 179999,
- "grade_describe": "距离29级还差15460钻石",
- "new_im_icon_with_level": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_28.png~tplv-obj.png"
- ],
- "uri": "webcast/xigua_paygrade_level_28.png",
- "height": 16,
- "width": 30,
- "image_type": 1,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html\u0026type=popup\u0026gravity=bottom\u0026height=400\u0026radius=8\u0026__live_platform__=webcast"
- },
- "upgrade_need_consume": 15460
- },
- "fans_club": {
- "data": {
- "club_name": "马钱",
- "level": 20,
- "user_fans_club_status": 1,
- "badge": {
- "icons": {
- "2": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_20.png~tplv-obj.image"
- ],
- "uri": "webcast/xigua_fansclub_medal_20.png",
- "height": 48,
- "width": 150
- }
- },
- "title": "马钱"
- }
- }
- },
- "user_attr": {
- "is_admin": true
- },
- "pay_score": 164540,
- "link_mic_stats": 1,
- "display_id": "0",
- "author_stats": {},
- "sec_uid": "MS4wLjABAAAAX1RDCyl5T1gJHj4sUHKypWcU80u0NvbGmXDB8Pc1kdk",
- "xigua_info": {
- "author_desc": "若能避开猛烈的狂喜,自然不会有悲痛来袭。"
- },
- "noble_info": {
- "noble_background": {
- "url_list": [
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_background_v1_2.png",
- "height": 1008,
- "width": 1125
- },
- "noble_level": 2,
- "noble_icon": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_2.png",
- "height": 105,
- "width": 111,
- "open_web_url": "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1\u0026type=fullscreen\u0026hide_nav_bar=1\u0026status_bar_color=white\u0026status_bar_bg_color=%2300000000\u0026noble_intercept=1\u0026__live_platform__=webcast"
- },
- "noble_name": "伯爵",
- "expire_time": 1580486400,
- "noble_big_icon": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image",
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_big_icon_2.png",
- "height": 366,
- "width": 615
- },
- "noble_icon_with_back": {
- "url_list": [
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image",
- "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_2_new.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_icon_with_back_2_new.png",
- "height": 60,
- "width": 108
- },
- "noble_boarder": {
- "url_list": [
- "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image",
- "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_2.png~tplv-obj.image"
- ],
- "uri": "webcast/noble_boarder_v1_2.png",
- "height": 64,
- "width": 64
- },
- "noble_background_color": [
- "#57239e",
- "#8537dd",
- "#dea0ff"
- ]
- },
- "id_str": "5418509573"
- },
- "group_id": 1577758338,
- "income_taskgifts": 499416
- },
- {},
- {
- "content": "\u5c0f\u65f6\u699c\u7b2c604\u540d",
- "message_type": 1,
- "common": {
- "play_time": 0,
- "style": 2,
- "create_time": 1577758380536,
- "room_id": 6776400016475949838,
- "monitor": 0,
- "is_show_msg": true,
- "msg_id": 6776420644612868875,
- "describe": null,
- "method": "SunDailyRankMessage"
- },
- "rank": 604
- },
- {
- "content": "\u5c0f\u65f6\u699c\u7b2c617\u540d",
- "message_type": 1,
- "common": {
- "play_time": 0,
- "style": 2,
- "create_time": 1577758426211,
- "room_id": 6776400016475949838,
- "monitor": 0,
- "is_show_msg": true,
- "msg_id": 6776420841136638733,
- "describe": null,
- "method": "SunDailyRankMessage"
- },
- "rank": 617
- }
- ],
- "extra": {
- "cursor": "6776420903741475598_1577758448588_1_1",
- "fetch_interval": 1000,
- "now": 1577758448588
- },
- "internal_ext": "fetch_time:1577758448588|start_time:1577758030551|fetch_id:6776419296664423182|flag:0|seq:2",
- "status_code": 0
-}
\ No newline at end of file
diff --git a/Demo/result4.txt b/Demo/result4.txt
deleted file mode 100644
index d965200..0000000
--- a/Demo/result4.txt
+++ /dev/null
@@ -1,6007 +0,0 @@
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426436170566412
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 5840500858
- 3: "A\345\236\253\345\234\210\345\255\224\347\216\257\347\216\213\346\266\233"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/216e001052d7e6fec685"
- 2: "216e001052d7e6fec685"
- }
- 22 {
- 1: 224
- 2: 37
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_e0QPRMtVaPhLRuIPpHmK7w8BZ1-5gijblpJnqrbDcs"
- }
- }
- }
- }
- }
- 2 {
- 1: 5840500858
- 3: "A\345\236\253\345\234\210\345\255\224\347\216\257\347\216\213\346\266\233"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/216e001052d7e6fec685"
- 2: "216e001052d7e6fec685"
- }
- 22 {
- 1: 224
- 2: 37
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_e0QPRMtVaPhLRuIPpHmK7w8BZ1-5gijblpJnqrbDcs"
- }
- 3: 120
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426444672420621
- 3: 6776400016475949838
- 4: 1577759731997
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 67953057211
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3f000005a90d075c2025"
- 2: "3f000005a90d075c2025"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 66598648306
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3e800012b73564538445"
- 2: "3e800012b73564538445"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 66526533963
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/382c0018c79a55e7eb50"
- 2: "382c0018c79a55e7eb50"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 121
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13439
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426449344776972
- 3: 6776400016475949838
- 4: 1577759732755
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 67953057211
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3f000005a90d075c2025"
- 2: "3f000005a90d075c2025"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 66598648306
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3e800012b73564538445"
- 2: "3e800012b73564538445"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 121
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13368
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426445079169799
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 2176678922291876
- 3: "\347\224\250\346\210\2671528052886070"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3796/2975850990~120x256.image"
- }
- 22 {
- 1: 4
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAZSEfCXAXBnI6Uk5eIhEUbiSzf44dCZUHT2XSKB_dZZsawEdGin0Vk3qW_c-nTOKQ"
- }
- }
- }
- }
- }
- 2 {
- 1: 2176678922291876
- 3: "\347\224\250\346\210\2671528052886070"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3796/2975850990~120x256.image"
- }
- 22 {
- 1: 4
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAZSEfCXAXBnI6Uk5eIhEUbiSzf44dCZUHT2XSKB_dZZsawEdGin0Vk3qW_c-nTOKQ"
- }
- 3: 121
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426447847607043
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 81300306546
- 3: "\344\274\232\345\201\232\344\277\257\345\215\247\346\222\221"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 21 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_12.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_12.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_fansclub_medal_11.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_11.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 11
- }
- }
- 22 {
- 1: 113
- 2: 46
- }
- 23 {
- 6: 12
- 19 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_12.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_12.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 11
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_fansclub_medal_11.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_11.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_2khRskpGWnpAXDwu2YuDtYbwMLmdeqirHuqiVuDv5I"
- }
- }
- }
- }
- }
- 2 {
- 1: 81300306546
- 3: "\344\274\232\345\201\232\344\277\257\345\215\247\346\222\221"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 21 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_12.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_12.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 21 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_fansclub_medal_11.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_11.png"
- 6: 7
- 8 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: "#FFFFFF"
- 3: 11
- }
- }
- 22 {
- 1: 113
- 2: 46
- }
- 23 {
- 6: 12
- 19 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_paygrade_level_12.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_12.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\346\211\254\345\256\266\345\206\233"
- 2: 11
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p16.pstatp.com/img/webcast/xigua_fansclub_medal_11.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_11.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\346\211\254\345\256\266\345\206\233"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_2khRskpGWnpAXDwu2YuDtYbwMLmdeqirHuqiVuDv5I"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p16.pstatp.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: 121
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426445142021632
- 3: 6776400016475949838
- 4: 1577759735542
- 6: 1
- }
- 2 {
- 1: 103899090823
- 3: "\347\213\227\347\213\227\346\203\212\350\256\266"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56f000975dc2072a563~120x256.image"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- 21 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 6: 7
- 8 {
- 1: "\347\232\256\347\232\256\346\242\246"
- 2: "#FFFFFF"
- 3: 6
- }
- }
- 22 {
- 1: 87
- 2: 9
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&radius=8&__live_platform__=webcast&type=popup&gravity=bottom&height=400"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\347\232\256\347\232\256\346\242\246"
- 2: 6
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\232\256\347\232\256\346\242\246"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_wv1EKr_JZMCFaGy6SvMEd0c5azVkdxycTyr9w0ZUfY"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: "\347\216\260\345\234\250\346\234\211\344\272\272\345\226\234\346\254\242\346\257\224\350\276\203\350\213\237"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426468597222157
- 3: 6776400016475949838
- 4: 1577759736948
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 68029426146
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3830000f5f96b0ea8de8"
- 2: "3830000f5f96b0ea8de8"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 67953057211
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/3f000005a90d075c2025"
- 2: "3f000005a90d075c2025"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 121
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13368
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426466705001224
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 68029426146
- 3: "\346\233\276\347\273\217210558703"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/3830000f5f96b0ea8de8"
- 2: "3830000f5f96b0ea8de8"
- }
- 22 {
- 1: 42
- 2: 4
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAQ45cMaNq1zuSfUuWOSCBeZOFFJqQ6A60FkZk3EJxxdk"
- }
- }
- }
- }
- }
- 2 {
- 1: 68029426146
- 3: "\346\233\276\347\273\217210558703"
- 4: 1
- 9 {
- 1: "http://p3.pstatp.com/thumb/3830000f5f96b0ea8de8"
- 2: "3830000f5f96b0ea8de8"
- }
- 22 {
- 1: 42
- 2: 4
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAQ45cMaNq1zuSfUuWOSCBeZOFFJqQ6A60FkZk3EJxxdk"
- }
- 3: 123
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426478092684045
- 3: 6776400016475949838
- 4: 1577759740963
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 86465475584
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 68029426146
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3830000f5f96b0ea8de8"
- 2: "3830000f5f96b0ea8de8"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 123
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13419
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426481427155719
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 86465475584
- 3: "\344\270\234\350\216\236\350\200\201\345\223\245"
- 4: 2
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 22 {
- 1: 71
- 2: 99
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAnYN-SKS_mrowP9C5r5JNfVcQtWEwKjvoRu8YqVRRe6c"
- }
- }
- }
- }
- }
- 2 {
- 1: 86465475584
- 3: "\344\270\234\350\216\236\350\200\201\345\223\245"
- 4: 2
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 22 {
- 1: 71
- 2: 99
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAnYN-SKS_mrowP9C5r5JNfVcQtWEwKjvoRu8YqVRRe6c"
- }
- 3: 125
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426485365508872
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 80987312640
- 3: "\346\210\221\346\230\257\346\210\22194755"
- 4: 1
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 22 {
- 1: 27
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAqAIb1Hh-WcRfJX1ZhhuHY2Fdg6NyNkNE01NH74sOVes"
- }
- }
- }
- }
- }
- 2 {
- 1: 80987312640
- 3: "\346\210\221\346\230\257\346\210\22194755"
- 4: 1
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 22 {
- 1: 27
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAqAIb1Hh-WcRfJX1ZhhuHY2Fdg6NyNkNE01NH74sOVes"
- }
- 3: 125
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426523378436868
- 3: 6776400016475949838
- 4: 1577759749584
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 86465475584
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 126
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13470
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426519100410638
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 92327587726
- 3: "\347\201\277\347\203\202\345\244\251\347\251\272623"
- 4: 1
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 22 {
- 1: 2
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAUVMvNW5iVwwqZ8YODI3NOOpbut1ZBAvlr0H5JDW-wL0"
- }
- }
- }
- }
- }
- 2 {
- 1: 92327587726
- 3: "\347\201\277\347\203\202\345\244\251\347\251\272623"
- 4: 1
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 22 {
- 1: 2
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAUVMvNW5iVwwqZ8YODI3NOOpbut1ZBAvlr0H5JDW-wL0"
- }
- 3: 126
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426548837944075
- 3: 6776400016475949838
- 4: 1577759755552
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 86465475584
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 127
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13514
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426548749961998
- 3: 6776400016475949838
- 4: 1577759756331
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 86465475584
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 128
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13514
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426546283416331
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 1085929437540568
- 3: "\347\224\250\346\210\2673587446933375"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3795/3047680722~120x256.image"
- }
- 22 {
- 1: 1
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAoqIacaywSKFWgVplQSoMGBTbKpM3Voh9IMhifWlhyQuyadZDIpCoTq13OyDA7XiD"
- }
- }
- }
- }
- }
- 2 {
- 1: 1085929437540568
- 3: "\347\224\250\346\210\2673587446933375"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3795/3047680722~120x256.image"
- }
- 22 {
- 1: 1
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAoqIacaywSKFWgVplQSoMGBTbKpM3Voh9IMhifWlhyQuyadZDIpCoTq13OyDA7XiD"
- }
- 3: 127
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426549433862919
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 54611899182
- 3: "loo162040673"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/1bf3001c983c591c6637"
- 2: "1bf3001c983c591c6637"
- }
- 22 {
- 1: 73
- 2: 14
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAfgyBwFnCSDd4jdIB5x6-dI81P1IvOpF-9ePD0ahgU_Q"
- }
- }
- }
- }
- }
- 2 {
- 1: 54611899182
- 3: "loo162040673"
- 4: 1
- 9 {
- 1: "http://p1.pstatp.com/thumb/1bf3001c983c591c6637"
- 2: "1bf3001c983c591c6637"
- }
- 22 {
- 1: 73
- 2: 14
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAfgyBwFnCSDd4jdIB5x6-dI81P1IvOpF-9ePD0ahgU_Q"
- }
- 3: 128
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426509080021772
- 3: 6776400016475949838
- 4: 1577759758476
- 6: 1
- }
- 2 {
- 1: 52555037068
- 3: "\347\276\216\345\245\275\347\232\204\346\227\266\345\205\211\351\200\211\344\270\255\346\210\221"
- 4: 2
- 9 {
- 1: "http://p1.pstatp.com/thumb/2c620009d1139825c703"
- 2: "2c620009d1139825c703"
- }
- 22 {
- 1: 21
- 2: 15
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA3LUe0G8_pnP-p3s_ajPV9z-DjFhGsZi6PycA3qQdKGw"
- }
- 3: "\344\270\273\346\222\255\345\225\245\346\227\266\345\200\231\351\203\275\346\211\276\344\270\215\345\210\260\345\245\263\346\234\213\345\217\213\347\232\204"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426589824502541
- 3: 6776400016475949838
- 4: 1577759765169
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 86465475584
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 129
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13622
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426587752975108
- 3: 6776400016475949838
- 4: 1577759767229
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 86465475584
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff7b0000a859f2e00250~120x256.image"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 128
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13622
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426605821823755
- 3: 6776400016475949838
- 4: 1577759769763
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 128
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13622
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426613098711812
- 3: 6776400016475949838
- 4: 1577759770879
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 128
- 4: "1.2\344\270\207\344\272\272\346\260\224"
- 6: 12981
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426564218342155
- 3: 6776400016475949838
- 4: 1577759771839
- 6: 1
- }
- 2 {
- 1: 52555037068
- 3: "\347\276\216\345\245\275\347\232\204\346\227\266\345\205\211\351\200\211\344\270\255\346\210\221"
- 4: 2
- 9 {
- 1: "http://p1.pstatp.com/thumb/2c620009d1139825c703"
- 2: "2c620009d1139825c703"
- }
- 22 {
- 1: 21
- 2: 15
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA3LUe0G8_pnP-p3s_ajPV9z-DjFhGsZi6PycA3qQdKGw"
- }
- 3: "\344\270\215\344\274\232\347\226\274\345\245\263\347\224\237"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426636457069315
- 3: 6776400016475949838
- 4: 1577759776391
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 127
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13081
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426619201607183
- 3: 6776400016475949838
- 4: 1577759777654
- 6: 1
- }
- 2 {
- 1: 58557211957
- 3: "\350\245\277\345\214\227\346\243\256\345\223\245"
- 4: 1
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/fe8f00013c8d54bfb532~120x256.image"
- }
- 22 {
- 1: 51
- 2: 31
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAACtRn9vvx0BraVl95_xcz_MqCfeiclEv7qBRUlUA9Ydk"
- }
- 3: "\347\224\267\344\272\272\346\230\257\351\223\201\346\211\223\347\232\204\360\237\230\203"
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426604710204943
- 3: 6776400016475949838
- 4: 1577759781629
- 6: 1
- 8 {
- 1: "webcast_chat_display_text"
- 2: "{0:user}{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#9E9E9E"
- 4: 400
- }
- 21 {
- 1 {
- 1: 110656496114
- 3: "\351\251\254\345\256\266\347\217\255\345\235\221\351\251\254\351\222\261"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 21 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 2: "webcast/xigua_admin_badge_v2.png"
- 3: 16
- 4: 28
- 6: 3
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 2: "webcast/noble_icon_with_back_1_new.png"
- 6: 6
- 8 {
- 1: "\351\252\221\345\243\253"
- 2: "#FFFFFF"
- 3: 11
- }
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 6: 7
- 8 {
- 1: "\351\251\254\351\222\261"
- 2: "#FFFFFF"
- 3: 9
- }
- }
- 22 {
- 1: 27
- 2: 2
- }
- 23 {
- 6: 11
- 19 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\351\251\254\351\222\261"
- 2: 9
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\351\251\254\351\222\261"
- }
- }
- }
- 32 {
- 2: 1
- }
- 38: "0"
- 46: "MS4wLjABAAAAquL0THmD0E7Z1b6JZW6GfxxdMS-rHxpLRWBdyl_P_3I"
- 50 {
- 1 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_1.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_1.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_1.png~tplv-obj.image"
- 2: "webcast/noble_background_v1_1.png"
- 3: 1008
- 4: 1125
- }
- 2: 1
- 3 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_1.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_1.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_1.png~tplv-obj.image"
- 2: "webcast/noble_icon_1.png"
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000"
- }
- 4: "\351\252\221\345\243\253"
- 6 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_1.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_1.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_1.png~tplv-obj.image"
- 2: "webcast/noble_big_icon_1.png"
- 3: 366
- 4: 615
- }
- 7 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 2: "webcast/noble_icon_with_back_1_new.png"
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_1.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_1.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_1.png~tplv-obj.image"
- 2: "webcast/noble_boarder_v1_1.png"
- 3: 64
- 4: 64
- }
- 9: "#064298"
- 9: "#1d63c6"
- 9: "#82beff"
- }
- }
- 2: 1
- }
- }
- 4 {
- 1: 1
- 11: "@\347\213\227\347\213\227\346\203\212\350\256\266 \350\277\231\344\270\252\346\270\270\346\210\217\346\256\265\344\275\215\346\262\241\345\225\245\347\224\250\357\274\214\350\277\230\346\230\257\345\216\273\351\222\242\346\236\252\347\273\203\346\212\200\346\234\257"
- }
- }
- }
- 2 {
- 1: 110656496114
- 3: "\351\251\254\345\256\266\347\217\255\345\235\221\351\251\254\351\222\261"
- 4: 1
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 21 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_admin_badge_v2.png~tplv-obj.image"
- 2: "webcast/xigua_admin_badge_v2.png"
- 3: 16
- 4: 28
- 6: 3
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 2: "webcast/noble_icon_with_back_1_new.png"
- 6: 6
- 8 {
- 1: "\351\252\221\345\243\253"
- 2: "#FFFFFF"
- 3: 11
- }
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 6: 7
- 8 {
- 1: "\351\251\254\351\222\261"
- 2: "#FFFFFF"
- 3: 9
- }
- }
- 22 {
- 1: 27
- 2: 2
- }
- 23 {
- 6: 11
- 19 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_11.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_11.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 1: "\351\251\254\351\222\261"
- 2: 9
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_9.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_9.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\351\251\254\351\222\261"
- }
- }
- }
- 32 {
- 2: 1
- }
- 38: "0"
- 46: "MS4wLjABAAAAquL0THmD0E7Z1b6JZW6GfxxdMS-rHxpLRWBdyl_P_3I"
- 50 {
- 1 {
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_1.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_1.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_background_v1_1.png~tplv-obj.image"
- 2: "webcast/noble_background_v1_1.png"
- 3: 1008
- 4: 1125
- }
- 2: 1
- 3 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_1.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_1.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_1.png~tplv-obj.image"
- 2: "webcast/noble_icon_1.png"
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000"
- }
- 4: "\351\252\221\345\243\253"
- 6 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_1.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_1.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_big_icon_1.png~tplv-obj.image"
- 2: "webcast/noble_big_icon_1.png"
- 3: 366
- 4: 615
- }
- 7 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_icon_with_back_1_new.png~tplv-obj.image"
- 2: "webcast/noble_icon_with_back_1_new.png"
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_1.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_1.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder_v1_1.png~tplv-obj.image"
- 2: "webcast/noble_boarder_v1_1.png"
- 3: 64
- 4: 64
- }
- 9: "#064298"
- 9: "#1d63c6"
- 9: "#82beff"
- }
- }
- 3: "@\347\213\227\347\213\227\346\203\212\350\256\266 \350\277\231\344\270\252\346\270\270\346\210\217\346\256\265\344\275\215\346\262\241\345\225\245\347\224\250\357\274\214\350\277\230\346\230\257\345\216\273\351\222\242\346\236\252\347\273\203\346\212\200\346\234\257"
- 6: "#69A0FF"
- 7 {
- 5: "#523749"
- }
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426667498998539
- 3: 6776400016475949838
- 4: 1577759784199
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 126
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13079
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426670959102731
- 3: 6776400016475949838
- 4: 1577759786017
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 125
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13079
- }
-}
-1 {
- 1: "WebcastSunDailyRankMessage"
- 2 {
- 1 {
- 1: "SunDailyRankMessage"
- 2: 6776426702647167748
- 3: 6776400016475949838
- 4: 1577759791126
- 6: 1
- }
- 2: "\345\260\217\346\227\266\346\246\234\347\254\254555\345\220\215"
- 5: 1
- 8: "2"
- 10: 555
- }
-}
-1 {
- 1: "SunDailyRankMessage"
- 2 {
- 1 {
- 1: "SunDailyRankMessage"
- 2: 6776426702647167748
- 3: 6776400016475949838
- 4: 1577759791126
- 6: 1
- }
- 2: "\345\260\217\346\227\266\346\246\234\347\254\254555\345\220\215"
- 5: 1
- 8: "2"
- }
-}
-1 {
- 1: "WebcastSunDailyRankMessage"
- 2 {
- 1 {
- 1: "SunDailyRankMessage"
- 2: 6776426709387496200
- 3: 6776400016475949838
- 4: 1577759792463
- 6: 1
- }
- 2: "\345\260\217\346\227\266\346\246\234\347\254\254556\345\220\215"
- 5: 1
- 8: "2"
- 10: 556
- }
-}
-1 {
- 1: "SunDailyRankMessage"
- 2 {
- 1 {
- 1: "SunDailyRankMessage"
- 2: 6776426709387496200
- 3: 6776400016475949838
- 4: 1577759792463
- 6: 1
- }
- 2: "\345\260\217\346\227\266\346\246\234\347\254\254556\345\220\215"
- 5: 1
- 8: "2"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426704966699780
- 3: 6776400016475949838
- 4: 1577759792488
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 125
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13079
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426644279252491
- 3: 6776400016475949838
- 4: 1577759796102
- 6: 1
- }
- 2 {
- 1: 111624856062
- 3: "\346\260\264\346\226\251"
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 21 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- 22 {
- 1: 112
- 2: 6
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&type=popup&gravity=bottom&height=400&radius=8&__live_platform__=webcast"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA-xVTXGFhf4Nf7Wr2TQvHMeiegNoWQd2TDNp2HsEKO8Y"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000&noble_intercept=1&__live_platform__=webcast"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p1-webcast-ttcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: "\344\270\273\346\222\255\350\202\257\345\256\232\346\230\257\345\215\225\350\272\253"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426719130864387
- 3: 6776400016475949838
- 4: 1577759797003
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 126
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13056
- }
-}
-1 {
- 1: "WebcastSunDailyRankMessage"
- 2 {
- 1 {
- 1: "SunDailyRankMessage"
- 2: 6776426736403172107
- 3: 6776400016475949838
- 4: 1577759798760
- 6: 1
- }
- 2: "\345\260\217\346\227\266\346\246\234\347\254\254557\345\220\215"
- 5: 1
- 8: "2"
- 10: 557
- }
-}
-1 {
- 1: "SunDailyRankMessage"
- 2 {
- 1 {
- 1: "SunDailyRankMessage"
- 2: 6776426736403172107
- 3: 6776400016475949838
- 4: 1577759798760
- 6: 1
- }
- 2: "\345\260\217\346\227\266\346\246\234\347\254\254557\345\220\215"
- 5: 1
- 8: "2"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426718841883396
- 3: 6776400016475949838
- 4: 1577759799708
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 126
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13056
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426736293874443
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 50480266887
- 3: "\345\246\202\345\220\214\344\272\221\347\203\237"
- 4: 1
- 9 {
- 1: "http://q.qlogo.cn/qqapp/100290348/AC77125A6FC3BEDDF71B90FAF7B16B14/100"
- }
- 22 {
- 1: 173
- 2: 13
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAUWBm2ivd3wzGpK5BELUUjOwMRy5qyfw8-_aPQsaiqQY"
- }
- }
- }
- }
- }
- 2 {
- 1: 50480266887
- 3: "\345\246\202\345\220\214\344\272\221\347\203\237"
- 4: 1
- 9 {
- 1: "http://q.qlogo.cn/qqapp/100290348/AC77125A6FC3BEDDF71B90FAF7B16B14/100"
- }
- 22 {
- 1: 173
- 2: 13
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAUWBm2ivd3wzGpK5BELUUjOwMRy5qyfw8-_aPQsaiqQY"
- }
- 3: 126
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-1 {
- 1: "WebcastChatMessage"
- 2 {
- 1 {
- 1: "WebcastChatMessage"
- 2: 6776426739837982208
- 3: 6776400016475949838
- 4: 1577759801869
- 6: 1
- }
- 2 {
- 1: 103899090823
- 3: "\347\213\227\347\213\227\346\203\212\350\256\266"
- 4: 1
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/2e56f000975dc2072a563~120x256.image"
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&__live_platform__=webcast&type=popup&gravity=bottom&height=400&radius=8"
- }
- 21 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 6: 7
- 8 {
- 1: "\347\232\256\347\232\256\346\242\246"
- 2: "#FFFFFF"
- 3: 6
- }
- }
- 22 {
- 1: 87
- 2: 9
- }
- 23 {
- 6: 6
- 19 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_paygrade_level_6.png~tplv-obj.png"
- 2: "webcast/xigua_paygrade_level_6.png"
- 3: 16
- 4: 30
- 6: 1
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2FhonorLevel%2Findex.html&__live_platform__=webcast&type=popup&gravity=bottom&height=400&radius=8"
- }
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- 2 {
- 1: 1
- 2 {
- 1: "\347\232\256\347\232\256\346\242\246"
- 2: 6
- 3: 1
- 4 {
- 1 {
- 1: 2
- 2 {
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p1-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/xigua_fansclub_medal_6.png~tplv-obj.image"
- 2: "webcast/xigua_fansclub_medal_6.png"
- 3: 48
- 4: 150
- }
- }
- 2: "\347\232\256\347\232\256\346\242\246"
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAA_wv1EKr_JZMCFaGy6SvMEd0c5azVkdxycTyr9w0ZUfY"
- 50 {
- 1 {
- 3: 1008
- 4: 1125
- }
- 3 {
- 3: 105
- 4: 111
- 7: "sslocal://webcast_webview?url=https%3A%2F%2Fwebcast.ixigua.com%2Ffalcon%2Fwebcast_xigua%2Fpage%2Fnoble%2Fnoble_privilege_intro%2Findex.html%3Fforbid_right_back%3D1&noble_intercept=1&__live_platform__=webcast&type=fullscreen&hide_nav_bar=1&status_bar_color=white&status_bar_bg_color=%2300000000"
- }
- 4: "\346\231\256\351\200\232\347\224\250\346\210\267"
- 6 {
- 3: 366
- 4: 615
- }
- 7 {
- 3: 60
- 4: 108
- }
- 8 {
- 1: "http://p3-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p6-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 1: "http://p9-webcast-xgcdn.byteimg.com/img/webcast/noble_boarder.png~tplv-obj.image"
- 2: "webcast/noble_boarder.png"
- 3: 64
- 4: 64
- }
- }
- }
- 3: "\346\210\221\347\216\260\345\234\250\351\222\242\346\236\252\344\272\206"
- }
-}
-1 {
- 1: "WebcastRoomUserSeqMessage"
- 2 {
- 1 {
- 1: "WebcastRoomUserSeqMessage"
- 2: 6776426741420018440
- 3: 6776400016475949838
- 4: 1577759803417
- }
- 2 {
- 1: 297
- 2 {
- 1: 5418509573
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/daee0012a4a8b6847dcf~120x256.image"
- }
- 23: ""
- }
- 3: 1
- }
- 2 {
- 1: 5
- 2 {
- 1: 110656496114
- 9 {
- 1: "http://sf6-ttcdn-tos.pstatp.com/img/mosaic-legacy/ff60000056e3ee9f9938~120x256.image"
- }
- 23: ""
- }
- 3: 2
- }
- 2 {
- 2 {
- 1: 98594099805
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/3793/3114521287~120x256.image"
- }
- 23: ""
- }
- 3: 3
- }
- 2 {
- 2 {
- 1: 98430125573
- 9 {
- 1: "http://sf3-ttcdn-tos.pstatp.com/img/mosaic-legacy/241f200003ba78f6215b2~120x256.image"
- }
- 23: ""
- }
- 3: 4
- }
- 2 {
- 2 {
- 1: 980364482055752
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3792/5112637127~120x256.image"
- }
- 23: ""
- }
- 3: 5
- }
- 2 {
- 2 {
- 1: 98013353322
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6ee90002aefd03a6b7db"
- 2: "6ee90002aefd03a6b7db"
- }
- 23: ""
- }
- 3: 6
- }
- 2 {
- 2 {
- 1: 96647375407
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/db11000ee271ef53e1fe"
- 2: "db11000ee271ef53e1fe"
- }
- 23: ""
- }
- 3: 7
- }
- 2 {
- 2 {
- 1: 96390415074
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3797/2889309425~120x256.image"
- }
- 23: ""
- }
- 3: 8
- }
- 2 {
- 2 {
- 1: 94018408479
- 9 {
- 1: "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eq6kUl78M0nQZqSBrmZ3luecl80IGWiaPlmqK85xrOibfyoG2wPTIWzvBbecKGp95ntdQPUxMTsLbyA/132"
- }
- 23: ""
- }
- 3: 9
- }
- 2 {
- 2 {
- 1: 93031012779
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/6588002542a2877ce28a"
- 2: "6588002542a2877ce28a"
- }
- 23: ""
- }
- 3: 10
- }
- 2 {
- 2 {
- 1: 92545430507
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/65840016b6fdc5fe21f6"
- 2: "65840016b6fdc5fe21f6"
- }
- 23: ""
- }
- 3: 11
- }
- 2 {
- 2 {
- 1: 92327587726
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/7564000c31a4ad7dc2fb"
- 2: "7564000c31a4ad7dc2fb"
- }
- 23: ""
- }
- 3: 12
- }
- 2 {
- 2 {
- 1: 91622801370
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3791/5035712059~120x256.image"
- }
- 23: ""
- }
- 3: 13
- }
- 2 {
- 2 {
- 1: 84487046961
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/d27e000acc62c581533d"
- 2: "d27e000acc62c581533d"
- }
- 23: ""
- }
- 3: 14
- }
- 2 {
- 2 {
- 1: 81300306546
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/tos-cn-i-0022/a23108ae582d42948017162bb1db09ed~120x256.image"
- }
- 23: ""
- }
- 3: 15
- }
- 2 {
- 2 {
- 1: 81255421493
- 9 {
- 1: "http://p9-xg.bytecdn.cn/thumb/8e1f0013c81e4146240f"
- 2: "8e1f0013c81e4146240f"
- }
- 23: ""
- }
- 3: 16
- }
- 2 {
- 2 {
- 1: 80987312640
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/5d500036b693cdfa8d0b"
- 2: "5d500036b693cdfa8d0b"
- }
- 23: ""
- }
- 3: 17
- }
- 2 {
- 2 {
- 1: 76699315777
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/5875000bcd5dab011169"
- 2: "5875000bcd5dab011169"
- }
- 23: ""
- }
- 3: 18
- }
- 2 {
- 2 {
- 1: 71898898053
- 9 {
- 1: "http://p1-xg.bytecdn.cn/thumb/3e7f00186a73322f7987"
- 2: "3e7f00186a73322f7987"
- }
- 23: ""
- }
- 3: 19
- }
- 2 {
- 2 {
- 1: 6939632065
- 9 {
- 1: "http://p3-xg.bytecdn.cn/thumb/97d000d55bf8000670b"
- 2: "97d000d55bf8000670b"
- }
- 23: ""
- }
- 3: 20
- }
- 3: 126
- 4: "1.3\344\270\207\344\272\272\346\260\224"
- 6: 13150
- }
-}
-1 {
- 1: "WebcastMemberMessage"
- 2 {
- 1 {
- 1: "WebcastMemberMessage"
- 2: 6776426752563481355
- 3: 6776400016475949838
- 6: 1
- 8 {
- 1: "live_room_enter_toast"
- 2: "{0:user} \346\235\245\344\272\206{1:string}"
- 3 {
- 1: "#de000000"
- 4: 400
- }
- 4 {
- 1: 11
- 2 {
- 1: "#61000000"
- 4: 400
- }
- 21 {
- 1 {
- 1: 108330556367
- 3: "\347\224\250\346\210\2678472347906965"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3795/3044413937~120x256.image"
- }
- 22 {
- 1: 3
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAWDvVZfISpMSjkeQnj6iz8xOPHZd1TmWHx7amJ26w2uI"
- }
- }
- }
- }
- }
- 2 {
- 1: 108330556367
- 3: "\347\224\250\346\210\2678472347906965"
- 9 {
- 1: "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/3795/3044413937~120x256.image"
- }
- 22 {
- 1: 3
- }
- 23 {
- 19: ""
- }
- 24 {
- 1 {
- 4 {
- 1 {
- 1: 0
- 2: ""
- }
- }
- }
- }
- 32: ""
- 38: "0"
- 46: "MS4wLjABAAAAWDvVZfISpMSjkeQnj6iz8xOPHZd1TmWHx7amJ26w2uI"
- }
- 3: 126
- 10: 1
- 14: "1.3\344\270\207\344\272\272\346\260\224"
- }
-}
-2: "6776426752563481355_1577759807965_1_1"
-3: 1000
-4: 1577759807965
-5: "fetch_time:1577759807965|start_time:1577758030551|fetch_id:6776419296664423182|flag:0|seq:2"
diff --git a/Model/DataBase.py b/Model/DataBase.py
deleted file mode 100644
index de475fd..0000000
--- a/Model/DataBase.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-
-app = Flask(__name__)
-app.config["SQLALCHEMY_DATABASE_URL"] = "sqlite://data.db"
-app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
-app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
-db = SQLAlchemy(app)
\ No newline at end of file
diff --git a/Model/Files.py b/Model/Files.py
deleted file mode 100644
index 3b6d595..0000000
--- a/Model/Files.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from datetime import datetime
-from sqlalchemy import func
-from .DataBase import db
-
-
-class Files(db.Model):
- id = db.Column(db.Integer, primary_key=True, autoincrement=True)
- filename = db.Column(db.String(50))
- is_upload = db.Column(db.Integer(1), server_default=0, default=0)
- create_time = db.Column(db.TIMESTAMP, server_default=func.now(), default=datetime.now())
diff --git a/api.py b/api.py
index 8b6cbfe..a5dfadb 100644
--- a/api.py
+++ b/api.py
@@ -112,6 +112,7 @@ class XiGuaLiveApi:
:return:
"""
if self.roomLiver is None:
+ self.isLive = False
return False
_formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": self.roomLiver.ID}
_url = USER_INFO_API.format_map(_formatData).format_map(_formatData)
From 1590729b5135aa52d7f1581d8b5e275604aaf0b4 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 1 Jan 2020 13:31:36 +0800
Subject: [PATCH 04/70] API
---
CursesDownload.py | 70 ------------------------------
CursesMain.py | 107 ----------------------------------------------
api.py | 2 +
3 files changed, 2 insertions(+), 177 deletions(-)
delete mode 100644 CursesDownload.py
delete mode 100644 CursesMain.py
diff --git a/CursesDownload.py b/CursesDownload.py
deleted file mode 100644
index ba31106..0000000
--- a/CursesDownload.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import curses
-import Common
-
-
-widths = [
- (126, 1), (159, 0), (687, 1), (710, 0), (711, 1),
- (727, 0), (733, 1), (879, 0), (1154, 1), (1161, 0),
- (4347, 1), (4447, 2), (7467, 1), (7521, 0), (8369, 1),
- (8426, 0), (9000, 1), (9002, 2), (11021, 1), (12350, 2),
- (12351, 1), (12438, 2), (12442, 0), (19893, 2), (19967, 1),
- (55203, 2), (63743, 1), (64106, 2), (65039, 1), (65059, 0),
- (65131, 2), (65279, 1), (65376, 2), (65500, 1), (65510, 2),
- (120831, 1), (262141, 2), (1114109, 1),
-]
-
-
-def get_width(o):
- global widths
- if o == 0xe or o == 0xf:
- return 0
- for num, wid in widths:
- if o <= num:
- return wid
- return 1
-
-
-def c_print(handle, y, x, string, style=curses.A_NORMAL):
- if type(string) != str:
- string = str(string)
- for _i in string:
- _w = get_width(ord(_i))
- if(_w>1):
- handle.addch(y, x+1, " ", style)
- handle.addch(y, x, ord(_i), style)
- x += _w
-
-
-def render(screen):
- _style = curses.A_DIM
- if Common.api.isLive:
- _style = curses.A_BOLD | curses.A_BLINK | curses.A_ITALIC | curses.A_UNDERLINE
- c_print(screen, 1, 3, Common.api.roomLiver, _style)
- screen.refresh()
-
-def main(stdscr):
- global screen
- screen = stdscr.subwin(23, 79, 0, 0)
- screen.timeout(2000)
- screen.box()
- screen.hline(2, 1, curses.ACS_HLINE, 77)
- c_print(screen, 1, 2, " "*45 + " 西瓜录播助手 -- by JerryYan ", curses.A_STANDOUT)
- render(screen)
- while True:
- c = stdscr.getch()
- if c == ord("q"):
- break
- elif c == ord("f"):
- render(screen)
-
-
-stdscr = curses.initscr()
-curses.noecho()
-curses.cbreak()
-stdscr.keypad(1)
-curses.wrapper(main)
-stdscr.keypad(0)
-curses.echo()
-curses.nocbreak()
-curses.endwin()
-
diff --git a/CursesMain.py b/CursesMain.py
deleted file mode 100644
index 4a1f513..0000000
--- a/CursesMain.py
+++ /dev/null
@@ -1,107 +0,0 @@
-import curses
-
-from Struct.Chat import Chat
-from Struct.Gift import Gift
-from Struct.MemberMsg import MemberMsg
-from Struct.User import User
-from api import XiGuaLiveApi
-
-
-class Api(XiGuaLiveApi):
- danmakuList = []
- def onAd(self, i):
- pass
- def onChat(self, chat: Chat):
- self.danmakuList.append(str(chat))
- def onLike(self, user: User):
- pass
- def onEnter(self, msg: MemberMsg):
- pass
- def onJoin(self, user: User):
- self.danmakuList.append(str(user))
- def onSubscribe(self, user: User):
- self.danmakuList.append(str(user))
- def onPresent(self, gift: Gift):
- pass
- def onPresentEnd(self, gift: Gift):
- self.danmakuList.append(str(gift))
-
-
-api = Api()
-widths = [
- (126, 1), (159, 0), (687, 1), (710, 0), (711, 1),
- (727, 0), (733, 1), (879, 0), (1154, 1), (1161, 0),
- (4347, 1), (4447, 2), (7467, 1), (7521, 0), (8369, 1),
- (8426, 0), (9000, 1), (9002, 2), (11021, 1), (12350, 2),
- (12351, 1), (12438, 2), (12442, 0), (19893, 2), (19967, 1),
- (55203, 2), (63743, 1), (64106, 2), (65039, 1), (65059, 0),
- (65131, 2), (65279, 1), (65376, 2), (65500, 1), (65510, 2),
- (120831, 1), (262141, 2), (1114109, 1),
-]
-
-
-def get_width(o):
- global widths
- if o == 0xe or o == 0xf:
- return 0
- for num, wid in widths:
- if o <= num:
- return wid
- return 1
-
-
-def c_print(handle, y, x, string, style=curses.A_NORMAL):
- if type(string) != str:
- string = str(string)
- for _i in string:
- _w = get_width(ord(_i))
- if(_w>1):
- handle.addch(y, x+1, " ", style)
- if _i != " " or style!=curses.A_NORMAL:
- handle.addch(y, x, ord(_i), style)
- else:
- handle.addch(y, x, 0, style)
- x += _w
-
-
-
-
-def render(screen):
- screen.erase()
- screen.box()
- screen.hline(2, 1, curses.ACS_HLINE, 77)
- c_print(screen, 1, 2, " "*45 + " 西瓜弹幕助手 -- by JerryYan ", curses.A_STANDOUT)
- _style = curses.A_DIM
- if api.isLive:
- _style = curses.A_BOLD | curses.A_BLINK | curses.A_ITALIC
- c_print(screen, 1, 3, api.roomLiver, _style)
- _y = 3
- api.getDanmaku()
- for i in api.danmakuList[-10:]:
- c_print(screen, _y, 2, i)
- _y += 1
- screen.move(0,0)
- screen.refresh()
-
-def main(stdscr):
- global screen
- screen = stdscr.subwin(23, 79, 0, 0)
- screen.timeout(2000)
- render(screen)
- while True:
- c = screen.getch()
- if c == ord("q"):
- break
- render(screen)
-
-
-stdscr = curses.initscr()
-curses.noecho()
-curses.cbreak()
-stdscr.keypad(1)
-curses.wrapper(main)
-stdscr.keypad(0)
-curses.echo()
-curses.nocbreak()
-curses.endwin()
-
diff --git a/api.py b/api.py
index a5dfadb..78328c7 100644
--- a/api.py
+++ b/api.py
@@ -22,6 +22,7 @@ SEARCH_USER_API = (
"https://security.snssdk.com/video/app/search/live/?format=json&search_sug=0&forum=0&m_tab=live&is_native_req=0"
"&offset=0&from=live&en_qc=1&pd=xigua_live&ssmix=a{COMMON}&keyword={keyword}")
USER_INFO_API = "https://is.snssdk.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
+ROOM_INFO_API = "https://webcast3.ixigua.com/webcast/room/enter/?room_id={roomId}&pack_level=4{COMMON}"
COMMON_HEADERS = {
"sdk-version": '1',
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9) VideoArticle/8.1.6 cronet/TTNetVersion:b97574c0 2019-09-24",
@@ -29,6 +30,7 @@ COMMON_HEADERS = {
}
+
class XiGuaLiveApi:
isValidRoom: bool
isLive: bool
From ea7620bceda8b8bacc1885b3bf4896d9def8c37f Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 1 Jan 2020 13:33:35 +0800
Subject: [PATCH 05/70] =?UTF-8?q?API=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 201 ++++++++++++++++++++++++++++++++-------------------------
1 file changed, 114 insertions(+), 87 deletions(-)
diff --git a/api.py b/api.py
index 78328c7..fa6ba86 100644
--- a/api.py
+++ b/api.py
@@ -30,12 +30,7 @@ COMMON_HEADERS = {
}
-
class XiGuaLiveApi:
- isValidRoom: bool
- isLive: bool
- roomLiver: User or None
- roomID: int
def __init__(self, name=None):
"""
@@ -45,22 +40,27 @@ class XiGuaLiveApi:
"""
if name is None:
name = "永恒de草薙"
+ self.broadcaster = None
+ self.isValidUser = False
if type(name) == User:
- self.roomLiver = name
+ self.broadcaster = name
self.name = name.name
+ elif str(name).isdigit():
+ self.broadcaster = User()
+ self.isValidUser = True
+ self.broadcaster.ID = int(name)
else:
self.name = str(name)
self.isLive = False
- self.isValidRoom = False
self._rawRoomInfo = {}
self.roomID = 0
- self.roomLiver = None
self.roomPopularity = 0
self._cursor = "0"
+ self.lottery = None
self.s = requests.session()
self.s.headers.update(COMMON_HEADERS)
- self._updRoomAt = datetime.now()
- self.updRoomInfo(True)
+ self._updRoomAt = datetime.fromtimestamp(0)
+ self.updRoomInfo()
def _updateRoomPopularity(self, _data):
"""
@@ -71,10 +71,52 @@ class XiGuaLiveApi:
if "extra" in _data:
if "member_count" in _data["extra"] and _data["extra"]["member_count"] > 0:
self.roomPopularity = _data["extra"]["member_count"]
- elif "data" in _data:
+ if "data" in _data:
if "popularity" in _data["data"]:
self.roomPopularity = _data["data"]["popularity"]
+ def getJson(self, url, **kwargs):
+ try:
+ p = self.s.get(url, **kwargs)
+ except Exception as e:
+ print("网络请求失败")
+ if DEBUG:
+ print("GET")
+ print("URL", url)
+ print("ERR ", e.__str__())
+ return None
+ try:
+ return p.json()
+ except Exception as e:
+ print("解析请求失败")
+ if DEBUG:
+ print("GET JSON")
+ print("URL", url)
+ print("CNT", p.text)
+ print("ERR ", e.__str__())
+ return None
+
+ def postJson(self, url, data, **kwargs):
+ try:
+ p = self.s.post(url, data, **kwargs)
+ except Exception as e:
+ print("网络请求失败")
+ if DEBUG:
+ print("POST")
+ print("URL", url)
+ print("ERR ", e.__str__())
+ return None
+ try:
+ return p.json()
+ except Exception as e:
+ print("解析请求失败")
+ if DEBUG:
+ print("GET JSON")
+ print("URL", url)
+ print("CNT", p.text)
+ print("ERR ", e.__str__())
+ return None
+
@staticmethod
def apiChangedError(msg: str, *args):
"""
@@ -87,52 +129,65 @@ class XiGuaLiveApi:
if DEBUG:
print(*args)
- def _checkUsernameIsMatched(self):
+ def _checkUsernameIsMatched(self, compare=None):
"""
验证主播名字是自己想要的那个
Check name matched
:return: bool: 是否匹配
"""
- if self.name is None or self.roomLiver is None:
+ return True
+ if compare is None:
+ compare = self.broadcaster
+ if self.name is None or compare is None:
return False
- return self.name == self.roomLiver.__str__() or self.roomLiver.__str__() in self.name or self.name in self.roomLiver.__str__()
+ return self.name == compare.__str__() or compare.__str__() in self.name or self.name in compare.__str__()
def _forceSearchUser(self):
"""
搜索主播名
:return:
"""
- _results = self.searchUser(self.name)
- if len(_results) > 0:
- self.isValidRoom = True
- self.roomLiver = _results[0]
- return self._updateUserOnly()
+ _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "keyword": self.name}
+ _url = SEARCH_USER_API.format_map(_formatData).format_map(_formatData)
+ d = self.getJson(_url)
+ if d is None:
+ print("搜索接口请求失败")
+ return False
+ self.broadcaster = None
+ if "data" in d and d["data"] is not None:
+ for i in d["data"]:
+ if self.broadcaster is not None:
+ break
+ if i["block_type"] != 0:
+ continue
+ if "cells" not in i or len(i["cells"]) == 0:
+ break
+ for _j in i["cells"]:
+ _user = User(_j)
+ if self._checkUsernameIsMatched(_user):
+ self.isValidUser = True
+ self.broadcaster = _user
+ break
+ return self._updateUserInfo()
- def _updateUserOnly(self):
+ def _updateUserInfo(self):
"""
获取用户信息
:return:
"""
- if self.roomLiver is None:
- self.isLive = False
+ if self.broadcaster is None:
return False
- _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": self.roomLiver.ID}
+ _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": self.broadcaster.ID}
_url = USER_INFO_API.format_map(_formatData).format_map(_formatData)
- try:
- p = self.s.get(_url)
- except Exception as e:
- self.apiChangedError("更新用户信息接口请求失败", e.__str__())
+ d = self.getJson(_url)
+ if d is None:
+ print("获取用户信息失败")
return False
- try:
- d = p.json()
- except Exception as e:
- self.apiChangedError("更新房间接口错误", e.__str__())
- return False
- self.isValidRoom = d["status"] == 0
+ self.isValidUser = d["status"] == 0
if "user_info" not in d and d["user_info"] is None:
self.apiChangedError("Api发生改变,请及时联系我", d)
return False
- self.roomLiver = User(d)
+ self.broadcaster = User(d)
if not self._checkUsernameIsMatched():
self.isLive = False
return False
@@ -142,62 +197,34 @@ class XiGuaLiveApi:
self.roomID = d["user_info"]['live_info']['room_id']
return True
+ def _getRoomInfo(self, force=False):
+ if self.roomID == 0:
+ return False
+ if not force or (self._updRoomAt + timedelta(minutes=2) > datetime.now()):
+ return self.isLive
+ _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
+ _url = ROOM_INFO_API.format_map(_formatData).format_map(_formatData)
+ d = self.getJson(_url)
+ if d is None:
+ print("获取房间信息接口请求失败")
+ return False
+ if d["status_code"] != 0:
+ print("接口提示:【{}】".format(d["data"]["message"]))
+ return False
+ self._rawRoomInfo = d["data"]
+ self.isLive = d["data"]["status"] == 2
+ self._updRoomAt = datetime.now()
+ self._updateRoomPopularity(d)
+ return self.isLive
+
def updRoomInfo(self, force=False):
"""
更新房间信息
:return:
"""
- if not force and self._updRoomAt > (datetime.now() - timedelta(minutes=3)):
- return self.isLive
- self._updRoomAt = datetime.now()
- if self.isValidRoom:
- return self._updateUserOnly()
- else:
+ if not self.isValidUser:
return self._forceSearchUser()
-
- @staticmethod
- def getUserInfoByUserId(userId):
- """
- 通过UserId查找用户的房间号
- :param userId: 用户ID
- :return: XiGuaLiveApi
- """
- _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": userId}
- _url = USER_INFO_API.format_map(_formatData).format_map(_formatData)
- try:
- p = requests.get(_url, headers=COMMON_HEADERS)
- except Exception as e:
- XiGuaLiveApi.apiChangedError("更新用户信息接口请求失败", e.__str__())
- return None
- try:
- d = p.json()
- except Exception as e:
- XiGuaLiveApi.apiChangedError("更新房间接口错误", e.__str__())
- return None
- return XiGuaLiveApi(User(d))
-
- @staticmethod
- def searchUser(keyword):
- """
- 通过关键词搜索主播
- :param keyword: 关键词
- :return: array: 搜索结果
- """
- ret = []
- _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "keyword": keyword}
- _url = SEARCH_USER_API.format_map(_formatData).format_map(_formatData)
- try:
- p = requests.get(_url)
- d = p.json()
- except json.decoder.JSONDecodeError as e:
- XiGuaLiveApi.apiChangedError("搜索接口错误", e.__str__())
- return ret
- if "data" in d and d["data"] is not None:
- for i in d["data"]:
- if i["block_type"] != 0:
- continue
- if "cells" not in i or len(i["cells"]) == 0:
- break
- for _j in i["cells"]:
- ret.append(User(_j))
- return ret
+ elif not self.isLive:
+ return self._updateUserInfo()
+ else:
+ return self._getRoomInfo(force)
From 7200f28ccaaede177ef16b5b76ebf9070cd60529 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 1 Jan 2020 13:38:26 +0800
Subject: [PATCH 06/70] =?UTF-8?q?API=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/Common.py b/Common.py
index 99e91a4..286c5a7 100644
--- a/Common.py
+++ b/Common.py
@@ -314,19 +314,18 @@ class downloader(XiGuaLiveApi):
def updRoomInfo(self, force=False):
doClean()
- super(downloader, self).updRoomInfo(force)
-
- def _updateUserOnly(self):
- global broadcaster, isBroadcasting, updateTime
- super(downloader, self)._updateUserOnly()
- updateTime = datetime.strftime(datetime.now(), dt_format)
- broadcaster = self.roomLiver
- isBroadcasting = self.isLive
- if self.isLive:
- self.updPlayList()
- else:
- resetDelay()
- self.playlist = False
+ _result = super(downloader, self).updRoomInfo(force)
+ if _result:
+ global broadcaster, isBroadcasting, updateTime
+ updateTime = datetime.strftime(datetime.now(), dt_format)
+ broadcaster = self.broadcaster
+ isBroadcasting = self.isLive
+ if self.isLive:
+ self.updPlayList()
+ else:
+ resetDelay()
+ self.playlist = False
+ return _result
def updPlayList(self):
global streamUrl
From c4f2776239af05bee2d485710d9176da2abf50de Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Wed, 1 Jan 2020 13:40:00 +0800
Subject: [PATCH 07/70] =?UTF-8?q?=E5=91=BD=E5=90=8D=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
liveDownloader.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/liveDownloader.py b/liveDownloader.py
index d568ce2..cc6afd4 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -110,7 +110,7 @@ def awakeUpload():
def run():
Common.refreshDownloader()
- if not Common.api.isValidRoom:
+ if not Common.api.isValidUser:
Common.appendError("[{}]房间未找到".format(Common.config["l_u"]))
return
while True:
From 81fe49daecf81e01fd66d80f3210f834baff67a7 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 1 Jan 2020 13:40:46 +0800
Subject: [PATCH 08/70] =?UTF-8?q?=E5=91=BD=E5=90=8D=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
liveDownloader.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/liveDownloader.py b/liveDownloader.py
index cc6afd4..41bb1f7 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -134,7 +134,7 @@ def run():
except Exception as e:
Common.appendError(e.__str__())
Common.refreshDownloader()
- if not Common.api.roomLiver:
+ if not Common.api.broadcaster:
Common.refreshDownloader()
if Common.forceStartEncodeThread:
awakeEncode()
From c335e4585208f8c0a6033099e9ec4de1aa8f3d93 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 1 Jan 2020 13:41:55 +0800
Subject: [PATCH 09/70] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 286c5a7..93be8e9 100644
--- a/Common.py
+++ b/Common.py
@@ -317,7 +317,7 @@ class downloader(XiGuaLiveApi):
_result = super(downloader, self).updRoomInfo(force)
if _result:
global broadcaster, isBroadcasting, updateTime
- updateTime = datetime.strftime(datetime.now(), dt_format)
+ updateTime = datetime.strftime(self._updRoomAt, dt_format)
broadcaster = self.broadcaster
isBroadcasting = self.isLive
if self.isLive:
From 6d4127c90ba6386d950cac145353c1ae1eb60cbe Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 3 Jan 2020 09:19:45 +0800
Subject: [PATCH 10/70] =?UTF-8?q?=E4=B8=8B=E6=8B=A8=E6=8A=95=E7=A8=BF?=
=?UTF-8?q?=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 26 ++++++++++----------------
liveDownloader.py | 6 +-----
2 files changed, 11 insertions(+), 21 deletions(-)
diff --git a/Common.py b/Common.py
index 93be8e9..4ff9260 100644
--- a/Common.py
+++ b/Common.py
@@ -1,7 +1,6 @@
import os
import queue
from datetime import datetime, timedelta
-from glob import glob
import psutil
from api import XiGuaLiveApi
@@ -37,10 +36,10 @@ config = {
"dly": 30,
"enc": "ffmpeg -i {f} -c:v copy -c:a copy -f mp4 {t} -y"
}
-doCleanTime = datetime.now()
-loginTime = datetime.now()
+doCleanTime = datetime.fromtimestamp(0)
+loginTime = datetime.fromtimestamp(0)
_clean_flag = None
-delay = datetime.now()
+delay = datetime.fromtimestamp(0)
b = Bilibili()
network = [{
@@ -77,11 +76,11 @@ def resetDelay():
def doDelay():
- global delay, isBroadcasting, isEncode, isUpload
- if isBroadcasting or isEncode or isUpload:
+ global delay, isBroadcasting
+ if isBroadcasting:
resetDelay()
return False
- return datetime.now() > delay
+ return (datetime.now() - delay).seconds < 120
def updateNetwork():
@@ -299,7 +298,7 @@ def appendError(obj):
def loginBilibili(force=False):
if config["dlO"] is False or forceNotUpload is False:
global loginTime
- if not force and getTimeDelta(datetime.now(), loginTime) < 86400 * 5:
+ if not force and getTimeDelta(datetime.now(), loginTime) < 86400 * 10:
return False
res = b.login(config["b_u"], config["b_p"])
loginTime = datetime.now()
@@ -364,14 +363,14 @@ def uploadVideo(name):
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)
b.clear()
+ global delay
+ delay = datetime.fromtimestamp(0)
else:
- appendUploadStatus("设置了不上传,所以[{}]的录播不会上传了".format(date))
- isUpload = False
+ appendUploadStatus("设置了不上传,所以[{}]的录播不会投了".format(date))
def encodeVideo(name):
@@ -384,8 +383,6 @@ def encodeVideo(name):
if os.path.getsize(name) < 8 * 1024 * 1024:
appendEncodeStatus("Encoded File >{}< is too small, will ignore it".format(name))
return False
- global isEncode
- isEncode = True
appendEncodeStatus("Encoding >{}< Start".format(name))
_new_name = os.path.splitext(name)[0] + ".mp4"
_code = os.system(config["enc"].format(f=name, t=_new_name))
@@ -394,7 +391,4 @@ def encodeVideo(name):
return False
Common.modifyLastEncodeStatus("Encode >{}< Finished".format(name))
uploadQueue.put(_new_name)
- isEncode = False
-
-loginBilibili(True)
diff --git a/liveDownloader.py b/liveDownloader.py
index 41bb1f7..885a1a3 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -1,5 +1,3 @@
-import shutil
-import sys
import time
from datetime import datetime
import threading
@@ -111,7 +109,7 @@ def awakeUpload():
def run():
Common.refreshDownloader()
if not Common.api.isValidUser:
- Common.appendError("[{}]房间未找到".format(Common.config["l_u"]))
+ Common.appendError("[{}]用户未找到".format(Common.api.name))
return
while True:
if Common.api.isLive and not Common.forceNotBroadcasting:
@@ -144,6 +142,4 @@ def run():
Common.forceStartUploadThread = False
if Common.doDelay():
Common.uploadQueue.put(True)
- Common.isEncode = True
- Common.isUpload = True
time.sleep(5)
From ce152f617e5e93624d93eb912d793739ca0e5777 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 3 Jan 2020 09:30:43 +0800
Subject: [PATCH 11/70] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/Common.py b/Common.py
index 4ff9260..d790023 100644
--- a/Common.py
+++ b/Common.py
@@ -79,8 +79,11 @@ def doDelay():
global delay, isBroadcasting
if isBroadcasting:
resetDelay()
- return False
- return (datetime.now() - delay).seconds < 120
+ else:
+ if (datetime.now() - delay).seconds < 120:
+ delay = datetime.fromtimestamp(0)
+ return True
+ return False
def updateNetwork():
@@ -167,8 +170,6 @@ if config["dlO"] is True:
forceNotEncode = True
forceStartEncodeThread = False
forceStartUploadThread = False
-isEncode = True
-isUpload = True
uploadQueue = queue.Queue()
encodeQueue = queue.Queue()
@@ -346,18 +347,15 @@ def refreshDownloader():
def uploadVideo(name):
- global isUpload
if not os.path.exists(name):
Common.appendError("Upload File Not Exist {}".format(name))
return
- isUpload = True
loginBilibili()
doClean()
if forceNotUpload is False:
b.preUpload(VideoPart(name, os.path.basename(name)))
else:
appendUploadStatus("设置了不上传,所以[{}]不会上传了".format(name))
- isUpload = False
if not Common.forceNotEncode:
os.remove(name)
@@ -367,8 +365,6 @@ def publishVideo(date):
b.finishUpload(config["t_t"].format(date), 17, config["tag"], config["des"],
source=config["src"], no_reprint=0)
b.clear()
- global delay
- delay = datetime.fromtimestamp(0)
else:
appendUploadStatus("设置了不上传,所以[{}]的录播不会投了".format(date))
@@ -391,4 +387,3 @@ def encodeVideo(name):
return False
Common.modifyLastEncodeStatus("Encode >{}< Finished".format(name))
uploadQueue.put(_new_name)
-
From 6a482af97cb1a335dc8ae0c55392c0b2aa175296 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 3 Jan 2020 09:33:42 +0800
Subject: [PATCH 12/70] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/Common.py b/Common.py
index d790023..ac77190 100644
--- a/Common.py
+++ b/Common.py
@@ -323,7 +323,6 @@ class downloader(XiGuaLiveApi):
if self.isLive:
self.updPlayList()
else:
- resetDelay()
self.playlist = False
return _result
From e29ef65d715c895d0c01c9b4f9a7a5a90ee7801a Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 3 Jan 2020 09:48:55 +0800
Subject: [PATCH 13/70] =?UTF-8?q?=E6=9B=B4=E6=96=B0README?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/README.md b/README.md
index 8b62b4b..a616194 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,3 @@
> - 把录像文件分一定大小保存(B站有限制,但是不知道是多少)
> - 少部分错误包容机制
> - 有一个简单的WEB页面,及简单的控制接口
-
-### 计划更新
-
-### 并没有呢,这段时间太忙了
From b3fb7dca43867b0f2d0906ca2277faa29c9302f9 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 4 Jan 2020 17:22:13 +0800
Subject: [PATCH 14/70] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=99=BB=E5=BD=95?=
=?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96,=E5=BB=B6=E8=BF=9F?=
=?UTF-8?q?=E6=8A=95=E7=A8=BF=E9=80=BB=E8=BE=91=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/Common.py b/Common.py
index ac77190..72bf40b 100644
--- a/Common.py
+++ b/Common.py
@@ -76,13 +76,10 @@ def resetDelay():
def doDelay():
- global delay, isBroadcasting
- if isBroadcasting:
- resetDelay()
- else:
- if (datetime.now() - delay).seconds < 120:
- delay = datetime.fromtimestamp(0)
- return True
+ global delay
+ if (datetime.now() - delay).seconds < 120:
+ delay = datetime.fromtimestamp(0)
+ return True
return False
@@ -299,7 +296,7 @@ def appendError(obj):
def loginBilibili(force=False):
if config["dlO"] is False or forceNotUpload is False:
global loginTime
- if not force and getTimeDelta(datetime.now(), loginTime) < 86400 * 10:
+ if getTimeDelta(datetime.now(), loginTime) < 86400 * 10 or not Force:
return False
res = b.login(config["b_u"], config["b_p"])
loginTime = datetime.now()
@@ -321,6 +318,7 @@ class downloader(XiGuaLiveApi):
broadcaster = self.broadcaster
isBroadcasting = self.isLive
if self.isLive:
+ resetDelay()
self.updPlayList()
else:
self.playlist = False
From ab545da6cd90bfbe69ece98340ff5d0ff6b0a228 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 4 Jan 2020 17:25:14 +0800
Subject: [PATCH 15/70] modify gitign
---
.gitignore | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 8d5e389..9cf85fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -178,4 +178,7 @@ fabric.properties
pyvenv.cfg
.venv
pip-selfcheck.json
-
+*.mp4
+*.flv
+config*
+.*
From ff90542cc01d196ab66652ce3ba5863bc74918aa Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 5 Jan 2020 14:52:22 +0800
Subject: [PATCH 16/70] =?UTF-8?q?=E5=88=A4=E6=96=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 72bf40b..4897d15 100644
--- a/Common.py
+++ b/Common.py
@@ -77,7 +77,7 @@ def resetDelay():
def doDelay():
global delay
- if (datetime.now() - delay).seconds < 120:
+ if getTimeDelta(datetime.now(), delay) < 120:
delay = datetime.fromtimestamp(0)
return True
return False
From 0643fe00766b9cb90083a07f3bda46b608022fcc Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 5 Jan 2020 14:52:46 +0800
Subject: [PATCH 17/70] =?UTF-8?q?=E5=86=99=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 4897d15..65a950f 100644
--- a/Common.py
+++ b/Common.py
@@ -296,7 +296,7 @@ def appendError(obj):
def loginBilibili(force=False):
if config["dlO"] is False or forceNotUpload is False:
global loginTime
- if getTimeDelta(datetime.now(), loginTime) < 86400 * 10 or not Force:
+ if getTimeDelta(datetime.now(), loginTime) < 86400 * 10 or not force:
return False
res = b.login(config["b_u"], config["b_p"])
loginTime = datetime.now()
From 17f0f4aa4ef6bbd8b65e4a2288a06e03dc2ca98c Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Mon, 6 Jan 2020 07:31:53 +0800
Subject: [PATCH 18/70] login
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 65a950f..ec36504 100644
--- a/Common.py
+++ b/Common.py
@@ -296,7 +296,7 @@ def appendError(obj):
def loginBilibili(force=False):
if config["dlO"] is False or forceNotUpload is False:
global loginTime
- if getTimeDelta(datetime.now(), loginTime) < 86400 * 10 or not force:
+ if getTimeDelta(datetime.now(), loginTime) < 86400 * 10 and not force:
return False
res = b.login(config["b_u"], config["b_p"])
loginTime = datetime.now()
From fbeff099d08f2906a291edee6aa57d6145f33a9d Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Mon, 6 Jan 2020 08:01:30 +0800
Subject: [PATCH 19/70] modify common
---
Common.py | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/Common.py b/Common.py
index ec36504..37a42da 100644
--- a/Common.py
+++ b/Common.py
@@ -98,9 +98,7 @@ def updateNetwork():
def getTimeDelta(a, b):
- sec = (a - b).seconds
- ms = (a - b).microseconds
- return sec + (ms / 100000.0)
+ return (a - b).total_seconds()
def _doClean(_force=False):
@@ -312,9 +310,9 @@ class downloader(XiGuaLiveApi):
def updRoomInfo(self, force=False):
doClean()
_result = super(downloader, self).updRoomInfo(force)
+ global broadcaster, isBroadcasting, updateTime
+ updateTime = datetime.strftime(self._updRoomAt, dt_format)
if _result:
- global broadcaster, isBroadcasting, updateTime
- updateTime = datetime.strftime(self._updRoomAt, dt_format)
broadcaster = self.broadcaster
isBroadcasting = self.isLive
if self.isLive:
From 6b0433138aa4c6fc6283f5d08c56cfd2cffc7c70 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Tue, 7 Jan 2020 09:13:09 +0800
Subject: [PATCH 20/70] =?UTF-8?q?=E6=8A=95=E7=A8=BF=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Common.py b/Common.py
index 37a42da..164549b 100644
--- a/Common.py
+++ b/Common.py
@@ -308,15 +308,17 @@ class downloader(XiGuaLiveApi):
playlist = None
def updRoomInfo(self, force=False):
+ global broadcaster, isBroadcasting, updateTime
+ _prev_status = self.isLive
doClean()
_result = super(downloader, self).updRoomInfo(force)
- global broadcaster, isBroadcasting, updateTime
updateTime = datetime.strftime(self._updRoomAt, dt_format)
+ if _prev_status != self.isLive:
+ resetDelay()
if _result:
broadcaster = self.broadcaster
isBroadcasting = self.isLive
if self.isLive:
- resetDelay()
self.updPlayList()
else:
self.playlist = False
From 02562b63dc6d76540622338d0951a223335018a0 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Jan 2020 09:06:11 +0800
Subject: [PATCH 21/70] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=AE=8C=E6=88=90?=
=?UTF-8?q?=E5=90=8E=E4=B8=8D=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=EF=BC=88?=
=?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=A4=96=E9=9D=A2=E5=BE=AA=E7=8E=AF=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 2 +-
liveDownloader.py | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/api.py b/api.py
index fa6ba86..9c53202 100644
--- a/api.py
+++ b/api.py
@@ -195,7 +195,7 @@ class XiGuaLiveApi:
self._rawRoomInfo = d["user_info"]['live_info']
if self.isLive:
self.roomID = d["user_info"]['live_info']['room_id']
- return True
+ return self.isLive
def _getRoomInfo(self, force=False):
if self.roomID == 0:
diff --git a/liveDownloader.py b/liveDownloader.py
index 885a1a3..ade2a87 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -13,7 +13,7 @@ def download():
Common.appendError("Download with No StreamUrl Specific")
break
path = datetime.strftime(datetime.now(), "%Y%m%d_%H%M.flv")
- p = session.get(Common.streamUrl, stream=True, timeout=10)
+ p = session.get(Common.streamUrl, stream=True, timeout=5)
if p.status_code != 200:
Common.appendDownloadStatus("Download with Response {}".format(p.status_code))
Common.api.updRoomInfo(True)
@@ -42,7 +42,6 @@ def download():
os.remove(path)
return False
Common.encodeQueue.put(path)
- Common.api.updRoomInfo()
def encode():
From fdd809fdc2cf840304f67076e797cb6494d6b6c3 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Jan 2020 09:09:44 +0800
Subject: [PATCH 22/70] =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=9B=B4=E6=96=B0?=
=?UTF-8?q?=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 164549b..d651a28 100644
--- a/Common.py
+++ b/Common.py
@@ -312,7 +312,7 @@ class downloader(XiGuaLiveApi):
_prev_status = self.isLive
doClean()
_result = super(downloader, self).updRoomInfo(force)
- updateTime = datetime.strftime(self._updRoomAt, dt_format)
+ updateTime = datetime.strftime(datetime.now(), dt_format)
if _prev_status != self.isLive:
resetDelay()
if _result:
From 0f71209fe85890d063cfc65126d3a5855a2324cc Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Jan 2020 09:20:11 +0800
Subject: [PATCH 23/70] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 26 ++++++++++++++
WebMain.py | 100 ++++++++++++-----------------------------------------
2 files changed, 48 insertions(+), 78 deletions(-)
diff --git a/Common.py b/Common.py
index d651a28..30e2158 100644
--- a/Common.py
+++ b/Common.py
@@ -384,3 +384,29 @@ def encodeVideo(name):
return False
Common.modifyLastEncodeStatus("Encode >{}< Finished".format(name))
uploadQueue.put(_new_name)
+
+
+def collectInfomation():
+ return {
+ "download": downloadStatus,
+ "encode": encodeStatus,
+ "encodeQueueSize": encodeQueue.qsize(),
+ "upload": uploadStatus,
+ "uploadQueueSize": uploadQueue.qsize(),
+ "error": errors,
+ "operation": operations,
+ "broadcast": {
+ "broadcaster": broadcaster.__str__(),
+ "isBroadcasting": isBroadcasting,
+ "streamUrl": streamUrl,
+ "updateTime": updateTime,
+ "delayTime": delay.strftime(dt_format)
+ },
+ "config": {
+ "forceNotBroadcasting": forceNotBroadcasting,
+ "forceNotDownload": forceNotDownload,
+ "forceNotUpload": forceNotUpload,
+ "forceNotEncode": forceNotEncode,
+ "downloadOnly": config['dlO'],
+ },
+ }
diff --git a/WebMain.py b/WebMain.py
index 7a502c0..4c95660 100644
--- a/WebMain.py
+++ b/WebMain.py
@@ -30,14 +30,14 @@ def writeConfig():
# TODO : 完善
Common.appendOperation("更新配置")
Common.reloadConfig()
- return jsonify({"message":"ok","code":200,"status":0,"data":request.form})
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": request.form})
@app.route("/force/not/upload", methods=["POST"])
def toggleForceNotUpload():
Common.forceNotUpload = not Common.forceNotUpload
Common.appendOperation("将强制不上传的值改为:{}".format(Common.forceNotUpload))
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
"forceNotUpload": Common.forceNotUpload,
}})
@@ -46,7 +46,7 @@ def toggleForceNotUpload():
def toggleForceNotEncode():
Common.forceNotEncode = not Common.forceNotEncode
Common.appendOperation("将强制不编码的值改为:{}".format(Common.forceNotEncode))
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
"forceNotEncode": Common.forceNotEncode,
}})
@@ -55,7 +55,7 @@ def toggleForceNotEncode():
def toggleForceNotDownload():
Common.forceNotDownload = not Common.forceNotDownload
Common.appendOperation("将强制不下载的值改为:{}".format(Common.forceNotDownload))
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
"forceNotDownload": Common.forceNotDownload,
}})
@@ -63,7 +63,7 @@ def toggleForceNotDownload():
@app.route("/force/not/broadcast", methods=["POST"])
def toggleForceNotBroadcast():
Common.forceNotBroadcasting = not Common.forceNotBroadcasting
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
"forceNotBroadcasting": Common.forceNotBroadcasting,
}})
@@ -72,7 +72,7 @@ def toggleForceNotBroadcast():
def toggleForceStartEncodeThread():
Common.forceStartEncodeThread = True
Common.appendOperation("强制运行编码线程")
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
}})
@@ -80,7 +80,7 @@ def toggleForceStartEncodeThread():
def toggleForceStartUploadThread():
Common.forceStartUploadThread = True
Common.appendOperation("强制运行上传线程")
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
}})
@@ -88,7 +88,7 @@ def toggleForceStartUploadThread():
def startForceCleanDisk():
Common.doClean(True)
Common.appendOperation("强制执行清理程序")
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
}})
@@ -97,9 +97,9 @@ def insertEncode():
if "filename" in request.form and os.path.exists(request.form["filename"]):
Common.appendOperation("添加编码文件:{}".format(request.form["filename"]))
Common.encodeQueue.put(request.form["filename"])
- return jsonify({"message":"ok","code":200,"status":0})
+ return jsonify({"message": "ok", "code": 200, "status": 0})
else:
- return jsonify({"message":"no filename specific","code":400,"status":1})
+ return jsonify({"message": "no filename specific", "code": 400, "status": 1})
@app.route("/upload/insert", methods=["POST"])
@@ -107,68 +107,33 @@ def insertUpload():
if "filename" in request.form and os.path.exists(request.form["filename"]):
Common.appendOperation("添加上传文件:{}".format(request.form["filename"]))
Common.uploadQueue.put(request.form["filename"])
- return jsonify({"message":"ok","code":200,"status":0})
+ return jsonify({"message": "ok", "code": 200, "status": 0})
else:
- return jsonify({"message":"no filename specific","code":400,"status":1})
+ return jsonify({"message": "no filename specific", "code": 400, "status": 1})
@app.route("/upload/finish", methods=["POST"])
def finishUpload():
Common.appendOperation("设置当前已完成上传")
Common.uploadQueue.put(True)
- return jsonify({"message":"ok","code":200,"status":0})
+ return jsonify({"message": "ok", "code": 200, "status": 0})
@app.route("/stats", methods=["GET"])
def getAllStats():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
- "download":Common.downloadStatus,
- "encode": Common.encodeStatus,
- "encodeQueueSize": Common.encodeQueue.qsize(),
- "upload": Common.uploadStatus,
- "uploadQueueSize": Common.uploadQueue.qsize(),
- "error": Common.errors,
- "operation": Common.operations,
- "broadcast": {
- "broadcaster": Common.broadcaster.__str__(),
- "isBroadcasting": Common.isBroadcasting,
- "streamUrl": Common.streamUrl,
- "updateTime": Common.updateTime,
- "delayTime": Common.delay
- },
- "config": {
- "forceNotBroadcasting": Common.forceNotBroadcasting,
- "forceNotDownload": Common.forceNotDownload,
- "forceNotUpload": Common.forceNotUpload,
- "forceNotEncode": Common.forceNotEncode,
- "downloadOnly": Common.config['dlO'],
- },
- }})
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": Common.collectInfomation()})
@app.route("/stats/device", methods=["GET"])
def getDeviceStatus():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
"status": Common.getCurrentStatus(),
}})
-@app.route("/stats/broadcast", methods=["GET"])
-def getBroadcastStats():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
- "broadcast": {
- "broadcaster": Common.broadcaster.__str__(),
- "isBroadcasting": Common.isBroadcasting,
- "streamUrl": Common.streamUrl,
- "updateTime": Common.updateTime,
- "delayTime": Common.delay
- }
- }})
-
-
@app.route("/stats/config", methods=["GET"])
def getConfigStats():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {
"config": {
"forceNotBroadcasting": Common.forceNotBroadcasting,
"forceNotDownload": Common.forceNotDownload,
@@ -179,33 +144,10 @@ def getConfigStats():
}})
-@app.route("/stats/download", methods=["GET"])
-def getDownloadStats():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
- "download":Common.downloadStatus,
- }})
-
-
-@app.route("/stats/encode", methods=["GET"])
-def getEncodeStats():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
- "encode": Common.encodeStatus,
- "encodeQueueSize": Common.encodeQueue.qsize(),
- }})
-
-
-@app.route("/stats/upload", methods=["GET"])
-def getUploadStats():
- return jsonify({"message":"ok","code":200,"status":0,"data":{
- "upload": Common.uploadStatus,
- "uploadQueueSize": Common.uploadQueue.qsize(),
- }})
-
-
@app.route("/account/reLogin", methods=["POST"])
def accountRelogin():
res = Common.loginBilibili(True)
- return jsonify({"message":"ok","code":200,"status":0,"data":{"result":res}})
+ return jsonify({"message": "ok", "code": 200, "status": 0, "data": {"result": res}})
@app.route("/files/", methods=["GET"])
@@ -216,7 +158,7 @@ def fileIndex():
"name": i,
"size": Common.parseSize(os.path.getsize(i))
})
- return render_template("files.html",files=a)
+ return render_template("files.html", files=a)
@app.route("/files/download/", methods=["GET"])
@@ -226,9 +168,10 @@ def fileDownload(path):
f.seek(offset)
for row in f:
yield row
+
if os.path.exists(path):
if "RANGE" in request.headers:
- offset = int(request.headers["RANGE"].replace("=","-").split("-")[1].strip())
+ offset = int(request.headers["RANGE"].replace("=", "-").split("-")[1].strip())
code = 206
else:
offset = 0
@@ -238,7 +181,8 @@ def fileDownload(path):
mimetype='application/octet-stream',
headers={
"Content-Length": os.path.getsize(path),
- "Content-Range": "bytes {}-{}/{}".format(offset,os.path.getsize(path)-1,os.path.getsize(path)),
+ "Content-Range": "bytes {}-{}/{}".format(offset, os.path.getsize(path) - 1,
+ os.path.getsize(path)),
"Accept-Ranges": "bytes",
"Range": "bytes",
})
From 74120850a408360cf7b2468a5edeb6e9fc1b3c48 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Thu, 9 Jan 2020 09:26:04 +0800
Subject: [PATCH 24/70] =?UTF-8?q?=E7=81=B5=E6=B4=BB=E4=B8=8B=E6=92=AD?=
=?UTF-8?q?=E5=88=A4=E6=96=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 8 +++-----
api.py | 2 ++
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Common.py b/Common.py
index 30e2158..4b04efe 100644
--- a/Common.py
+++ b/Common.py
@@ -153,7 +153,6 @@ dt_format = "%Y/%m/%d %H:%M:%S"
reloadConfig()
broadcaster = ""
streamUrl = ""
-isBroadcasting = False
updateTime = ""
forceNotDownload = False
@@ -308,16 +307,15 @@ class downloader(XiGuaLiveApi):
playlist = None
def updRoomInfo(self, force=False):
- global broadcaster, isBroadcasting, updateTime
+ global broadcaster, updateTime
_prev_status = self.isLive
doClean()
_result = super(downloader, self).updRoomInfo(force)
- updateTime = datetime.strftime(datetime.now(), dt_format)
+ updateTime = datetime.now().strftime(dt_format)
if _prev_status != self.isLive:
resetDelay()
if _result:
broadcaster = self.broadcaster
- isBroadcasting = self.isLive
if self.isLive:
self.updPlayList()
else:
@@ -397,7 +395,7 @@ def collectInfomation():
"operation": operations,
"broadcast": {
"broadcaster": broadcaster.__str__(),
- "isBroadcasting": isBroadcasting,
+ "isBroadcasting": api.isLive,
"streamUrl": streamUrl,
"updateTime": updateTime,
"delayTime": delay.strftime(dt_format)
diff --git a/api.py b/api.py
index 9c53202..3c36f8c 100644
--- a/api.py
+++ b/api.py
@@ -176,6 +176,7 @@ class XiGuaLiveApi:
:return:
"""
if self.broadcaster is None:
+ self.isValidUser = False
return False
_formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": self.broadcaster.ID}
_url = USER_INFO_API.format_map(_formatData).format_map(_formatData)
@@ -199,6 +200,7 @@ class XiGuaLiveApi:
def _getRoomInfo(self, force=False):
if self.roomID == 0:
+ self.isLive = False
return False
if not force or (self._updRoomAt + timedelta(minutes=2) > datetime.now()):
return self.isLive
From 68fecca012bb4ddc40e7c4cc67dd3c8a64f7756b Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 10 Jan 2020 09:18:32 +0800
Subject: [PATCH 25/70] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=BF=E9=97=B4?=
=?UTF-8?q?=E6=97=B6=E6=9B=B4=E6=96=B0=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?=
=?UTF-8?q?=EF=BC=8C=E6=B5=8B=E8=AF=95=E4=B8=8B=E6=92=AD=E8=A7=A6=E5=8F=91?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 6 ++----
api.py | 5 +++++
bilibili.py | 2 +-
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/Common.py b/Common.py
index 4b04efe..113b004 100644
--- a/Common.py
+++ b/Common.py
@@ -153,7 +153,6 @@ dt_format = "%Y/%m/%d %H:%M:%S"
reloadConfig()
broadcaster = ""
streamUrl = ""
-updateTime = ""
forceNotDownload = False
forceNotBroadcasting = False
@@ -307,11 +306,10 @@ class downloader(XiGuaLiveApi):
playlist = None
def updRoomInfo(self, force=False):
- global broadcaster, updateTime
+ global broadcaster
_prev_status = self.isLive
doClean()
_result = super(downloader, self).updRoomInfo(force)
- updateTime = datetime.now().strftime(dt_format)
if _prev_status != self.isLive:
resetDelay()
if _result:
@@ -397,7 +395,7 @@ def collectInfomation():
"broadcaster": broadcaster.__str__(),
"isBroadcasting": api.isLive,
"streamUrl": streamUrl,
- "updateTime": updateTime,
+ "updateTime": api.updateAt.strftime(dt_format),
"delayTime": delay.strftime(dt_format)
},
"config": {
diff --git a/api.py b/api.py
index 3c36f8c..0e6fbc3 100644
--- a/api.py
+++ b/api.py
@@ -188,6 +188,7 @@ class XiGuaLiveApi:
if "user_info" not in d and d["user_info"] is None:
self.apiChangedError("Api发生改变,请及时联系我", d)
return False
+ self._updRoomAt = datetime.now()
self.broadcaster = User(d)
if not self._checkUsernameIsMatched():
self.isLive = False
@@ -230,3 +231,7 @@ class XiGuaLiveApi:
return self._updateUserInfo()
else:
return self._getRoomInfo(force)
+
+ @property
+ def updateAt(self):
+ return self._updRoomAt
diff --git a/bilibili.py b/bilibili.py
index 8ed3553..4d34055 100644
--- a/bilibili.py
+++ b/bilibili.py
@@ -142,7 +142,7 @@ class Bilibili:
)
json = r.json()
- if json['code'] is not 0:
+ if json['code'] != 0:
return r.text
ls = []
From 39318a4cc9b7d8707303dfa0abba4e653784237a Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 10 Jan 2020 11:41:14 +0800
Subject: [PATCH 26/70] =?UTF-8?q?=E7=B2=BE=E7=AE=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Common.py b/Common.py
index 113b004..4cd7700 100644
--- a/Common.py
+++ b/Common.py
@@ -63,7 +63,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)
@@ -341,7 +341,7 @@ def refreshDownloader():
def uploadVideo(name):
if not os.path.exists(name):
- Common.appendError("Upload File Not Exist {}".format(name))
+ appendError("Upload File Not Exist {}".format(name))
return
loginBilibili()
doClean()
@@ -349,7 +349,7 @@ def uploadVideo(name):
b.preUpload(VideoPart(name, os.path.basename(name)))
else:
appendUploadStatus("设置了不上传,所以[{}]不会上传了".format(name))
- if not Common.forceNotEncode:
+ if not forceNotEncode:
os.remove(name)
From 11843661c070a07a468e5c8428b283a6853eb70d Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 10 Jan 2020 20:06:47 +0800
Subject: [PATCH 27/70] =?UTF-8?q?=E5=86=99=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api.py b/api.py
index 0e6fbc3..d53886e 100644
--- a/api.py
+++ b/api.py
@@ -203,7 +203,7 @@ class XiGuaLiveApi:
if self.roomID == 0:
self.isLive = False
return False
- if not force or (self._updRoomAt + timedelta(minutes=2) > datetime.now()):
+ if (self._updRoomAt + timedelta(minutes=2) > datetime.now()) or not force:
return self.isLive
_formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
_url = ROOM_INFO_API.format_map(_formatData).format_map(_formatData)
From 0f81dfd030b4601c79e4899e966526e53d71c804 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 10 Jan 2020 21:23:23 +0800
Subject: [PATCH 28/70] =?UTF-8?q?=E5=86=99=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api.py b/api.py
index d53886e..c7229d2 100644
--- a/api.py
+++ b/api.py
@@ -203,7 +203,7 @@ class XiGuaLiveApi:
if self.roomID == 0:
self.isLive = False
return False
- if (self._updRoomAt + timedelta(minutes=2) > datetime.now()) or not force:
+ if (self._updRoomAt + timedelta(minutes=2) > datetime.now()) and not force:
return self.isLive
_formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
_url = ROOM_INFO_API.format_map(_formatData).format_map(_formatData)
From 179dc18ec869cf26f94d3e8481c86ee979f348f2 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 10 Jan 2020 21:34:21 +0800
Subject: [PATCH 29/70] Dict url
---
Common.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Common.py b/Common.py
index 4cd7700..937bc72 100644
--- a/Common.py
+++ b/Common.py
@@ -324,6 +324,10 @@ class downloader(XiGuaLiveApi):
global streamUrl
if self.isLive and "stream_url" in self._rawRoomInfo:
self.playlist = self._rawRoomInfo["stream_url"]["flv_pull_url"]
+ if type(self.playlist) is dict:
+ for _ in self.playlist.values():
+ self.playlist = _
+ break
self.playlist = self.playlist.replace("_uhd", "").replace("_sd", "").replace("_ld", "")
streamUrl = self.playlist
else:
From 53fd5c3f6553f1e5287a682b79696053a6bd811e Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 10 Jan 2020 22:00:28 +0800
Subject: [PATCH 30/70] stop downloading with update room
---
api.py | 2 +-
liveDownloader.py | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/api.py b/api.py
index c7229d2..fd122a1 100644
--- a/api.py
+++ b/api.py
@@ -203,7 +203,7 @@ class XiGuaLiveApi:
if self.roomID == 0:
self.isLive = False
return False
- if (self._updRoomAt + timedelta(minutes=2) > datetime.now()) and not force:
+ if (self._updRoomAt + timedelta(minutes=3) > datetime.now()) and not force:
return self.isLive
_formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
_url = ROOM_INFO_API.format_map(_formatData).format_map(_formatData)
diff --git a/liveDownloader.py b/liveDownloader.py
index ade2a87..f0bed4b 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -36,6 +36,7 @@ def download():
Common.modifyLastDownloadStatus("Download >{}< Finished".format(path))
except Exception as e:
Common.appendError("Download >{}< With Exception {}".format(path, e.__str__()))
+ Common.api.updRoomInfo(True)
f.close()
if os.path.getsize(path) < 1024 * 1024:
Common.modifyLastDownloadStatus("Downloaded File >{}< is too small, will ignore it".format(path))
From cadfe922c0b984f09e67567c4d28f20aa529ab2c Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 12 Jan 2020 08:58:23 +0800
Subject: [PATCH 31/70] Negative delay fix
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 937bc72..1cd8f71 100644
--- a/Common.py
+++ b/Common.py
@@ -77,7 +77,7 @@ def resetDelay():
def doDelay():
global delay
- if getTimeDelta(datetime.now(), delay) < 120:
+ if -120 < getTimeDelta(datetime.now(), delay) < 120:
delay = datetime.fromtimestamp(0)
return True
return False
From 18c02b51562baa05767d7c983d22623d3697b1fd Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 12 Jan 2020 09:00:03 +0800
Subject: [PATCH 32/70] stream timeout set small
---
liveDownloader.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/liveDownloader.py b/liveDownloader.py
index f0bed4b..4b4f8f8 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -13,7 +13,7 @@ def download():
Common.appendError("Download with No StreamUrl Specific")
break
path = datetime.strftime(datetime.now(), "%Y%m%d_%H%M.flv")
- p = session.get(Common.streamUrl, stream=True, timeout=5)
+ p = session.get(Common.streamUrl, stream=True, timeout=3)
if p.status_code != 200:
Common.appendDownloadStatus("Download with Response {}".format(p.status_code))
Common.api.updRoomInfo(True)
From 9757051c8917260c58c20afb5de13f8c55de8e52 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 15 Jan 2020 13:01:57 +0800
Subject: [PATCH 33/70] =?UTF-8?q?=E9=81=BF=E5=85=8D=E8=BF=87=E4=BA=8E?=
=?UTF-8?q?=E9=A2=91=E7=B9=81=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
(cherry picked from commit 7102a45382cb52cf6b0c47663f7a6ffa891235d7)
---
api.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/api.py b/api.py
index fd122a1..192631c 100644
--- a/api.py
+++ b/api.py
@@ -168,6 +168,7 @@ class XiGuaLiveApi:
self.isValidUser = True
self.broadcaster = _user
break
+ self._updRoomAt = datetime.now()
return self._updateUserInfo()
def _updateUserInfo(self):
@@ -225,6 +226,8 @@ class XiGuaLiveApi:
更新房间信息
:return:
"""
+ if not force and (self._updRoomAt + timedelta(minutes=2) > datetime.now()):
+ return self.isLive
if not self.isValidUser:
return self._forceSearchUser()
elif not self.isLive:
From db961deace2040249ec64f43e1f5726bde606195 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 15 Jan 2020 19:08:12 +0800
Subject: [PATCH 34/70] =?UTF-8?q?URL=E9=83=BD=E6=B2=A1=E4=BA=86=E8=BF=98?=
=?UTF-8?q?=E4=B8=8D=E6=9B=B4=E6=96=B0=EF=BC=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
liveDownloader.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/liveDownloader.py b/liveDownloader.py
index 4b4f8f8..78893e2 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -11,6 +11,7 @@ def download():
while Common.api.isLive and not Common.forceNotDownload:
if not Common.streamUrl:
Common.appendError("Download with No StreamUrl Specific")
+ Common.api.updRoomInfo(True)
break
path = datetime.strftime(datetime.now(), "%Y%m%d_%H%M.flv")
p = session.get(Common.streamUrl, stream=True, timeout=3)
From 5a72550598e75bfae03850cb56ff61cf6a5156c3 Mon Sep 17 00:00:00 2001
From: Jerry-Lubo-Server <792602257@qq.com>
Date: Mon, 30 Mar 2020 18:54:39 +0800
Subject: [PATCH 35/70] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=BC=8F=E6=B4=9E,?=
=?UTF-8?q?=E9=81=BF=E5=85=8D=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E6=B3=84?=
=?UTF-8?q?=E9=9C=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebMain.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/WebMain.py b/WebMain.py
index 4c95660..9139aa7 100644
--- a/WebMain.py
+++ b/WebMain.py
@@ -168,7 +168,8 @@ def fileDownload(path):
f.seek(offset)
for row in f:
yield row
-
+ if not (".mp4" in path or ".flv" in path):
+ return Response(status=404)
if os.path.exists(path):
if "RANGE" in request.headers:
offset = int(request.headers["RANGE"].replace("=", "-").split("-")[1].strip())
From 9b69e90021c6d0e8a11ce6488edbceee64e40756 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 1 Apr 2020 11:33:14 +0800
Subject: [PATCH 36/70] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=95=E7=A8=BF?=
=?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=8F=AF=E8=87=AA=E5=AE=9A=E4=B9=89=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 4 +++-
liveDownloader.py | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/Common.py b/Common.py
index 1cd8f71..fc79d23 100644
--- a/Common.py
+++ b/Common.py
@@ -34,6 +34,8 @@ config = {
"dlO": True,
# 下播延迟投稿
"dly": 30,
+ # 短的时间的格式
+ "sdf": "%Y%m%d",
"enc": "ffmpeg -i {f} -c:v copy -c:a copy -f mp4 {t} -y"
}
doCleanTime = datetime.fromtimestamp(0)
@@ -77,7 +79,7 @@ def resetDelay():
def doDelay():
global delay
- if -120 < getTimeDelta(datetime.now(), delay) < 120:
+ if -120 < getTimeDelta(datetime.now(), delay) < 60:
delay = datetime.fromtimestamp(0)
return True
return False
diff --git a/liveDownloader.py b/liveDownloader.py
index 78893e2..9b6a91a 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -54,7 +54,7 @@ def encode():
def upload():
- date = datetime.strftime(datetime.now(), "%Y_%m_%d")
+ date = datetime.strftime(datetime.now(), Common.config["sdf"])
Common.appendUploadStatus("Upload Daemon Starting")
i = Common.uploadQueue.get()
while True:
From bd4082f6901bd4c540e7aba3afce9ec4824731ce Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 4 Apr 2020 16:42:21 +0800
Subject: [PATCH 37/70] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=B9=E6=AE=8A?=
=?UTF-8?q?=E5=88=A4=E6=96=AD=EF=BC=8C=E5=90=8E=E6=9C=9F=E9=81=BF=E5=85=8D?=
=?UTF-8?q?=E6=8A=A5=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/api.py b/api.py
index 192631c..f02429a 100644
--- a/api.py
+++ b/api.py
@@ -195,9 +195,15 @@ class XiGuaLiveApi:
self.isLive = False
return False
self.isLive = d["user_info"]["is_living"]
- self._rawRoomInfo = d["user_info"]['live_info']
+ if d["user_info"]['live_info'] is None:
+ if d["live_data"] is None:
+ self.isLive = False
+ else:
+ self._rawRoomInfo = d["user_info"]['live_info']
+ else:
+ self._rawRoomInfo = d["user_info"]['live_info']
if self.isLive:
- self.roomID = d["user_info"]['live_info']['room_id']
+ self.roomID = self._rawRoomInfo['room_id']
return self.isLive
def _getRoomInfo(self, force=False):
From 44211bcbc9a1910598b46700094edb7d989069b5 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 4 Apr 2020 16:47:22 +0800
Subject: [PATCH 38/70] TAT
---
api.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api.py b/api.py
index f02429a..0ebe0c4 100644
--- a/api.py
+++ b/api.py
@@ -199,7 +199,7 @@ class XiGuaLiveApi:
if d["live_data"] is None:
self.isLive = False
else:
- self._rawRoomInfo = d["user_info"]['live_info']
+ self._rawRoomInfo = d["live_data"]['live_info']
else:
self._rawRoomInfo = d["user_info"]['live_info']
if self.isLive:
From 3225952c694706f9c19ff009cdd90019d034a09f Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Mon, 6 Apr 2020 15:48:38 +0800
Subject: [PATCH 39/70] TEST
---
liveDownloader.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/liveDownloader.py b/liveDownloader.py
index 9b6a91a..728af2c 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -23,12 +23,12 @@ def download():
f = open(path, "wb")
_size = 0
try:
- for t in p.iter_content(chunk_size=64 * 1024):
+ for T in p.iter_content(chunk_size=64 * 1024):
if Common.forceNotDownload:
Common.modifyLastDownloadStatus("Force Stop Download".format(path))
- return
- f.write(t)
- _size += len(t)
+ break
+ f.write(T)
+ _size += len(T)
Common.modifyLastDownloadStatus(
"Downloading >{}< @ {:.2f}%".format(path, 100.0 * _size / Common.config["p_s"]))
if _size > Common.config["p_s"]:
@@ -42,7 +42,7 @@ def download():
if os.path.getsize(path) < 1024 * 1024:
Common.modifyLastDownloadStatus("Downloaded File >{}< is too small, will ignore it".format(path))
os.remove(path)
- return False
+ break
Common.encodeQueue.put(path)
From 3ae8176abb7220530ab7cd7ee39276530ee285cd Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Apr 2020 11:09:29 +0800
Subject: [PATCH 40/70] TEST
---
api.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api.py b/api.py
index 0ebe0c4..751a3cd 100644
--- a/api.py
+++ b/api.py
@@ -176,8 +176,8 @@ class XiGuaLiveApi:
获取用户信息
:return:
"""
+ self.isValidUser = False
if self.broadcaster is None:
- self.isValidUser = False
return False
_formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": self.broadcaster.ID}
_url = USER_INFO_API.format_map(_formatData).format_map(_formatData)
From 0260fce84513f300a52c5ec4432f9a5f6e12c94d Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Apr 2020 12:24:23 +0800
Subject: [PATCH 41/70] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bilibili.py | 71 +++++++++++++++++++++++++----------------------------
1 file changed, 33 insertions(+), 38 deletions(-)
diff --git a/bilibili.py b/bilibili.py
index 4d34055..c96ff33 100644
--- a/bilibili.py
+++ b/bilibili.py
@@ -49,8 +49,8 @@ class Bilibili:
APPKEY = '4409e2ce8ffd12b8'
ACTIONKEY = 'appkey'
BUILD = 101800
- DEVICE = 'android'
- MOBI_APP = 'android'
+ DEVICE = 'android_tv_yst'
+ MOBI_APP = 'android_tv_yst'
PLATFORM = 'android'
APPSECRET = '59b43e04ad6965f34319062b478f83dd'
@@ -94,11 +94,16 @@ class Bilibili:
data = json['data']
return data['hash'], data['key']
- def cnn_captcha(img):
- url = "http://47.95.255.188:5000/code"
- data = {"image": img}
- r = requests.post(url, data=data)
- return r.text
+ def access_token_2_cookie(access_token):
+ r = self.session.get(
+ 'https://passport.bilibili.com/api/login/sso?' + \
+ signed_body(
+ 'access_key={access_token}&appkey={appkey}&gourl=https%3A%2F%2Faccount.bilibili.com%2Faccount%2Fhome'
+ .format(access_token=access_token, appkey=APPKEY),
+ ),
+ allow_redirects=False,
+ )
+ return r.cookies.get_dict(domain=".bilibili.com")
self.session.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
h, k = getkey()
@@ -112,9 +117,13 @@ class Bilibili:
pwd = parse.quote_plus(pwd)
r = self.session.post(
- 'https://passport.bilibili.com/api/v2/oauth2/login',
- signed_body('appkey={appkey}&password={password}&username={username}'
- .format(appkey=APPKEY, username=user, password=pwd))
+ 'https://passport.snm0516.aisee.tv/api/tv/login',
+ signed_body(
+ 'appkey={appkey}&build={build}&captcha=&channel=master&'
+ 'guid=XYEBAA3E54D502E37BD606F0589A356902FCF&mobi_app={mobi_app}&'
+ 'password={password}&platform={platform}&token=5598158bcd8511e2&ts=0&username={username}'
+ .format(appkey=APPKEY, build=BUILD, platform=PLATFORM, mobi_app=MOBI_APP, username=user,
+ password=pwd)),
)
try:
json = r.json()
@@ -123,32 +132,17 @@ class Bilibili:
if json['code'] == -105:
# need captcha
- self.session.headers['cookie'] = 'sid=xxxxxxxx'
- r = self.session.get('https://passport.bilibili.com/captcha')
- captcha = cnn_captcha(base64.b64encode(r.content))
- r = self.session.post(
- 'https://passport.bilibili.com/api/v2/oauth2/login',
- signed_body('actionKey={actionKey}&appkey={appkey}&build={build}&captcha={captcha}&device={device}'
- '&mobi_app={mobi_app}&password={password}&platform={platform}&username={username}'
- .format(actionKey=ACTIONKEY,
- appkey=APPKEY,
- build=BUILD,
- captcha=captcha,
- device=DEVICE,
- mobi_app=MOBI_APP,
- password=pwd,
- platform=PLATFORM,
- username=user)),
- )
- json = r.json()
+ raise Exception('TODO: login with captcha')
if json['code'] != 0:
return r.text
- ls = []
- for item in json['data']['cookie_info']['cookies']:
- ls.append(item['name'] + '=' + item['value'])
- cookie = '; '.join(ls)
+ access_token = json['data']['token_info']['access_token']
+ cookie_dict = access_token_2_cookie(access_token)
+ cookie = '; '.join(
+ '%s=%s' % (k, v)
+ for k, v in cookie_dict.items()
+ )
self.session.headers["cookie"] = cookie
self.csrf = re.search('bili_jct=(.*?);', cookie).group(1)
@@ -244,7 +238,8 @@ class Bilibili:
chunks_num = math.ceil(filesize / chunk_size)
chunks_index = 0
chunks_data = f.read(chunk_size)
- Common.modifyLastUploadStatus("Uploading >{}< @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
+ Common.modifyLastUploadStatus(
+ "Uploading >{}< @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
while True:
_d = datetime.now()
if not chunks_data:
@@ -268,8 +263,9 @@ class Bilibili:
continue
chunks_data = f.read(chunk_size)
chunks_index += 1 # start with 0
- Common.modifyLastUploadStatus("Uploading >{}< @ {:.2f}%".format(filepath, 100.0*chunks_index/chunks_num))
- if (datetime.now()-_d).seconds < 2:
+ Common.modifyLastUploadStatus(
+ "Uploading >{}< @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
+ if (datetime.now() - _d).seconds < 2:
sleep(1)
# NOT DELETE! Refer to https://github.com/comwrg/bilibiliupload/issues/15#issuecomment-424379769
@@ -287,10 +283,9 @@ class Bilibili:
'title': part.title,
'desc': part.desc})
Common.modifyLastUploadStatus("Upload >{}< Finished".format(filepath))
- __f = open("uploaded.json","w")
+ __f = open("uploaded.json", "w")
JSON.dump(self.videos, __f)
-
def finishUpload(self,
title,
tid,
@@ -356,7 +351,7 @@ class Bilibili:
def clear(self):
self.files.clear()
self.videos.clear()
- if(os.path.exists("uploaded.json")):
+ if (os.path.exists("uploaded.json")):
os.remove("uploaded.json")
def appendUpload(self,
From 866b789a3d0f114af2dd70f60258f1acfe85a3ba Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Apr 2020 15:55:58 +0800
Subject: [PATCH 42/70] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bilibili.py | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/bilibili.py b/bilibili.py
index c96ff33..5308abe 100644
--- a/bilibili.py
+++ b/bilibili.py
@@ -44,7 +44,7 @@ class Bilibili:
:param pwd: password
:type pwd: str
:return: if success return True
- else return msg json
+ else raise Exception
"""
APPKEY = '4409e2ce8ffd12b8'
ACTIONKEY = 'appkey'
@@ -122,20 +122,16 @@ class Bilibili:
'appkey={appkey}&build={build}&captcha=&channel=master&'
'guid=XYEBAA3E54D502E37BD606F0589A356902FCF&mobi_app={mobi_app}&'
'password={password}&platform={platform}&token=5598158bcd8511e2&ts=0&username={username}'
- .format(appkey=APPKEY, build=BUILD, platform=PLATFORM, mobi_app=MOBI_APP, username=user,
- password=pwd)),
+ .format(appkey=APPKEY, build=BUILD, platform=PLATFORM, mobi_app=MOBI_APP, username=user, password=pwd)),
)
- try:
- json = r.json()
- except:
- return r.text
+ json = r.json()
if json['code'] == -105:
# need captcha
raise Exception('TODO: login with captcha')
if json['code'] != 0:
- return r.text
+ raise Exception(r.text)
access_token = json['data']['token_info']['access_token']
cookie_dict = access_token_2_cookie(access_token)
@@ -144,14 +140,12 @@ class Bilibili:
for k, v in cookie_dict.items()
)
self.session.headers["cookie"] = cookie
-
- self.csrf = re.search('bili_jct=(.*?);', cookie).group(1)
- self.mid = re.search('DedeUserID=(.*?);', cookie).group(1)
+ self.csrf = re.search('bili_jct=(.*?)(;|$)', cookie).group(1)
+ self.mid = re.search('DedeUserID=(.*?)(;|$)', cookie).group(1)
self.session.headers['Accept'] = 'application/json, text/javascript, */*; q=0.01'
self.session.headers['Referer'] = 'https://space.bilibili.com/{mid}/#!/'.format(mid=self.mid)
return True
-
def upload(self,
parts,
title,
From 9e9cb5883872d8a3ebf3cb18ed5f1573220cff97 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Apr 2020 16:11:51 +0800
Subject: [PATCH 43/70] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bilibili.py | 81 ++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 56 insertions(+), 25 deletions(-)
diff --git a/bilibili.py b/bilibili.py
index 5308abe..8d27040 100644
--- a/bilibili.py
+++ b/bilibili.py
@@ -5,6 +5,10 @@ import re
import json as JSON
from datetime import datetime
from time import sleep
+
+from requests.adapters import HTTPAdapter
+from urllib3 import Retry
+
import Common
import rsa
import math
@@ -146,6 +150,7 @@ class Bilibili:
self.session.headers['Referer'] = 'https://space.bilibili.com/{mid}/#!/'.format(mid=self.mid)
return True
+
def upload(self,
parts,
title,
@@ -180,8 +185,9 @@ class Bilibili:
self.finishUpload(title, tid, tag, desc, source, cover, no_reprint)
self.clear()
- def preUpload(self, parts):
+ def preUpload(self, parts, max_retry=5):
"""
+ :param max_retry:
:param parts: e.g. VideoPart('part path', 'part title', 'part desc'), or [VideoPart(...), VideoPart(...)]
:type parts: VideoPart or list
"""
@@ -189,6 +195,16 @@ class Bilibili:
if not isinstance(parts, list):
parts = [parts]
+ # retry by status
+ retries = Retry(
+ total=max_retry,
+ backoff_factor=1,
+ status_forcelist=(504, ),
+ )
+ self.session.mount('https://', HTTPAdapter(max_retries=retries))
+ self.session.mount('http://', HTTPAdapter(max_retries=retries))
+ #
+
for part in parts:
filepath = part.path
filename = os.path.basename(filepath)
@@ -197,7 +213,7 @@ class Bilibili:
self.files.append(part)
r = self.session.get('https://member.bilibili.com/preupload?'
'os=upos&upcdn=ws&name={name}&size={size}&r=upos&profile=ugcupos%2Fyb&ssl=0'
- .format(name=filename, size=filesize))
+ .format(name=parse.quote_plus(filename), size=filesize))
"""return example
{
"upos_uri": "upos://ugc/i181012ws18x52mti3gg0h33chn3tyhp.mp4",
@@ -223,8 +239,7 @@ class Bilibili:
biz_id = json['biz_id']
chunk_size = json['chunk_size']
self.session.headers['X-Upos-Auth'] = auth # add auth header
- r = self.session.post(
- 'https:{}/{}?uploads&output=json'.format(endpoint, upos_uri.replace('upos://', '')))
+ r = self.session.post('https:{}/{}?uploads&output=json'.format(endpoint, upos_uri.replace('upos://', '')))
# {"upload_id":"72eb747b9650b8c7995fdb0efbdc2bb6","key":"\/i181012ws2wg1tb7tjzswk2voxrwlk1u.mp4","OK":1,"bucket":"ugc"}
json = r.json()
upload_id = json['upload_id']
@@ -235,32 +250,47 @@ class Bilibili:
Common.modifyLastUploadStatus(
"Uploading >{}< @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
while True:
- _d = datetime.now()
if not chunks_data:
break
- r = self.session.put('https:{endpoint}/{upos_uri}?'
- 'partNumber={part_number}&uploadId={upload_id}&chunk={chunk}&chunks={chunks}&size={size}&start={start}&end={end}&total={total}'
- .format(endpoint=endpoint,
- upos_uri=upos_uri.replace('upos://', ''),
- part_number=chunks_index + 1, # starts with 1
- upload_id=upload_id,
- chunk=chunks_index,
- chunks=chunks_num,
- size=len(chunks_data),
- start=chunks_index * chunk_size,
- end=chunks_index * chunk_size + len(chunks_data),
- total=filesize,
- ),
- chunks_data,
- )
- if r.status_code != 200:
+
+ def upload_chunk():
+ r = self.session.put('https:{endpoint}/{upos_uri}?'
+ 'partNumber={part_number}&uploadId={upload_id}&chunk={chunk}&chunks={chunks}&size={size}&start={start}&end={end}&total={total}'
+ .format(endpoint=endpoint,
+ upos_uri=upos_uri.replace('upos://', ''),
+ part_number=chunks_index + 1, # starts with 1
+ upload_id=upload_id,
+ chunk=chunks_index,
+ chunks=chunks_num,
+ size=len(chunks_data),
+ start=chunks_index * chunk_size,
+ end=chunks_index * chunk_size + len(chunks_data),
+ total=filesize,
+ ),
+ chunks_data,
+ )
+ return r
+
+ def retry_upload_chunk():
+ """return :class:`Response` if upload success, else return None."""
+ for i in range(max_retry):
+ r = upload_chunk()
+ if r.status_code == 200:
+ return r
+ Common.modifyLastUploadStatus(
+ "Uploading >{}< @ {:.2f}% RETRY[{}]".format(filepath, 100.0 * chunks_index / chunks_num, max_retry))
+ return None
+
+ r = retry_upload_chunk()
+ if r:
+ Common.modifyLastUploadStatus(
+ "Uploading >{}< @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
+ else:
+ Common.modifyLastUploadStatus(
+ "Uploading >{}< FAILED @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
continue
chunks_data = f.read(chunk_size)
chunks_index += 1 # start with 0
- Common.modifyLastUploadStatus(
- "Uploading >{}< @ {:.2f}%".format(filepath, 100.0 * chunks_index / chunks_num))
- if (datetime.now() - _d).seconds < 2:
- sleep(1)
# NOT DELETE! Refer to https://github.com/comwrg/bilibiliupload/issues/15#issuecomment-424379769
self.session.post('https:{endpoint}/{upos_uri}?'
@@ -279,6 +309,7 @@ class Bilibili:
Common.modifyLastUploadStatus("Upload >{}< Finished".format(filepath))
__f = open("uploaded.json", "w")
JSON.dump(self.videos, __f)
+ __f.close()
def finishUpload(self,
title,
From 47cccb4aa8ef128f9369e9e120460ade169a1498 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 8 Apr 2020 16:12:11 +0800
Subject: [PATCH 44/70] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bilibili.py | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/bilibili.py b/bilibili.py
index 8d27040..25de102 100644
--- a/bilibili.py
+++ b/bilibili.py
@@ -3,12 +3,6 @@
import os
import re
import json as JSON
-from datetime import datetime
-from time import sleep
-
-from requests.adapters import HTTPAdapter
-from urllib3 import Retry
-
import Common
import rsa
import math
@@ -16,6 +10,8 @@ import base64
import hashlib
import requests
from urllib import parse
+from requests.adapters import HTTPAdapter
+from urllib3 import Retry
class VideoPart:
From d0a6aadb56cc2f44c01d019dfd3413ef2a93852d Mon Sep 17 00:00:00 2001
From: Jerry-Lubo-Server <792602257@qq.com>
Date: Thu, 9 Apr 2020 08:36:01 +0800
Subject: [PATCH 45/70] TEST2
---
liveDownloader.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/liveDownloader.py b/liveDownloader.py
index 728af2c..1c6965b 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -11,13 +11,15 @@ def download():
while Common.api.isLive and not Common.forceNotDownload:
if not Common.streamUrl:
Common.appendError("Download with No StreamUrl Specific")
- Common.api.updRoomInfo(True)
break
path = datetime.strftime(datetime.now(), "%Y%m%d_%H%M.flv")
- p = session.get(Common.streamUrl, stream=True, timeout=3)
+ try:
+ p = session.get(Common.streamUrl, stream=True, timeout=3)
+ except Exception as e:
+ Common.appendError("Download >{}< with Exception [{}]".format(path,e.__str__()))
+ break
if p.status_code != 200:
Common.appendDownloadStatus("Download with Response {}".format(p.status_code))
- Common.api.updRoomInfo(True)
break
Common.appendDownloadStatus("Download >{}< Start".format(path))
f = open(path, "wb")
@@ -42,8 +44,9 @@ def download():
if os.path.getsize(path) < 1024 * 1024:
Common.modifyLastDownloadStatus("Downloaded File >{}< is too small, will ignore it".format(path))
os.remove(path)
- break
+ continue
Common.encodeQueue.put(path)
+ Common.api.updRoomInfo(True)
def encode():
From 9d7939061c30510366c3fc94650bc3d04b05954f Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Thu, 9 Apr 2020 10:59:06 +0800
Subject: [PATCH 46/70] TEST3
---
Common.py | 7 ++++++-
liveDownloader.py | 27 ++++++++++++---------------
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/Common.py b/Common.py
index fc79d23..d47d502 100644
--- a/Common.py
+++ b/Common.py
@@ -26,7 +26,12 @@ config = {
"l_c": 5,
# 错误Log条数
"elc": 10,
+ # 每一chunk大小
+ "c_s": 16 * 1024,
+ # 每一块视频大小
"p_s": 2141000000,
+ # 忽略的大小
+ "i_s": 2048000,
"max": 75,
"exp": 1,
"dow": "echo 'clean'",
@@ -79,7 +84,7 @@ def resetDelay():
def doDelay():
global delay
- if -120 < getTimeDelta(datetime.now(), delay) < 60:
+ if -60 < getTimeDelta(datetime.now(), delay) < 60:
delay = datetime.fromtimestamp(0)
return True
return False
diff --git a/liveDownloader.py b/liveDownloader.py
index 1c6965b..1d577f0 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -15,37 +15,34 @@ def download():
path = datetime.strftime(datetime.now(), "%Y%m%d_%H%M.flv")
try:
p = session.get(Common.streamUrl, stream=True, timeout=3)
+ p.raise_for_status()
except Exception as e:
Common.appendError("Download >{}< with Exception [{}]".format(path,e.__str__()))
break
- if p.status_code != 200:
- Common.appendDownloadStatus("Download with Response {}".format(p.status_code))
- break
Common.appendDownloadStatus("Download >{}< Start".format(path))
f = open(path, "wb")
_size = 0
try:
- for T in p.iter_content(chunk_size=64 * 1024):
+ for T in p.iter_content(chunk_size=Common.config["c_s"]):
if Common.forceNotDownload:
Common.modifyLastDownloadStatus("Force Stop Download".format(path))
- break
+ return
f.write(T)
_size += len(T)
Common.modifyLastDownloadStatus(
"Downloading >{}< @ {:.2f}%".format(path, 100.0 * _size / Common.config["p_s"]))
if _size > Common.config["p_s"]:
Common.modifyLastDownloadStatus("Download >{}< Exceed MaxSize".format(path))
- break
Common.modifyLastDownloadStatus("Download >{}< Finished".format(path))
except Exception as e:
Common.appendError("Download >{}< With Exception {}".format(path, e.__str__()))
Common.api.updRoomInfo(True)
- f.close()
- if os.path.getsize(path) < 1024 * 1024:
+ finally:
+ f.close()
+ if os.path.getsize(path) < Common.config["i_s"]:
Common.modifyLastDownloadStatus("Downloaded File >{}< is too small, will ignore it".format(path))
- os.remove(path)
- continue
- Common.encodeQueue.put(path)
+ else:
+ Common.encodeQueue.put(path)
Common.api.updRoomInfo(True)
@@ -68,8 +65,9 @@ def upload():
Common.uploadVideo(i)
except Exception as e:
Common.appendError(e.__str__())
- time.sleep(120)
continue
+ finally:
+ time.sleep(120)
i = Common.uploadQueue.get()
Common.appendUploadStatus("Upload Daemon Quiting")
@@ -127,9 +125,8 @@ def run():
Common.api.updRoomInfo()
except Exception as e:
Common.appendError(e.__str__())
- time.sleep(2)
- continue
- time.sleep(0.5)
+ finally:
+ time.sleep(1)
else:
try:
Common.api.updRoomInfo()
From 113c8f2a5304421cfdcc6d39de9c05a5036b1599 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Thu, 9 Apr 2020 17:14:35 +0800
Subject: [PATCH 47/70] TEST4
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index d47d502..acc37a6 100644
--- a/Common.py
+++ b/Common.py
@@ -317,7 +317,7 @@ class downloader(XiGuaLiveApi):
_prev_status = self.isLive
doClean()
_result = super(downloader, self).updRoomInfo(force)
- if _prev_status != self.isLive:
+ if _prev_status != self.isLive and _prev_status:
resetDelay()
if _result:
broadcaster = self.broadcaster
From 1cc824d6242dcdb549991aaad4d4b1a97b050cfb Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Thu, 9 Apr 2020 17:19:48 +0800
Subject: [PATCH 48/70] TEST5
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index acc37a6..0be2d45 100644
--- a/Common.py
+++ b/Common.py
@@ -317,7 +317,7 @@ class downloader(XiGuaLiveApi):
_prev_status = self.isLive
doClean()
_result = super(downloader, self).updRoomInfo(force)
- if _prev_status != self.isLive and _prev_status:
+ if _prev_status != self.isLive and not self.isLive:
resetDelay()
if _result:
broadcaster = self.broadcaster
From c31e3a8106f7600fc1b52a320ca97178df8acf08 Mon Sep 17 00:00:00 2001
From: Jerry-Lubo-Server <792602257@qq.com>
Date: Thu, 9 Apr 2020 23:53:07 +0800
Subject: [PATCH 49/70] =?UTF-8?q?=E5=BF=98=E8=AE=B0=E4=BA=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
liveDownloader.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/liveDownloader.py b/liveDownloader.py
index 1d577f0..51b562f 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -33,6 +33,7 @@ def download():
"Downloading >{}< @ {:.2f}%".format(path, 100.0 * _size / Common.config["p_s"]))
if _size > Common.config["p_s"]:
Common.modifyLastDownloadStatus("Download >{}< Exceed MaxSize".format(path))
+ break
Common.modifyLastDownloadStatus("Download >{}< Finished".format(path))
except Exception as e:
Common.appendError("Download >{}< With Exception {}".format(path, e.__str__()))
From 3b7943ca23fb697e21c8c457bc0a5d88b63abe74 Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Sat, 11 Apr 2020 11:48:17 +0800
Subject: [PATCH 50/70] TEST7
---
api.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api.py b/api.py
index 751a3cd..e938bb4 100644
--- a/api.py
+++ b/api.py
@@ -207,7 +207,7 @@ class XiGuaLiveApi:
return self.isLive
def _getRoomInfo(self, force=False):
- if self.roomID == 0:
+ if self.roomID == 0 or not self.roomID:
self.isLive = False
return False
if (self._updRoomAt + timedelta(minutes=3) > datetime.now()) and not force:
From b38431bf4c3e7b69cc25ecdd26261df4a3d970e7 Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Sun, 12 Apr 2020 20:37:33 +0800
Subject: [PATCH 51/70] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B6=85=E6=97=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/api.py b/api.py
index e938bb4..e351cd1 100644
--- a/api.py
+++ b/api.py
@@ -76,6 +76,8 @@ class XiGuaLiveApi:
self.roomPopularity = _data["data"]["popularity"]
def getJson(self, url, **kwargs):
+ if "timeout" not in kwargs:
+ kwargs["timeout"] = 10
try:
p = self.s.get(url, **kwargs)
except Exception as e:
From df4c3a34b197c6cb1e147275e0cb35d9d8683e52 Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Sun, 12 Apr 2020 20:38:13 +0800
Subject: [PATCH 52/70] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B6=85=E6=97=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/api.py b/api.py
index e351cd1..4df0684 100644
--- a/api.py
+++ b/api.py
@@ -99,6 +99,8 @@ class XiGuaLiveApi:
return None
def postJson(self, url, data, **kwargs):
+ if "timeout" not in kwargs:
+ kwargs["timeout"] = 10
try:
p = self.s.post(url, data, **kwargs)
except Exception as e:
From 47baa8b2e482fdaecf5a10627f0071b0e57bc08e Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Tue, 14 Apr 2020 14:03:13 +0800
Subject: [PATCH 53/70] USE SEND_FILE INSTEAD OF blablabla
---
WebMain.py | 24 ++----------------------
1 file changed, 2 insertions(+), 22 deletions(-)
diff --git a/WebMain.py b/WebMain.py
index 9139aa7..8468ee7 100644
--- a/WebMain.py
+++ b/WebMain.py
@@ -2,7 +2,7 @@ import os
from glob import glob
from time import sleep
from flask_cors import CORS
-from flask import Flask, jsonify, request, redirect, render_template, Response
+from flask import Flask, jsonify, request, render_template, Response, send_file
import Common
import threading
from liveDownloader import run as RUN
@@ -163,30 +163,10 @@ def fileIndex():
@app.route("/files/download/", methods=["GET"])
def fileDownload(path):
- def generate(file, offset=0):
- with open(file, "rb") as f:
- f.seek(offset)
- for row in f:
- yield row
if not (".mp4" in path or ".flv" in path):
return Response(status=404)
if os.path.exists(path):
- if "RANGE" in request.headers:
- offset = int(request.headers["RANGE"].replace("=", "-").split("-")[1].strip())
- code = 206
- else:
- offset = 0
- code = 200
- return Response(generate(path, offset),
- status=code,
- mimetype='application/octet-stream',
- headers={
- "Content-Length": os.path.getsize(path),
- "Content-Range": "bytes {}-{}/{}".format(offset, os.path.getsize(path) - 1,
- os.path.getsize(path)),
- "Accept-Ranges": "bytes",
- "Range": "bytes",
- })
+ return send_file(path, as_attachment=True)
else:
return Response(status=404)
From 28a62ae6c3c068df6156ee97d5bbc40df849b22b Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Thu, 23 Apr 2020 20:55:25 +0800
Subject: [PATCH 54/70] =?UTF-8?q?=E8=A5=BF=E7=93=9C=E5=8F=88=E5=8D=87?=
=?UTF-8?q?=E7=BA=A7=E4=BA=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Struct/User.py | 8 ++++++--
api.py | 15 +++++++++------
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/Struct/User.py b/Struct/User.py
index 87c2c42..4db684c 100644
--- a/Struct/User.py
+++ b/Struct/User.py
@@ -23,13 +23,17 @@ class User:
self.type = json["extra"]["user_room_auth_status"]["user_type"]
self.block = json["extra"]["user_room_auth_status"]["is_block"]
self.mute = json["extra"]["user_room_auth_status"]["is_silence"]
- elif "user_info" in json and json["user_info"] is not None:
+ if "user_info" in json and json["user_info"] is not None:
self.ID = json['user_info']['user_id']
self.name = json['user_info']['name']
- elif "anchor" in json and json["anchor"] is not None:
+ if "anchor" in json and json["anchor"] is not None:
if "user_info" in json["anchor"] and json["anchor"]['user_info'] is not None:
self.ID = json["anchor"]['user_info']['user_id']
self.name = json["anchor"]['user_info']['name']
+ if "user_id" in json:
+ self.ID = json["user_id"]
+ if "user_name" in json:
+ self.name = json["user_name"]
if self.type is None:
self.type = 0
if isinstance(self.level, str):
diff --git a/api.py b/api.py
index 4df0684..c8e9639 100644
--- a/api.py
+++ b/api.py
@@ -162,16 +162,19 @@ class XiGuaLiveApi:
for i in d["data"]:
if self.broadcaster is not None:
break
- if i["block_type"] != 0:
+ if i["block_type"] != 2:
continue
if "cells" not in i or len(i["cells"]) == 0:
break
for _j in i["cells"]:
- _user = User(_j)
- if self._checkUsernameIsMatched(_user):
- self.isValidUser = True
- self.broadcaster = _user
- break
+ if "room" in _j:
+ _user = User(_j["room"])
+ self.roomID = _j["room"]["room_id"]
+ self.isLive = _j["room"]["is_living"]
+ if self._checkUsernameIsMatched(_user):
+ self.isValidUser = True
+ self.broadcaster = _user
+ break
self._updRoomAt = datetime.now()
return self._updateUserInfo()
From c8d8ba843543678409a40791311d00d97336b09e Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Fri, 24 Apr 2020 20:23:03 +0800
Subject: [PATCH 55/70] =?UTF-8?q?=E8=A5=BF=E7=93=9C=E5=8F=88=E5=8D=87?=
=?UTF-8?q?=E7=BA=A7=E4=BA=86(=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/api.py b/api.py
index c8e9639..714b011 100644
--- a/api.py
+++ b/api.py
@@ -1,7 +1,4 @@
# coding=utf-8
-import json
-import sys
-import random
from Struct.User import User
import requests
@@ -10,18 +7,19 @@ from datetime import datetime, timedelta
DEBUG = False
COMMON_GET_PARAM = (
- "&iid=96159232732&device_id=55714661189&channel=xiaomi&aid=32&app_name=video_article&version_code=816"
- "&version_name=8.1.6&device_platform=android&ab_version=941090,785218,668858,1046292,1073579,830454,956074,929436,"
- "797199,1135476,1179370,994679,959010,900042,1113833,668854,1193963,901277,1043330,1038721,994822,1002058,1230687,"
- "1189797,1143356,1143441,1143501,1143698,1143713,1371009,1243997,1392586,1395695,1395486,1398858,668852,668856,"
- "668853,1186421,668851,668859,999124,668855,1039075&device_type=MI+8+SE&device_brand=Xiaomi&language=zh"
- "&os_api=28&os_version=9&openudid=70d6668d41512c39&manifest_version_code=412&update_version_code=81606"
- "&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1290000"
+ "&iid=96159232732&device_id=55714661189&channel=xiaomi&aid=32&app_name=video_article&version_code=844"
+ "&version_name=8.4.4&device_platform=android&ab_version=668855,1640207,1652557,1143698,1043330,1143713,"
+ "1477978,1189797,1635895,1631832,994822,900042,956074,1143356,1046292,1481027,929436,994679,1419059,"
+ "1073579,668854,1143441,668852,668853,941090,668858,668851,668859,668856,"
+ "1639440,1630487&device_type=MI+8+SE&device_brand=Xiaomi&language=zh"
+ "&os_api=28&os_version=9&openudid=70d6668d41512c39&manifest_version_code=444&update_version_code=84407"
+ "&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1.53.0.5"
"&cdid=ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d&oaid=a625f466e0975d42")
SEARCH_USER_API = (
- "https://security.snssdk.com/video/app/search/live/?format=json&search_sug=0&forum=0&m_tab=live&is_native_req=0"
- "&offset=0&from=live&en_qc=1&pd=xigua_live&ssmix=a{COMMON}&keyword={keyword}")
-USER_INFO_API = "https://is.snssdk.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
+ "https://search-hl.ixigua.com/video/app/search/search_content/?format=json"
+ "&fss=&keyword_type=input&offset=0&count=10&search_sug=0&forum=0&is_native_req=0"
+ "&search_start_time={TIMESTAMP:.0f}&from=live&en_qc=1&pd=xigua_live&ssmix=a{COMMON}&keyword={keyword}")
+USER_INFO_API = "https://api3-normal-c-hl.ixigua.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
ROOM_INFO_API = "https://webcast3.ixigua.com/webcast/room/enter/?room_id={roomId}&pack_level=4{COMMON}"
COMMON_HEADERS = {
"sdk-version": '1',
From e0736f1658f616f50113159eb35aa854b2da0aa8 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Thu, 28 May 2020 10:20:06 +0800
Subject: [PATCH 56/70] =?UTF-8?q?=E4=BB=85=E4=B8=8B=E8=BD=BD=E6=97=B6?=
=?UTF-8?q?=E6=97=A0=E9=99=90=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
liveDownloader.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/liveDownloader.py b/liveDownloader.py
index 51b562f..54ddbf4 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -31,7 +31,7 @@ def download():
_size += len(T)
Common.modifyLastDownloadStatus(
"Downloading >{}< @ {:.2f}%".format(path, 100.0 * _size / Common.config["p_s"]))
- if _size > Common.config["p_s"]:
+ if _size > Common.config["p_s"] and not Common.config["dlO"]:
Common.modifyLastDownloadStatus("Download >{}< Exceed MaxSize".format(path))
break
Common.modifyLastDownloadStatus("Download >{}< Finished".format(path))
From 7beddaf91eba10e4f6b5eee933bf069a1611f746 Mon Sep 17 00:00:00 2001
From: JerryYan <792602257@qq.com>
Date: Thu, 2 Jul 2020 22:01:39 +0800
Subject: [PATCH 57/70] =?UTF-8?q?=E6=88=90=E5=8A=9F=E4=B9=8B=E5=90=8E?=
=?UTF-8?q?=E7=AB=8B=E5=88=BB=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/api.py b/api.py
index 714b011..b5c76d3 100644
--- a/api.py
+++ b/api.py
@@ -209,6 +209,7 @@ class XiGuaLiveApi:
self._rawRoomInfo = d["user_info"]['live_info']
if self.isLive:
self.roomID = self._rawRoomInfo['room_id']
+ return self._getRoomInfo(True)
return self.isLive
def _getRoomInfo(self, force=False):
From 5cf4ab2fc19ad22e9fc9b8d3f01b3e00bee6d031 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Mon, 6 Jul 2020 12:03:47 +0800
Subject: [PATCH 58/70] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E7=99=BB=E5=BD=95?=
=?UTF-8?q?=E7=B1=BB=E5=9E=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/Common.py b/Common.py
index 0be2d45..e825ec1 100644
--- a/Common.py
+++ b/Common.py
@@ -299,12 +299,21 @@ def appendError(obj):
def loginBilibili(force=False):
if config["dlO"] is False or forceNotUpload is False:
global loginTime
+ global b
if getTimeDelta(datetime.now(), loginTime) < 86400 * 10 and not force:
return False
- res = b.login(config["b_u"], config["b_p"])
- loginTime = datetime.now()
- appendOperation("登陆账号,结果为:[{}]".format(res))
- return res
+ if os.path.exists('cookie'):
+ try:
+ with open('cookie', 'r', encoding='utf8') as f:
+ _cookie = f.read(4096)
+ b = Bilibili(_cookie)
+ loginTime = datetime.now()
+ appendOperation("Cookie 登录")
+ return True
+ except Exception as e:
+ appendError(e)
+ appendOperation("Cookie 登录失败")
+ return False
else:
appendOperation("设置了不上传,所以不会登陆")
From b72437758f7a93e1088c70af8ab3cca22f79249c Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 22 Nov 2020 14:31:17 +0800
Subject: [PATCH 59/70] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E5=8D=87=E7=BA=A7?=
=?UTF-8?q?=EF=BC=888.4.4->9.1.8=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 59 ++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 37 insertions(+), 22 deletions(-)
diff --git a/api.py b/api.py
index b5c76d3..e8525e4 100644
--- a/api.py
+++ b/api.py
@@ -7,23 +7,29 @@ from datetime import datetime, timedelta
DEBUG = False
COMMON_GET_PARAM = (
- "&iid=96159232732&device_id=55714661189&channel=xiaomi&aid=32&app_name=video_article&version_code=844"
- "&version_name=8.4.4&device_platform=android&ab_version=668855,1640207,1652557,1143698,1043330,1143713,"
- "1477978,1189797,1635895,1631832,994822,900042,956074,1143356,1046292,1481027,929436,994679,1419059,"
- "1073579,668854,1143441,668852,668853,941090,668858,668851,668859,668856,"
- "1639440,1630487&device_type=MI+8+SE&device_brand=Xiaomi&language=zh"
- "&os_api=28&os_version=9&openudid=70d6668d41512c39&manifest_version_code=444&update_version_code=84407"
- "&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1.53.0.5"
+ "&iid=844059075938396&device_id=71008241150&channel=xiaomi&aid=32&app_name=video_article&version_code=918"
+ "&version_name=9.1.8&device_platform=android&ab_version=668852,668853,668858,668851,668859,668856,668855,"
+ "668854,1477978,994679,2186472,1477978,1189797,1635895,1631832,994822,900042,956074,1143356,1046292,1481027,"
+ "929436,994679,1419059,1073579,668854,1143441,668852,668853,941090,668858,668851,668859,668856,1639440,1630487&"
+ "device_typeMI+9&device_type=MI 9&device_brand=Xiaomi&language=zh"
+ "&os_api=29&os_version=10&openudid=4aeb1e2b627697be&manifest_version_code=518&update_version_code=91806"
+ "&_rticket={TIMESTAMP:.0f}&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1790001"
+ "&rom_version=miui_V12_V12.0.5.0.QFACNXM&oaid=693ea85657ef38ca"
"&cdid=ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d&oaid=a625f466e0975d42")
SEARCH_USER_API = (
"https://search-hl.ixigua.com/video/app/search/search_content/?format=json"
- "&fss=&keyword_type=input&offset=0&count=10&search_sug=0&forum=0&is_native_req=0"
+ "&fss=search_subtab_switch&target_channel=video_search&keyword_type=search_subtab_switch&offset=0&count=10"
+ "&search_sug=1&forum=1&is_native_req=0&m_tab=video&pd=user&tab=user&_s_tma=SEARCH_STANDARD.list.fe_get_data"
+ '&_s_page_sub_route=/&_s_ec={{"filterDataType":[],"reserveFilterBar":true}}&__use_xigua_native_bridge_fetch__=1'
+ '&ab_param={{"is_show_filter_feature": 1, "is_hit_new_ui": 1}}'
"&search_start_time={TIMESTAMP:.0f}&from=live&en_qc=1&pd=xigua_live&ssmix=a{COMMON}&keyword={keyword}")
-USER_INFO_API = "https://api3-normal-c-hl.ixigua.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
-ROOM_INFO_API = "https://webcast3.ixigua.com/webcast/room/enter/?room_id={roomId}&pack_level=4{COMMON}"
+USER_INFO_API = "https://api100-quic-c-hl.ixigua.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
+ROOM_INFO_API = ("https://webcast3.ixigua.com/webcast/room/enter/?room_id={roomId}&webcast_sdk_version=1350"
+ "&webcast_language=zh&webcast_locale=zh_CN&pack_level=4{COMMON}")
COMMON_HEADERS = {
- "sdk-version": '1',
- "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9) VideoArticle/8.1.6 cronet/TTNetVersion:b97574c0 2019-09-24",
+ "sdk-version": '2',
+ "passport-sdk-version": "19",
+ "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9) VideoArticle/9.1.8 cronet/TTNetVersion:b97574c0 2020-09-24",
"Accept-Encoding": "gzip, deflate"
}
@@ -40,6 +46,7 @@ class XiGuaLiveApi:
name = "永恒de草薙"
self.broadcaster = None
self.isValidUser = False
+ self.name = str(name)
if type(name) == User:
self.broadcaster = name
self.name = name.name
@@ -53,12 +60,13 @@ class XiGuaLiveApi:
self._rawRoomInfo = {}
self.roomID = 0
self.roomPopularity = 0
- self._cursor = "0"
self.lottery = None
self.s = requests.session()
self.s.headers.update(COMMON_HEADERS)
self._updRoomAt = datetime.fromtimestamp(0)
self.updRoomInfo()
+ self._ext = ""
+ self._cursor = "0"
def _updateRoomPopularity(self, _data):
"""
@@ -100,7 +108,7 @@ class XiGuaLiveApi:
if "timeout" not in kwargs:
kwargs["timeout"] = 10
try:
- p = self.s.post(url, data, **kwargs)
+ p = self.s.post(url, data=data, **kwargs)
except Exception as e:
print("网络请求失败")
if DEBUG:
@@ -142,20 +150,23 @@ class XiGuaLiveApi:
compare = self.broadcaster
if self.name is None or compare is None:
return False
- return self.name == compare.__str__() or compare.__str__() in self.name or self.name in compare.__str__()
+ return self.name == compare.__str__() or compare.__repr__() in self.name or self.name in compare.__repr__()
def _forceSearchUser(self):
"""
搜索主播名
:return:
"""
- _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "keyword": self.name}
- _url = SEARCH_USER_API.format_map(_formatData).format_map(_formatData)
+ _formatData = {"TIMESTAMP": time.time() * 1000, "keyword": self.name}
+ _COMMON = COMMON_GET_PARAM.format_map(_formatData)
+ _formatData['COMMON'] = _COMMON
+ _url = SEARCH_USER_API.format_map(_formatData)
d = self.getJson(_url)
if d is None:
print("搜索接口请求失败")
return False
self.broadcaster = None
+ self.isValidUser = False
if "data" in d and d["data"] is not None:
for i in d["data"]:
if self.broadcaster is not None:
@@ -181,11 +192,13 @@ class XiGuaLiveApi:
获取用户信息
:return:
"""
- self.isValidUser = False
if self.broadcaster is None:
+ self.isValidUser = False
return False
- _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "userId": self.broadcaster.ID}
- _url = USER_INFO_API.format_map(_formatData).format_map(_formatData)
+ _formatData = {"TIMESTAMP": time.time() * 1000, "userId": self.broadcaster.ID}
+ _COMMON = COMMON_GET_PARAM.format_map(_formatData)
+ _formatData['COMMON'] = _COMMON
+ _url = USER_INFO_API.format_map(_formatData)
d = self.getJson(_url)
if d is None:
print("获取用户信息失败")
@@ -218,8 +231,10 @@ class XiGuaLiveApi:
return False
if (self._updRoomAt + timedelta(minutes=3) > datetime.now()) and not force:
return self.isLive
- _formatData = {"COMMON": COMMON_GET_PARAM, "TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
- _url = ROOM_INFO_API.format_map(_formatData).format_map(_formatData)
+ _formatData = {"TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
+ _COMMON = COMMON_GET_PARAM.format_map(_formatData)
+ _formatData['COMMON'] = _COMMON
+ _url = ROOM_INFO_API.format_map(_formatData)
d = self.getJson(_url)
if d is None:
print("获取房间信息接口请求失败")
From 2281f872bf9554372e3184038dff9bddac01273a Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Wed, 2 Dec 2020 08:11:16 +0000
Subject: [PATCH 60/70] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
liveDownloader.py | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/Common.py b/Common.py
index e825ec1..36610f9 100644
--- a/Common.py
+++ b/Common.py
@@ -328,8 +328,8 @@ class downloader(XiGuaLiveApi):
_result = super(downloader, self).updRoomInfo(force)
if _prev_status != self.isLive and not self.isLive:
resetDelay()
+ broadcaster = self.broadcaster
if _result:
- broadcaster = self.broadcaster
if self.isLive:
self.updPlayList()
else:
diff --git a/liveDownloader.py b/liveDownloader.py
index 54ddbf4..a99d9c0 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -5,9 +5,10 @@ import Common
import os
import requests
+session = requests.session()
+
def download():
- session = requests.session()
while Common.api.isLive and not Common.forceNotDownload:
if not Common.streamUrl:
Common.appendError("Download with No StreamUrl Specific")
@@ -68,7 +69,7 @@ def upload():
Common.appendError(e.__str__())
continue
finally:
- time.sleep(120)
+ time.sleep(90)
i = Common.uploadQueue.get()
Common.appendUploadStatus("Upload Daemon Quiting")
From ecdcde92309e7f0fdba19c3eaa87473649c31f2c Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 5 Dec 2020 15:57:58 +0800
Subject: [PATCH 61/70] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E5=8D=87=E7=BA=A7?=
=?UTF-8?q?=EF=BC=889.1.8->9.2.6=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 30 ++++++++----------------------
1 file changed, 8 insertions(+), 22 deletions(-)
diff --git a/api.py b/api.py
index e8525e4..324332b 100644
--- a/api.py
+++ b/api.py
@@ -7,13 +7,13 @@ from datetime import datetime, timedelta
DEBUG = False
COMMON_GET_PARAM = (
- "&iid=844059075938396&device_id=71008241150&channel=xiaomi&aid=32&app_name=video_article&version_code=918"
- "&version_name=9.1.8&device_platform=android&ab_version=668852,668853,668858,668851,668859,668856,668855,"
+ "&iid=844059075938396&device_id=71008241150&channel=xiaomi&aid=32&app_name=video_article&version_code=926"
+ "&version_name=9.2.6&device_platform=android&ab_version=668852,668853,668858,668851,668859,668856,668855,"
"668854,1477978,994679,2186472,1477978,1189797,1635895,1631832,994822,900042,956074,1143356,1046292,1481027,"
"929436,994679,1419059,1073579,668854,1143441,668852,668853,941090,668858,668851,668859,668856,1639440,1630487&"
"device_typeMI+9&device_type=MI 9&device_brand=Xiaomi&language=zh"
- "&os_api=29&os_version=10&openudid=4aeb1e2b627697be&manifest_version_code=518&update_version_code=91806"
- "&_rticket={TIMESTAMP:.0f}&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1790001"
+ "&os_api=29&os_version=10&openudid=4aeb1e2b627697be&manifest_version_code=518&update_version_code=92609"
+ "&_rticket={TIMESTAMP:.0f}&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1830001"
"&rom_version=miui_V12_V12.0.5.0.QFACNXM&oaid=693ea85657ef38ca"
"&cdid=ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d&oaid=a625f466e0975d42")
SEARCH_USER_API = (
@@ -24,12 +24,14 @@ SEARCH_USER_API = (
'&ab_param={{"is_show_filter_feature": 1, "is_hit_new_ui": 1}}'
"&search_start_time={TIMESTAMP:.0f}&from=live&en_qc=1&pd=xigua_live&ssmix=a{COMMON}&keyword={keyword}")
USER_INFO_API = "https://api100-quic-c-hl.ixigua.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
-ROOM_INFO_API = ("https://webcast3.ixigua.com/webcast/room/enter/?room_id={roomId}&webcast_sdk_version=1350"
+ROOM_INFO_API = ("https://webcast3-normal-c-hl.ixigua.com/webcast/room/enter/?room_id={roomId}&webcast_sdk_version=1350"
"&webcast_language=zh&webcast_locale=zh_CN&pack_level=4{COMMON}")
COMMON_HEADERS = {
"sdk-version": '2',
"passport-sdk-version": "19",
- "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9) VideoArticle/9.1.8 cronet/TTNetVersion:b97574c0 2020-09-24",
+ "X-SS-DP": "32",
+ "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 10) VideoArticle/9.2.6 cronet/TTNetVersion:828f6f3c 2020-09-06 "
+ "QuicVersion:7aee791b 2020-06-05",
"Accept-Encoding": "gzip, deflate"
}
@@ -59,8 +61,6 @@ class XiGuaLiveApi:
self.isLive = False
self._rawRoomInfo = {}
self.roomID = 0
- self.roomPopularity = 0
- self.lottery = None
self.s = requests.session()
self.s.headers.update(COMMON_HEADERS)
self._updRoomAt = datetime.fromtimestamp(0)
@@ -68,19 +68,6 @@ class XiGuaLiveApi:
self._ext = ""
self._cursor = "0"
- def _updateRoomPopularity(self, _data):
- """
- 更新房间人气的方法
- Update Room Popularity
- :param _data: Received Message
- """
- if "extra" in _data:
- if "member_count" in _data["extra"] and _data["extra"]["member_count"] > 0:
- self.roomPopularity = _data["extra"]["member_count"]
- if "data" in _data:
- if "popularity" in _data["data"]:
- self.roomPopularity = _data["data"]["popularity"]
-
def getJson(self, url, **kwargs):
if "timeout" not in kwargs:
kwargs["timeout"] = 10
@@ -245,7 +232,6 @@ class XiGuaLiveApi:
self._rawRoomInfo = d["data"]
self.isLive = d["data"]["status"] == 2
self._updRoomAt = datetime.now()
- self._updateRoomPopularity(d)
return self.isLive
def updRoomInfo(self, force=False):
From 9e1b725c0cdb1afab345734bbe3adff8db2800d3 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 6 Dec 2020 11:14:10 +0800
Subject: [PATCH 62/70] =?UTF-8?q?URL=E5=8F=82=E6=95=B0=E6=A0=BC=E5=BC=8F?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 45 ++++++++++++++++++++++++++++++++++++---------
1 file changed, 36 insertions(+), 9 deletions(-)
diff --git a/api.py b/api.py
index 324332b..9d7d039 100644
--- a/api.py
+++ b/api.py
@@ -6,16 +6,42 @@ import time
from datetime import datetime, timedelta
DEBUG = False
+# 自己抓的自己设备的参数,建议开发者自己抓一个长期使用
+# 如果有大佬破解初次激活设备时的数据也行,可以自己生成一堆用
+CUSTOM_INFO = {
+ 'iid': "96159232732",
+ 'device_id': "55714661189",
+ 'cdid': "ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d",
+ 'openudid': "70d6668d41512c39",
+ 'aid': "32",
+ 'channel': "xiaomi",
+ 'device_brand': "Xiaomi",
+ 'device_type': "MI+8+SE",
+ 'os_api': "28",
+ 'os_version': "9",
+ 'rom_version': "miui_V12_V12.0.2.0.QEBCNXM",
+}
+VERSION_INFO = {
+ 'app_name': "video_article",
+ 'version_code': "926",
+ 'version_code_full': "92609",
+ 'version_name': "9.2.6",
+ 'ab_version': "941090,785218,668858,1046292,1073579,830454,956074,929436,797199,1135476,1179370,994679,959010,"
+ "900042,1113833,668854,1193963,901277,1043330,1038721,994822,1002058,1230687,1189797,1143356,1143441,"
+ "1143501,1143698,1143713,1371009,1243997,1392586,1395695,1395486,1398858,668852,668856,668853,"
+ "1186421,668851,668859,999124,668855,1039075",
+ 'manifest_version_code': "518",
+ 'tma_jssdk_version': "1830001",
+ # 一个定值,几个版本换设备都没变过
+ 'oaid': "a625f466e0975d42",
+}
COMMON_GET_PARAM = (
- "&iid=844059075938396&device_id=71008241150&channel=xiaomi&aid=32&app_name=video_article&version_code=926"
- "&version_name=9.2.6&device_platform=android&ab_version=668852,668853,668858,668851,668859,668856,668855,"
- "668854,1477978,994679,2186472,1477978,1189797,1635895,1631832,994822,900042,956074,1143356,1046292,1481027,"
- "929436,994679,1419059,1073579,668854,1143441,668852,668853,941090,668858,668851,668859,668856,1639440,1630487&"
- "device_typeMI+9&device_type=MI 9&device_brand=Xiaomi&language=zh"
- "&os_api=29&os_version=10&openudid=4aeb1e2b627697be&manifest_version_code=518&update_version_code=92609"
- "&_rticket={TIMESTAMP:.0f}&_rticket={TIMESTAMP:.0f}&cdid_ts={TIMESTAMP:.0f}&fp=a_fake_fp&tma_jssdk_version=1830001"
- "&rom_version=miui_V12_V12.0.5.0.QFACNXM&oaid=693ea85657ef38ca"
- "&cdid=ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d&oaid=a625f466e0975d42")
+ "&iid={iid}&device_id={device_id}&channel={channel}&aid={aid}&app_name={app_name}&version_code={version_code}&"
+ "version_name={version_name}&device_platform=android&ab_version={ab_version}&device_type={device_type}&"
+ "device_brand={device_brand}&language=zh&os_api={os_api}&os_version={os_version}&openudid={openudid}&fp=a_fake_fp&"
+ "manifest_version_code={manifest_version_code}&update_version_code={version_code_full}&_rticket={{TIMESTAMP:.0f}}&"
+ "_rticket={{TIMESTAMP:.0f}}&cdid_ts={{TIMESTAMP:.0f}}&tma_jssdk_version={tma_jssdk_version}&"
+ "rom_version={rom_version}&oaid={oaid}&cdid={cdid}").format_map({**CUSTOM_INFO, **VERSION_INFO})
SEARCH_USER_API = (
"https://search-hl.ixigua.com/video/app/search/search_content/?format=json"
"&fss=search_subtab_switch&target_channel=video_search&keyword_type=search_subtab_switch&offset=0&count=10"
@@ -32,6 +58,7 @@ COMMON_HEADERS = {
"X-SS-DP": "32",
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 10) VideoArticle/9.2.6 cronet/TTNetVersion:828f6f3c 2020-09-06 "
"QuicVersion:7aee791b 2020-06-05",
+ # 最好别加br,requests库好像自带没法解析
"Accept-Encoding": "gzip, deflate"
}
From 302b4d4596972048c273df15e1e107409e501d41 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 6 Dec 2020 16:09:44 +0800
Subject: [PATCH 63/70] =?UTF-8?q?URL=E6=A0=BC=E5=BC=8F=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/api.py b/api.py
index 9d7d039..dde4341 100644
--- a/api.py
+++ b/api.py
@@ -13,7 +13,7 @@ CUSTOM_INFO = {
'device_id': "55714661189",
'cdid': "ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d",
'openudid': "70d6668d41512c39",
- 'aid': "32",
+ # 'aid': "32", # 又是一个不变的值
'channel': "xiaomi",
'device_brand': "Xiaomi",
'device_type': "MI+8+SE",
@@ -32,16 +32,15 @@ VERSION_INFO = {
"1186421,668851,668859,999124,668855,1039075",
'manifest_version_code': "518",
'tma_jssdk_version': "1830001",
- # 一个定值,几个版本换设备都没变过
- 'oaid': "a625f466e0975d42",
+ # 'oaid': "a625f466e0975d42", # 一个定值,几个版本换设备都没变过
}
COMMON_GET_PARAM = (
- "&iid={iid}&device_id={device_id}&channel={channel}&aid={aid}&app_name={app_name}&version_code={version_code}&"
+ "&iid={iid}&device_id={device_id}&channel={channel}&aid=32&app_name={app_name}&version_code={version_code}&"
"version_name={version_name}&device_platform=android&ab_version={ab_version}&device_type={device_type}&"
"device_brand={device_brand}&language=zh&os_api={os_api}&os_version={os_version}&openudid={openudid}&fp=a_fake_fp&"
"manifest_version_code={manifest_version_code}&update_version_code={version_code_full}&_rticket={{TIMESTAMP:.0f}}&"
"_rticket={{TIMESTAMP:.0f}}&cdid_ts={{TIMESTAMP:.0f}}&tma_jssdk_version={tma_jssdk_version}&"
- "rom_version={rom_version}&oaid={oaid}&cdid={cdid}").format_map({**CUSTOM_INFO, **VERSION_INFO})
+ "rom_version={rom_version}&cdid={cdid}&oaid=a625f466e0975d42").format_map({**VERSION_INFO, **CUSTOM_INFO})
SEARCH_USER_API = (
"https://search-hl.ixigua.com/video/app/search/search_content/?format=json"
"&fss=search_subtab_switch&target_channel=video_search&keyword_type=search_subtab_switch&offset=0&count=10"
From 0b4068b9e9ceba64c7b84ca4d65ae0c9e3f6a8e9 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Tue, 12 Jan 2021 09:36:51 +0800
Subject: [PATCH 64/70] =?UTF-8?q?=E9=81=BF=E5=85=8D=E8=BE=93=E5=85=A5?=
=?UTF-8?q?=E4=BA=86=E6=8D=A2=E8=A1=8C=E5=AF=BC=E8=87=B4requests=E8=A3=82?=
=?UTF-8?q?=E5=BC=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common.py b/Common.py
index 36610f9..20856b4 100644
--- a/Common.py
+++ b/Common.py
@@ -305,7 +305,7 @@ def loginBilibili(force=False):
if os.path.exists('cookie'):
try:
with open('cookie', 'r', encoding='utf8') as f:
- _cookie = f.read(4096)
+ _cookie = f.readline().strip()
b = Bilibili(_cookie)
loginTime = datetime.now()
appendOperation("Cookie 登录")
From 30a91a38f9a5a7cd5c4528db888f8c40ab6bb06a Mon Sep 17 00:00:00 2001
From: root
Date: Tue, 12 Jan 2021 09:43:09 +0800
Subject: [PATCH 65/70] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 2 +-
liveDownloader.py | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/Common.py b/Common.py
index e825ec1..36610f9 100644
--- a/Common.py
+++ b/Common.py
@@ -328,8 +328,8 @@ class downloader(XiGuaLiveApi):
_result = super(downloader, self).updRoomInfo(force)
if _prev_status != self.isLive and not self.isLive:
resetDelay()
+ broadcaster = self.broadcaster
if _result:
- broadcaster = self.broadcaster
if self.isLive:
self.updPlayList()
else:
diff --git a/liveDownloader.py b/liveDownloader.py
index 54ddbf4..a99d9c0 100644
--- a/liveDownloader.py
+++ b/liveDownloader.py
@@ -5,9 +5,10 @@ import Common
import os
import requests
+session = requests.session()
+
def download():
- session = requests.session()
while Common.api.isLive and not Common.forceNotDownload:
if not Common.streamUrl:
Common.appendError("Download with No StreamUrl Specific")
@@ -68,7 +69,7 @@ def upload():
Common.appendError(e.__str__())
continue
finally:
- time.sleep(120)
+ time.sleep(90)
i = Common.uploadQueue.get()
Common.appendUploadStatus("Upload Daemon Quiting")
From 734a7204f874eacf5ca7efd22524bd07d08a38ed Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 30 Jan 2021 19:54:40 +0800
Subject: [PATCH 66/70] =?UTF-8?q?=E9=A2=9D=E5=A4=96=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common.py | 3 +
Struct/Chat.py | 40 +++++++
Struct/Digg.py | 0
Struct/Gift.py | 72 +++++++++++++
Struct/Lottery.py | 71 +++++++++++++
Struct/LuckyUser.py | 19 ++++
Struct/MemberMsg.py | 36 +++++++
Struct/User.py | 36 +++++--
api.py | 250 +++++++++++++++++++++++++++++++++++++++++---
9 files changed, 502 insertions(+), 25 deletions(-)
create mode 100644 Struct/Chat.py
create mode 100644 Struct/Digg.py
create mode 100644 Struct/Gift.py
create mode 100644 Struct/Lottery.py
create mode 100644 Struct/LuckyUser.py
create mode 100644 Struct/MemberMsg.py
diff --git a/Common.py b/Common.py
index 20856b4..14092a5 100644
--- a/Common.py
+++ b/Common.py
@@ -321,6 +321,9 @@ def loginBilibili(force=False):
class downloader(XiGuaLiveApi):
playlist = None
+ def _checkUsernameIsMatched(self, compare=None):
+ return True
+
def updRoomInfo(self, force=False):
global broadcaster
_prev_status = self.isLive
diff --git a/Struct/Chat.py b/Struct/Chat.py
new file mode 100644
index 0000000..b226dce
--- /dev/null
+++ b/Struct/Chat.py
@@ -0,0 +1,40 @@
+from .User import User
+from .Lottery import Lottery
+from XiguaMessage_pb2 import ChatMessage
+
+class Chat:
+ content = ""
+ user = None
+ filterString = ["", ]
+ isFiltered = False
+
+ def __init__(self, json=None, lottery: Lottery = None):
+ if lottery:
+ self.filterString.append(lottery.content)
+ if json:
+ if type(json) == bytes:
+ self.parsePb(json)
+ else:
+ self.parse(json)
+
+ def parsePb(self, raw):
+ _message = ChatMessage()
+ _message.ParseFromString(raw)
+ self.user = User(_message.user)
+ self.content = _message.content
+ if self.content in self.filterString:
+ self.isFiltered = True
+
+ 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
new file mode 100644
index 0000000..e69de29
diff --git a/Struct/Gift.py b/Struct/Gift.py
new file mode 100644
index 0000000..e154c99
--- /dev/null
+++ b/Struct/Gift.py
@@ -0,0 +1,72 @@
+import requests
+from .User import User
+from XiguaMessage_pb2 import GiftMessage
+
+
+class Gift:
+ giftList = {}
+
+ def __init__(self, json=None):
+ self.ID = 0
+ self.count = 0
+ self.user = None
+ self.isFinished = False
+ self.backupName = None
+ if json:
+ if type(json) == bytes:
+ self.parsePb(json)
+ else:
+ self.parse(json)
+
+ def parsePb(self, raw):
+ _message = GiftMessage()
+ _message.ParseFromString(raw)
+ self.user = User(_message.user)
+ self.ID = _message.giftId
+ self.count = _message.repeated
+ self.isFinished = _message.isFinished
+ self.backupName = _message.commonInfo.displayText.params.gifts.gift.name
+
+ def parse(self, json):
+ self.user = User(json)
+ 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']
+
+ def isAnimate(self):
+ if self.ID != 0 and self.ID in self.giftList:
+ if 'combo' in self.giftList[self.ID]:
+ return self.giftList[self.ID]["combo"] == False
+ elif 'meta' in self.giftList[self.ID] and 'combo' in self.giftList[self.ID]['meta']:
+ return self.giftList[self.ID]['meta']["combo"] == False
+ elif 'type' in self.giftList[self.ID]:
+ return self.giftList[self.ID]["type"] == 2
+ return False
+
+ def _getGiftName(self):
+ if self.ID in self.giftList:
+ return self.giftList[self.ID]["name"]
+ elif self.backupName is not None:
+ return self.backupName
+ else:
+ return "未知礼物[{}]".format(self.ID)
+
+ def __str__(self):
+ return "{user} 送出的 {count} 个 {name}".format(user=self.user, count=self.count, name=self._getGiftName())
+
+ def __unicode__(self):
+ return self.__str__()
+
+ def __repr__(self):
+ return "西瓜礼物【{}(ID:{})】".format(self._getGiftName(), self.ID)
+
+ @classmethod
+ def addGift(cls, _gift):
+ if 'id' not in _gift:
+ return
+ _id = int(_gift["id"])
+ cls.giftList[_id] = _gift
diff --git a/Struct/Lottery.py b/Struct/Lottery.py
new file mode 100644
index 0000000..e2d9eb8
--- /dev/null
+++ b/Struct/Lottery.py
@@ -0,0 +1,71 @@
+# 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
new file mode 100644
index 0000000..2fb195e
--- /dev/null
+++ b/Struct/LuckyUser.py
@@ -0,0 +1,19 @@
+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
new file mode 100644
index 0000000..2dcdeea
--- /dev/null
+++ b/Struct/MemberMsg.py
@@ -0,0 +1,36 @@
+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/Struct/User.py b/Struct/User.py
index 4db684c..d58acf8 100644
--- a/Struct/User.py
+++ b/Struct/User.py
@@ -1,15 +1,33 @@
-class User:
- ID = 0
- name = ""
- brand = ""
- level = 0
- type = 0
- block = False
- mute = False
+from XiguaUser_pb2 import User as UserPb
+
+class User:
def __init__(self, json=None):
+ self.ID = 0
+ self.name = ""
+ self.brand = ""
+ self.level = 0
+ self.type = 0
+ self.block = False
+ self.mute = False
if json:
- self.parse(json)
+ if type(json) == bytes:
+ self.parsePb(json)
+ elif type(json) == UserPb:
+ self.parseUserPb(json)
+ else:
+ self.parse(json)
+
+ def parseUserPb(self, _user):
+ self.ID = _user.id
+ self.name = _user.nickname
+ self.brand = _user.fansClub.fansClub.title
+ self.level = _user.fansClub.fansClub.level
+
+ def parsePb(self, raw):
+ _user = UserPb()
+ _user.ParseFromString(raw)
+ self.parseUserPb(_user)
def parse(self, json):
if "extra" in json:
diff --git a/api.py b/api.py
index dde4341..ab0c7bb 100644
--- a/api.py
+++ b/api.py
@@ -1,9 +1,15 @@
# coding=utf-8
+import sys
+from Struct.MemberMsg import MemberMsg
from Struct.User import User
+from Struct.Gift import Gift
+from Struct.Chat import Chat
import requests
import time
from datetime import datetime, timedelta
+from Xigua_pb2 import XiguaLive
+from XiguaMessage_pb2 import FansClubMessage, SocialMessage
DEBUG = False
# 自己抓的自己设备的参数,建议开发者自己抓一个长期使用
@@ -13,7 +19,7 @@ CUSTOM_INFO = {
'device_id': "55714661189",
'cdid': "ed4295e8-5d9a-4cb9-b2a2-04009a3baa2d",
'openudid': "70d6668d41512c39",
- # 'aid': "32", # 又是一个不变的值
+ # 'aid': "32", # 是一个不变的值
'channel': "xiaomi",
'device_brand': "Xiaomi",
'device_type': "MI+8+SE",
@@ -23,16 +29,14 @@ CUSTOM_INFO = {
}
VERSION_INFO = {
'app_name': "video_article",
- 'version_code': "926",
- 'version_code_full': "92609",
- 'version_name': "9.2.6",
- 'ab_version': "941090,785218,668858,1046292,1073579,830454,956074,929436,797199,1135476,1179370,994679,959010,"
- "900042,1113833,668854,1193963,901277,1043330,1038721,994822,1002058,1230687,1189797,1143356,1143441,"
- "1143501,1143698,1143713,1371009,1243997,1392586,1395695,1395486,1398858,668852,668856,668853,"
- "1186421,668851,668859,999124,668855,1039075",
- 'manifest_version_code': "518",
+ 'version_code': "942",
+ 'version_code_full': "94214",
+ 'version_name': "9.4.2",
+ 'ab_version': "668852,668853,668858,668851,668859,668856,668855,2358970,"
+ "668854,2393607,1477978,994679,2408463,2412359",
+ 'manifest_version_code': "542",
'tma_jssdk_version': "1830001",
- # 'oaid': "a625f466e0975d42", # 一个定值,几个版本换设备都没变过
+ 'oaid': "693ea85657ef38ca",
}
COMMON_GET_PARAM = (
"&iid={iid}&device_id={device_id}&channel={channel}&aid=32&app_name={app_name}&version_code={version_code}&"
@@ -40,7 +44,8 @@ COMMON_GET_PARAM = (
"device_brand={device_brand}&language=zh&os_api={os_api}&os_version={os_version}&openudid={openudid}&fp=a_fake_fp&"
"manifest_version_code={manifest_version_code}&update_version_code={version_code_full}&_rticket={{TIMESTAMP:.0f}}&"
"_rticket={{TIMESTAMP:.0f}}&cdid_ts={{TIMESTAMP:.0f}}&tma_jssdk_version={tma_jssdk_version}&"
- "rom_version={rom_version}&cdid={cdid}&oaid=a625f466e0975d42").format_map({**VERSION_INFO, **CUSTOM_INFO})
+ "rom_version={rom_version}&cdid={cdid}&oaid={oaid}").format_map({**VERSION_INFO, **CUSTOM_INFO})
+WEBCAST_GET_PARAMS = "webcast_sdk_version=1350&webcast_language=zh&webcast_locale=zh_CN"
SEARCH_USER_API = (
"https://search-hl.ixigua.com/video/app/search/search_content/?format=json"
"&fss=search_subtab_switch&target_channel=video_search&keyword_type=search_subtab_switch&offset=0&count=10"
@@ -49,15 +54,18 @@ SEARCH_USER_API = (
'&ab_param={{"is_show_filter_feature": 1, "is_hit_new_ui": 1}}'
"&search_start_time={TIMESTAMP:.0f}&from=live&en_qc=1&pd=xigua_live&ssmix=a{COMMON}&keyword={keyword}")
USER_INFO_API = "https://api100-quic-c-hl.ixigua.com/video/app/user/home/v7/?to_user_id={userId}{COMMON}"
-ROOM_INFO_API = ("https://webcast3-normal-c-hl.ixigua.com/webcast/room/enter/?room_id={roomId}&webcast_sdk_version=1350"
- "&webcast_language=zh&webcast_locale=zh_CN&pack_level=4{COMMON}")
+ROOM_INFO_API = "https://webcast3-normal-c-hl.ixigua.com/webcast/room/enter/?room_id={roomId}&pack_level=4{COMMON}"
+DANMAKU_GET_API = "https://webcast3-normal-c-hl.ixigua.com/webcast/im/fetch/?{WEBCAST}{COMMON}"
+GIFT_DATA_API = ("https://webcast3-normal-c-hl.ixigua.com/webcast/gift/list/?room_id={roomId}&to_room_id={roomId}&"
+ "gift_scene=1&fetch_giftlist_from=2¤t_network_quality_info={{}}&"
+ "{WEBCAST}{COMMON}")
COMMON_HEADERS = {
"sdk-version": '2',
- "passport-sdk-version": "19",
+ "passport-sdk-version": "21",
"X-SS-DP": "32",
+ "x-vc-bdturing-sdk-version": "2.0.1",
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 10) VideoArticle/9.2.6 cronet/TTNetVersion:828f6f3c 2020-09-06 "
"QuicVersion:7aee791b 2020-06-05",
- # 最好别加br,requests库好像自带没法解析
"Accept-Encoding": "gzip, deflate"
}
@@ -87,6 +95,7 @@ class XiGuaLiveApi:
self.isLive = False
self._rawRoomInfo = {}
self.roomID = 0
+ self.roomPopularity = 0
self.s = requests.session()
self.s.headers.update(COMMON_HEADERS)
self._updRoomAt = datetime.fromtimestamp(0)
@@ -94,6 +103,19 @@ class XiGuaLiveApi:
self._ext = ""
self._cursor = "0"
+ def _updateRoomPopularity(self, _data):
+ """
+ 更新房间人气的方法
+ Update Room Popularity
+ :param _data: Received Message
+ """
+ if "extra" in _data:
+ if "member_count" in _data["extra"] and _data["extra"]["member_count"] > 0:
+ self.roomPopularity = _data["extra"]["member_count"]
+ if "data" in _data:
+ if "popularity" in _data["data"]:
+ self.roomPopularity = _data["data"]["popularity"]
+
def getJson(self, url, **kwargs):
if "timeout" not in kwargs:
kwargs["timeout"] = 10
@@ -152,13 +174,93 @@ 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 _checkUsernameIsMatched(self, compare=None):
"""
验证主播名字是自己想要的那个
Check name matched
:return: bool: 是否匹配
"""
- return True
if compare is None:
compare = self.broadcaster
if self.name is None or compare is None:
@@ -258,6 +360,7 @@ class XiGuaLiveApi:
self._rawRoomInfo = d["data"]
self.isLive = d["data"]["status"] == 2
self._updRoomAt = datetime.now()
+ self._updateRoomPopularity(d)
return self.isLive
def updRoomInfo(self, force=False):
@@ -274,6 +377,121 @@ class XiGuaLiveApi:
else:
return self._getRoomInfo(force)
+ def updGiftInfo(self):
+ self.updRoomInfo()
+ _formatData = {"TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
+ _COMMON = COMMON_GET_PARAM.format_map(_formatData)
+ _formatData['COMMON'] = _COMMON
+ _formatData['WEBCAST'] = WEBCAST_GET_PARAMS
+ _url = GIFT_DATA_API.format_map(_formatData)
+ d = self.getJson(_url)
+ if d is None or d["status_code"] != 0:
+ return "异常"
+ elif 'pages' in d["data"]:
+ for _page in d["data"]['pages']:
+ if 'gifts' in _page:
+ for _gift in _page['gifts']:
+ Gift.addGift(_gift)
+ return len(Gift.giftList)
+
+ def getDanmaku(self):
+ """
+ 获取弹幕
+ """
+ self.updRoomInfo()
+ _formatData = {"TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
+ _COMMON = COMMON_GET_PARAM.format_map(_formatData)
+ _formatData['COMMON'] = _COMMON
+ _formatData['WEBCAST'] = WEBCAST_GET_PARAMS
+ _url = DANMAKU_GET_API.format_map(_formatData)
+ p = self.s.post(_url, data="room_id={roomId}&fetch_rule=0&cursor={cursor}&"
+ "resp_content_type=protobuf&live_id=3&user_id=0&identity=audience&"
+ "last_rtt=85&internal_ext={ext}"
+ .format_map({"roomId":self.roomID, "cursor": self._cursor, "ext": self._ext}),
+ headers={"Content-Type": "application/x-www-form-urlencoded"})
+ if p.status_code != 200:
+ return
+ data = XiguaLive()
+ data.ParseFromString(p.content)
+ self._cursor = data.cursor
+ self._ext = data.internal_ext
+ for _each in data.data:
+ if _each.method == "WebcastGiftMessage":
+ _gift = Gift(_each.raw)
+ if _gift.isAnimate() or _gift.isFinished:
+ self.onPresentEnd(_gift)
+ else:
+ self.onPresent(_gift)
+ elif _each.method == "WebcastChatMessage":
+ _chat = Chat(_each.raw)
+ self.onChat(_chat)
+ elif _each.method == "WebcastControlMessage":
+ # 下播的时候会有个这个
+ self.onLeave(None)
+ elif _each.method == "WebcastSocialMessage":
+ _socialMessage = SocialMessage()
+ _socialMessage.ParseFromString(_each.raw)
+ _user = User(_socialMessage.user)
+ self.onSubscribe(_user)
+ elif _each.method == "WebcastFansclubMessage":
+ _fansClubMessage = FansClubMessage()
+ _fansClubMessage.ParseFromString(_each.raw)
+ # 升级是1,加入是2
+ if _fansClubMessage.type == 2:
+ _user = User(_fansClubMessage.user)
+ self.onJoin(_user)
+ else:
+ self.onMessage(_fansClubMessage.content)
+ else:
+ pass
+
@property
def updateAt(self):
return self._updRoomAt
+
+
+def public_hello():
+ print("西瓜直播弹幕助手 by JerryYan")
+ print("接口版本:{version_name}({version_code_full})".format_map(VERSION_INFO))
+
+
+if __name__ == "__main__":
+ name = "永恒de草薙"
+ if len(sys.argv) > 2:
+ if sys.argv[-1] == "d":
+ DEBUG = True
+ name = sys.argv[1]
+ public_hello()
+ print("搜索【", name, "】", end="\t", flush=True)
+ api = XiGuaLiveApi(name)
+ if not api.isValidUser:
+ input("用户不存在")
+ sys.exit()
+ print("OK")
+ print(api.broadcaster.__repr__())
+ print("更新房间信息,请稍后", end="\t", flush=True)
+ if api.updRoomInfo(True):
+ print("OK")
+ else:
+ print("FAIL")
+ print("更新房间礼物信息", end="\t", flush=True)
+ __res = api.updGiftInfo()
+ if __res < 0:
+ print("FAIL")
+ else:
+ print('OK\n礼物种数:', __res)
+ 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("主播未开播,等待1分钟后重试")
+ time.sleep(60)
+ api.updRoomInfo(True)
From 11a73f1aca6288daec0bf7280363e57ee15b7e54 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sat, 30 Jan 2021 19:56:00 +0800
Subject: [PATCH 67/70] =?UTF-8?q?=E9=A2=9D=E5=A4=96=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
XiguaGift_pb2.py | 122 +++++++
XiguaMessage_pb2.py | 797 ++++++++++++++++++++++++++++++++++++++++++++
XiguaUser_pb2.py | 727 ++++++++++++++++++++++++++++++++++++++++
Xigua_pb2.py | 143 ++++++++
4 files changed, 1789 insertions(+)
create mode 100644 XiguaGift_pb2.py
create mode 100644 XiguaMessage_pb2.py
create mode 100644 XiguaUser_pb2.py
create mode 100644 Xigua_pb2.py
diff --git a/XiguaGift_pb2.py b/XiguaGift_pb2.py
new file mode 100644
index 0000000..b014283
--- /dev/null
+++ b/XiguaGift_pb2.py
@@ -0,0 +1,122 @@
+# -*- 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(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\"+\n\x08GiftPack\x12\n\n\x02id\x18\x01 \x02(\x05\x12\x13\n\x04gift\x18\x02 \x02(\x0b\x32\x05.Gift'
+)
+
+
+
+
+_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=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='name', full_name='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=19,
+ serialized_end=51,
+)
+
+
+_GIFTPACK = _descriptor.Descriptor(
+ name='GiftPack',
+ full_name='GiftPack',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='id', full_name='GiftPack.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='GiftPack.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=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=53,
+ serialized_end=96,
+)
+
+_GIFTPACK.fields_by_name['gift'].message_type = _GIFT
+DESCRIPTOR.message_types_by_name['Gift'] = _GIFT
+DESCRIPTOR.message_types_by_name['GiftPack'] = _GIFTPACK
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Gift = _reflection.GeneratedProtocolMessageType('Gift', (_message.Message,), {
+ 'DESCRIPTOR' : _GIFT,
+ '__module__' : 'XiguaGift_pb2'
+ # @@protoc_insertion_point(class_scope:Gift)
+ })
+_sym_db.RegisterMessage(Gift)
+
+GiftPack = _reflection.GeneratedProtocolMessageType('GiftPack', (_message.Message,), {
+ 'DESCRIPTOR' : _GIFTPACK,
+ '__module__' : 'XiguaGift_pb2'
+ # @@protoc_insertion_point(class_scope:GiftPack)
+ })
+_sym_db.RegisterMessage(GiftPack)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/XiguaMessage_pb2.py b/XiguaMessage_pb2.py
new file mode 100644
index 0000000..a88c6f7
--- /dev/null
+++ b/XiguaMessage_pb2.py
@@ -0,0 +1,797 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: XiguaMessage.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='XiguaMessage.proto',
+ package='',
+ syntax='proto2',
+ serialized_options=None,
+ serialized_pb=b'\n\x12XiguaMessage.proto\x1a\x0fXiguaUser.proto\x1a\x0fXiguaGift.proto\"*\n\x07Message\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\"f\n\x0f\x46\x61nsClubMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x0c\n\x04type\x18\x02 \x02(\x05\x12\x0f\n\x07\x63ontent\x18\x03 \x02(\t\x12\x13\n\x04user\x18\x04 \x02(\x0b\x32\x05.User\"U\n\x14\x46\x61nsClubStatsMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\r\n\x05title\x18\x02 \x02(\t\x12\r\n\x05\x63ount\x18\x03 \x02(\x05\"]\n\x0eUserSeqMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x16\n\x0epopularityText\x18\x04 \x02(\t\x12\x12\n\npopularity\x18\x06 \x02(\x05\"D\n\x10\x44\x61ilyRankMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x0f\n\x07ranking\x18\n \x02(\x05\"T\n\x0b\x43hatMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x13\n\x04user\x18\x02 \x02(\x0b\x32\x05.User\x12\x0f\n\x07\x63ontent\x18\x03 \x02(\t\"]\n\rMemberMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x13\n\x04user\x18\x02 \x02(\x0b\x32\x05.User\x12\x16\n\x0epopularityText\x18\x0e \x02(\t\"\xa1\x01\n\x0bGiftMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x0e\n\x06giftId\x18\x02 \x02(\x05\x12\x10\n\x08\x63ontent4\x18\x04 \x02(\x05\x12\x10\n\x08repeated\x18\x05 \x02(\x05\x12\r\n\x05\x63ombo\x18\x06 \x02(\x05\x12\x13\n\x04user\x18\x07 \x01(\x0b\x32\x05.User\x12\x19\n\nisFinished\x18\t \x01(\x08:\x05\x66\x61lse\"f\n\rSocialMessage\x12\x1f\n\ncommonInfo\x18\x01 \x02(\x0b\x32\x0b.CommonInfo\x12\x13\n\x04user\x18\x02 \x02(\x0b\x32\x05.User\x12\x0c\n\x04int4\x18\x04 \x02(\x05\x12\x11\n\tfansCount\x18\x06 \x02(\x05\"*\n\x05Style\x12\r\n\x05\x63olor\x18\x01 \x01(\t\x12\x12\n\nfontWeight\x18\x04 \x01(\x05\"q\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\x18\n\x05users\x18\x15 \x01(\x0b\x32\t.UserPack\x12\x18\n\x05gifts\x18\x16 \x01(\x0b\x32\t.GiftPack\"_\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 \x02(\x0b\x32\x07.Params\"\x87\x01\n\nCommonInfo\x12\x0e\n\x06method\x18\x01 \x02(\t\x12\x0e\n\x06msg_id\x18\x02 \x02(\x05\x12\x0f\n\x07room_id\x18\x03 \x02(\x05\x12\x13\n\x0b\x63reate_time\x18\x04 \x02(\x05\x12\x10\n\x08someEnum\x18\x06 \x01(\x05\x12!\n\x0b\x64isplayText\x18\x08 \x01(\x0b\x32\x0c.DisplayText'
+ ,
+ dependencies=[XiguaUser__pb2.DESCRIPTOR,XiguaGift__pb2.DESCRIPTOR,])
+
+
+
+
+_MESSAGE = _descriptor.Descriptor(
+ name='Message',
+ full_name='Message',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=56,
+ serialized_end=98,
+)
+
+
+_FANSCLUBMESSAGE = _descriptor.Descriptor(
+ name='FansClubMessage',
+ full_name='FansClubMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='FansClubMessage.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='type', full_name='FansClubMessage.type', index=1,
+ number=2, 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='content', full_name='FansClubMessage.content', index=2,
+ 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='user', full_name='FansClubMessage.user', index=3,
+ number=4, 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=100,
+ serialized_end=202,
+)
+
+
+_FANSCLUBSTATSMESSAGE = _descriptor.Descriptor(
+ name='FansClubStatsMessage',
+ full_name='FansClubStatsMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='FansClubStatsMessage.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='title', full_name='FansClubStatsMessage.title', 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='count', full_name='FansClubStatsMessage.count', 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=204,
+ serialized_end=289,
+)
+
+
+_USERSEQMESSAGE = _descriptor.Descriptor(
+ name='UserSeqMessage',
+ full_name='UserSeqMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='UserSeqMessage.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='popularityText', full_name='UserSeqMessage.popularityText', index=1,
+ 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='popularity', full_name='UserSeqMessage.popularity', index=2,
+ 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=291,
+ serialized_end=384,
+)
+
+
+_DAILYRANKMESSAGE = _descriptor.Descriptor(
+ name='DailyRankMessage',
+ full_name='DailyRankMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='DailyRankMessage.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='ranking', full_name='DailyRankMessage.ranking', index=1,
+ number=10, 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=386,
+ serialized_end=454,
+)
+
+
+_CHATMESSAGE = _descriptor.Descriptor(
+ name='ChatMessage',
+ full_name='ChatMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='ChatMessage.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='user', full_name='ChatMessage.user', 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),
+ _descriptor.FieldDescriptor(
+ name='content', full_name='ChatMessage.content', index=2,
+ 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=456,
+ serialized_end=540,
+)
+
+
+_MEMBERMESSAGE = _descriptor.Descriptor(
+ name='MemberMessage',
+ full_name='MemberMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='MemberMessage.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='user', full_name='MemberMessage.user', 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),
+ _descriptor.FieldDescriptor(
+ name='popularityText', full_name='MemberMessage.popularityText', index=2,
+ number=14, 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=542,
+ serialized_end=635,
+)
+
+
+_GIFTMESSAGE = _descriptor.Descriptor(
+ name='GiftMessage',
+ full_name='GiftMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='GiftMessage.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='giftId', full_name='GiftMessage.giftId', index=1,
+ number=2, 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='content4', full_name='GiftMessage.content4', 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='repeated', full_name='GiftMessage.repeated', index=3,
+ number=5, 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='combo', full_name='GiftMessage.combo', index=4,
+ 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='user', full_name='GiftMessage.user', index=5,
+ number=7, 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='isFinished', full_name='GiftMessage.isFinished', index=6,
+ number=9, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ 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=638,
+ serialized_end=799,
+)
+
+
+_SOCIALMESSAGE = _descriptor.Descriptor(
+ name='SocialMessage',
+ full_name='SocialMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonInfo', full_name='SocialMessage.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='user', full_name='SocialMessage.user', 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),
+ _descriptor.FieldDescriptor(
+ name='int4', full_name='SocialMessage.int4', 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='fansCount', full_name='SocialMessage.fansCount', index=3,
+ 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=801,
+ serialized_end=903,
+)
+
+
+_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=905,
+ serialized_end=947,
+)
+
+
+_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='users', full_name='Params.users', 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='gifts', full_name='Params.gifts', 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=949,
+ serialized_end=1062,
+)
+
+
+_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=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=1064,
+ serialized_end=1159,
+)
+
+
+_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=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='msg_id', full_name='CommonInfo.msg_id', index=1,
+ number=2, 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='room_id', full_name='CommonInfo.room_id', 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),
+ _descriptor.FieldDescriptor(
+ name='create_time', full_name='CommonInfo.create_time', index=3,
+ 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='someEnum', full_name='CommonInfo.someEnum', 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='displayText', full_name='CommonInfo.displayText', index=5,
+ 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=1162,
+ serialized_end=1297,
+)
+
+_MESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_FANSCLUBMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_FANSCLUBMESSAGE.fields_by_name['user'].message_type = XiguaUser__pb2._USER
+_FANSCLUBSTATSMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_USERSEQMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_DAILYRANKMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_CHATMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_CHATMESSAGE.fields_by_name['user'].message_type = XiguaUser__pb2._USER
+_MEMBERMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_MEMBERMESSAGE.fields_by_name['user'].message_type = XiguaUser__pb2._USER
+_GIFTMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_GIFTMESSAGE.fields_by_name['user'].message_type = XiguaUser__pb2._USER
+_SOCIALMESSAGE.fields_by_name['commonInfo'].message_type = _COMMONINFO
+_SOCIALMESSAGE.fields_by_name['user'].message_type = XiguaUser__pb2._USER
+_PARAMS.fields_by_name['style'].message_type = _STYLE
+_PARAMS.fields_by_name['users'].message_type = XiguaUser__pb2._USERPACK
+_PARAMS.fields_by_name['gifts'].message_type = XiguaGift__pb2._GIFTPACK
+_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['Message'] = _MESSAGE
+DESCRIPTOR.message_types_by_name['FansClubMessage'] = _FANSCLUBMESSAGE
+DESCRIPTOR.message_types_by_name['FansClubStatsMessage'] = _FANSCLUBSTATSMESSAGE
+DESCRIPTOR.message_types_by_name['UserSeqMessage'] = _USERSEQMESSAGE
+DESCRIPTOR.message_types_by_name['DailyRankMessage'] = _DAILYRANKMESSAGE
+DESCRIPTOR.message_types_by_name['ChatMessage'] = _CHATMESSAGE
+DESCRIPTOR.message_types_by_name['MemberMessage'] = _MEMBERMESSAGE
+DESCRIPTOR.message_types_by_name['GiftMessage'] = _GIFTMESSAGE
+DESCRIPTOR.message_types_by_name['SocialMessage'] = _SOCIALMESSAGE
+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)
+
+Message = _reflection.GeneratedProtocolMessageType('Message', (_message.Message,), {
+ 'DESCRIPTOR' : _MESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:Message)
+ })
+_sym_db.RegisterMessage(Message)
+
+FansClubMessage = _reflection.GeneratedProtocolMessageType('FansClubMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _FANSCLUBMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:FansClubMessage)
+ })
+_sym_db.RegisterMessage(FansClubMessage)
+
+FansClubStatsMessage = _reflection.GeneratedProtocolMessageType('FansClubStatsMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _FANSCLUBSTATSMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:FansClubStatsMessage)
+ })
+_sym_db.RegisterMessage(FansClubStatsMessage)
+
+UserSeqMessage = _reflection.GeneratedProtocolMessageType('UserSeqMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _USERSEQMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:UserSeqMessage)
+ })
+_sym_db.RegisterMessage(UserSeqMessage)
+
+DailyRankMessage = _reflection.GeneratedProtocolMessageType('DailyRankMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _DAILYRANKMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:DailyRankMessage)
+ })
+_sym_db.RegisterMessage(DailyRankMessage)
+
+ChatMessage = _reflection.GeneratedProtocolMessageType('ChatMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _CHATMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:ChatMessage)
+ })
+_sym_db.RegisterMessage(ChatMessage)
+
+MemberMessage = _reflection.GeneratedProtocolMessageType('MemberMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _MEMBERMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:MemberMessage)
+ })
+_sym_db.RegisterMessage(MemberMessage)
+
+GiftMessage = _reflection.GeneratedProtocolMessageType('GiftMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _GIFTMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:GiftMessage)
+ })
+_sym_db.RegisterMessage(GiftMessage)
+
+SocialMessage = _reflection.GeneratedProtocolMessageType('SocialMessage', (_message.Message,), {
+ 'DESCRIPTOR' : _SOCIALMESSAGE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:SocialMessage)
+ })
+_sym_db.RegisterMessage(SocialMessage)
+
+Style = _reflection.GeneratedProtocolMessageType('Style', (_message.Message,), {
+ 'DESCRIPTOR' : _STYLE,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:Style)
+ })
+_sym_db.RegisterMessage(Style)
+
+Params = _reflection.GeneratedProtocolMessageType('Params', (_message.Message,), {
+ 'DESCRIPTOR' : _PARAMS,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:Params)
+ })
+_sym_db.RegisterMessage(Params)
+
+DisplayText = _reflection.GeneratedProtocolMessageType('DisplayText', (_message.Message,), {
+ 'DESCRIPTOR' : _DISPLAYTEXT,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:DisplayText)
+ })
+_sym_db.RegisterMessage(DisplayText)
+
+CommonInfo = _reflection.GeneratedProtocolMessageType('CommonInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _COMMONINFO,
+ '__module__' : 'XiguaMessage_pb2'
+ # @@protoc_insertion_point(class_scope:CommonInfo)
+ })
+_sym_db.RegisterMessage(CommonInfo)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/XiguaUser_pb2.py b/XiguaUser_pb2.py
new file mode 100644
index 0000000..8c0a2f4
--- /dev/null
+++ b/XiguaUser_pb2.py
@@ -0,0 +1,727 @@
+# -*- 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\"\x1f\n\x08UserPack\x12\x13\n\x04user\x18\x01 \x02(\x0b\x32\x05.User\"\xb6\x01\n\x05\x42\x61\x64ge\x12\x0b\n\x03url\x18\x01 \x03(\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\x12.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\"y\n\x0c\x46\x61nsClubPack\x12(\n\x08\x66\x61nsClub\x18\x01 \x02(\x0b\x32\x16.FansClubPack.FansClub\x1a?\n\x08\x46\x61nsClub\x12\x0f\n\x05title\x18\x01 \x02(\t:\x00\x12\x10\n\x05level\x18\x02 \x02(\x05:\x01\x30\x12\x10\n\x08someEnum\x18\x03 \x01(\x05\"\xd8\x05\n\x04User\x12\n\n\x02id\x18\x01 \x02(\x03\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\x15\n\x05\x62\x61\x64ge\x18\x15 \x03(\x0b\x32\x06.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\x1f\n\x08\x66\x61nsClub\x18\x18 \x02(\x0b\x32\r.FansClubPack\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\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\x9c\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\x15\n\x05\x62\x61\x64ge\x18\x13 \x02(\x0b\x32\x06.Badge\x12\x17\n\x0ftoNextLevelNeed\x18\x15 \x01(\x05\x1a#\n\nHonorLevel\x12\x15\n\x05\x62\x61\x64ge\x18\x13 \x02(\x0b\x32\x06.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'
+)
+
+
+
+
+_USERPACK = _descriptor.Descriptor(
+ name='UserPack',
+ full_name='UserPack',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='user', full_name='UserPack.user', 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=19,
+ serialized_end=50,
+)
+
+
+_BADGE_FANCLUBTEXT = _descriptor.Descriptor(
+ name='FanClubText',
+ full_name='Badge.FanClubText',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='text', full_name='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='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='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=178,
+ serialized_end=235,
+)
+
+_BADGE = _descriptor.Descriptor(
+ name='Badge',
+ full_name='Badge',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='url', full_name='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='height', full_name='Badge.height', index=1,
+ 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='Badge.width', index=2,
+ 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='Badge.type', index=3,
+ 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='Badge.clickTo', index=4,
+ 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='Badge.fanClubText', index=5,
+ 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=[_BADGE_FANCLUBTEXT, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=53,
+ serialized_end=235,
+)
+
+
+_FANSCLUBPACK_FANSCLUB = _descriptor.Descriptor(
+ name='FansClub',
+ full_name='FansClubPack.FansClub',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='title', full_name='FansClubPack.FansClub.title', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=True, 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='FansClubPack.FansClub.level', index=1,
+ number=2, type=5, cpp_type=1, label=2,
+ 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='someEnum', full_name='FansClubPack.FansClub.someEnum', 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=295,
+ serialized_end=358,
+)
+
+_FANSCLUBPACK = _descriptor.Descriptor(
+ name='FansClubPack',
+ full_name='FansClubPack',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='fansClub', full_name='FansClubPack.fansClub', 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[_FANSCLUBPACK_FANSCLUB, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=237,
+ serialized_end=358,
+)
+
+
+_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=660,
+ serialized_end=693,
+)
+
+_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=695,
+ serialized_end=746,
+)
+
+_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=749,
+ serialized_end=905,
+)
+
+_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=907,
+ serialized_end=942,
+)
+
+_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=1014,
+ serialized_end=1089,
+)
+
+_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=945,
+ serialized_end=1089,
+)
+
+_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=3, cpp_type=2, 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='fansClub', full_name='User.fansClub', index=9,
+ number=24, 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=10,
+ 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_FOLLOW, _USER_PAYGRADE, _USER_HONORLEVEL, _USER_NOBLE, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=361,
+ serialized_end=1089,
+)
+
+_USERPACK.fields_by_name['user'].message_type = _USER
+_BADGE_FANCLUBTEXT.containing_type = _BADGE
+_BADGE.fields_by_name['fanClubText'].message_type = _BADGE_FANCLUBTEXT
+_FANSCLUBPACK_FANSCLUB.containing_type = _FANSCLUBPACK
+_FANSCLUBPACK.fields_by_name['fansClub'].message_type = _FANSCLUBPACK_FANSCLUB
+_USER_AVATAR.containing_type = _USER
+_USER_FOLLOW.containing_type = _USER
+_USER_PAYGRADE.fields_by_name['badge'].message_type = _BADGE
+_USER_PAYGRADE.containing_type = _USER
+_USER_HONORLEVEL.fields_by_name['badge'].message_type = _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 = _BADGE
+_USER.fields_by_name['follow'].message_type = _USER_FOLLOW
+_USER.fields_by_name['payGrade'].message_type = _USER_PAYGRADE
+_USER.fields_by_name['fansClub'].message_type = _FANSCLUBPACK
+DESCRIPTOR.message_types_by_name['UserPack'] = _USERPACK
+DESCRIPTOR.message_types_by_name['Badge'] = _BADGE
+DESCRIPTOR.message_types_by_name['FansClubPack'] = _FANSCLUBPACK
+DESCRIPTOR.message_types_by_name['User'] = _USER
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+UserPack = _reflection.GeneratedProtocolMessageType('UserPack', (_message.Message,), {
+ 'DESCRIPTOR' : _USERPACK,
+ '__module__' : 'XiguaUser_pb2'
+ # @@protoc_insertion_point(class_scope:UserPack)
+ })
+_sym_db.RegisterMessage(UserPack)
+
+Badge = _reflection.GeneratedProtocolMessageType('Badge', (_message.Message,), {
+
+ 'FanClubText' : _reflection.GeneratedProtocolMessageType('FanClubText', (_message.Message,), {
+ 'DESCRIPTOR' : _BADGE_FANCLUBTEXT,
+ '__module__' : 'XiguaUser_pb2'
+ # @@protoc_insertion_point(class_scope:Badge.FanClubText)
+ })
+ ,
+ 'DESCRIPTOR' : _BADGE,
+ '__module__' : 'XiguaUser_pb2'
+ # @@protoc_insertion_point(class_scope:Badge)
+ })
+_sym_db.RegisterMessage(Badge)
+_sym_db.RegisterMessage(Badge.FanClubText)
+
+FansClubPack = _reflection.GeneratedProtocolMessageType('FansClubPack', (_message.Message,), {
+
+ 'FansClub' : _reflection.GeneratedProtocolMessageType('FansClub', (_message.Message,), {
+ 'DESCRIPTOR' : _FANSCLUBPACK_FANSCLUB,
+ '__module__' : 'XiguaUser_pb2'
+ # @@protoc_insertion_point(class_scope:FansClubPack.FansClub)
+ })
+ ,
+ 'DESCRIPTOR' : _FANSCLUBPACK,
+ '__module__' : 'XiguaUser_pb2'
+ # @@protoc_insertion_point(class_scope:FansClubPack)
+ })
+_sym_db.RegisterMessage(FansClubPack)
+_sym_db.RegisterMessage(FansClubPack.FansClub)
+
+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)
+ })
+ ,
+
+ '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.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
new file mode 100644
index 0000000..7344782
--- /dev/null
+++ b/Xigua_pb2.py
@@ -0,0 +1,143 @@
+# -*- 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()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='Xigua.proto',
+ package='',
+ syntax='proto2',
+ serialized_options=None,
+ serialized_pb=b'\n\x0bXigua.proto\"\x9a\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\x0b\n\x03raw\x18\x02 \x02(\x0c'
+)
+
+
+
+
+_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='raw', full_name='XiguaLive.Data.raw', index=1,
+ number=2, type=12, cpp_type=9, label=2,
+ has_default_value=False, default_value=b"",
+ 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=135,
+ serialized_end=170,
+)
+
+_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=16,
+ serialized_end=170,
+)
+
+_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,), {
+ '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)
+
+
+# @@protoc_insertion_point(module_scope)
From 821244a0c5b66ca57eaf69df4fda1b3042117a62 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Mon, 1 Feb 2021 10:51:25 +0800
Subject: [PATCH 68/70] =?UTF-8?q?=E9=81=BF=E5=85=8D=E6=97=A0=E6=B3=95?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/api.py b/api.py
index ab0c7bb..94f1b12 100644
--- a/api.py
+++ b/api.py
@@ -282,6 +282,7 @@ class XiGuaLiveApi:
return False
self.broadcaster = None
self.isValidUser = False
+ self.isLive = False
if "data" in d and d["data"] is not None:
for i in d["data"]:
if self.broadcaster is not None:
@@ -310,6 +311,7 @@ class XiGuaLiveApi:
if self.broadcaster is None:
self.isValidUser = False
return False
+ self.isLive = False
_formatData = {"TIMESTAMP": time.time() * 1000, "userId": self.broadcaster.ID}
_COMMON = COMMON_GET_PARAM.format_map(_formatData)
_formatData['COMMON'] = _COMMON
@@ -346,6 +348,7 @@ class XiGuaLiveApi:
return False
if (self._updRoomAt + timedelta(minutes=3) > datetime.now()) and not force:
return self.isLive
+ self.isLive = False
_formatData = {"TIMESTAMP": time.time() * 1000, "roomId": self.roomID}
_COMMON = COMMON_GET_PARAM.format_map(_formatData)
_formatData['COMMON'] = _COMMON
From 8a810d18691b84301a09540996794f4a2bf4ca60 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Thu, 8 Apr 2021 11:36:51 +0800
Subject: [PATCH 69/70] SB bootcdn
---
templates/head.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/templates/head.html b/templates/head.html
index c9f310b..b67ab28 100644
--- a/templates/head.html
+++ b/templates/head.html
@@ -1,5 +1,5 @@
-
+