from pathlib import Path
p=Path('/opt/struktur/social-media-radar/mas_relevance.py'); s=p.read_text()
needle='''def assess_mas_relevance(text: str, *, fields: dict | None = None) -> MASRelevance:'''
helper='''def assess_linkedin_fit(text: str, *, mas_relevant: bool = True) -> tuple[int, str]:
"""Score topic suitability for an MAS LinkedIn adaptation, independent of source platform."""
if not mas_relevant:
return 1, "Kein fachlicher MAS-Anker"
folded = _fold(text)
technical = ("diagnost", "peritaje", "medim", "medir", "parametro", "capilar", "sales", "humedad estructural", "aire", "ventilacion", "luf", "luftwechsel", "feuchtemess", "co2", "voc", "sensor", "kondens", "bau", "muro", "wand", "ursache", "causa", "mess")
professional = ("ingenier", "tecnic", "fach", "arquitect", "administrador", "property", "inmobili", "hausverwaltung", "planung", "planificación", "instalador")
lifestyle = ("influencer", "turismo masivo", "restaurant", "hoteltest", "deporte", "futbol", "celebrity")
tech_hits = sum(1 for term in technical if term in folded)
prof_hits = sum(1 for term in professional if term in folded)
if any(term in folded for term in lifestyle) and tech_hits < 2:
return 1, "Fachanker ohne ausreichenden professionellen Analysewert"
if tech_hits >= 3 or (tech_hits >= 2 and prof_hits >= 1):
return 3, "Mehrere technische Analyse-/Diagnoseaspekte für professionelle Zielgruppen"
if tech_hits >= 1 or prof_hits >= 1:
return 2, "Fachthema für eigenständige LinkedIn-Aufbereitung prüfenswert"
return 1, "Fachlicher MAS-Anker vorhanden, aber LinkedIn-Erkenntniswert gering"
def assess_mas_relevance(text: str, *, fields: dict | None = None) -> MASRelevance:'''
assert s.count(needle)==1; s=s.replace(needle,helper); p.write_text(s); print('linkedin topic fit helper added')