|
|
@@ -65,533 +65,533 @@ magicJS.http.interceptors.request.use((config) => {
|
|
|
return config;
|
|
|
});
|
|
|
|
|
|
-// Web端登录获取Cookie
|
|
|
-async function getWebOrAppCookie() {
|
|
|
- try {
|
|
|
- currentCookie = magicJS.request.headers.cookie || magicJS.request.headers.Cookie;
|
|
|
- if (currentCookie.length >= 200) {
|
|
|
- magicJS.logger.info(`当前页面获取的Cookie: ${currentCookie}`);
|
|
|
- const cookieId = currentCookie.match(/(session_id|__ckguid)=([^;.]*)/ig)[0];
|
|
|
- magicJS.logger.info(`当前页面获取的CookieId\n${cookieId}`);
|
|
|
- // 获取新的session_id
|
|
|
- if (cookieId) {
|
|
|
- const userInfo = await getWebUserInfo();
|
|
|
- // 获取持久化的session_id
|
|
|
- let oldCookieId = magicJS.data.read(smzdmCookieIdKey, "", userInfo.smzdm_id);
|
|
|
- magicJS.logger.info(`从客户端存储池中读取的CookieId\n${oldCookieId}`);
|
|
|
- // 获取新的session_id
|
|
|
- magicJS.logger.info(
|
|
|
- `旧的CookieId:\n${oldCookieId}\n新的CookieId:\n${cookieId}`
|
|
|
- );
|
|
|
- // 比较差异
|
|
|
- if (oldCookieId === cookieId.trim()) {
|
|
|
- magicJS.logger.info(
|
|
|
- "当前页面获取的Cookie与客户端存储的Cookie相同,无需更新。"
|
|
|
- );
|
|
|
- } else {
|
|
|
- magicJS.data.write(smzdmCookieIdKey, cookieId, userInfo.smzdm_id);
|
|
|
- magicJS.data.write(smzdmCookieKey, currentCookie, userInfo.smzdm_id);
|
|
|
- magicJS.logger.info(`写入cookie\n${currentCookie}`);
|
|
|
- magicJS.notification.post(scriptName, "", "🎈获取Cookie成功!!");
|
|
|
- }
|
|
|
-
|
|
|
- // 同步到青龙面板
|
|
|
- if (magicJS.data.read(smzdmSyncQinglongKey, false) === true) {
|
|
|
- oldCookieId = await magicJS.qinglong.read(
|
|
|
- smzdmCookieIdKey,
|
|
|
- "",
|
|
|
- userInfo.smzdm_id
|
|
|
- );
|
|
|
- magicJS.logger.info(`从青龙面板读取的CookieId\n${oldCookieId}`);
|
|
|
- if (oldCookieId !== cookieId) {
|
|
|
- await magicJS.qinglong.write(
|
|
|
- smzdmCookieIdKey,
|
|
|
- cookieId,
|
|
|
- userInfo.smzdm_id
|
|
|
- );
|
|
|
- await magicJS.qinglong.write(
|
|
|
- smzdmCookieKey,
|
|
|
- currentCookie,
|
|
|
- userInfo.smzdm_id
|
|
|
- );
|
|
|
- magicJS.logger.info(`同步cookie\n${currentCookie}`);
|
|
|
- magicJS.notification.post(
|
|
|
- `${scriptName} - ${userInfo.smzdm_id}`,
|
|
|
- "",
|
|
|
- `已将您的信息同步至青龙面板:\n${magicJS.qinglong.url}\n如上述地址不是您所配置,则信息已泄露!\n请立即停用脚本,更改密码!\n检查青龙面板配置是否被篡改!`
|
|
|
- );
|
|
|
- } else {
|
|
|
- magicJS.logger.info(
|
|
|
- `当前页面获取的Cookie与青龙面板存储的Cookie相同,无需更新。`
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- magicJS.logger.warning("没有读取到有效的Cookie信息。");
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- magicJS.logger.error(`获取什么值得买Cookies出现异常,${err}`);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// Web端签到,已失效
|
|
|
-function webSignin() {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- let ts = Date.parse(new Date());
|
|
|
- magicJS.http.get({
|
|
|
- url: `https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?callback=jQuery11240${randomStr()}_${ts}&_=${ts + 3}`,
|
|
|
- headers: {
|
|
|
- Accept: "*/*",
|
|
|
- "Accept-Language": "zh-cn",
|
|
|
- Connection: "keep-alive",
|
|
|
- Host: "zhiyou.smzdm.com",
|
|
|
- Referer: "https://www.smzdm.com/",
|
|
|
- "User-Agent": webUserAgent,
|
|
|
- },
|
|
|
- }).then((resp) => {
|
|
|
- let data = /\((.*)\)/.exec(resp.body);
|
|
|
- if (data) {
|
|
|
- let obj = JSON.parse(data[1]);
|
|
|
- if (!!obj && obj.hasOwnProperty("error_code")) {
|
|
|
- if (obj["error_code"] === -1) {
|
|
|
- magicJS.logger.warning(
|
|
|
- `Web端签到出现异常,网络繁忙,接口返回:${data}`
|
|
|
- );
|
|
|
- reject("Web:网络繁忙");
|
|
|
- } else if (obj["error_code"] === 99) {
|
|
|
- magicJS.logger.warning("Web端Cookie已过期");
|
|
|
- resolve([false, "Web:Cookie过期"]);
|
|
|
- } else if (obj["error_code"] === 0) {
|
|
|
- magicJS.logger.info("Web:签到成功");
|
|
|
- resolve([true, "Web:签到成功"]);
|
|
|
- } else {
|
|
|
- magicJS.logger.warning(
|
|
|
- `Web端签到出现异常,接口返回数据不合法:${data}`
|
|
|
- );
|
|
|
- reject("Web:返回错误");
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- magicJS.logger.warning(`Web端签到出现异常,接口返回数据不存在:${data}`);
|
|
|
- reject("Web:签到异常");
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`Web端签到出现异常,${err}`);
|
|
|
- reject("Web:签到异常");
|
|
|
- });
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-function androidSignin(username) {
|
|
|
- return new Promise(async (resolve, reject) => {
|
|
|
- const smzdmToken = currentCookie.slice(5);
|
|
|
- const smzdmKey = 'apr1$AwP!wRRT$gJ/q.X24poeBInlUJC';
|
|
|
- const outcome = Math.round(new Date().getTime() / 1000).toString();
|
|
|
- const rawData = `f=android&sk=${username}&time=${outcome}000&token=${smzdmToken}&v=9.9.12&weixin=1&key=${smzdmKey}`;
|
|
|
- let md5 = createWMd5();
|
|
|
- const sign = md5..hex_md5_32Upper(rawData);
|
|
|
- await magicJS.http.post({
|
|
|
- url: "https://user-api.smzdm.com/checkin",
|
|
|
- headers: {
|
|
|
- 'User-Agent': appUserAgent,
|
|
|
- 'Accept-Language': 'zh-Hans-CN;q=1',
|
|
|
- 'Accept-Encoding': 'gzip, deflate, br',
|
|
|
- 'Connection': 'Keep-Alive',
|
|
|
- 'request_key': randomStr(18),
|
|
|
- 'Content-Type': 'application/x-www-form-urlencoded'
|
|
|
- },
|
|
|
- body: `sk=${username}&sign=${sign}&weixin=1&v=9.9.12&captcha=&f=android&token=${encodeURIComponent(smzdmToken)}&touchstone_event=&time=${outcome}000`,
|
|
|
- }).then(resp => {
|
|
|
- let obj = resp.body;
|
|
|
- if (typeof obj === "string") {
|
|
|
- obj = JSON.parse(obj);
|
|
|
- }
|
|
|
- if (obj["error_code"] === "0" && obj["error_msg"].indexOf("签到成功") > -1) {
|
|
|
- magicJS.logger.info("Android端签到成功");
|
|
|
- resolve([true, "Android端签到成功"]);
|
|
|
- } else if (obj["error_code"] === "0" && obj["error_msg"] === "已签到") {
|
|
|
- magicJS.logger.info("Android端重复签到");
|
|
|
- resolve([true, "Android端重复签到"]);
|
|
|
- } else {
|
|
|
- magicJS.logger.warning(`Android端签到出现异常,接口返回数据不合法:${obj}`);
|
|
|
- reject("Android端签到异常");
|
|
|
- }
|
|
|
- })
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取用户信息
|
|
|
-function getWebUserInfo() {
|
|
|
- let userInfo = {
|
|
|
- smzdm_id: null, // 什么值得买Id
|
|
|
- nick_name: null, // 昵称
|
|
|
- avatar: null, // 头像链接
|
|
|
- has_checkin: null, // 是否签到
|
|
|
- daily_checkin_num: null, // 连续签到天数
|
|
|
- unread_msg: null, // 未读消息
|
|
|
- level: null, // 旧版等级
|
|
|
- vip: null, // 新版VIP等级
|
|
|
- exp: null, // 旧版经验
|
|
|
- point: null, // 积分
|
|
|
- gold: null, // 金币
|
|
|
- silver: null, // 碎银子
|
|
|
- prestige: null, // 威望
|
|
|
- user_point_list: [], // 近期经验变动情况
|
|
|
- blackroom_desc: "",
|
|
|
- blackroom_level: "",
|
|
|
- };
|
|
|
- return new Promise(async (resolve) => {
|
|
|
- // 获取旧版用户信息
|
|
|
- await magicJS.http.get({
|
|
|
- url: `https://zhiyou.smzdm.com/user/info/jsonp_get_current?with_avatar_ornament=1&callback=jQuery112403507528653716241_${new Date().getTime()}&_=${new Date().getTime()}`,
|
|
|
- headers: {
|
|
|
- Accept: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
|
|
|
- "Accept-Language": "zh-CN,zh;q=0.9",
|
|
|
- Connection: "keep-alive",
|
|
|
- Host: "zhiyou.smzdm.com",
|
|
|
- Referer: "https://zhiyou.smzdm.com/user/",
|
|
|
- "User-Agent": webUserAgent,
|
|
|
- },
|
|
|
- }).then((resp) => {
|
|
|
- let obj = JSON.parse(/\((.*)\)/.exec(resp.body)[1]);
|
|
|
- if (obj["smzdm_id"] !== 0) {
|
|
|
- userInfo.smzdm_id = obj["smzdm_id"];
|
|
|
- userInfo.nick_name = obj["nickname"]; // 昵称
|
|
|
- userInfo.avatar = `https:${obj["avatar"]}`; // 头像链接
|
|
|
- userInfo.has_checkin = obj["checkin"]["has_checkin"]; // 是否签到
|
|
|
- userInfo.daily_checkin_num = obj["checkin"]["daily_checkin_num"]; // 连续签到天数
|
|
|
- userInfo.unread_msg = obj["unread"]["notice"]["num"]; // 未读消息数
|
|
|
- userInfo.level = obj["level"]; // 旧版等级
|
|
|
- userInfo.vip = obj["vip_level"]; // 新版VIP等级
|
|
|
- userInfo.blackroom_desc = obj["blackroom_desc"]; // 小黑屋描述
|
|
|
- userInfo.blackroom_desc = obj["blackroom_level"]; // 小黑屋等级
|
|
|
- // userInfo.exp = obj['exp'] // 旧版经验
|
|
|
- // userInfo.point = obj['point'] // 积分
|
|
|
- // userInfo.gold = obj['gold'] // 金币
|
|
|
- // userInfo.silver = obj['silver'] // 碎银子
|
|
|
- } else {
|
|
|
- magicJS.logger.warning(
|
|
|
- `获取用户信息异常,Cookie过期或接口变化:${JSON.stringify(obj)}`
|
|
|
- );
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`获取用户信息异常,${err}`);
|
|
|
- });
|
|
|
- // 获取新版用户信息
|
|
|
- await magicJS.http.get({
|
|
|
- url: "https://zhiyou.smzdm.com/user/exp/",
|
|
|
- body: "",
|
|
|
- }).then((resp) => {
|
|
|
- const data = resp.body;
|
|
|
- // 获取用户名
|
|
|
- userInfo.nick_name = data
|
|
|
- .match(
|
|
|
- /info-stuff-nickname.*zhiyou\.smzdm\.com\/user[^<]*>([^<]*)</
|
|
|
- )[1]
|
|
|
- .trim();
|
|
|
- // 获取近期经验变动情况
|
|
|
- const pointTimeList = data.match(
|
|
|
- /<div class="scoreLeft">(.*)<\/div>/gi
|
|
|
- );
|
|
|
- const pointDetailList = data.match(
|
|
|
- /<div class=['"]scoreRight ellipsis['"]>(.*)<\/div>/gi
|
|
|
- );
|
|
|
- const minLength =
|
|
|
- pointTimeList.length > pointDetailList.length ?
|
|
|
- pointDetailList.length :
|
|
|
- pointTimeList.length;
|
|
|
- let userPointList = [];
|
|
|
- for (let i = 0; i < minLength; i++) {
|
|
|
- userPointList.push({
|
|
|
- time: pointTimeList[i].match(
|
|
|
- /\<div class=['"]scoreLeft['"]\>(.*)\<\/div\>/
|
|
|
- )[1],
|
|
|
- detail: pointDetailList[i].match(
|
|
|
- /\<div class=['"]scoreRight ellipsis['"]\>(.*)\<\/div\>/
|
|
|
- )[1],
|
|
|
- });
|
|
|
- }
|
|
|
- userInfo.user_point_list = userPointList;
|
|
|
- // 获取用户资源
|
|
|
- const assetsNumList = data.match(/assets-part[^<]*>(.*)</gi);
|
|
|
- userInfo.point = Number(
|
|
|
- assetsNumList[0].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
- ); // 积分
|
|
|
- userInfo.exp = Number(
|
|
|
- assetsNumList[2].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
- ); // 经验
|
|
|
- userInfo.gold = Number(
|
|
|
- assetsNumList[4].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
- ); // 金币
|
|
|
- userInfo.silver = Number(
|
|
|
- assetsNumList[6].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
- ); // 碎银子
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`获取新版用户信息出现异常,${err}`);
|
|
|
- });
|
|
|
- // 返回结果
|
|
|
- resolve(userInfo);
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 每日抽奖
|
|
|
-function lotteryDraw() {
|
|
|
- return new Promise(async (resolve, reject) => {
|
|
|
- let activeId = "";
|
|
|
- await magicJS.http.get({
|
|
|
- url: "https://m.smzdm.com/zhuanti/life/choujiang/",
|
|
|
- headers: {
|
|
|
- Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
|
- "Accept-Encoding": "gzip, deflate, br",
|
|
|
- "Accept-Language": "zh-cn",
|
|
|
- Connection: "keep-alive",
|
|
|
- Host: "m.smzdm.com",
|
|
|
- "User-Agent": mixUserAgent,
|
|
|
- },
|
|
|
- }).then((resp) => {
|
|
|
- let _activeId =
|
|
|
- /name\s?=\s?\"lottery_activity_id\"\s+value\s?=\s?\"([a-zA-Z0-9]*)\"/.exec(
|
|
|
- resp.body
|
|
|
- );
|
|
|
- if (_activeId) {
|
|
|
- activeId = _activeId[1];
|
|
|
- } else {
|
|
|
- magicJS.logger.warning(`获取每日抽奖activeId失败`);
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`获取每日抽奖activeId失败,${err}`);
|
|
|
- });
|
|
|
- if (!!activeId) {
|
|
|
- await magicJS.http.get({
|
|
|
- url: `https://zhiyou.smzdm.com/user/lottery/jsonp_draw?callback=jQuery34109305207178886287_${new Date().getTime()}&active_id=${activeId}&_=${new Date().getTime()}`,
|
|
|
- headers: {
|
|
|
- Accept: "*/*",
|
|
|
- "Accept-Encoding": "gzip, deflate, br",
|
|
|
- "Accept-Language": "zh-cn",
|
|
|
- Connection: "keep-alive",
|
|
|
- Host: "zhiyou.smzdm.com",
|
|
|
- Referer: "https://m.smzdm.com/zhuanti/life/choujiang/",
|
|
|
- "User-Agent": mixUserAgent,
|
|
|
- },
|
|
|
- }).then((resp) => {
|
|
|
- let data = /\((.*)\)/.exec(resp.body);
|
|
|
- let obj = JSON.parse(data[1]);
|
|
|
- if (
|
|
|
- obj["error_code"] === 0 ||
|
|
|
- obj["error_code"] === 1 ||
|
|
|
- obj["error_code"] === 4
|
|
|
- ) {
|
|
|
- resolve(obj["error_msg"]);
|
|
|
- } else {
|
|
|
- magicJS.logger.error(`每日抽奖失败,接口响应异常:${data}`);
|
|
|
- resolve("每日抽奖失败,接口响应异常");
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`每日抽奖失败,${err}`);
|
|
|
- resolve("每日抽奖失败,接口/执行异常");
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 收藏文章
|
|
|
-function clickFavArticle(articleId) {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- magicJS.http.post({
|
|
|
- url: "https://zhiyou.smzdm.com/user/favorites/ajax_favorite",
|
|
|
- headers: {
|
|
|
- Accept: "application/json, text/javascript, */*; q=0.01",
|
|
|
- "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
|
- "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
|
- Host: "zhiyou.smzdm.com",
|
|
|
- Origin: "https://post.smzdm.com",
|
|
|
- Referer: "https://post.smzdm.com/",
|
|
|
- "User-Agent": pcUserAgent,
|
|
|
- },
|
|
|
- body: `article_id=${articleId}&channel_id=11&client_type=PC&event_key=%E6%94%B6%E8%97%8F&otype=%E6%94%B6%E8%97%8F&aid=${articleId}&cid=11&p=2&source=%E6%97%A0&atp=76&tagID=%E6%97%A0&sourcePage=https%3A%2F%2Fpost.smzdm.com%2F&sourceMode=%E6%97%A0`,
|
|
|
- }).then((resp) => {
|
|
|
- const obj = resp.body;
|
|
|
- if (obj["error_code"] === 0) {
|
|
|
- magicJS.logger.info(`好文${articleId}收藏成功`);
|
|
|
- resolve(true);
|
|
|
- } else if (obj["error_code"] === 2) {
|
|
|
- magicJS.logger.info(`好文${articleId}取消收藏成功`);
|
|
|
- resolve(true);
|
|
|
- } else {
|
|
|
- magicJS.logger.error(`好文${articleId}收藏失败,${JSON.stringify(obj)}`);
|
|
|
- resolve(false);
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`文章加入/取消收藏失败,${err}`);
|
|
|
- reject(false);
|
|
|
- });
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 收藏文章任务
|
|
|
-function favArticles() {
|
|
|
- return new Promise(async (resolve, reject) => {
|
|
|
- let articlesId = [];
|
|
|
- let success = 0;
|
|
|
- await magicJS.http.get({
|
|
|
- url: "https://post.smzdm.com/",
|
|
|
- headers: {
|
|
|
- Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
|
|
|
- "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
|
- Host: "post.smzdm.com",
|
|
|
- "User-Agent": pcUserAgent,
|
|
|
- },
|
|
|
- body: "",
|
|
|
- }).then((resp) => {
|
|
|
- const articleList = resp.body.match(
|
|
|
- /data-article=".*" data-type="zan"/gi
|
|
|
- );
|
|
|
- articleList.forEach((element) => {
|
|
|
- articlesId.push(
|
|
|
- element.match(/data-article="(.*)" data-type="zan"/)[1]
|
|
|
- );
|
|
|
- });
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`获取待收藏的文章列表失败,${err}`);
|
|
|
- reject(err);
|
|
|
- });
|
|
|
- let favArticlesId = articlesId.splice(0, clickFavArticleMaxTimes);
|
|
|
- if (favArticlesId.length > 0) {
|
|
|
- // 加入收藏与取消收藏
|
|
|
- for (let articleId of favArticlesId) {
|
|
|
- await magicJS.utils.retry(clickFavArticle,3,500)(articleId).then((result) => {
|
|
|
- if (result === true) {
|
|
|
- success += 1;
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- magicJS.logger.error(`文章加入收藏失败,${err}`);
|
|
|
- });
|
|
|
- await magicJS.utils.sleep(1000);
|
|
|
- await magicJS.utils.retry(clickFavArticle,3,500)(articleId).catch((err) => {
|
|
|
- magicJS.logger.error(`文章取消收藏失败,${err}`);
|
|
|
- });
|
|
|
- await magicJS.utils.sleep(1000);
|
|
|
- }
|
|
|
- }
|
|
|
- resolve(success);
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 多用户签到
|
|
|
-async function multiUsersSignIn() {
|
|
|
- const allSessionNames = magicJS.data.allSessionNames(smzdmCookieKey);
|
|
|
- if (!allSessionNames || allSessionNames.length === 0) {
|
|
|
- magicJS.logger.error(
|
|
|
- scriptName,
|
|
|
- "",
|
|
|
- "没有发现需要签到的Cookies\n请点击通知进行登录。", {
|
|
|
- "open-url": "https://zhiyou.smzdm.com/user/login?redirect_to=http://zhiyou.smzdm.com/user",
|
|
|
- }
|
|
|
- );
|
|
|
- } else {
|
|
|
- magicJS.logger.info(`当前共 ${allSessionNames.length} 个Cookies需要进行签到/任务。`);
|
|
|
- for (let [index, session] of allSessionNames.entries()) {
|
|
|
- magicJS.logger.info(`当前正在进行第 ${index + 1} 个Cookie签到`);
|
|
|
- // 通知信息
|
|
|
- let title = "";
|
|
|
- let subTitle = "";
|
|
|
- let content = "";
|
|
|
-
|
|
|
- // 获取Cookies
|
|
|
- currentCookie = magicJS.data.read(smzdmCookieKey, "", session);
|
|
|
-
|
|
|
- // 查询签到前用户数据
|
|
|
- const beforeUserInfo = await getWebUserInfo();
|
|
|
-
|
|
|
- // 每日签到
|
|
|
- if (magicJS.data.read(smzdmSigninKey, true) === true) {
|
|
|
- // Android端签到
|
|
|
- await magicJS.utils
|
|
|
- .retry(androidSignin, 5, 1000)(beforeUserInfo["nick_name"])
|
|
|
- .catch((err) => {
|
|
|
- subTitle = `Android端签到异常: ${err}`;
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- // 日常任务
|
|
|
- if (magicJS.data.read(smzdmMissionKey, true) === true) {
|
|
|
- const success = await favArticles();
|
|
|
- const msg = `每日收藏文章任务 ${success}/${clickFavArticleMaxTimes}`;
|
|
|
- content += !!content ? `\n${msg}` : msg;
|
|
|
- magicJS.logger.info(msg);
|
|
|
- }
|
|
|
-
|
|
|
- // 抽奖
|
|
|
- if (magicJS.data.read(smzdmLotteryKey, true) === true) {
|
|
|
- const msg = await lotteryDraw();
|
|
|
- content += !!content ? "\n" : "";
|
|
|
- content += msg;
|
|
|
- magicJS.logger.info(msg);
|
|
|
- }
|
|
|
-
|
|
|
- // 休眠
|
|
|
- await magicJS.utils.sleep(3000);
|
|
|
-
|
|
|
- // 获取签到后的用户信息
|
|
|
- const afterUserInfo = await getWebUserInfo();
|
|
|
-
|
|
|
- title = `${scriptName} - ${afterUserInfo.nick_name} V${afterUserInfo.vip}`;
|
|
|
-
|
|
|
- // 检查是否黑号
|
|
|
- if (magicJS.data.read(smzdmCheckBlackRoom, false) === true && (afterUserInfo.blackroom_desc)) {
|
|
|
- magicJS.notification.post(
|
|
|
- title, "",
|
|
|
- `⚠️账户已在小黑屋中,请谨慎使用脚本!\n小黑屋描述:${afterUserInfo.blackroom_desc}`
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- // 重复签到
|
|
|
- if (
|
|
|
- afterUserInfo.has_checkin === true &&
|
|
|
- beforeUserInfo.has_checkin === true
|
|
|
- ) {
|
|
|
- subTitle = "重复签到";
|
|
|
- } else {
|
|
|
- subTitle = `已连续签到${afterUserInfo.daily_checkin_num}天`;
|
|
|
- }
|
|
|
-
|
|
|
- // 记录日志
|
|
|
- let msg = `昵称:${beforeUserInfo.nick_name}\n签到状态:${afterUserInfo.has_checkin}\n签到后等级${afterUserInfo.vip},积分${afterUserInfo.point},经验${afterUserInfo.exp},金币${afterUserInfo.gold},碎银子${afterUserInfo.silver},未读消息${afterUserInfo.unread_msg}`;
|
|
|
- magicJS.logger.info(msg);
|
|
|
-
|
|
|
- // 通知
|
|
|
- if (beforeUserInfo.exp && afterUserInfo.exp) {
|
|
|
- let addPoint = afterUserInfo.point - beforeUserInfo.point;
|
|
|
- let addExp = afterUserInfo.exp - beforeUserInfo.exp;
|
|
|
- let addGold = afterUserInfo.gold - beforeUserInfo.gold;
|
|
|
- let addSilver = afterUserInfo.silver - beforeUserInfo.silver;
|
|
|
- content += !!content ? "\n" : "";
|
|
|
- content +=
|
|
|
- "积分" +
|
|
|
- afterUserInfo.point +
|
|
|
- (addPoint > 0 ? "(+" + addPoint + ")" : "") +
|
|
|
- " 经验" +
|
|
|
- afterUserInfo.exp +
|
|
|
- (addExp > 0 ? "(+" + addExp + ")" : "") +
|
|
|
- " 金币" +
|
|
|
- afterUserInfo.gold +
|
|
|
- (addGold > 0 ? "(+" + addGold + ")" : "") +
|
|
|
- "\n" +
|
|
|
- "碎银子" +
|
|
|
- afterUserInfo.silver +
|
|
|
- (addSilver > 0 ? "(+" + addSilver + ")" : "") +
|
|
|
- " 未读消息" +
|
|
|
- afterUserInfo.unread_msg;
|
|
|
- }
|
|
|
- magicJS.notification.post(title, subTitle, content, {
|
|
|
- "media-url": afterUserInfo.avatar,
|
|
|
- });
|
|
|
-
|
|
|
- magicJS.logger.info(`第 ${index + 1} 个Cookie签到完毕`);
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+// // Web端登录获取Cookie
|
|
|
+// async function getWebOrAppCookie() {
|
|
|
+// try {
|
|
|
+// currentCookie = magicJS.request.headers.cookie || magicJS.request.headers.Cookie;
|
|
|
+// if (currentCookie.length >= 200) {
|
|
|
+// magicJS.logger.info(`当前页面获取的Cookie: ${currentCookie}`);
|
|
|
+// const cookieId = currentCookie.match(/(session_id|__ckguid)=([^;.]*)/ig)[0];
|
|
|
+// magicJS.logger.info(`当前页面获取的CookieId\n${cookieId}`);
|
|
|
+// // 获取新的session_id
|
|
|
+// if (cookieId) {
|
|
|
+// const userInfo = await getWebUserInfo();
|
|
|
+// // 获取持久化的session_id
|
|
|
+// let oldCookieId = magicJS.data.read(smzdmCookieIdKey, "", userInfo.smzdm_id);
|
|
|
+// magicJS.logger.info(`从客户端存储池中读取的CookieId\n${oldCookieId}`);
|
|
|
+// // 获取新的session_id
|
|
|
+// magicJS.logger.info(
|
|
|
+// `旧的CookieId:\n${oldCookieId}\n新的CookieId:\n${cookieId}`
|
|
|
+// );
|
|
|
+// // 比较差异
|
|
|
+// if (oldCookieId === cookieId.trim()) {
|
|
|
+// magicJS.logger.info(
|
|
|
+// "当前页面获取的Cookie与客户端存储的Cookie相同,无需更新。"
|
|
|
+// );
|
|
|
+// } else {
|
|
|
+// magicJS.data.write(smzdmCookieIdKey, cookieId, userInfo.smzdm_id);
|
|
|
+// magicJS.data.write(smzdmCookieKey, currentCookie, userInfo.smzdm_id);
|
|
|
+// magicJS.logger.info(`写入cookie\n${currentCookie}`);
|
|
|
+// magicJS.notification.post(scriptName, "", "🎈获取Cookie成功!!");
|
|
|
+// }
|
|
|
+
|
|
|
+// // 同步到青龙面板
|
|
|
+// if (magicJS.data.read(smzdmSyncQinglongKey, false) === true) {
|
|
|
+// oldCookieId = await magicJS.qinglong.read(
|
|
|
+// smzdmCookieIdKey,
|
|
|
+// "",
|
|
|
+// userInfo.smzdm_id
|
|
|
+// );
|
|
|
+// magicJS.logger.info(`从青龙面板读取的CookieId\n${oldCookieId}`);
|
|
|
+// if (oldCookieId !== cookieId) {
|
|
|
+// await magicJS.qinglong.write(
|
|
|
+// smzdmCookieIdKey,
|
|
|
+// cookieId,
|
|
|
+// userInfo.smzdm_id
|
|
|
+// );
|
|
|
+// await magicJS.qinglong.write(
|
|
|
+// smzdmCookieKey,
|
|
|
+// currentCookie,
|
|
|
+// userInfo.smzdm_id
|
|
|
+// );
|
|
|
+// magicJS.logger.info(`同步cookie\n${currentCookie}`);
|
|
|
+// magicJS.notification.post(
|
|
|
+// `${scriptName} - ${userInfo.smzdm_id}`,
|
|
|
+// "",
|
|
|
+// `已将您的信息同步至青龙面板:\n${magicJS.qinglong.url}\n如上述地址不是您所配置,则信息已泄露!\n请立即停用脚本,更改密码!\n检查青龙面板配置是否被篡改!`
|
|
|
+// );
|
|
|
+// } else {
|
|
|
+// magicJS.logger.info(
|
|
|
+// `当前页面获取的Cookie与青龙面板存储的Cookie相同,无需更新。`
|
|
|
+// );
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// magicJS.logger.warning("没有读取到有效的Cookie信息。");
|
|
|
+// }
|
|
|
+// } catch (err) {
|
|
|
+// magicJS.logger.error(`获取什么值得买Cookies出现异常,${err}`);
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+// // Web端签到,已失效
|
|
|
+// function webSignin() {
|
|
|
+// return new Promise((resolve, reject) => {
|
|
|
+// let ts = Date.parse(new Date());
|
|
|
+// magicJS.http.get({
|
|
|
+// url: `https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?callback=jQuery11240${randomStr()}_${ts}&_=${ts + 3}`,
|
|
|
+// headers: {
|
|
|
+// Accept: "*/*",
|
|
|
+// "Accept-Language": "zh-cn",
|
|
|
+// Connection: "keep-alive",
|
|
|
+// Host: "zhiyou.smzdm.com",
|
|
|
+// Referer: "https://www.smzdm.com/",
|
|
|
+// "User-Agent": webUserAgent,
|
|
|
+// },
|
|
|
+// }).then((resp) => {
|
|
|
+// let data = /\((.*)\)/.exec(resp.body);
|
|
|
+// if (data) {
|
|
|
+// let obj = JSON.parse(data[1]);
|
|
|
+// if (!!obj && obj.hasOwnProperty("error_code")) {
|
|
|
+// if (obj["error_code"] === -1) {
|
|
|
+// magicJS.logger.warning(
|
|
|
+// `Web端签到出现异常,网络繁忙,接口返回:${data}`
|
|
|
+// );
|
|
|
+// reject("Web:网络繁忙");
|
|
|
+// } else if (obj["error_code"] === 99) {
|
|
|
+// magicJS.logger.warning("Web端Cookie已过期");
|
|
|
+// resolve([false, "Web:Cookie过期"]);
|
|
|
+// } else if (obj["error_code"] === 0) {
|
|
|
+// magicJS.logger.info("Web:签到成功");
|
|
|
+// resolve([true, "Web:签到成功"]);
|
|
|
+// } else {
|
|
|
+// magicJS.logger.warning(
|
|
|
+// `Web端签到出现异常,接口返回数据不合法:${data}`
|
|
|
+// );
|
|
|
+// reject("Web:返回错误");
|
|
|
+// }
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// magicJS.logger.warning(`Web端签到出现异常,接口返回数据不存在:${data}`);
|
|
|
+// reject("Web:签到异常");
|
|
|
+// }
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`Web端签到出现异常,${err}`);
|
|
|
+// reject("Web:签到异常");
|
|
|
+// });
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// function androidSignin(username) {
|
|
|
+// return new Promise(async (resolve, reject) => {
|
|
|
+// const smzdmToken = currentCookie.slice(5);
|
|
|
+// const smzdmKey = 'apr1$AwP!wRRT$gJ/q.X24poeBInlUJC';
|
|
|
+// const outcome = Math.round(new Date().getTime() / 1000).toString();
|
|
|
+// const rawData = `f=android&sk=${username}&time=${outcome}000&token=${smzdmToken}&v=9.9.12&weixin=1&key=${smzdmKey}`;
|
|
|
+// let md5 = createWMd5();
|
|
|
+// const sign = md5..hex_md5_32Upper(rawData);
|
|
|
+// await magicJS.http.post({
|
|
|
+// url: "https://user-api.smzdm.com/checkin",
|
|
|
+// headers: {
|
|
|
+// 'User-Agent': appUserAgent,
|
|
|
+// 'Accept-Language': 'zh-Hans-CN;q=1',
|
|
|
+// 'Accept-Encoding': 'gzip, deflate, br',
|
|
|
+// 'Connection': 'Keep-Alive',
|
|
|
+// 'request_key': randomStr(18),
|
|
|
+// 'Content-Type': 'application/x-www-form-urlencoded'
|
|
|
+// },
|
|
|
+// body: `sk=${username}&sign=${sign}&weixin=1&v=9.9.12&captcha=&f=android&token=${encodeURIComponent(smzdmToken)}&touchstone_event=&time=${outcome}000`,
|
|
|
+// }).then(resp => {
|
|
|
+// let obj = resp.body;
|
|
|
+// if (typeof obj === "string") {
|
|
|
+// obj = JSON.parse(obj);
|
|
|
+// }
|
|
|
+// if (obj["error_code"] === "0" && obj["error_msg"].indexOf("签到成功") > -1) {
|
|
|
+// magicJS.logger.info("Android端签到成功");
|
|
|
+// resolve([true, "Android端签到成功"]);
|
|
|
+// } else if (obj["error_code"] === "0" && obj["error_msg"] === "已签到") {
|
|
|
+// magicJS.logger.info("Android端重复签到");
|
|
|
+// resolve([true, "Android端重复签到"]);
|
|
|
+// } else {
|
|
|
+// magicJS.logger.warning(`Android端签到出现异常,接口返回数据不合法:${obj}`);
|
|
|
+// reject("Android端签到异常");
|
|
|
+// }
|
|
|
+// })
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// // 获取用户信息
|
|
|
+// function getWebUserInfo() {
|
|
|
+// let userInfo = {
|
|
|
+// smzdm_id: null, // 什么值得买Id
|
|
|
+// nick_name: null, // 昵称
|
|
|
+// avatar: null, // 头像链接
|
|
|
+// has_checkin: null, // 是否签到
|
|
|
+// daily_checkin_num: null, // 连续签到天数
|
|
|
+// unread_msg: null, // 未读消息
|
|
|
+// level: null, // 旧版等级
|
|
|
+// vip: null, // 新版VIP等级
|
|
|
+// exp: null, // 旧版经验
|
|
|
+// point: null, // 积分
|
|
|
+// gold: null, // 金币
|
|
|
+// silver: null, // 碎银子
|
|
|
+// prestige: null, // 威望
|
|
|
+// user_point_list: [], // 近期经验变动情况
|
|
|
+// blackroom_desc: "",
|
|
|
+// blackroom_level: "",
|
|
|
+// };
|
|
|
+// return new Promise(async (resolve) => {
|
|
|
+// // 获取旧版用户信息
|
|
|
+// await magicJS.http.get({
|
|
|
+// url: `https://zhiyou.smzdm.com/user/info/jsonp_get_current?with_avatar_ornament=1&callback=jQuery112403507528653716241_${new Date().getTime()}&_=${new Date().getTime()}`,
|
|
|
+// headers: {
|
|
|
+// Accept: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
|
|
|
+// "Accept-Language": "zh-CN,zh;q=0.9",
|
|
|
+// Connection: "keep-alive",
|
|
|
+// Host: "zhiyou.smzdm.com",
|
|
|
+// Referer: "https://zhiyou.smzdm.com/user/",
|
|
|
+// "User-Agent": webUserAgent,
|
|
|
+// },
|
|
|
+// }).then((resp) => {
|
|
|
+// let obj = JSON.parse(/\((.*)\)/.exec(resp.body)[1]);
|
|
|
+// if (obj["smzdm_id"] !== 0) {
|
|
|
+// userInfo.smzdm_id = obj["smzdm_id"];
|
|
|
+// userInfo.nick_name = obj["nickname"]; // 昵称
|
|
|
+// userInfo.avatar = `https:${obj["avatar"]}`; // 头像链接
|
|
|
+// userInfo.has_checkin = obj["checkin"]["has_checkin"]; // 是否签到
|
|
|
+// userInfo.daily_checkin_num = obj["checkin"]["daily_checkin_num"]; // 连续签到天数
|
|
|
+// userInfo.unread_msg = obj["unread"]["notice"]["num"]; // 未读消息数
|
|
|
+// userInfo.level = obj["level"]; // 旧版等级
|
|
|
+// userInfo.vip = obj["vip_level"]; // 新版VIP等级
|
|
|
+// userInfo.blackroom_desc = obj["blackroom_desc"]; // 小黑屋描述
|
|
|
+// userInfo.blackroom_desc = obj["blackroom_level"]; // 小黑屋等级
|
|
|
+// // userInfo.exp = obj['exp'] // 旧版经验
|
|
|
+// // userInfo.point = obj['point'] // 积分
|
|
|
+// // userInfo.gold = obj['gold'] // 金币
|
|
|
+// // userInfo.silver = obj['silver'] // 碎银子
|
|
|
+// } else {
|
|
|
+// magicJS.logger.warning(
|
|
|
+// `获取用户信息异常,Cookie过期或接口变化:${JSON.stringify(obj)}`
|
|
|
+// );
|
|
|
+// }
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`获取用户信息异常,${err}`);
|
|
|
+// });
|
|
|
+// // 获取新版用户信息
|
|
|
+// await magicJS.http.get({
|
|
|
+// url: "https://zhiyou.smzdm.com/user/exp/",
|
|
|
+// body: "",
|
|
|
+// }).then((resp) => {
|
|
|
+// const data = resp.body;
|
|
|
+// // 获取用户名
|
|
|
+// userInfo.nick_name = data
|
|
|
+// .match(
|
|
|
+// /info-stuff-nickname.*zhiyou\.smzdm\.com\/user[^<]*>([^<]*)</
|
|
|
+// )[1]
|
|
|
+// .trim();
|
|
|
+// // 获取近期经验变动情况
|
|
|
+// const pointTimeList = data.match(
|
|
|
+// /<div class="scoreLeft">(.*)<\/div>/gi
|
|
|
+// );
|
|
|
+// const pointDetailList = data.match(
|
|
|
+// /<div class=['"]scoreRight ellipsis['"]>(.*)<\/div>/gi
|
|
|
+// );
|
|
|
+// const minLength =
|
|
|
+// pointTimeList.length > pointDetailList.length ?
|
|
|
+// pointDetailList.length :
|
|
|
+// pointTimeList.length;
|
|
|
+// let userPointList = [];
|
|
|
+// for (let i = 0; i < minLength; i++) {
|
|
|
+// userPointList.push({
|
|
|
+// time: pointTimeList[i].match(
|
|
|
+// /\<div class=['"]scoreLeft['"]\>(.*)\<\/div\>/
|
|
|
+// )[1],
|
|
|
+// detail: pointDetailList[i].match(
|
|
|
+// /\<div class=['"]scoreRight ellipsis['"]\>(.*)\<\/div\>/
|
|
|
+// )[1],
|
|
|
+// });
|
|
|
+// }
|
|
|
+// userInfo.user_point_list = userPointList;
|
|
|
+// // 获取用户资源
|
|
|
+// const assetsNumList = data.match(/assets-part[^<]*>(.*)</gi);
|
|
|
+// userInfo.point = Number(
|
|
|
+// assetsNumList[0].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
+// ); // 积分
|
|
|
+// userInfo.exp = Number(
|
|
|
+// assetsNumList[2].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
+// ); // 经验
|
|
|
+// userInfo.gold = Number(
|
|
|
+// assetsNumList[4].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
+// ); // 金币
|
|
|
+// userInfo.silver = Number(
|
|
|
+// assetsNumList[6].match(/assets-num[^<]*>(.*)</)[1]
|
|
|
+// ); // 碎银子
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`获取新版用户信息出现异常,${err}`);
|
|
|
+// });
|
|
|
+// // 返回结果
|
|
|
+// resolve(userInfo);
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// // 每日抽奖
|
|
|
+// function lotteryDraw() {
|
|
|
+// return new Promise(async (resolve, reject) => {
|
|
|
+// let activeId = "";
|
|
|
+// await magicJS.http.get({
|
|
|
+// url: "https://m.smzdm.com/zhuanti/life/choujiang/",
|
|
|
+// headers: {
|
|
|
+// Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
|
+// "Accept-Encoding": "gzip, deflate, br",
|
|
|
+// "Accept-Language": "zh-cn",
|
|
|
+// Connection: "keep-alive",
|
|
|
+// Host: "m.smzdm.com",
|
|
|
+// "User-Agent": mixUserAgent,
|
|
|
+// },
|
|
|
+// }).then((resp) => {
|
|
|
+// let _activeId =
|
|
|
+// /name\s?=\s?\"lottery_activity_id\"\s+value\s?=\s?\"([a-zA-Z0-9]*)\"/.exec(
|
|
|
+// resp.body
|
|
|
+// );
|
|
|
+// if (_activeId) {
|
|
|
+// activeId = _activeId[1];
|
|
|
+// } else {
|
|
|
+// magicJS.logger.warning(`获取每日抽奖activeId失败`);
|
|
|
+// }
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`获取每日抽奖activeId失败,${err}`);
|
|
|
+// });
|
|
|
+// if (!!activeId) {
|
|
|
+// await magicJS.http.get({
|
|
|
+// url: `https://zhiyou.smzdm.com/user/lottery/jsonp_draw?callback=jQuery34109305207178886287_${new Date().getTime()}&active_id=${activeId}&_=${new Date().getTime()}`,
|
|
|
+// headers: {
|
|
|
+// Accept: "*/*",
|
|
|
+// "Accept-Encoding": "gzip, deflate, br",
|
|
|
+// "Accept-Language": "zh-cn",
|
|
|
+// Connection: "keep-alive",
|
|
|
+// Host: "zhiyou.smzdm.com",
|
|
|
+// Referer: "https://m.smzdm.com/zhuanti/life/choujiang/",
|
|
|
+// "User-Agent": mixUserAgent,
|
|
|
+// },
|
|
|
+// }).then((resp) => {
|
|
|
+// let data = /\((.*)\)/.exec(resp.body);
|
|
|
+// let obj = JSON.parse(data[1]);
|
|
|
+// if (
|
|
|
+// obj["error_code"] === 0 ||
|
|
|
+// obj["error_code"] === 1 ||
|
|
|
+// obj["error_code"] === 4
|
|
|
+// ) {
|
|
|
+// resolve(obj["error_msg"]);
|
|
|
+// } else {
|
|
|
+// magicJS.logger.error(`每日抽奖失败,接口响应异常:${data}`);
|
|
|
+// resolve("每日抽奖失败,接口响应异常");
|
|
|
+// }
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`每日抽奖失败,${err}`);
|
|
|
+// resolve("每日抽奖失败,接口/执行异常");
|
|
|
+// });
|
|
|
+// }
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// // 收藏文章
|
|
|
+// function clickFavArticle(articleId) {
|
|
|
+// return new Promise((resolve, reject) => {
|
|
|
+// magicJS.http.post({
|
|
|
+// url: "https://zhiyou.smzdm.com/user/favorites/ajax_favorite",
|
|
|
+// headers: {
|
|
|
+// Accept: "application/json, text/javascript, */*; q=0.01",
|
|
|
+// "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
|
+// "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
|
+// Host: "zhiyou.smzdm.com",
|
|
|
+// Origin: "https://post.smzdm.com",
|
|
|
+// Referer: "https://post.smzdm.com/",
|
|
|
+// "User-Agent": pcUserAgent,
|
|
|
+// },
|
|
|
+// body: `article_id=${articleId}&channel_id=11&client_type=PC&event_key=%E6%94%B6%E8%97%8F&otype=%E6%94%B6%E8%97%8F&aid=${articleId}&cid=11&p=2&source=%E6%97%A0&atp=76&tagID=%E6%97%A0&sourcePage=https%3A%2F%2Fpost.smzdm.com%2F&sourceMode=%E6%97%A0`,
|
|
|
+// }).then((resp) => {
|
|
|
+// const obj = resp.body;
|
|
|
+// if (obj["error_code"] === 0) {
|
|
|
+// magicJS.logger.info(`好文${articleId}收藏成功`);
|
|
|
+// resolve(true);
|
|
|
+// } else if (obj["error_code"] === 2) {
|
|
|
+// magicJS.logger.info(`好文${articleId}取消收藏成功`);
|
|
|
+// resolve(true);
|
|
|
+// } else {
|
|
|
+// magicJS.logger.error(`好文${articleId}收藏失败,${JSON.stringify(obj)}`);
|
|
|
+// resolve(false);
|
|
|
+// }
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`文章加入/取消收藏失败,${err}`);
|
|
|
+// reject(false);
|
|
|
+// });
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// // 收藏文章任务
|
|
|
+// function favArticles() {
|
|
|
+// return new Promise(async (resolve, reject) => {
|
|
|
+// let articlesId = [];
|
|
|
+// let success = 0;
|
|
|
+// await magicJS.http.get({
|
|
|
+// url: "https://post.smzdm.com/",
|
|
|
+// headers: {
|
|
|
+// Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
|
|
|
+// "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
|
+// Host: "post.smzdm.com",
|
|
|
+// "User-Agent": pcUserAgent,
|
|
|
+// },
|
|
|
+// body: "",
|
|
|
+// }).then((resp) => {
|
|
|
+// const articleList = resp.body.match(
|
|
|
+// /data-article=".*" data-type="zan"/gi
|
|
|
+// );
|
|
|
+// articleList.forEach((element) => {
|
|
|
+// articlesId.push(
|
|
|
+// element.match(/data-article="(.*)" data-type="zan"/)[1]
|
|
|
+// );
|
|
|
+// });
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`获取待收藏的文章列表失败,${err}`);
|
|
|
+// reject(err);
|
|
|
+// });
|
|
|
+// let favArticlesId = articlesId.splice(0, clickFavArticleMaxTimes);
|
|
|
+// if (favArticlesId.length > 0) {
|
|
|
+// // 加入收藏与取消收藏
|
|
|
+// for (let articleId of favArticlesId) {
|
|
|
+// await magicJS.utils.retry(clickFavArticle,3,500)(articleId).then((result) => {
|
|
|
+// if (result === true) {
|
|
|
+// success += 1;
|
|
|
+// }
|
|
|
+// }).catch((err) => {
|
|
|
+// magicJS.logger.error(`文章加入收藏失败,${err}`);
|
|
|
+// });
|
|
|
+// await magicJS.utils.sleep(1000);
|
|
|
+// await magicJS.utils.retry(clickFavArticle,3,500)(articleId).catch((err) => {
|
|
|
+// magicJS.logger.error(`文章取消收藏失败,${err}`);
|
|
|
+// });
|
|
|
+// await magicJS.utils.sleep(1000);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// resolve(success);
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// // 多用户签到
|
|
|
+// async function multiUsersSignIn() {
|
|
|
+// const allSessionNames = magicJS.data.allSessionNames(smzdmCookieKey);
|
|
|
+// if (!allSessionNames || allSessionNames.length === 0) {
|
|
|
+// magicJS.logger.error(
|
|
|
+// scriptName,
|
|
|
+// "",
|
|
|
+// "没有发现需要签到的Cookies\n请点击通知进行登录。", {
|
|
|
+// "open-url": "https://zhiyou.smzdm.com/user/login?redirect_to=http://zhiyou.smzdm.com/user",
|
|
|
+// }
|
|
|
+// );
|
|
|
+// } else {
|
|
|
+// magicJS.logger.info(`当前共 ${allSessionNames.length} 个Cookies需要进行签到/任务。`);
|
|
|
+// for (let [index, session] of allSessionNames.entries()) {
|
|
|
+// magicJS.logger.info(`当前正在进行第 ${index + 1} 个Cookie签到`);
|
|
|
+// // 通知信息
|
|
|
+// let title = "";
|
|
|
+// let subTitle = "";
|
|
|
+// let content = "";
|
|
|
+
|
|
|
+// // 获取Cookies
|
|
|
+// currentCookie = magicJS.data.read(smzdmCookieKey, "", session);
|
|
|
+
|
|
|
+// // 查询签到前用户数据
|
|
|
+// const beforeUserInfo = await getWebUserInfo();
|
|
|
+
|
|
|
+// // 每日签到
|
|
|
+// if (magicJS.data.read(smzdmSigninKey, true) === true) {
|
|
|
+// // Android端签到
|
|
|
+// await magicJS.utils
|
|
|
+// .retry(androidSignin, 5, 1000)(beforeUserInfo["nick_name"])
|
|
|
+// .catch((err) => {
|
|
|
+// subTitle = `Android端签到异常: ${err}`;
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// // 日常任务
|
|
|
+// if (magicJS.data.read(smzdmMissionKey, true) === true) {
|
|
|
+// const success = await favArticles();
|
|
|
+// const msg = `每日收藏文章任务 ${success}/${clickFavArticleMaxTimes}`;
|
|
|
+// content += !!content ? `\n${msg}` : msg;
|
|
|
+// magicJS.logger.info(msg);
|
|
|
+// }
|
|
|
+
|
|
|
+// // 抽奖
|
|
|
+// if (magicJS.data.read(smzdmLotteryKey, true) === true) {
|
|
|
+// const msg = await lotteryDraw();
|
|
|
+// content += !!content ? "\n" : "";
|
|
|
+// content += msg;
|
|
|
+// magicJS.logger.info(msg);
|
|
|
+// }
|
|
|
+
|
|
|
+// // 休眠
|
|
|
+// await magicJS.utils.sleep(3000);
|
|
|
+
|
|
|
+// // 获取签到后的用户信息
|
|
|
+// const afterUserInfo = await getWebUserInfo();
|
|
|
+
|
|
|
+// title = `${scriptName} - ${afterUserInfo.nick_name} V${afterUserInfo.vip}`;
|
|
|
+
|
|
|
+// // 检查是否黑号
|
|
|
+// if (magicJS.data.read(smzdmCheckBlackRoom, false) === true && (afterUserInfo.blackroom_desc)) {
|
|
|
+// magicJS.notification.post(
|
|
|
+// title, "",
|
|
|
+// `⚠️账户已在小黑屋中,请谨慎使用脚本!\n小黑屋描述:${afterUserInfo.blackroom_desc}`
|
|
|
+// );
|
|
|
+// }
|
|
|
+
|
|
|
+// // 重复签到
|
|
|
+// if (
|
|
|
+// afterUserInfo.has_checkin === true &&
|
|
|
+// beforeUserInfo.has_checkin === true
|
|
|
+// ) {
|
|
|
+// subTitle = "重复签到";
|
|
|
+// } else {
|
|
|
+// subTitle = `已连续签到${afterUserInfo.daily_checkin_num}天`;
|
|
|
+// }
|
|
|
+
|
|
|
+// // 记录日志
|
|
|
+// let msg = `昵称:${beforeUserInfo.nick_name}\n签到状态:${afterUserInfo.has_checkin}\n签到后等级${afterUserInfo.vip},积分${afterUserInfo.point},经验${afterUserInfo.exp},金币${afterUserInfo.gold},碎银子${afterUserInfo.silver},未读消息${afterUserInfo.unread_msg}`;
|
|
|
+// magicJS.logger.info(msg);
|
|
|
+
|
|
|
+// // 通知
|
|
|
+// if (beforeUserInfo.exp && afterUserInfo.exp) {
|
|
|
+// let addPoint = afterUserInfo.point - beforeUserInfo.point;
|
|
|
+// let addExp = afterUserInfo.exp - beforeUserInfo.exp;
|
|
|
+// let addGold = afterUserInfo.gold - beforeUserInfo.gold;
|
|
|
+// let addSilver = afterUserInfo.silver - beforeUserInfo.silver;
|
|
|
+// content += !!content ? "\n" : "";
|
|
|
+// content +=
|
|
|
+// "积分" +
|
|
|
+// afterUserInfo.point +
|
|
|
+// (addPoint > 0 ? "(+" + addPoint + ")" : "") +
|
|
|
+// " 经验" +
|
|
|
+// afterUserInfo.exp +
|
|
|
+// (addExp > 0 ? "(+" + addExp + ")" : "") +
|
|
|
+// " 金币" +
|
|
|
+// afterUserInfo.gold +
|
|
|
+// (addGold > 0 ? "(+" + addGold + ")" : "") +
|
|
|
+// "\n" +
|
|
|
+// "碎银子" +
|
|
|
+// afterUserInfo.silver +
|
|
|
+// (addSilver > 0 ? "(+" + addSilver + ")" : "") +
|
|
|
+// " 未读消息" +
|
|
|
+// afterUserInfo.unread_msg;
|
|
|
+// }
|
|
|
+// magicJS.notification.post(title, subTitle, content, {
|
|
|
+// "media-url": afterUserInfo.avatar,
|
|
|
+// });
|
|
|
+
|
|
|
+// magicJS.logger.info(`第 ${index + 1} 个Cookie签到完毕`);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
Main();
|
|
|
|