ferrero-opentext/Python-Version/scripts/shared
nickviljoen ba4f1a9bf7 Feature: Global live campaigns CSV + B4 closure flow
Wires B-series (global) campaigns into OMG using the same Box
automation as A-series. Mirrors the A1/A4 lifecycle for B1/B4.

- b1_to_b2_download: after B2 status update, mark live=YES status=B2
  and upload live_campaigns_global_<ts>.csv to the existing Box folder
  (BOX_LIVE_CAMPAIGNS_FOLDER_ID, 352181382858 in PROD). Filename keeps
  the live_campaigns_ prefix so the existing OMG automation rule picks
  it up.
- b4_box_uploader (new): polls DAM for status B4, marks live=NO, regens
  the global CSV. Mirrors a4_box_uploader.
- a4_box_uploader: reads prior status before overwriting; if it was
  B-series, regenerate the global CSV instead. b4_box_uploader does the
  symmetric A-series fallback. Defensive in case DAM doesn't enforce
  type-specific status transitions.
- database: add get_all_live_global_campaigns() (status LIKE 'B%').
  Tighten get_all_live_campaigns() to status LIKE 'A%' so any cross-type
  rows can't leak into the wrong CSV.
- orchestrator + orchestrator-prod: register B4 Box Uploader at 10min.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 18:12:49 +02:00
..
__pycache__ feat: Add systemd services and timers for daily and weekly database backups, introduce a token retrieval script, and update the backup guide documentation. 2025-12-01 22:19:24 -05:00
__init__.py Start Python automation - Foundation components 2025-10-30 16:38:26 -04:00
box_client.py Implement Master Tracking ID validation for A2-A3 uploads 2025-12-06 17:21:38 -05:00
common.py Implement robust Box name sanitization in shared/common.py 2025-12-01 15:23:01 -05:00
config_loader.py Enhancement: Add environment-specific configurations and metadata improvements 2026-01-28 20:41:21 +02:00
dam_client.py Fix: Recurse into subfolders with numeric extensions (e.g. "2.0") 2026-04-10 09:46:32 +02:00
database.py Feature: Global live campaigns CSV + B4 closure flow 2026-04-30 18:12:49 +02:00
filename_parser.py Enhancement: EOL (External Legal Opinion) workflow 2026-03-31 15:53:37 +02:00
filename_parser_v1_backup.py Update filename parser to V2.1 structure with new field positions 2025-11-13 13:41:19 -05:00
metadata_extractor_mvp.py Fix: EOL/LTD asset type overrides — IP Rights, CreativeX, descriptions 2026-04-30 13:24:19 +02:00
metadata_extractor_mvp.py.backup PPR Environment: Use SIMPLE metadata structure for tabular fields 2026-01-23 16:52:50 +02:00
metadata_extractor_mvp_PROD.py Fix: Update MAIN_LANGUAGES values array for tabular fields in DAM upload 2026-03-05 17:26:31 +02:00
notifier.py Enhancement: Capture CreativeX score on B1→B2 global masters 2026-04-29 11:31:07 +02:00