Explorer
/tmp/add_linkedin_fit.py
← Zurück ↓ Download
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')