-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlive.py
79 lines (68 loc) · 2.09 KB
/
live.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"""
直播相关的api
"""
import os
import time
from utils import init
def getRoomInfo(s, room_id):
"""
获取房间信息
:param s: session
:param room_id: 显示的房间ID
:return: data字典
"""
url = "https://api.live.bilibili.com/xlive/web-room" \
"/v1/index/getRoomPlayInfo?room_id={}".format(room_id)
r = s.get(url)
return r.json()["data"]
def getDanMuCong(s, room_id):
"""
获取弹幕服务器信息
:param s: session
:param room_id: 显示的房间ID
:return: data字典
"""
url = "https://api.live.bilibili.com/room/v1/Danmu/getConf?room_id={}".format(room_id)
r = s.get(url).json()
return r["data"]
def getBagList(s, room_id):
r = s.get("https://api.live.bilibili.com/xlive/web-room/v1/gift/bag_list?room_id={}".format(room_id))
return r.json()["data"]["list"]
def sendWillExpireGift(s, room_info, bage_info):
# 将包裹中时间快到期的包裹送出
count = 0
t = int(time.time())
daySecond = 24 * 60 * 60
data = {"uid": os.environ["DEDEUSERID"],
"gift_id": 1,
"ruid": room_info["uid"],
"gift_num": 1,
"bag_id": 221873830,
"biz_id": room_info["room_id"],
"csrf_token": os.environ["BILI_JCT"]
}
# 判断过期
for g in bage_info:
if (g["expire_at"] - t) / daySecond < 1:
# 送出礼物
data["gift_id"] = g["gift_id"]
data["gift_num"] = g["gift_num"]
data["bag_id"] = g["bag_id"]
r = s.post("https://api.live.bilibili.com/gift/v2/live/bag_send", data=data)
count += 1
print(r.json())
print("送出将过期礼物{}".format(count))
def sign(s):
"""
签到
:param s:
:return:
"""
r = s.get("https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign")
print(r.json())
if __name__ == '__main__':
s, api = init.init()
sign(s)
room_info = getRoomInfo(s, os.environ["ROOM_ID"])
bag_info = getBagList(s, os.environ["ROOM_ID"])
sendWillExpireGift(s, room_info, bag_info)