Explorer
/tmp/patch_meta_dates.py
← Zurück ↓ Download
from pathlib import Path
p=Path('/opt/struktur/social-media-radar/published_at_normalizer.py')
s=p.read_text()
old='''    try:\n        dt = email.utils.parsedate_to_datetime(text)\n        if dt.tzinfo is None:\n            dt = dt.replace(tzinfo=timezone.utc)\n        return dt.astimezone(timezone.utc).isoformat()\n    except (TypeError, ValueError, IndexError, OverflowError):\n        pass\n\n    reference = _parse_reference(observed_at)\n'''
new='''    try:\n        dt = email.utils.parsedate_to_datetime(text)\n        if dt.tzinfo is None:\n            dt = dt.replace(tzinfo=timezone.utc)\n        return dt.astimezone(timezone.utc).isoformat()\n    except (TypeError, ValueError, IndexError, OverflowError):\n        pass\n\n    # Public Meta Ad Library uses values such as "Mar 10, 2026".\n    for fmt in ("%b %d, %Y", "%B %d, %Y"):\n        try:\n            return datetime.strptime(text, fmt).replace(tzinfo=timezone.utc).isoformat()\n        except ValueError:\n            pass\n\n    reference = _parse_reference(observed_at)\n'''
if old not in s: raise SystemExit('normalizer anchor missing')
p.write_text(s.replace(old,new,1))