54 lines
2.0 KiB
Python
54 lines
2.0 KiB
Python
import requests
|
|
from User import User
|
|
|
|
|
|
class Gift:
|
|
ID:int = 0
|
|
count:int = 0
|
|
roomID:int = 0
|
|
giftList:dict = {}
|
|
amount:int = 0
|
|
user:User = None
|
|
|
|
def __init__(self, json=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=730&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__() |