shawenguan 1 år sedan
förälder
incheckning
256c4c41d9
1 ändrade filer med 202 tillägg och 201 borttagningar
  1. 202 201
      Scripts/bilibili/bilibiliHelper.js

+ 202 - 201
Scripts/bilibili/bilibiliHelper.js

@@ -431,210 +431,211 @@ async function signBiliBili() {
 //     });
 // }
 
-// async function share(aid, cid, short_link) {
-//     return new Promise((resolve, reject) => {
-//         magicJS.logger.info("2️⃣ 分享任务");
-//         if (check("share")) {
-//             magicJS.logger.info("- 正在分享, aid=" + aid);
-//             const body = {
-//                 access_key: config.key.replace(/&actionKey=.*?&appkey=.*$/, ''),
-//                 actionKey: 'appkey',
-//                 appkey: '27eb53fc9058f8c3',
-//                 build: '72700100',
-//                 c_locale: 'zh-Hans_CN',
-//                 device: 'phone',
-//                 disable_rcmd: 0,
-//                 link: short_link,
-//                 mobi_app: 'iphone',
-//                 object_extra_fields: '%7B%7D',
-//                 oid: aid,
-//                 panel_type: 1,
-//                 platform: 'ios',
-//                 s_locale:'zh-Hans_CN',
-//                 share_channel: 'WEIXIN',
-//                 share_id: 'main.ugc-video-detail.0.0.pv',
-//                 share_origin: 'vinfo_share',
-//                 sid: cid,
-//                 spm_id: 'main.ugc-video-detail.0.0',
-//                 statistics: '%7B%22appId%22%3A1%2C%22version%22%3A%227.27.0%22%2C%22abtest%22%3A%22%22%2C%22platform%22%3A1%7D',
-//                 success: 1,
-//                 ts: getTimestamp()
-//             }
-//             const sign = md5(magicJS.objToQueryStr(body) + 'c2ed53a74eeefe3cf99fbd01d8c9c375');
-//             body['sign'] = sign;
-//             const myRequest = {
-//                 url: 'https://api.bilibili.com/x/share/finish',
-//                 headers: {},
-//                 body: magicJS.objToQueryStr(Object.fromEntries(new Map(Array.from(Object.entries(body)).sort())))
-//             };
-//             magicJS.http.post(myRequest).then(response => {
-//                 const body = response.body;
-//                 if (body?.code === 0) {
-//                     config.share.num = (config.share.num || 0) + 1;
-//                     magicJS.logger.info("- 分享成功");
-//                     magicJS.data.write("bilibili_daily_bonus", magicJS.toStr(config));
-//                 } else {
-//                     magicJS.logger.info("- 分享失败, 失败原因: " + body?.message);
-//                 }
-//                 resolve(body);
-//             }).catch(err => {
-//                 const msg = `分享异常\n${JSON.stringify(err)}`;
-//                 magicJS.logger.error(msg);
-//                 reject();
-//             });
-//         } else {
-//             magicJS.logger.info(`- 今日已经分享 ${config.share.time}`);
-//             resolve();
-//         }
-//     });
-// }
+async function share(aid, cid, short_link) {
+    return new Promise((resolve, reject) => {
+        magicJS.logger.info("2️⃣ 分享任务");
+        if (check("share")) {
+            magicJS.logger.info("- 正在分享, aid=" + aid);
+            const body = {
+                access_key: config.key.replace(/&actionKey=.*?&appkey=.*$/, ''),
+                actionKey: 'appkey',
+                appkey: '27eb53fc9058f8c3',
+                build: '72700100',
+                c_locale: 'zh-Hans_CN',
+                device: 'phone',
+                disable_rcmd: 0,
+                link: short_link,
+                mobi_app: 'iphone',
+                object_extra_fields: '%7B%7D',
+                oid: aid,
+                panel_type: 1,
+                platform: 'ios',
+                s_locale:'zh-Hans_CN',
+                share_channel: 'WEIXIN',
+                share_id: 'main.ugc-video-detail.0.0.pv',
+                share_origin: 'vinfo_share',
+                sid: cid,
+                spm_id: 'main.ugc-video-detail.0.0',
+                statistics: '%7B%22appId%22%3A1%2C%22version%22%3A%227.27.0%22%2C%22abtest%22%3A%22%22%2C%22platform%22%3A1%7D',
+                success: 1,
+                ts: getTimestamp()
+            }
+            const sign = md5(magicJS.objToQueryStr(body) + 'c2ed53a74eeefe3cf99fbd01d8c9c375');
+            body['sign'] = sign;
+            const myRequest = {
+                url: 'https://api.bilibili.com/x/share/finish',
+                headers: {},
+                body: magicJS.objToQueryStr(Object.fromEntries(new Map(Array.from(Object.entries(body)).sort())))
+            };
+            magicJS.http.post(myRequest).then(response => {
+                const body = response.body;
+                if (body?.code === 0) {
+                    config.share.num = (config.share.num || 0) + 1;
+                    magicJS.logger.info("- 分享成功");
+                    magicJS.data.write("bilibili_daily_bonus", magicJS.toStr(config));
+                } else {
+                    magicJS.logger.info("- 分享失败, 失败原因: " + body?.message);
+                }
+                resolve(body);
+            }).catch(err => {
+                const msg = `分享异常\n${JSON.stringify(err)}`;
+                magicJS.logger.error(msg);
+                reject();
+            });
+        } else {
+            magicJS.logger.info(`- 今日已经分享 ${config.share.time}`);
+            resolve();
+        }
+    });
+}
 
-// async function coin() {
-//     return new Promise((resolve, reject) => {
-//         if (config.coins.num >= 50) {
-//             magicJS.logger.info(`- 今日已完成 ${config.coins.time}`);
-//             resolve();
-//             return;
-//         }
-//         let like_uid_list = await getFavUid()
-//         if (like_uid_list && like_uid_list.length > 0) {
-//             let aid = await getFavAid(like_uid_list)
-//             //magicJS.logger.info("即将投币的视频aid: " + aid)
-//             if (aid !== 0) {
-//                 const body = {
-//                     aid,
-//                     multiply: 1,
-//                     select_like: 0,
-//                     cross_domain: true,
-//                     csrf: config.cookie.bili_jct
-//                 }
-//                 const myRequest = {
-//                     url: "https://api.bilibili.com/x/web-interface/coin/add",
-//                     headers: {
-//                         'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
-//                         'accept': 'application/json, text/plain, */*',
-//                         'content-type': 'application/x-www-form-urlencoded',
-//                         'origin': 'https://www.bilibili.com',
-//                         'referer': 'https://www.bilibili.com/video/BV1MT411G7fG?vd_source=1970993e2eff4af7be029aefcfa468b8',
-//                         'cookie': config.cookieStr + ';buvid3=fuckchenruilovelaoliu'
-//                     },
-//                     body: magicJS.objToQueryStr(body)
-//                 }
-//                 magicJS.http.post(myRequest).then(async response => {
-//                     try {
-//                         const body = response.body;
-//                         if (body?.code === 0 && body?.message === "0") {
-//                             magicJS.logger.info("- 投币成功");
-//                             config.user.money -= 1;
-//                             config.coins.num += 10;
-//                             magicJS.data.write("bilibili_daily_bonus", magicJS.toStr(config));
-//                         } else {
-//                             magicJS.logger.info("- 投币失败,失败原因 " + body.message);
-//                             config.coins.failures = (config.coins.failures === 0 || typeof config.coins.failures === 'undefined' ? 1 : config.coins.failures + 1);
-//                             magicJS.data.write("bilibili_daily_bonus", magicJS.toStr(config));
-//                             if (config.coins.failures < 11) {
-//                                 magicJS.logger.info("- 正在重试...重试次数 " + (config.coins.failures - 1) + "(超过十次不再重试)");
-//                                 await coin();
-//                             }
-//                         }
-//                     } catch (e) {
-//                         magicJS.logger.error(e);
-//                     }
-//                     resolve();
-//                 }).catch(err => {
-//                     const msg = `投币异常\n${JSON.stringify(err)}`;
-//                     magicJS.logger.error(msg);
-//                     reject();
-//                 });
-//             } else {
-//                 magicJS.logger.info("获取随机投币视频失败");
-//                 resolve();
-//             }
-//         } else {
-//             magicJS.logger.info("获取随机关注用户列表失败");
-//             resolve();
-//         }
-//     });
-// }
+async function coin() {
+    return new Promise((resolve, reject) => {
+        if (config.coins.num >= 50) {
+            magicJS.logger.info(`- 今日已完成 ${config.coins.time}`);
+            resolve();
+            return;
+        }
+        let like_uid_list = await getFavUid()
+        if (like_uid_list && like_uid_list.length > 0) {
+            let aid = await getFavAid(like_uid_list)
+            //magicJS.logger.info("即将投币的视频aid: " + aid)
+            if (aid !== 0) {
+                const body = {
+                    aid,
+                    multiply: 1,
+                    select_like: 0,
+                    cross_domain: true,
+                    csrf: config.cookie.bili_jct
+                }
+                const myRequest = {
+                    url: "https://api.bilibili.com/x/web-interface/coin/add",
+                    headers: {
+                        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
+                        'accept': 'application/json, text/plain, */*',
+                        'content-type': 'application/x-www-form-urlencoded',
+                        'origin': 'https://www.bilibili.com',
+                        'referer': 'https://www.bilibili.com/video/BV1MT411G7fG?vd_source=1970993e2eff4af7be029aefcfa468b8',
+                        'cookie': config.cookieStr + ';buvid3=fuckchenruilovelaoliu'
+                    },
+                    body: magicJS.objToQueryStr(body)
+                }
+                magicJS.http.post(myRequest).then(async response => {
+                    try {
+                        const body = response.body;
+                        if (body?.code === 0 && body?.message === "0") {
+                            magicJS.logger.info("- 投币成功");
+                            config.user.money -= 1;
+                            config.coins.num += 10;
+                            magicJS.data.write("bilibili_daily_bonus", magicJS.toStr(config));
+                        } else {
+                            magicJS.logger.info("- 投币失败,失败原因 " + body.message);
+                            config.coins.failures = (config.coins.failures === 0 || typeof config.coins.failures === 'undefined' ? 1 : config.coins.failures + 1);
+                            magicJS.data.write("bilibili_daily_bonus", magicJS.toStr(config));
+                            if (config.coins.failures < 11) {
+                                magicJS.logger.info("- 正在重试...重试次数 " + (config.coins.failures - 1) + "(超过十次不再重试)");
+                                await coin();
+                            }
+                        }
+                    } catch (e) {
+                        magicJS.logger.error(e);
+                    } finally {
+                        resolve();
+                    }
+                }).catch(err => {
+                    const msg = `投币异常\n${JSON.stringify(err)}`;
+                    magicJS.logger.error(msg);
+                    reject();
+                });
+            } else {
+                magicJS.logger.info("获取随机投币视频失败");
+                resolve();
+            }
+        } else {
+            magicJS.logger.info("获取随机关注用户列表失败");
+            resolve();
+        }
+    });
+}
 
-// async function getFavUid() {
-//     return new Promise((resolve, reject) => {
-//         const myRequest = {
-//             url: `https://api.bilibili.com/x/relation/followings?vmid=${config.cookie.DedeUserID}&ps=10&order_type=attention`,
-//             headers: {
-//                 'cookie': config.cookieStr
-//             }
-//         };
-//         magicJS.http.get(myRequest).then(response => {
-//             try {
-//                 const body = response.body;
-//                 let like_uid_list = new Array();
-//                 if (body?.code === 0) {
-//                     magicJS.logger.info("- 获取关注列表成功");
-//                     let like_list = body?.data?.list;
-//                     for (let i = 0; i < like_list.length; i ++) {
-//                         like_uid_list[i] = like_list[i].mid;
-//                     }
-//                     resolve(like_uid_list);
-//                 } else {
-//                     magicJS.logger.info("- 获取关注列表成失败");
-//                     magicJS.logger.info("- 失败原因 " + body?.message);
-//                     resolve(like_uid_list);
-//                 }
-//             } catch (e) {
-//                 magicJS.logger.error(JSON.stringify(e));
-//                 resolve();
-//             }
-//         }).catch(err => {
-//             const msg = `获取关注列表异常\n${JSON.stringify(err)}`;
-//             magicJS.logger.error(msg);
-//             reject();
-//         });
-//     });
-// }
+async function getFavUid() {
+    return new Promise((resolve, reject) => {
+        const myRequest = {
+            url: `https://api.bilibili.com/x/relation/followings?vmid=${config.cookie.DedeUserID}&ps=10&order_type=attention`,
+            headers: {
+                'cookie': config.cookieStr
+            }
+        };
+        magicJS.http.get(myRequest).then(response => {
+            try {
+                const body = response.body;
+                let like_uid_list = new Array();
+                if (body?.code === 0) {
+                    magicJS.logger.info("- 获取关注列表成功");
+                    let like_list = body?.data?.list;
+                    for (let i = 0; i < like_list.length; i ++) {
+                        like_uid_list[i] = like_list[i].mid;
+                    }
+                    resolve(like_uid_list);
+                } else {
+                    magicJS.logger.info("- 获取关注列表成失败");
+                    magicJS.logger.info("- 失败原因 " + body?.message);
+                    resolve(like_uid_list);
+                }
+            } catch (e) {
+                magicJS.logger.error(JSON.stringify(e));
+                resolve();
+            }
+        }).catch(err => {
+            const msg = `获取关注列表异常\n${JSON.stringify(err)}`;
+            magicJS.logger.error(msg);
+            reject();
+        });
+    });
+}
 
-// async function getFavAid(arr) {
-//     return new Promise((resolve, reject) => {
-//         //magicJS.logger.info("- 获取关注列表中的随机视频")
-//         let random_int = Math.floor((Math.random()*arr.length));
-//         let random_mid = arr[random_int];
-//         let wbiSigns = getWbiSigns({mid: random_mid});
-//         const myRequest = {
-//             url: `https://api.bilibili.com/x/space/wbi/arc/search?${wbiSigns}`,
-//             headers: {
-//                 'cookie': config.cookieStr
-//             }
-//         };
-//         magicJS.http.get(myRequest).then(response => {
-//             try {
-//                 const body = response.body;
-//                 if (body?.code === 0) {
-//                     magicJS.logger.info("- 获取投币视频成功");
-//                     let vlist = body.data?.list?.vlist;
-//                     let random_v_int = Math.floor((Math.random() * vlist.length));
-//                     let aid = vlist[random_v_int]?.aid;
-//                     magicJS.logger.info("- 作者: " + vlist[random_v_int]['author'] + "; 视频标题: " + vlist[random_v_int]['title']);
-//                     resolve(aid);
-//                 } else {
-//                     magicJS.logger.info("- 获取投币视频失败");
-//                     magicJS.logger.info("- 失败原因 " + body?.message);
-//                     resolve(0);
-//                 }
-//             } catch (e) {
-//                 magicJS.logger.error(e);
-//                 resolve();
-//             }
-//         }, reason => {
-//             magicJS.logger.info("- 获取投币视频失败");
-//             magicJS.logger.info("- 失败原因 " + magicJS.toStr(reason));
-//             resolve(0);
-//         }).catch(err => {
-//             const msg = `获取投币视频异常\n${JSON.stringify(err)}`;
-//             magicJS.logger.error(msg);
-//             reject();
-//         });
-//     });
-// }
+async function getFavAid(arr) {
+    return new Promise((resolve, reject) => {
+        //magicJS.logger.info("- 获取关注列表中的随机视频")
+        let random_int = Math.floor((Math.random()*arr.length));
+        let random_mid = arr[random_int];
+        let wbiSigns = getWbiSigns({mid: random_mid});
+        const myRequest = {
+            url: `https://api.bilibili.com/x/space/wbi/arc/search?${wbiSigns}`,
+            headers: {
+                'cookie': config.cookieStr
+            }
+        };
+        magicJS.http.get(myRequest).then(response => {
+            try {
+                const body = response.body;
+                if (body?.code === 0) {
+                    magicJS.logger.info("- 获取投币视频成功");
+                    let vlist = body.data?.list?.vlist;
+                    let random_v_int = Math.floor((Math.random() * vlist.length));
+                    let aid = vlist[random_v_int]?.aid;
+                    magicJS.logger.info("- 作者: " + vlist[random_v_int]['author'] + "; 视频标题: " + vlist[random_v_int]['title']);
+                    resolve(aid);
+                } else {
+                    magicJS.logger.info("- 获取投币视频失败");
+                    magicJS.logger.info("- 失败原因 " + body?.message);
+                    resolve(0);
+                }
+            } catch (e) {
+                magicJS.logger.error(e);
+                resolve();
+            }
+        }, reason => {
+            magicJS.logger.info("- 获取投币视频失败");
+            magicJS.logger.info("- 失败原因 " + magicJS.toStr(reason));
+            resolve(0);
+        }).catch(err => {
+            const msg = `获取投币视频异常\n${JSON.stringify(err)}`;
+            magicJS.logger.error(msg);
+            reject();
+        });
+    });
+}
 
 async function silver2coin() {
     return new Promise((resolve, reject) => {