diff --git a/web/backend/services/douyu_runner.py b/web/backend/services/douyu_runner.py index 9e64a2d..e98a826 100644 --- a/web/backend/services/douyu_runner.py +++ b/web/backend/services/douyu_runner.py @@ -1517,7 +1517,7 @@ class DouyuBatchRunner: display_role = role.get("role_name") or account.xpd_game_name or "" channel = "微信" if (role.get("type") == "wx" or account.xpd_area_id == 1) else "手Q" result.update({ - "goods": goods_raw, + "goods": {**goods_raw, "commodityName": goods.name or ""}, "game_name": display_role, "game_channel": channel, "account_name": account.nickname or account.username or account.uid or f"#{account.id}", diff --git a/web/frontend/src/utils/exchangeImage.ts b/web/frontend/src/utils/exchangeImage.ts index d847d74..5c62e04 100644 --- a/web/frontend/src/utils/exchangeImage.ts +++ b/web/frontend/src/utils/exchangeImage.ts @@ -26,11 +26,13 @@ function goodsOf(task: DouyuTaskItem): { accountName: string; } { const goods = (task.result?.goods ?? null) as Record | null; - const name = rawString(goods, 'commodityName') + const name = (rawString(goods, 'commodityName') || rawString(goods, 'name') || rawString(goods, 'sGoodsName') || task.message.replace(/^兑换[^::]*[::]?\s*/, '').trim() - || rawString(task.result, 'commodity_id'); + || rawString(task.result, 'commodity_id')) + .replace(/[((]\d+\s*(?:点券|碎片|积分)[))]\s*$/, '') + .trim(); 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');