from pathlib import Path
p=Path('/opt/struktur/social-media-radar/intake/watch_intake.py')
s=p.read_text()
s=s.replace('from signal_db import insert_signal, record_source_run\n', 'from signal_db import insert_signal, record_source_run\nfrom published_at_normalizer import normalize_published_at\n',1)
s=s.replace(''' "observed_at": datetime.now(timezone.utc).isoformat(),
"source_name": f"WATCH-IMPROVED: {entity['canonical_name']} ({entity['sector']})",
''',''' "observed_at": datetime.now(timezone.utc).isoformat(),
"published_at": None,
"source_name": f"WATCH-IMPROVED: {entity['canonical_name']} ({entity['sector']})",
''',1)
s=s.replace(''' watch_entity_data={
"external_id": "", # Facebook doesn't provide easy external ID without API
''',''' watch_entity_data={
"external_id": "", # Facebook doesn't provide easy external ID without API
''',1)
s=s.replace(''' retrieval_mode=result.get("source", "direct")
)
''',''' retrieval_mode=result.get("source", "direct"),
watch_entity_data={
"published_at": normalize_published_at(
result.get("date") if result.get("source") != "sitemap" else None,
datetime.now(timezone.utc).isoformat(),
)
},
)
''',1)
s=s.replace(''' sid = _store_improved(entity, "web", link, title, desc[:400], img, img and "og:image" or "")
''',''' sid = _store_improved(
entity, "web", link, title, desc[:400], img, img and "og:image" or "",
watch_entity_data={"published_at": normalize_published_at(
it.findtext("pubDate", "") or it.findtext("./{http://www.w3.org/2005/Atom}published", ""),
datetime.now(timezone.utc).isoformat())}
)
''',1)
s=s.replace(''' sid = _store_improved(entity, "web", u, title, title, img, src)
''',''' sid = _store_improved(entity, "web", u, title, title, img, src)
''',1)
# YouTube Atom publication date is authoritative.
s=s.replace(''' title = (e.findtext("a:title", "", ns) or "").strip()
thumb = f"https://i.ytimg.com/vi/{vid}/hqdefault.jpg"
sid = _store_improved(entity, "youtube", f"https://www.youtube.com/watch?v={vid}",
title, title, thumb, retrieval_mode="youtube_rss")
''',''' title = (e.findtext("a:title", "", ns) or "").strip()
published = e.findtext("a:published", "", ns)
thumb = f"https://i.ytimg.com/vi/{vid}/hqdefault.jpg"
sid = _store_improved(entity, "youtube", f"https://www.youtube.com/watch?v={vid}",
title, title, thumb, retrieval_mode="youtube_rss",
watch_entity_data={"published_at": normalize_published_at(
published, datetime.now(timezone.utc).isoformat())})
''',1)
p.write_text(s)