mirror of
https://github.com/shanmiteko/LotteryAutoScript.git
synced 2026-06-04 21:01:17 +08:00
fix: 根据点赞去重(#64)
This commit is contained in:
parent
d1c2c61626
commit
4accd2df2b
@ -1,7 +1,7 @@
|
||||
const utils = require('../utils');
|
||||
const bili = require('../net/bili');
|
||||
const { send } = require("../net/http");
|
||||
const config = require("../data/config");
|
||||
const { article_scan_page, not_check_article, get_dynamic_detail_wait, uid_scan_page, search_wait, tag_scan_page } = require("../data/config");
|
||||
|
||||
const { log } = utils
|
||||
|
||||
@ -218,9 +218,7 @@ class Searcher {
|
||||
*/
|
||||
async getLotteryInfoByUID(UID) {
|
||||
log.info('获取动态', `开始获取用户${UID}的动态信息`);
|
||||
const
|
||||
{ uid_scan_page, search_wait, get_dynamic_detail_wait } = config,
|
||||
{ allModifyDynamicResArray } = await Searcher.checkAllDynamic(UID, uid_scan_page, search_wait);
|
||||
const { allModifyDynamicResArray } = await Searcher.checkAllDynamic(UID, uid_scan_page, search_wait);
|
||||
|
||||
let { length } = allModifyDynamicResArray
|
||||
|
||||
@ -239,7 +237,7 @@ class Searcher {
|
||||
const results = await pre
|
||||
, { origin_dynamic_id } = cur;
|
||||
|
||||
log.info('获取动态', `查看源动态(${origin_dynamic_id})的细节 (${length--})`)
|
||||
log.info('获取动态', `查看源动态(${origin_dynamic_id})是否点赞 (${length--})`)
|
||||
|
||||
const card = await bili.getOneDynamicByDyid(origin_dynamic_id)
|
||||
|
||||
@ -279,7 +277,6 @@ class Searcher {
|
||||
*/
|
||||
async getLotteryInfoByTag(tag_name) {
|
||||
const
|
||||
{ tag_scan_page, search_wait } = config,
|
||||
tag_id = await bili.getTagIDByTagName(tag_name),
|
||||
hotdy = await bili.getHotDynamicInfoByTagID(tag_id),
|
||||
modDR = modifyDynamicRes(hotdy);
|
||||
@ -334,9 +331,7 @@ class Searcher {
|
||||
*/
|
||||
async getLotteryInfoByArticle(key_words) {
|
||||
log.info('获取动态', `开始获取含关键词${key_words}的专栏信息`);
|
||||
const
|
||||
{ article_scan_page, not_check_article, get_dynamic_detail_wait } = config,
|
||||
cvs = (await bili.searchArticlesByKeyword(key_words)).slice(0, article_scan_page);
|
||||
const cvs = (await bili.searchArticlesByKeyword(key_words)).slice(0, article_scan_page);
|
||||
|
||||
/**存储所有专栏中的dyid */
|
||||
let dyinfos = [];
|
||||
@ -359,7 +354,7 @@ class Searcher {
|
||||
/**遍历某专栏中的dyids */
|
||||
for (const dyid of dyids_set) {
|
||||
if (dyid.length === utils.dyid_length) {
|
||||
log.info('获取动态', `查看专栏中所提及动态(${dyid})的细节 (${length--})`)
|
||||
log.info('获取动态', `查看专栏中所提及动态(${dyid})是否点赞 (${length--})`)
|
||||
|
||||
const card = await bili.getOneDynamicByDyid(dyid)
|
||||
|
||||
@ -416,6 +411,7 @@ class Searcher {
|
||||
getLotteryInfoByAPI(api) {
|
||||
return new Promise((resolve) => {
|
||||
if (api) {
|
||||
const { strToJson } = utils;
|
||||
log.info('获取动态', `开始获取链接(${api})中的抽奖信息`)
|
||||
send({
|
||||
url: api,
|
||||
@ -428,7 +424,40 @@ class Searcher {
|
||||
log.error("从API响应数据中获取抽奖信息", body.err_msg)
|
||||
resolve(null)
|
||||
} else {
|
||||
resolve(JSON.parse(body).lottery_info)
|
||||
const raw_lottery_info = strToJson(body).lottery_info;
|
||||
|
||||
if (raw_lottery_info) {
|
||||
let { length } = raw_lottery_info;
|
||||
if (length) {
|
||||
const lottery_info = raw_lottery_info
|
||||
.reduce(async (pre, cur) => {
|
||||
const results = await pre
|
||||
, { dyid } = cur;
|
||||
|
||||
log.info('获取动态', `查看动态(${dyid})是否点赞 (${length--})`)
|
||||
|
||||
const card = await bili.getOneDynamicByDyid(dyid)
|
||||
|
||||
if (card) {
|
||||
await utils.delay(get_dynamic_detail_wait)
|
||||
|
||||
const { is_liked } = parseDynamicCard(card)
|
||||
|
||||
cur.is_liked = is_liked
|
||||
|
||||
return [...results, cur]
|
||||
}
|
||||
|
||||
return results
|
||||
|
||||
}, Promise.resolve([]))
|
||||
|
||||
resolve(lottery_info)
|
||||
return
|
||||
}
|
||||
}
|
||||
log.error("从API响应数据中获取抽奖信息", "非Json数据或没有lottery_info或lottery为空")
|
||||
resolve(null)
|
||||
}
|
||||
},
|
||||
failure: err => {
|
||||
|
||||
@ -372,6 +372,7 @@ const bili_client = {
|
||||
log.warn('获取一个动态的细节', `动态(${dynamic_id})不存在`);
|
||||
return;
|
||||
}
|
||||
log.info('获取一个动态的细节', `动态id(${dynamic_id})`);
|
||||
return card;
|
||||
},
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user