feat(douyu): 支持和平小店商品兑换

This commit is contained in:
yml2213
2026-08-07 22:47:13 +08:00
parent a67d144b78
commit ec5eb637bb
6 changed files with 350 additions and 10 deletions
+3 -2
View File
@@ -1,6 +1,6 @@
import type { DouyuTaskItem } from '../api/types';
const EXCHANGE_TASK_TYPES = new Set(['exchange_goods', 'exchange_esports_goods']);
const EXCHANGE_TASK_TYPES = new Set(['exchange_goods', 'exchange_esports_goods', 'exchange_xpd_goods']);
const CARD_W = 320;
const CARD_H = 470;
const FONT_FAMILY = '"PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif';
@@ -28,9 +28,10 @@ function goodsOf(task: DouyuTaskItem): {
const goods = (task.result?.goods ?? null) as Record<string, unknown> | null;
const name = rawString(goods, 'commodityName')
|| rawString(goods, 'name')
|| rawString(goods, 'sGoodsName')
|| task.message.replace(/^兑换[^:]*[:]?\s*/, '').trim()
|| rawString(task.result, 'commodity_id');
const pic = rawString(goods, 'webPic') || rawString(goods, 'pic');
const pic = rawString(goods, 'webPic') || rawString(goods, 'pic') || rawString(goods, 'sGoodsPic');
const roleName = rawString(task.result, 'game_name');
const channel = rawString(task.result, 'game_channel');
const accountName = rawString(task.result, 'account_name')