addashboard-cli 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/ads.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/ad-ops/SKILL.md +43 -3
- package/skills/ad-ops/ad-planner.html +107 -5
- package/skills/ad-ops/scripts/adops.sh +10 -0
- package/skills/ad-ops/scripts/thumbs_download.py +288 -0
package/dist/commands/ads.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads.js","sourceRoot":"","sources":["../../src/commands/ads.ts"],"names":[],"mappings":";;;AA0FA,
|
|
1
|
+
{"version":3,"file":"ads.js","sourceRoot":"","sources":["../../src/commands/ads.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -166,7 +166,7 @@ program
|
|
|
166
166
|
.option('--campaign-id <id>', '対象キャンペーン ID(yda + campaigns で単一CPインポート / yda + ads で --ad-group-ids の代わりに指定可)')
|
|
167
167
|
.option('--ad-group-ids <ids>', '対象広告グループ ID のカンマ区切り(yda + ads。--campaign-id とどちらか必須)')
|
|
168
168
|
.option('--raw', '媒体APIの生レスポンスも併せて返す(yda + ads / yda + campaigns --campaign-id。公式定義と実APIが食い違う箇所の調査用)')
|
|
169
|
-
.option('--approval-status <statuses>', '審査状況で絞る(yda + media
|
|
169
|
+
.option('--approval-status <statuses>', '審査状況で絞る(yda + media のみ。カンマ区切り。否認の抽出は PRE_DISAPPROVED,POST_DISAPPROVED。DISAPPROVED という値は存在しない)')
|
|
170
170
|
.option('--mode <mode>', '地域の取得経路(bytedance + regions のみ。tool=配信面と目的の条件込み・既定 / search=advertiser 単位。tool が空を返したときの切り分けに使う)')
|
|
171
171
|
.option('--level-range <range>', '地域の粒度(bytedance + regions のみ。ALL | TO_COUNTRY=既定 | TO_PROVINCE | TO_CITY | TO_DISTRICT)')
|
|
172
172
|
.action(async (opts) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/ad-ops/SKILL.md
CHANGED
|
@@ -25,6 +25,7 @@ skills/ad-ops/scripts/adops.sh plan [--wait] [<入稿計画.json>] # フェ
|
|
|
25
25
|
# --wait = 入稿ボタンが押されるまで待つ(バックグラウンドで起動する)
|
|
26
26
|
skills/ad-ops/scripts/adops.sh open <platform> <accountId> [campaigns|adgroups|ads] # 管理画面を開く(中間層は YDA=adgroups / Meta=adsets に自動変換)
|
|
27
27
|
skills/ad-ops/scripts/adops.sh refs-import <platform> <accountId> [--write] # 実アカウントから参照表を取り込む
|
|
28
|
+
skills/ad-ops/scripts/adops.sh thumbs <platform> <accountId> # 素材のサムネイルを落とす(素材選択で見られるようにする)
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
| サブコマンド | やること |
|
|
@@ -35,6 +36,7 @@ skills/ad-ops/scripts/adops.sh refs-import <platform> <accountId> [--write]
|
|
|
35
36
|
| `plan --wait` | 上記を、**プランナーの入稿ボタンが押されるまで待ってから**行う。押下を検知すると自動で回収〜lint まで進むので、**プロンプトのコピペが要らなくなる**。Claude がバックグラウンドで起動する |
|
|
36
37
|
| `open` | アカウントJSONの `mccId` を読んで管理画面URLを組み立てて開く。`--dry` でURLを出すだけ。**中間層の語は媒体で違う**(YDA=`adgroups` / Meta=`adsets`)が、どちらの表記で渡しても媒体別の正しい語へ変換される |
|
|
37
38
|
| `refs-import` | 実アカウントから参照表を集めてアカウントJSONの `refs` にマージする(**yda / google**)。`--from-plan <入稿計画.json>` は実 API を叩かず、**本実行でアップロードしたロゴ**を取り込む。yda は見出し・説明文・CP名・広告グループの `campaignId`/`paramCode`/`finalUrlSample`・オーディエンス・配置面、google はブランド名・長見出し・ロゴ。**既定は差分表示のみ**、`--write` で書き込み(既存の番号を振り直さず、既存の値を消さず、書き込み前に `.bak` へ退避する) |
|
|
39
|
+
| `thumbs` | 素材のサムネイルを落として `アカウント/<媒体>/サムネ/<accountId>/<管理番号>.jpg` に置く。プランナーの素材選択でサムネが出るようになる。**保存先は追跡も npm publish もしない**(顧客の広告クリエイティブそのもの)。各自の環境で実行する。サムネの入手は媒体で違う — meta=`url_128` / google=CDN の `?w=300&h=300` はリサイズ不要、yda / bytedance は原寸しか取れないので `sips`(macOS 標準)でリサイズする。**Google の CDN は 256/512 を無視して原寸を返す**ので、落とした画像の寸法を検証して過大なら保存しない。取得後は**アカウントJSONのトップレベル `thumbs`** に管理番号の一覧を書き、プランナーはそこに載っている番号にだけサムネを出す(HTTP で有無を確かめると 404 が console error に残り既存 E2E が落ちる)。`refs` の下には置かない(`normalizeRefs` が未知のキーを捨てる) |
|
|
38
40
|
|
|
39
41
|
**【必須】管理画面URLを手で組み立てない。** 媒体ごとのURL形式(YDA の `mccId` 等)は `adops.sh open` に集約してある。SKILL.md や応答にURLをベタ書きすると、今回のように形式が変わったとき全箇所が腐る。
|
|
40
42
|
|
|
@@ -70,6 +72,34 @@ skills/ad-ops/scripts/adops.sh preflight yda <accountId>
|
|
|
70
72
|
* ユーザーの依頼にアカウント名・媒体が明示されていれば、確認を省いて既定として提示してよい
|
|
71
73
|
* ここで決まった `platform` / アカウント名は**以降の全分岐で使い回す。下流で再度聞かない**(旧 Step 3 の「入稿先アカウント名」はこのステップに前倒しした)
|
|
72
74
|
|
|
75
|
+
#### 素材のサムネを取得する(アカウントが決まった直後・#157)
|
|
76
|
+
|
|
77
|
+
**アカウントJSON にトップレベル `thumbs` が無ければ、確認せずに取得してよい。**
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
skills/ad-ops/scripts/adops.sh thumbs <platform> <accountId> --count # 落とさずに件数だけ見る
|
|
81
|
+
skills/ad-ops/scripts/adops.sh thumbs <platform> <accountId> # 取得する
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**`--count` を先に叩く。** 何件・何分かかるかが分かるので、多いときだけ伝えてから実行できる。
|
|
85
|
+
|
|
86
|
+
取得すると、プランナーの素材選択に**サムネが並んで中身が見える**ようになる(Finder のリスト表示と同じ形)。
|
|
87
|
+
無い状態でもプランナーは普通に動くので、**失敗しても止めない**。先へ進む。
|
|
88
|
+
|
|
89
|
+
判断の目安:
|
|
90
|
+
|
|
91
|
+
| 状況 | どうするか |
|
|
92
|
+
|---|---|
|
|
93
|
+
| `thumbs` が無い / `--count` が 100 件未満 | **確認せずに実行する。** 数秒〜十数秒で終わる |
|
|
94
|
+
| **`--count` が 100 件を超える** | **枚数と所要時間を伝えてから実行する。** 実測: YDA 408 枚で 3 分半・16MB |
|
|
95
|
+
| `thumbs` が既にある | **実行しない。** 2 回目以降は不要 |
|
|
96
|
+
| 素材が増えてサムネが足りない | `--force` で取り直す。**開くたびに自動で追従はしない** |
|
|
97
|
+
| **Google でクォータが枯れている** | **飛ばす。** アセットURLの取得に Ads API を使うため、枯渇を悪化させる |
|
|
98
|
+
|
|
99
|
+
⚠ **落とすのは顧客の広告クリエイティブそのもの。** 保存先は `.gitignore` 済みで npm publish にも
|
|
100
|
+
乗らないが、**触るつもりのないアカウントで走らせない**(そのアカウントの画像が手元に増える)。
|
|
101
|
+
だから「開くたびに自動」ではなく、このステップで 1 回だけにしている。
|
|
102
|
+
|
|
73
103
|
### 入口ステップ2: 今回の方式(3択)
|
|
74
104
|
|
|
75
105
|
* **提示条件**: ユーザーの発話に入稿パラメータ(予算・CTA・tCPA・配信開始日時・キャンペーン名など)も方式の明示も無いときだけ `AskUserQuestion` を出す。明示があればスキップして該当フローへ直行する
|
|
@@ -147,7 +177,7 @@ npx -y addashboard-cli@latest auth whoami
|
|
|
147
177
|
|
|
148
178
|
* **スマートターゲティング: 常時 ON** (backend 側の既定も `true`。明示的に OFF にしたい場合だけユーザーに確認する)
|
|
149
179
|
|
|
150
|
-
* **配信開始日時: 翌日 05:00** (
|
|
180
|
+
* **配信開始日時: 翌日 05:00** (プランナーで空欄のときの既定。当日配信は審査が間に合わず意図しない時間に出るため。**YDA も時刻が効く** — Yahoo Ads API は `startDate`(yyyyMMdd) と **`startTime`(HHmm)** の2フィールドで、プランナーは日付と時刻を分けて送る。日付だけを入れた場合は `startTime` を送らない)
|
|
151
181
|
|
|
152
182
|
**必ずユーザー確認 or 自動生成が必要な項目**:
|
|
153
183
|
|
|
@@ -523,7 +553,7 @@ TikTok の削除は `/campaign/status/update/` の `operation_status=DELETE`。*
|
|
|
523
553
|
| キャンペーン一覧 | `npx -y addashboard-cli@latest list --platform <媒体> --resource campaigns --account-id <id>` |
|
|
524
554
|
| **広告一覧 (YDA)** | `npx -y addashboard-cli@latest list --platform yda --resource ads --account-id <id> --campaign-id <cpId>`(広告グループで絞るなら `--ad-group-ids <id1,id2>`。どちらか必須) |
|
|
525
555
|
| 登録画像一覧 (YDA) | `npx -y addashboard-cli@latest list --platform yda --resource media --account-id <id>`(審査状況 `approvalStatus` と否認理由コード `disapprovalReasonCodes` 付き) |
|
|
526
|
-
| **掲載不可の画像だけ抽出 (YDA)** | `npx -y addashboard-cli@latest list --platform yda --resource media --account-id <id> --approval-status PRE_DISAPPROVED,
|
|
556
|
+
| **掲載不可の画像だけ抽出 (YDA)** | `npx -y addashboard-cli@latest list --platform yda --resource media --account-id <id> --approval-status PRE_DISAPPROVED,POST_DISAPPROVED` |
|
|
527
557
|
| **入稿後の状態確認 (Google)** | `npx -y addashboard-cli@latest list --platform google --resource ads --account-id <id> [--campaign-id <cpId>]`(CP/広告グループ/広告の status を名前で返す) |
|
|
528
558
|
| 登録画像一覧 (Meta) | `npx -y addashboard-cli@latest list --platform meta --resource image-library --account-id act_<id>`(imageHash) |
|
|
529
559
|
| 登録動画一覧 (Meta) | `npx -y addashboard-cli@latest list --platform meta --resource video-library --account-id act_<id>`(videoId) |
|
|
@@ -558,7 +588,17 @@ npx -y addashboard-cli@latest update-status \
|
|
|
558
588
|
|
|
559
589
|
**【重要】画像が「掲載不可」でも広告は「承認済み」のままになる。** 広告単位の審査状況(`--resource ads` の `approvalStatus`)が全件 APPROVED でも、画像単位で掲載不可になっていることがある。**画像の掲載可否は `--resource media` でしか分からない**ので、入稿後の確認は両方を見る。掲載不可があったら「別名で再アップロード → 差し替え広告を追加」する(同名で上げ直しても否認判定が引き継がれる)。
|
|
560
590
|
|
|
561
|
-
|
|
591
|
+
`approvalStatus` の実測値(2026-08-27 / YDA 19アカウント・計3,893件を走査):
|
|
592
|
+
|
|
593
|
+
| 値 | 意味 | 掲載 |
|
|
594
|
+
|---|---|---|
|
|
595
|
+
| `APPROVED` | 承認済み | される |
|
|
596
|
+
| `PRE_DISAPPROVED` | 掲載前の否認(= 管理画面の「掲載不可」) | されない |
|
|
597
|
+
| `POST_DISAPPROVED` | **掲載後の否認**。一度配信されてから止まる | されない |
|
|
598
|
+
| `PENDING_UNSPECIFIED_AD` | 審査中(まだ広告に使われていない) | まだ |
|
|
599
|
+
|
|
600
|
+
- **【必須】否認の抽出は `PRE_DISAPPROVED,POST_DISAPPROVED` の両方を指定する。** `DISAPPROVED` という値は**存在しない**ので、指定しても何も引っかからない。`PRE_DISAPPROVED` だけだと掲載後に止まった画像を取りこぼす(実測で 1 アカウントに 4 件あった)
|
|
601
|
+
- `PENDING_UNSPECIFIED_AD` は否認ではない。差し替え対象に含めない
|
|
562
602
|
- `disapprovalReasonCodes` は理由コードの配列。**空配列なら否認なし**。コードの意味は Yahoo の公式リファレンスを引く(CLI は説明文を持たない)
|
|
563
603
|
- 差し替え画像のサイズ合わせ用に `width` / `height` / `fileSize` / `aspectRatio` / `mediaAdFormat` も返る
|
|
564
604
|
|
|
@@ -191,6 +191,21 @@
|
|
|
191
191
|
.ddrow.cur{background:var(--accent-soft); box-shadow:inset 3px 0 0 var(--accent);}
|
|
192
192
|
.ddrow .ddno{font-family:var(--mono); color:var(--accent); font-weight:700; flex:0 0 auto; min-width:40px;}
|
|
193
193
|
.ddrow .ddtx{color:var(--fg); overflow:hidden; text-overflow:ellipsis;}
|
|
194
|
+
/* サムネ (#157)。Finder のリスト表示に寄せて「小さい画像 + 名前」の1行にする。
|
|
195
|
+
画像が無いアカウントでも崩れないよう、読み込み失敗時は onerror で枠ごと畳む。 */
|
|
196
|
+
.ddrow .ddthumb{flex:0 0 auto; width:28px; height:28px; object-fit:contain; border-radius:3px;
|
|
197
|
+
background:var(--bg2); border:1px solid var(--line2); cursor:zoom-in;}
|
|
198
|
+
.ddrow .ddthumb:hover{border-color:var(--accent);}
|
|
199
|
+
/* 拡大表示。サムネは低解像度なので拡大するとぼやけるが、どの画像かの判別には足りる */
|
|
200
|
+
#thumbZoom{position:fixed; inset:0; z-index:60; display:flex; align-items:center; justify-content:center;
|
|
201
|
+
background:rgba(0,0,0,.72); cursor:zoom-out;}
|
|
202
|
+
/* サムネは 300px なので、素のままだと拡大しても 300px にしかならない。
|
|
203
|
+
画面に対して大きく引き伸ばす。粗くなるがどの画像かの判別が目的なので許容する。 */
|
|
204
|
+
#thumbZoom img{width:min(68vw,68vh); height:auto; max-width:78vw; max-height:78vh;
|
|
205
|
+
object-fit:contain; image-rendering:auto;
|
|
206
|
+
border-radius:8px; box-shadow:0 12px 48px rgba(0,0,0,.5); background:#fff;}
|
|
207
|
+
#thumbZoom .zcap{position:fixed; bottom:28px; left:0; right:0; text-align:center; color:#fff;
|
|
208
|
+
font-size:13px; text-shadow:0 1px 4px rgba(0,0,0,.8);}
|
|
194
209
|
table.sheet tr.cphead td{background:var(--softer); border-top:1px solid var(--line); font-weight:700;}
|
|
195
210
|
table.sheet tr.cphead .cptitle{font-size:12.5px; color:var(--fg); display:flex; align-items:center; gap:8px;}
|
|
196
211
|
table.sheet tr.adrow:hover td{background:#fcfdff;}
|
|
@@ -863,7 +878,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
863
878
|
(cli/test/unit/plannerVersion.test.ts が package.json との一致を検証するので、
|
|
864
879
|
手で書き換えて放置するとテストが落ちる)。
|
|
865
880
|
利用者が「どの版のプランナーを開いているか」を言えないと、不具合報告が噛み合わない。 */
|
|
866
|
-
const APP_VERSION = '0.
|
|
881
|
+
const APP_VERSION = '0.11.0'; /* version:sync */
|
|
867
882
|
/* 案A: embed廃止。参照データ(refs)・初期プラン・共通設定は外部JSONから起動時に読み込む。
|
|
868
883
|
同梱デフォルト: アカウント/<媒体>/index.json の先頭アカウント (refs+principal+projectName+baseArticleUrl) と サンプルプラン.json (project+campaigns)。
|
|
869
884
|
固有名詞はハードコードせず、すべて外部JSON由来にする。 */
|
|
@@ -1364,6 +1379,9 @@ PLATFORMS.yda = {
|
|
|
1364
1379
|
idPattern:/^\d+$/, idHint:'YDA アカウントID(数値)', dir:'アカウント/yda',
|
|
1365
1380
|
/* アカウントJSON → st.project への写し込み (refs は コア側で normalizeRefs) */
|
|
1366
1381
|
apply(obj, project){
|
|
1382
|
+
/* サムネがある管理番号 (#157)。`adops.sh thumbs` が書く。
|
|
1383
|
+
refs ではなくトップレベルに置く — normalizeRefs が未知のキーを捨てるため。 */
|
|
1384
|
+
project.thumbs = Array.isArray(obj.thumbs) ? obj.thumbs.map(String) : [];
|
|
1367
1385
|
project.accountId=String(obj.accountId||'');
|
|
1368
1386
|
project.accountName=String(obj.name||'');
|
|
1369
1387
|
/* E-1: 主体者(principal)はアカウントJSON由来。無ければ既存値を維持 */
|
|
@@ -1437,8 +1455,8 @@ PLATFORMS.yda = {
|
|
|
1437
1455
|
{key:'goal', label:'目的', kind:'selectv', fallback:'CONVERSION',
|
|
1438
1456
|
options:[{v:'CONVERSION',t:'コンバージョン'},{v:'CLICK',t:'クリック'},{v:'BRAND_AWARENESS',t:'ブランド認知'},
|
|
1439
1457
|
{v:'VIDEO_VIEW',t:'動画再生'},{v:'VIEWABLE_IMPRESSION',t:'vインプ'}]},
|
|
1440
|
-
/* S12: カレンダー + 時刻ピッカー。Yahoo Ads API
|
|
1441
|
-
|
|
1458
|
+
/* S12: カレンダー + 時刻ピッカー。Yahoo Ads API は startDate(yyyyMMdd) と startTime(HHmm) の
|
|
1459
|
+
2フィールドなので、日付と時刻を分けて送る (buildPlan.campaign)。 */
|
|
1442
1460
|
{key:'startDate', label:'配信開始日時', kind:'datetime', fallback:'',
|
|
1443
1461
|
title:'配信開始日時(JST)。日付はカレンダー、時刻は時計から選べます。\n'
|
|
1444
1462
|
+'空欄なら翌日 05:00 が既定です。日付は startDate、時刻は startTime(HHmm)として入稿されます。\n'
|
|
@@ -3025,6 +3043,9 @@ PLATFORMS.meta = {
|
|
|
3025
3043
|
account:{
|
|
3026
3044
|
idPattern:/^act_\d+$/, idHint:'Meta 広告アカウントID(act_ 付き)', dir:'アカウント/meta',
|
|
3027
3045
|
apply(obj, project){
|
|
3046
|
+
/* サムネがある管理番号 (#157)。`adops.sh thumbs` が書く。
|
|
3047
|
+
refs ではなくトップレベルに置く — normalizeRefs が未知のキーを捨てるため。 */
|
|
3048
|
+
project.thumbs = Array.isArray(obj.thumbs) ? obj.thumbs.map(String) : [];
|
|
3028
3049
|
if(obj.accountId!=null){ const s=String(obj.accountId); project.accountId = /^act_/.test(s)?s:('act_'+s); }
|
|
3029
3050
|
if(obj.name!=null) project.accountName=String(obj.name);
|
|
3030
3051
|
if(obj.principal!=null) project.principal=String(obj.principal);
|
|
@@ -3783,6 +3804,9 @@ PLATFORMS.google = {
|
|
|
3783
3804
|
account:{
|
|
3784
3805
|
idPattern:/^\d{10}$/, idHint:'Google 広告アカウントID(ハイフン無し10桁)', dir:'アカウント/google',
|
|
3785
3806
|
apply(obj, project){
|
|
3807
|
+
/* サムネがある管理番号 (#157)。`adops.sh thumbs` が書く。
|
|
3808
|
+
refs ではなくトップレベルに置く — normalizeRefs が未知のキーを捨てるため。 */
|
|
3809
|
+
project.thumbs = Array.isArray(obj.thumbs) ? obj.thumbs.map(String) : [];
|
|
3786
3810
|
if(obj.accountId!=null) project.accountId = String(obj.accountId).replace(/-/g,'');
|
|
3787
3811
|
if(obj.name!=null) project.accountName=String(obj.name);
|
|
3788
3812
|
if(obj.principal!=null) project.principal=String(obj.principal);
|
|
@@ -4528,6 +4552,9 @@ PLATFORMS.bytedance = {
|
|
|
4528
4552
|
account:{
|
|
4529
4553
|
idPattern:/^\d+$/, idHint:'TikTok 広告アカウントID(advertiser_id・数値)', dir:'アカウント/bytedance',
|
|
4530
4554
|
apply(obj, project){
|
|
4555
|
+
/* サムネがある管理番号 (#157)。`adops.sh thumbs` が書く。
|
|
4556
|
+
refs ではなくトップレベルに置く — normalizeRefs が未知のキーを捨てるため。 */
|
|
4557
|
+
project.thumbs = Array.isArray(obj.thumbs) ? obj.thumbs.map(String) : [];
|
|
4531
4558
|
if(obj.accountId!=null) project.accountId = String(obj.accountId);
|
|
4532
4559
|
if(obj.name!=null) project.accountName=String(obj.name);
|
|
4533
4560
|
if(obj.principal!=null) project.principal=String(obj.principal);
|
|
@@ -5431,11 +5458,82 @@ function renderDrawer(){
|
|
|
5431
5458
|
if(T.dropEmpty && String(v==null?'':v).trim()==='') return;
|
|
5432
5459
|
if(q && !refSearchStrings(T,no,v).some(s=>s.includes(q))) return;
|
|
5433
5460
|
const txt = T.drawerLabel ? T.drawerLabel(v) : esc(String(v==null?'':v));
|
|
5434
|
-
html+='<div class="ddrow'+(String(no)===curNo?' cur':'')+'" data-no="'+esc(no)+'"
|
|
5461
|
+
html+='<div class="ddrow'+(String(no)===curNo?' cur':'')+'" data-no="'+esc(no)+'">'
|
|
5462
|
+
+(single?'':thumbImgHtml(no))+'<span class="ddno">'+esc(no)+'</span>'
|
|
5435
5463
|
+(single?'':newBadge(rkey,no))+'<span class="ddtx">'+txt+'</span></div>';
|
|
5436
5464
|
});
|
|
5437
5465
|
listEl.innerHTML=html||'<div class="empty" style="padding:24px">該当なし</div>';
|
|
5438
5466
|
}
|
|
5467
|
+
/* ============ 素材サムネ (#157) ============
|
|
5468
|
+
媒体側の画像URLはどれも一時URL・CORS 制限つきで、プランナーから直接は表示できない。
|
|
5469
|
+
そのため `adops.sh thumbs` が事前に落としたファイルを参照する。
|
|
5470
|
+
置き場所は アカウント/<媒体>/サムネ/<accountId>/<管理番号>.jpg。
|
|
5471
|
+
媒体ごとに素材IDの形が違う (Google=resource_name / Meta=hash / YDA=mediaId) ので、
|
|
5472
|
+
ファイル名は媒体共通の「管理番号」で付ける。
|
|
5473
|
+
|
|
5474
|
+
**HTTP で有無を確かめない。** `fetch` も `<img>` も、外れれば 404 が console error に
|
|
5475
|
+
残り、`collectPageErrors` で空を期待している既存 E2E が落ちる (CI で uc8 / uc8b を落とした)。
|
|
5476
|
+
`onerror` で要素は消せても**ログは消せない**。アカウントJSONは元から読んでいるので、
|
|
5477
|
+
有無をそこに持たせれば追加のリクエストが要らず、外れようがない。 */
|
|
5478
|
+
|
|
5479
|
+
function thumbDir(){
|
|
5480
|
+
const acc=String((st.project&&st.project.accountId)||'').trim();
|
|
5481
|
+
if(!acc) return '';
|
|
5482
|
+
const dir=(pf().account&&pf().account.dir)||('アカウント/'+curPf);
|
|
5483
|
+
return dir+'/サムネ/'+encodeURIComponent(acc);
|
|
5484
|
+
}
|
|
5485
|
+
|
|
5486
|
+
/** サムネがある管理番号。`adops.sh thumbs` がアカウントJSONの **トップレベル** `thumbs` に書く。
|
|
5487
|
+
|
|
5488
|
+
`refs` の下に置かない。`normalizeRefsFor` が `emptyRefs` に宣言されたキーしか通さず、
|
|
5489
|
+
未知のキーは黙って捨てられる(実際にこれで表示が 0 件になった)。 */
|
|
5490
|
+
function thumbNumbers(){
|
|
5491
|
+
const t=(st.project&&st.project.thumbs)||null;
|
|
5492
|
+
return Array.isArray(t) ? t.map(String) : [];
|
|
5493
|
+
}
|
|
5494
|
+
|
|
5495
|
+
function thumbSrc(no){
|
|
5496
|
+
const dir=thumbDir();
|
|
5497
|
+
if(!dir) return '';
|
|
5498
|
+
return dir+'/'+encodeURIComponent(String(no))+'.jpg';
|
|
5499
|
+
}
|
|
5500
|
+
|
|
5501
|
+
/** サイドバー1行ぶんのサムネ。**一覧に載っている番号にだけ** `<img>` を出す。 */
|
|
5502
|
+
function thumbImgHtml(no){
|
|
5503
|
+
if(thumbNumbers().indexOf(String(no))<0) return '';
|
|
5504
|
+
return '<img class="ddthumb" src="'+esc(thumbSrc(no))+'" alt="" loading="lazy"'
|
|
5505
|
+
+' data-zoom="'+esc(String(no))+'">';
|
|
5506
|
+
}
|
|
5507
|
+
|
|
5508
|
+
/** クリックで拡大。サムネ自体が低解像度なのでぼやけるが、どの画像かの判別には足りる。 */
|
|
5509
|
+
function openThumbZoom(no){
|
|
5510
|
+
const src=thumbSrc(no); if(!src) return;
|
|
5511
|
+
/* サイドバーは拡大中もクリックできる(別の画像をすぐ見比べたいため)。
|
|
5512
|
+
そのとき新しいパネルを積むと背景クリックで1枚ずつ剥がれるので、
|
|
5513
|
+
**パネルは常に1枚だけ**にして中身を差し替える。 */
|
|
5514
|
+
let el=document.getElementById('thumbZoom');
|
|
5515
|
+
if(!el){
|
|
5516
|
+
el=document.createElement('div');
|
|
5517
|
+
el.id='thumbZoom';
|
|
5518
|
+
el.innerHTML='<img alt=""><div class="zcap"></div>';
|
|
5519
|
+
/* 背景クリックは閉じるだけ。裏のサイドバーやセルへ透けさせない */
|
|
5520
|
+
el.addEventListener('mousedown', ev=>{ ev.preventDefault(); ev.stopPropagation(); }, true);
|
|
5521
|
+
el.addEventListener('click', ev=>{ ev.preventDefault(); ev.stopPropagation(); closeThumbZoom(); }, true);
|
|
5522
|
+
document.addEventListener('keydown', thumbZoomKey);
|
|
5523
|
+
document.body.appendChild(el);
|
|
5524
|
+
}
|
|
5525
|
+
el.querySelector('img').src=src;
|
|
5526
|
+
el.querySelector('.zcap').textContent='管理番号 '+no+' / クリックまたは Esc で閉じる';
|
|
5527
|
+
}
|
|
5528
|
+
|
|
5529
|
+
function closeThumbZoom(){
|
|
5530
|
+
const el=document.getElementById('thumbZoom');
|
|
5531
|
+
if(el) el.remove();
|
|
5532
|
+
document.removeEventListener('keydown', thumbZoomKey);
|
|
5533
|
+
}
|
|
5534
|
+
|
|
5535
|
+
function thumbZoomKey(ev){ if(ev.key==='Escape') closeThumbZoom(); }
|
|
5536
|
+
|
|
5439
5537
|
function drawerPick(no){
|
|
5440
5538
|
if(!drawerTarget) return;
|
|
5441
5539
|
const f=drawerTarget.f, num=/^\d+$/.test(no)?Number(no):no;
|
|
@@ -6598,7 +6696,11 @@ sheetHostEl.addEventListener('click',e=>{
|
|
|
6598
6696
|
document.getElementById('drawerClose').addEventListener('click',closeDrawer);
|
|
6599
6697
|
document.getElementById('drawerBackdrop').addEventListener('click',closeDrawer);
|
|
6600
6698
|
document.getElementById('drawerSearch').addEventListener('input',renderDrawer);
|
|
6601
|
-
document.getElementById('drawerList').addEventListener('click',e=>{
|
|
6699
|
+
document.getElementById('drawerList').addEventListener('click',e=>{
|
|
6700
|
+
/* サムネのクリックは拡大。行の選択には落とさない (見たいだけで選ぶとは限らない) */
|
|
6701
|
+
const th=e.target.closest('.ddthumb');
|
|
6702
|
+
if(th){ e.stopPropagation(); openThumbZoom(th.dataset.zoom); return; }
|
|
6703
|
+
const row=e.target.closest('.ddrow'); if(!row) return; if(!drawerTarget) return;
|
|
6602
6704
|
if(drawerTarget.type==='tg'){ drawerTgToggle(row.dataset.tgval); }
|
|
6603
6705
|
else if(drawerTarget.type==='opt'){ if('optv' in row.dataset) drawerOptPick(row.dataset.optv); }
|
|
6604
6706
|
else if(drawerTarget.type==='cpref'){ if(row.dataset.cpid) addExistingCampaign(row.dataset.cpid); }
|
|
@@ -295,12 +295,19 @@ cmd_refs_import() {
|
|
|
295
295
|
python3 "${SKILL_DIR}/scripts/refs_import.py" "$@"
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
+
# 素材のサムネイルを落として アカウント/<媒体>/サムネ/<accountId>/ に置く。
|
|
299
|
+
# プランナーの素材選択でサムネを出すために使う。保存先は .gitignore 済み。
|
|
300
|
+
cmd_thumbs() {
|
|
301
|
+
python3 "${SKILL_DIR}/scripts/thumbs_download.py" "$@"
|
|
302
|
+
}
|
|
303
|
+
|
|
298
304
|
case "${1:-}" in
|
|
299
305
|
preflight) shift; cmd_preflight "$@" ;;
|
|
300
306
|
planner) shift; cmd_planner "$@" ;;
|
|
301
307
|
plan) shift; cmd_plan "$@" ;;
|
|
302
308
|
open) shift; cmd_open "$@" ;;
|
|
303
309
|
refs-import) shift; cmd_refs_import "$@" ;;
|
|
310
|
+
thumbs) shift; cmd_thumbs "$@" ;;
|
|
304
311
|
*)
|
|
305
312
|
cat >&2 <<EOF
|
|
306
313
|
usage:
|
|
@@ -317,6 +324,9 @@ usage:
|
|
|
317
324
|
adops.sh refs-import <platform> <accountId> [--write] [--campaign-id <id>]
|
|
318
325
|
adops.sh refs-import google <accountId> --from-plan <入稿計画.json> [--write]
|
|
319
326
|
実アカウントから参照表を取り込む(既定 dry-run)
|
|
327
|
+
adops.sh thumbs <platform> <accountId> [--force] [--limit N]
|
|
328
|
+
素材のサムネイルを落として素材選択で見られるようにする
|
|
329
|
+
(保存先は アカウント/<媒体>/サムネ/。追跡・公開しない)
|
|
320
330
|
EOF
|
|
321
331
|
exit 2 ;;
|
|
322
332
|
esac
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""素材のサムネイルを落として アカウント/<媒体>/サムネ/<accountId>/<管理番号>.jpg に置く。
|
|
3
|
+
|
|
4
|
+
プランナーはこのファイルを `<img>` で読む。媒体の画像URLはどれも一時URL・CORS 制限つきで
|
|
5
|
+
ブラウザから直接は表示できないため、事前に手元へ落とす必要がある。
|
|
6
|
+
|
|
7
|
+
**サムネの入手経路は媒体ごとに違う。**
|
|
8
|
+
|
|
9
|
+
| 媒体 | 経路 | リサイズ |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| meta | `adimages` の `url_128` (公式のサムネ用フィールド) | 不要 |
|
|
12
|
+
| google | アセットURL + `?w=300&h=300` (CDN がリサイズして返す) | 不要 |
|
|
13
|
+
| yda | `/api/yahoo-media/<accountId>/<mediaId>` は原寸のみ | **要リサイズ** |
|
|
14
|
+
| bytedance | `image_url`。サイズ指定の可否が未確認 | 要リサイズ (保険) |
|
|
15
|
+
|
|
16
|
+
⚠ Google の CDN は **効くサイズと効かないサイズがある**。実測では 128/160/200/300 は効き、
|
|
17
|
+
256/512 は無視されて原寸が返る (4096px の画像で 1MB)。しかも失敗しても 200 で返るため、
|
|
18
|
+
**落とした画像の寸法を必ず検証する**。指定より大きければ保存しない。
|
|
19
|
+
|
|
20
|
+
⚠ 保存先は .gitignore 済み。**顧客の広告クリエイティブそのもの**なので追跡も npm publish もしない。
|
|
21
|
+
"""
|
|
22
|
+
import argparse
|
|
23
|
+
import json
|
|
24
|
+
import os
|
|
25
|
+
import shutil
|
|
26
|
+
import struct
|
|
27
|
+
import subprocess
|
|
28
|
+
import sys
|
|
29
|
+
import urllib.request
|
|
30
|
+
|
|
31
|
+
SKILL_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
32
|
+
CLI = os.environ.get("ADOPS_CLI", "npx -y addashboard-cli@latest")
|
|
33
|
+
ENDPOINT = os.environ.get("ADOPS_ENDPOINT", "https://macchiato.site")
|
|
34
|
+
|
|
35
|
+
THUMB_PX = 300
|
|
36
|
+
"""サムネの長辺。Google CDN が受ける値であること (256 / 512 は無視される)。
|
|
37
|
+
拡大表示でも耐える大きさとして 300 を採る。"""
|
|
38
|
+
|
|
39
|
+
SIZE_TOLERANCE = 1.2
|
|
40
|
+
"""指定より何倍まで許すか。CDN がリサイズを無視したことを検出する閾値。"""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def image_dims(data: bytes) -> tuple[int, int]:
|
|
44
|
+
"""JPEG / PNG のヘッダから寸法を読む。依存を足さないため自前で読む。"""
|
|
45
|
+
if data[:2] == b"\xff\xd8":
|
|
46
|
+
i = 2
|
|
47
|
+
while i < len(data) - 9:
|
|
48
|
+
if data[i] != 0xFF:
|
|
49
|
+
i += 1
|
|
50
|
+
continue
|
|
51
|
+
if data[i + 1] in (0xC0, 0xC1, 0xC2):
|
|
52
|
+
h, w = struct.unpack(">HH", data[i + 5:i + 9])
|
|
53
|
+
return w, h
|
|
54
|
+
i += 2 + struct.unpack(">H", data[i + 2:i + 4])[0]
|
|
55
|
+
elif data[:8] == b"\x89PNG\r\n\x1a\n":
|
|
56
|
+
w, h = struct.unpack(">II", data[16:24])
|
|
57
|
+
return w, h
|
|
58
|
+
return 0, 0
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def has_sips() -> bool:
|
|
62
|
+
return shutil.which("sips") is not None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def shrink_in_place(path: str) -> bool:
|
|
66
|
+
"""macOS 標準の sips でリサイズする。**依存を足さないための選択**。
|
|
67
|
+
|
|
68
|
+
sips は macOS にしか無い。無い環境では原寸のまま残し、呼び出し側が警告を出す。
|
|
69
|
+
"""
|
|
70
|
+
if not has_sips():
|
|
71
|
+
return False
|
|
72
|
+
proc = subprocess.run(["sips", "-Z", str(THUMB_PX), path], capture_output=True)
|
|
73
|
+
return proc.returncode == 0
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def fetch(url: str, headers: dict | None = None, timeout: int = 45) -> bytes:
|
|
77
|
+
req = urllib.request.Request(url, headers=headers or {})
|
|
78
|
+
with urllib.request.urlopen(req, timeout=timeout) as r:
|
|
79
|
+
return r.read()
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def cli_token() -> str:
|
|
83
|
+
"""webgram CLI が保存したトークンを読む。`/api/yahoo-media` は要認証。"""
|
|
84
|
+
path = os.path.expanduser(
|
|
85
|
+
os.environ.get("XDG_CONFIG_HOME", "~/.config").replace("~", os.path.expanduser("~"))
|
|
86
|
+
+ "/webgram/credentials.json"
|
|
87
|
+
)
|
|
88
|
+
try:
|
|
89
|
+
with open(path, encoding="utf-8") as f:
|
|
90
|
+
d = json.load(f)
|
|
91
|
+
except OSError:
|
|
92
|
+
return ""
|
|
93
|
+
for k in ("token", "accessToken", "access_token"):
|
|
94
|
+
if d.get(k):
|
|
95
|
+
return str(d[k])
|
|
96
|
+
return ""
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def run_list(resource: str, account_id: str, platform: str) -> dict | None:
|
|
100
|
+
cmd = [*CLI.split(), "list", "--platform", platform,
|
|
101
|
+
"--resource", resource, "--account-id", account_id]
|
|
102
|
+
try:
|
|
103
|
+
proc = subprocess.run(cmd, capture_output=True, text=True, timeout=300)
|
|
104
|
+
except Exception as e: # noqa: BLE001
|
|
105
|
+
print(f" ✗ {resource} の取得に失敗: {e}", file=sys.stderr)
|
|
106
|
+
return None
|
|
107
|
+
if proc.returncode != 0:
|
|
108
|
+
print(f" ✗ {resource} の取得に失敗 (exit {proc.returncode}): "
|
|
109
|
+
f"{proc.stderr.strip()[:300]}", file=sys.stderr)
|
|
110
|
+
return None
|
|
111
|
+
try:
|
|
112
|
+
return json.loads(proc.stdout)
|
|
113
|
+
except json.JSONDecodeError as e:
|
|
114
|
+
print(f" ✗ {resource} の応答を解釈できません: {e}", file=sys.stderr)
|
|
115
|
+
return None
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def account_json_path(platform: str, account_id: str) -> str | None:
|
|
119
|
+
import glob
|
|
120
|
+
for p in glob.glob(os.path.join(SKILL_DIR, "アカウント", platform, "*.json")):
|
|
121
|
+
if os.path.basename(p) in ("index.json", "sample_account.json"):
|
|
122
|
+
continue
|
|
123
|
+
try:
|
|
124
|
+
with open(p, encoding="utf-8") as f:
|
|
125
|
+
if str(json.load(f).get("accountId", "")) == str(account_id):
|
|
126
|
+
return p
|
|
127
|
+
except (OSError, json.JSONDecodeError):
|
|
128
|
+
continue
|
|
129
|
+
return None
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def sources_for(platform: str, account_id: str, refs: dict) -> dict[str, tuple[str, dict, bool]]:
|
|
133
|
+
"""{管理番号: (URL, ヘッダ, リサイズが要るか)} を返す。媒体差はここだけに閉じる。"""
|
|
134
|
+
media = refs.get("media") or {}
|
|
135
|
+
out: dict[str, tuple[str, dict, bool]] = {}
|
|
136
|
+
|
|
137
|
+
if platform == "yda":
|
|
138
|
+
token = cli_token()
|
|
139
|
+
if not token:
|
|
140
|
+
print(" ✗ webgram のトークンが見つかりません。`webgram auth login` を実行してください",
|
|
141
|
+
file=sys.stderr)
|
|
142
|
+
return {}
|
|
143
|
+
headers = {"Authorization": f"Bearer {token}"}
|
|
144
|
+
for no, v in media.items():
|
|
145
|
+
mid = (v or {}).get("card") or (v or {}).get("sq")
|
|
146
|
+
if mid:
|
|
147
|
+
out[str(no)] = (f"{ENDPOINT}/api/yahoo-media/{account_id}/{mid}", headers, True)
|
|
148
|
+
return out
|
|
149
|
+
|
|
150
|
+
if platform == "google":
|
|
151
|
+
# 参照表は resource_name しか持たないので、URL は resources から引き直す
|
|
152
|
+
res = run_list("resources", account_id, "google") or {}
|
|
153
|
+
pool = {x.get("assetId"): x for x in
|
|
154
|
+
(res.get("logos") or []) + (res.get("logoCandidates") or [])}
|
|
155
|
+
for no, v in media.items():
|
|
156
|
+
for key in ("image", "square"):
|
|
157
|
+
rn = (v or {}).get(key)
|
|
158
|
+
if not rn:
|
|
159
|
+
continue
|
|
160
|
+
a = pool.get(str(rn).rsplit("/", 1)[-1])
|
|
161
|
+
if a and a.get("url"):
|
|
162
|
+
out[str(no)] = (f"{a['url']}?w={THUMB_PX}&h={THUMB_PX}", {}, False)
|
|
163
|
+
break
|
|
164
|
+
return out
|
|
165
|
+
|
|
166
|
+
if platform == "meta":
|
|
167
|
+
lib = run_list("image-library", account_id, "meta") or {}
|
|
168
|
+
# url_128 は公式のサムネ用フィールド。`url` は「広告作成に使うな」と明記されている
|
|
169
|
+
by_hash = {x.get("hash"): x for x in (lib.get("items") or [])}
|
|
170
|
+
for no, v in media.items():
|
|
171
|
+
h = (v or {}).get("image")
|
|
172
|
+
a = by_hash.get(h)
|
|
173
|
+
url = (a or {}).get("url128") or (a or {}).get("thumbnailUrl")
|
|
174
|
+
if url:
|
|
175
|
+
out[str(no)] = (url, {}, False)
|
|
176
|
+
return out
|
|
177
|
+
|
|
178
|
+
if platform == "bytedance":
|
|
179
|
+
res = run_list("resources", account_id, "bytedance") or {}
|
|
180
|
+
by_id = {x.get("id") or x.get("imageId"): x for x in (res.get("images") or [])}
|
|
181
|
+
for no, v in media.items():
|
|
182
|
+
a = by_id.get((v or {}).get("image"))
|
|
183
|
+
if a and a.get("url"):
|
|
184
|
+
out[str(no)] = (a["url"], {}, True)
|
|
185
|
+
return out
|
|
186
|
+
|
|
187
|
+
print(f" ✗ 未対応の媒体: {platform}", file=sys.stderr)
|
|
188
|
+
return {}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def main() -> int:
|
|
192
|
+
ap = argparse.ArgumentParser(description="素材のサムネイルを落としてアカウントディレクトリに置く")
|
|
193
|
+
ap.add_argument("platform", choices=["yda", "google", "meta", "bytedance"])
|
|
194
|
+
ap.add_argument("account_id")
|
|
195
|
+
ap.add_argument("--force", action="store_true", help="既存のサムネも取り直す")
|
|
196
|
+
ap.add_argument("--limit", type=int, default=0, help="先頭 N 件だけ (動作確認用)")
|
|
197
|
+
ap.add_argument("--count", action="store_true",
|
|
198
|
+
help="落とさずに対象件数だけ出す。多いときに所要を先に伝えるため")
|
|
199
|
+
args = ap.parse_args()
|
|
200
|
+
|
|
201
|
+
acc_path = account_json_path(args.platform, args.account_id)
|
|
202
|
+
if not acc_path:
|
|
203
|
+
print(f"✗ accountId {args.account_id} のアカウントJSONが "
|
|
204
|
+
f"アカウント/{args.platform}/ にありません", file=sys.stderr)
|
|
205
|
+
return 1
|
|
206
|
+
with open(acc_path, encoding="utf-8") as f:
|
|
207
|
+
refs = json.load(f).get("refs") or {}
|
|
208
|
+
|
|
209
|
+
srcs = sources_for(args.platform, args.account_id, refs)
|
|
210
|
+
if not srcs:
|
|
211
|
+
print("✗ サムネの取得元を1件も特定できませんでした", file=sys.stderr)
|
|
212
|
+
return 1
|
|
213
|
+
|
|
214
|
+
out_dir = os.path.join(SKILL_DIR, "アカウント", args.platform, "サムネ", str(args.account_id))
|
|
215
|
+
os.makedirs(out_dir, exist_ok=True)
|
|
216
|
+
|
|
217
|
+
keys = sorted(srcs, key=lambda x: int(x) if x.isdigit() else 0)
|
|
218
|
+
if args.limit:
|
|
219
|
+
keys = keys[:args.limit]
|
|
220
|
+
|
|
221
|
+
if args.count:
|
|
222
|
+
# 実測: YDA 408 枚で約 3 分半。1 枚あたり 0.5 秒で概算する
|
|
223
|
+
print(f"対象 {len(keys)} 件(推定 {max(1, round(len(keys) * 0.5 / 60))} 分)")
|
|
224
|
+
return 0
|
|
225
|
+
|
|
226
|
+
ok = skipped = failed = oversize = 0
|
|
227
|
+
warned_no_sips = False
|
|
228
|
+
for no in keys:
|
|
229
|
+
url, headers, needs_resize = srcs[no]
|
|
230
|
+
path = os.path.join(out_dir, f"{no}.jpg")
|
|
231
|
+
if os.path.exists(path) and not args.force:
|
|
232
|
+
skipped += 1
|
|
233
|
+
continue
|
|
234
|
+
try:
|
|
235
|
+
data = fetch(url, headers)
|
|
236
|
+
except Exception as e: # noqa: BLE001
|
|
237
|
+
print(f" ✗ 管理番号 {no}: 取得に失敗 {e}", file=sys.stderr)
|
|
238
|
+
failed += 1
|
|
239
|
+
continue
|
|
240
|
+
|
|
241
|
+
with open(path, "wb") as f:
|
|
242
|
+
f.write(data)
|
|
243
|
+
|
|
244
|
+
if needs_resize:
|
|
245
|
+
if not shrink_in_place(path):
|
|
246
|
+
if not warned_no_sips:
|
|
247
|
+
print(" ⚠ sips が無いためリサイズできません (macOS 以外)。"
|
|
248
|
+
"原寸のまま保存します", file=sys.stderr)
|
|
249
|
+
warned_no_sips = True
|
|
250
|
+
else:
|
|
251
|
+
# リサイズ済みのはずのURLでも、CDN が指定を無視することがある (Google で実測)
|
|
252
|
+
w, h = image_dims(data)
|
|
253
|
+
if max(w, h) > THUMB_PX * SIZE_TOLERANCE:
|
|
254
|
+
os.remove(path)
|
|
255
|
+
print(f" ✗ 管理番号 {no}: CDN がリサイズを無視した ({w}x{h})。保存しません",
|
|
256
|
+
file=sys.stderr)
|
|
257
|
+
oversize += 1
|
|
258
|
+
continue
|
|
259
|
+
ok += 1
|
|
260
|
+
|
|
261
|
+
# プランナーは **アカウントJSON の refs.thumbs に載っている番号にだけ** <img> を出す。
|
|
262
|
+
# HTTP で有無を確かめる方式 (画像に直接 <img> / 一覧を fetch) はどちらも外れると
|
|
263
|
+
# 404 が console error に残り、`collectPageErrors` で空を期待している既存 E2E が落ちる
|
|
264
|
+
# (CI で uc8 / uc8b を落とした)。`onerror` で要素は消せても**ログは消せない**。
|
|
265
|
+
# アカウントJSONは元から読んでいるので、そこに載せれば追加のリクエストが要らない。
|
|
266
|
+
nums = sorted(
|
|
267
|
+
(f[:-4] for f in os.listdir(out_dir) if f.endswith(".jpg")),
|
|
268
|
+
key=lambda x: int(x) if x.isdigit() else 0,
|
|
269
|
+
)
|
|
270
|
+
with open(acc_path, encoding="utf-8") as f:
|
|
271
|
+
acc = json.load(f)
|
|
272
|
+
# refs の下に置かない。プランナーの normalizeRefs が未知のキーを捨てる(実測)。
|
|
273
|
+
acc["thumbs"] = nums
|
|
274
|
+
with open(acc_path, "w", encoding="utf-8") as f:
|
|
275
|
+
json.dump(acc, f, ensure_ascii=False, indent=1)
|
|
276
|
+
|
|
277
|
+
total = sum(os.path.getsize(os.path.join(out_dir, f))
|
|
278
|
+
for f in os.listdir(out_dir) if f.endswith(".jpg"))
|
|
279
|
+
print(f"✓ 取得 {ok} / 既存 {skipped} / 失敗 {failed} / 過大で破棄 {oversize}"
|
|
280
|
+
f" (対象 {len(keys)} 件)")
|
|
281
|
+
print(f" 保存先: {out_dir} 合計 {total / 1024 / 1024:.1f} MB")
|
|
282
|
+
if failed or oversize:
|
|
283
|
+
return 1
|
|
284
|
+
return 0
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
if __name__ == "__main__":
|
|
288
|
+
sys.exit(main())
|