MCPcopy Create free account
hub / github.com/OreosLab/bili / run

Method run

src/main/java/top/misec/task/GiveGift.java:19–74  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

17public class GiveGift implements Task {
18
19 @Override
20 public void run() {
21 try {
22 /* 从配置类中读取是否需要执行赠送礼物 */
23 if (!Boolean.TRUE.equals(ConfigLoader.helperConfig.getTaskConfig().getGiveGift())) {
24 log.info("未开启自动送出即将过期礼物功能");
25 return;
26 }
27 /* 直播间 id */
28 String roomId = "";
29 /* 直播间 uid 即 up 的 id*/
30 String uid = "";
31 /* B站后台时间戳为10位 */
32 long nowTime = System.currentTimeMillis() / 1000;
33 /* 获得礼物列表 */
34 JsonArray jsonArray = xliveGiftBagList();
35 /* 判断是否有过期礼物出现 */
36 boolean flag = true;
37 for (Object object : jsonArray) {
38 JsonObject json = (JsonObject) object;
39 long expireAt = Long.parseLong(json.get("expire_at").getAsString());
40 /* 礼物还剩 1 天送出 */
41 /* 永久礼物到期时间为 0 */
42 if ((expireAt - nowTime) < 60 * 60 * 25 && expireAt != 0) {
43 /* 如果有未送出的礼物,则获取一个直播间 */
44 if ("".equals(roomId)) {
45 JsonObject uidAndRid = getuidAndRid();
46 uid = uidAndRid.get("uid").getAsString();
47 roomId = uidAndRid.get("roomid").getAsString();
48 }
49
50 String requestBody = "biz_id=" + roomId
51 + "&ruid=" + uid
52 + "&bag_id=" + json.get("bag_id")
53 + "&gift_id=" + json.get("gift_id")
54 + "&gift_num=" + json.get("gift_num");
55 JsonObject jsonObject3 = xliveBagSend(requestBody);
56 if ("0".equals(jsonObject3.get("code").getAsString())) {
57 /* 礼物的名字 */
58 String giftName = jsonObject3.get("data").getAsJsonObject().get("gift_name").getAsString();
59 /* 礼物的数量 */
60 String giftNum = jsonObject3.get("data").getAsJsonObject().get("gift_num").getAsString();
61 log.info("给直播间 - {} - {} - 数量: {}✔", roomId, giftName, giftNum);
62 flag = false;
63 } else {
64 log.warn("送礼失败, 原因 : {}❌", jsonObject3);
65 }
66 }
67 }
68 if (flag) {
69 log.info("当前无即将过期礼物❌");
70 }
71 } catch (Exception e) {
72 log.error("💔赠送礼物异常 : ", e);
73 }
74 }
75
76 /**

Callers

nothing calls this directly

Calls 3

xliveGiftBagListMethod · 0.95
getuidAndRidMethod · 0.95
xliveBagSendMethod · 0.95

Tested by

no test coverage detected