Video QC: * _extract_locale_from_filename now also handles the suffix form ..._XX-yy.ext (case-insensitive both sides), so DOOH/OOH-style adapt filenames like ..._ES-es.mp4 unblock the price_currency check instead of skipping with "could not extract locale". * Batch results page expires the SQLAlchemy session at the top of the route so the post-completion reload sees committed reports even when it lands on a different gunicorn worker than the one that wrote them. Reload delay bumped 1s → 2s for margin. * visual_quality prompt now passes the filename's market+language to the LLM and tells it the on-screen copy should be in the localized language, not the source-language guideline copy. Stops Spanish-market videos being flagged as "language mismatch with English campaign guidelines". Printer Check: * regions.json rewritten to cover all 10 H&M regions (AME, CEU, NEU, GCN, IND, SHE, SEU, EEU, EAS, Franchise) with default-all groups. Two judgement calls vs the screenshot: kept TR for Turkey (TK is Tokelau in ISO and would break filename matching) and BR for Brazil (every other code is 2-letter ISO). Campaign codes: * New core/utils/campaign_code.py is the single source of truth. Matches both the legacy 4-digits-plus-optional-letter (1013A, 4116) and the new 11-char alphanumeric with year at positions 5-6 (CFUL263C01D). All four prior parser sites now import from this helper. Video Master: * BOX_CAMPAIGNS_FOLDER_ID switched 156182880490 → 133295752718 (same root the Reporting tool uses). Updated config.py default and all three .env example files. * Match page now shows which Box folder the search runs against (with a clickable link), and on a not-found error explains what was searched for so missing-campaign cases are self-diagnosable.
112 lines
3.3 KiB
JSON
112 lines
3.3 KiB
JSON
{
|
|
"AME": {
|
|
"name": "Americas",
|
|
"countries": ["US", "CA", "MX", "CO", "EC"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["US", "CA", "MX", "CO", "EC"]
|
|
}
|
|
]
|
|
},
|
|
"CEU": {
|
|
"name": "Central Europe",
|
|
"countries": ["DE", "NL", "AT", "SI", "CH"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["DE", "NL", "AT", "SI", "CH"]
|
|
}
|
|
]
|
|
},
|
|
"NEU": {
|
|
"name": "Northern Europe",
|
|
"countries": ["SE", "FI", "DK", "NO", "IS", "UK", "IE"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["SE", "FI", "DK", "NO", "IS", "UK", "IE"]
|
|
}
|
|
]
|
|
},
|
|
"GCN": {
|
|
"name": "Greater China",
|
|
"countries": ["HK", "MO", "CN", "TW"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["HK", "MO", "CN", "TW"]
|
|
}
|
|
]
|
|
},
|
|
"IND": {
|
|
"name": "India",
|
|
"countries": ["IN"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["IN"]
|
|
}
|
|
]
|
|
},
|
|
"SHE": {
|
|
"name": "Southern Hemisphere",
|
|
"countries": ["CL", "PE", "UY", "ZA", "AU", "NZ", "BR"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["CL", "PE", "UY", "ZA", "AU", "NZ", "BR"]
|
|
}
|
|
]
|
|
},
|
|
"SEU": {
|
|
"name": "Southern Europe",
|
|
"countries": ["IT", "ES", "PT", "BE", "FR", "LU"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["IT", "ES", "PT", "BE", "FR", "LU"]
|
|
}
|
|
]
|
|
},
|
|
"EEU": {
|
|
"name": "Eastern Europe",
|
|
"countries": ["PL", "RO", "HU", "CZ", "SK", "UA", "EE", "LT", "LV", "XK", "KZ", "GR", "BG", "CY", "HR", "RS", "BA", "GE", "MK", "AL", "TR"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["PL", "RO", "HU", "CZ", "SK", "UA", "EE", "LT", "LV", "XK", "KZ", "GR", "BG", "CY", "HR", "RS", "BA", "GE", "MK", "AL", "TR"]
|
|
}
|
|
]
|
|
},
|
|
"EAS": {
|
|
"name": "East Asia",
|
|
"countries": ["SG", "VN", "MY", "PH", "JP", "KR"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["SG", "VN", "MY", "PH", "JP", "KR"]
|
|
}
|
|
]
|
|
},
|
|
"Franchise": {
|
|
"name": "Franchise (Alshaya / Match / Hola Moda / Gill Capital)",
|
|
"countries": ["BH", "EG", "JO", "KW", "LB", "MA", "OM", "QA", "SA", "AE", "IL", "PA", "CR", "GT", "VE", "ID", "TH", "KH"],
|
|
"groups": [
|
|
{
|
|
"id": "all",
|
|
"label": "All countries",
|
|
"countries": ["BH", "EG", "JO", "KW", "LB", "MA", "OM", "QA", "SA", "AE", "IL", "PA", "CR", "GT", "VE", "ID", "TH", "KH"]
|
|
}
|
|
]
|
|
}
|
|
}
|