diff --git a/build_data.py b/build_data.py index 0a9f7b1..6d2faab 100644 --- a/build_data.py +++ b/build_data.py @@ -31,7 +31,9 @@ books = [(f, openpyxl.load_workbook(f, data_only=True)) for f in SRC_FILES] # 优先用独立的 投手.xlsx(月度数据文件已不再带「投手」sheet); # 没有它时退回到最新一个仍带该 sheet 的月度文件。 # 花名册候选,按优先级从高到低;命中第一个就用它。 -ROSTER_PATTERNS = ['投手List*.xlsx', '武汉自投投放下单*.xlsx', '投手.xlsx'] +# 花名册统一放在 roster.xlsx —— 用户每次发来的新表(文件名各异)都覆盖到这个名字, +# 这样不必每换一个文件名就改一次代码。 +ROSTER_PATTERNS = ['roster.xlsx'] roster_file, roster = None, None for pat in ROSTER_PATTERNS: hits = sorted(glob.glob(os.path.join(HERE, pat))) diff --git a/data.json b/data.json index 940512a..f4b6b3b 100644 --- a/data.json +++ b/data.json @@ -7,16 +7,16 @@ "prev_range": "2026/09/10-2026/09/12", "note": "投放人以「投手」表 Media Buyer 列为准,@某某 已与某某合并计算;未填写投放人的 Adpingid 不计入;exclude.json 所列包名已排除。Package 后缀为该 Package 花费最高的投放地区,Adpingid 为该地区内花费最高的 Adping。" }, - "grand_total": 13331.6094, - "week34_id_count": 132, + "grand_total": 13387.3437, + "week34_id_count": 149, "buyers": [ { "name": "黄政", "@name": "黄政", - "total": 3835.971, + "total": 3848.9397, "prev_total": 3515.7645, - "active_ids": 40, - "owned_ids": 147, + "active_ids": 41, + "owned_ids": 149, "pkgs": [ { "pkg": "com.amazon.mShop.android.shopping", @@ -58,10 +58,10 @@ { "name": "谭超", "@name": "谭超", - "total": 2968.486, + "total": 2969.706, "prev_total": 3088.426, - "active_ids": 22, - "owned_ids": 129, + "active_ids": 28, + "owned_ids": 137, "pkgs": [ { "pkg": "com.kwai.bulldog", @@ -89,7 +89,7 @@ "geo": "RU", "label": "com.vitastudio.mahjong_RU", "adping": "91496148", - "spend": 337.3 + "spend": 338.52 }, { "pkg": "tech.jm", @@ -151,7 +151,7 @@ "total": 2025.6114, "prev_total": 2109.5657, "active_ids": 30, - "owned_ids": 125, + "owned_ids": 124, "pkgs": [ { "pkg": "ru.ozon.app.android", @@ -193,10 +193,10 @@ { "name": "詹涵粤", "@name": "詹涵粤", - "total": 1975.6368, + "total": 2017.1824, "prev_total": 2021.8295, - "active_ids": 16, - "owned_ids": 151, + "active_ids": 26, + "owned_ids": 162, "pkgs": [ { "pkg": "com.king.candycrushsaga", @@ -236,91 +236,5 @@ ] } ], - "unmatched": [ - { - "adping": "91565960", - "pkg": "com.puzzlegames.puzzlebrickslegend", - "spend": 12.9687 - }, - { - "adping": "91565967", - "pkg": "(未知)", - "spend": 12.3676 - }, - { - "adping": "91565966", - "pkg": "(未知)", - "spend": 11.1248 - }, - { - "adping": "91565968", - "pkg": "(未知)", - "spend": 5.9756 - }, - { - "adping": "91565965", - "pkg": "(未知)", - "spend": 4.6184 - }, - { - "adping": "12306671", - "pkg": "com.nagwa.classes", - "spend": 3.4 - }, - { - "adping": "91565961", - "pkg": "(未知)", - "spend": 1.8304 - }, - { - "adping": "91565962", - "pkg": "(未知)", - "spend": 1.63 - }, - { - "adping": "91565949", - "pkg": "com.vitastudio.mahjong", - "spend": 0.75 - }, - { - "adping": "91565963", - "pkg": "(未知)", - "spend": 0.3248 - }, - { - "adping": "91565944", - "pkg": "com.vitastudio.mahjong", - "spend": 0.3 - }, - { - "adping": "91565946", - "pkg": "com.vitastudio.mahjong", - "spend": 0.17 - }, - { - "adping": "91565964", - "pkg": "(未知)", - "spend": 0.154 - }, - { - "adping": "12304863", - "pkg": "ru.zhuck.webapp", - "spend": 0.12 - }, - { - "adping": "91565943", - "pkg": "com.vitastudio.mahjong", - "spend": 0.0 - }, - { - "adping": "91565945", - "pkg": "com.vitastudio.mahjong", - "spend": 0.0 - }, - { - "adping": "91551845", - "pkg": "com.vitastudio.mahjong", - "spend": 0.0 - } - ] + "unmatched": [] } \ No newline at end of file diff --git a/roster.xlsx b/roster.xlsx new file mode 100644 index 0000000..e14e203 Binary files /dev/null and b/roster.xlsx differ diff --git a/投手.xlsx b/投手.xlsx deleted file mode 100644 index d10e3f3..0000000 Binary files a/投手.xlsx and /dev/null differ diff --git a/投手List.xlsx b/投手List.xlsx deleted file mode 100644 index ebc69c4..0000000 Binary files a/投手List.xlsx and /dev/null differ diff --git a/武汉自投投放下单_AM&Media Buy.xlsx b/武汉自投投放下单_AM&Media Buy.xlsx deleted file mode 100644 index 9f5fd80..0000000 Binary files a/武汉自投投放下单_AM&Media Buy.xlsx and /dev/null differ