diff --git a/.github/workflows/pkg.yml b/.github/workflows/pkg.yml index a4537ab..0a4be6a 100644 --- a/.github/workflows/pkg.yml +++ b/.github/workflows/pkg.yml @@ -26,8 +26,8 @@ jobs: nodev: 18 - platform: win nodev: 18 - - platform: win - nodev: 12 + # - platform: win + # nodev: 12 steps: - name: "Checkout codes" uses: actions/checkout@v3 diff --git a/lib/core/searcher.js b/lib/core/searcher.js index 139889c..34c77ae 100644 --- a/lib/core/searcher.js +++ b/lib/core/searcher.js @@ -103,7 +103,15 @@ function parseDynamicCard(dynamic_detail_card) { obj.reserve_lottery_text = text; } } - if (JSON.stringify(add_on_card_info).match(/充电专属抽奖/)) { + if (extendjsonToJson[""]) { + let r = extendjsonToJson[""].reserve || {}; + let { reserve_id, reserve_lottery } = r; + if (reserve_lottery === 1) { + obj.reserve_id = reserve_id + ""; + obj.reserve_lottery_text = "信息丢失"; + } + } + if (extend_json.match(/"":\{"lottery/)) { obj.is_charge_lottery = true } /* 是否有官方抽奖 */ @@ -119,9 +127,10 @@ function parseDynamicCard(dynamic_detail_card) { || ''; /* 转发 */ if (obj.type === 1) { - const { origin_extension, origin } = cardToJson + const { origin_extension, origin, origin_extend_json } = cardToJson , originToJson = strToJson(origin) , { add_on_card_info = [] } = display.origin || {} + , originExtendjsonToJson = strToJson(origin_extend_json) , { user, item } = originToJson; /* 源动态的ts10 */ obj.origin_create_time = desc.origin.timestamp; @@ -150,7 +159,15 @@ function parseDynamicCard(dynamic_detail_card) { obj.origin_reserve_lottery_text = text; } } - if (JSON.stringify(add_on_card_info).match(/充电专属抽奖/)) { + if (originExtendjsonToJson[""]) { + let r = originExtendjsonToJson[""].reserve || {}; + let { reserve_id, reserve_lottery } = r; + if (reserve_lottery === 1) { + obj.origin_reserve_id = reserve_id + ""; + obj.origin_reserve_lottery_text = "信息丢失"; + } + } + if (origin_extend_json.match(/"":\{"lottery/)) { obj.origin_is_charge_lottery = true } /* 是否有官方抽奖 */ diff --git a/lib/net/bili.js b/lib/net/bili.js index dd27d73..e310aee 100644 --- a/lib/net/bili.js +++ b/lib/net/bili.js @@ -911,7 +911,7 @@ const bili_client = { }, /** * 预约抽奖 - * @param {number} reserve_id + * @param {string} reserve_id * @returns */ async reserve_lottery(reserve_id) { diff --git a/test/dynamic_card.test.js b/test/dynamic_card.test.js index 0204edb..e655464 100644 --- a/test/dynamic_card.test.js +++ b/test/dynamic_card.test.js @@ -4,7 +4,7 @@ const searcher = require("../lib/core/searcher"); const util = require('./util'); (async () => { - await util.par_run([0, 1, 2, 3, 4, 5, 6], [ + await util.par_run([0, 1, 2, 3, 4, 5, 6, 7, 8], [ // 0 async () => { let info = await bili_client.getOneDynamicByDyid("728424890210713624"); @@ -12,8 +12,8 @@ const util = require('./util'); }, // 1 async () => { - // let info = await bili_client.getOneDynamicByDyid("728455586333589522"); - // assert(searcher.parseDynamicCard(info).origin_is_charge_lottery); + let info = await bili_client.getOneDynamicByDyid("768874900850999300"); + assert(searcher.parseDynamicCard(info).origin_is_charge_lottery); }, // 2 async () => { @@ -50,6 +50,18 @@ const util = require('./util'); const card = searcher.parseDynamicCard(dy) assert.notEqual(card.description + "", undefined + ""); }, + // 7 + async () => { + const dy = await bili_client.getOneDynamicByDyid("832208853440397352"); + const card = searcher.parseDynamicCard(dy) + assert.equal(card.reserve_id, "3106984"); + }, + // 8 + async () => { + const dy = await bili_client.getOneDynamicByDyid("832966468497834066"); + const card = searcher.parseDynamicCard(dy) + assert.equal(card.origin_reserve_id, "3106984"); + }, ]) console.log("dynamic_card.test ... ok!");