Externe Domain-Link-Blockliste

Gibt es eine Möglichkeit, zu verhindern, dass eine bestimmte Domain überhaupt verlinkt wird?

Der Anwendungsfall ist der folgende: Ein Benutzer antwortet ständig auf jedes Thema mit Links zu seiner Website, was nicht unbedingt schlecht oder gefährlich ist, aber das Ergebnis ist, dass sich alle Gespräche angeeignet und spammy anfühlen. Nachdem dieser Benutzer mehrmals darauf hingewiesen wurde, besteht das Posting-Muster fort. Beachten Sie, dass rel="nofollow" dieses Verhalten anscheinend nicht verhindert.

Ich denke, dass das vollständige Entfernen der Links oder sogar das Verhindern des Postings, wenn die Domain erscheint, einen Anreiz geben könnte, sich an der Konversation selbst zu beteiligen und nicht ständig externe Links auszuspucken.

Vielleicht gibt es andere, nicht-technische Wege, dieses Problem anzugehen, aber ich sehe es als ein potenziell wiederkehrendes Problem in Foren.

1 „Gefällt mir“

Eine schnelle Lösung könnte darin bestehen, den Benutzer herabzustufen, sodass er überhaupt keine Links mehr posten kann.

2 „Gefällt mir“

Sie könnten den Link selbst auf die Liste /admin/customize/watched_words/action/block setzen.

8 „Gefällt mir“

Der Vorschlag für überwachungsbedürftige Wörter von @Firepup650 ist nützlich, wenn eine Vielzahl von Personen Links zu einer kleinen Anzahl von Spam-Websites postet. Definitiv ein nützliches Werkzeug. In diesem Fall scheint es, dass Sie einen Benutzer haben, der die Grenzen des sozial Akzeptablen ausreizt. Sie sollten auch eine Richtlinie zur Eigenwerbung in Betracht ziehen. Das könnte das Problem lösen, ohne die Sperrung einzuführen, die sich wie eine grobe Maßnahme anfühlen könnte.

Ein unvermeidliches Problem mit Sperrlisten ist, dass hartnäckige Wiederholungstäter Wege finden, sie zu umgehen. Eine gut formulierte Richtlinie kann eine Gemeinschaftsnorm schaffen, die Benutzer zu produktiveren Aktivitäten kanalisiert. Und wenn nicht, bleibt die Sperrung immer noch eine potenzielle Lösung. :wink:

2 „Gefällt mir“

Blockieren Sie entweder die Domain in den beobachteten Wörtern oder haben Sie sogar ein wenig Spaß. Und lassen Sie die URL durch etwas wie „Ups NoGo“ ersetzen.

Ich hatte die gleiche Frage auch für kurze Domainnamen, z. B. wenn Sie „ent.com“ blockieren möchten, müssen Sie auch verhindern, dass „content.com“ blockiert wird.

Wenn ent.com als beobachtetes Wort verwendet wird, wird content.com nicht ausgelöst. Oder verstehe ich Sie falsch?
Sie können auch reguläre Ausdrücke verwenden, um beobachtete Wörter für URLs, die Sie nicht gepostet sehen möchten, fein abzustimmen.

2 „Gefällt mir“

Danke, wenn Sie also „ent.com“ eingeben würden, würde dies alle Variationen von „http(s)://ent.com/[url]?“ blockieren, wobei url eine beliebige Zeichenfolge ist?

OK. Ich glaube, ich muss regexp verwenden

2 „Gefällt mir“

Vielen Dank für Ihre Antworten. Ich erinnere mich, verschiedene Möglichkeiten ausprobiert zu haben, Wörter zu beobachten, aber Links werden meines Wissens nach nicht entlinkt. Kann jemand ein funktionierendes Beispiel geben?

1 „Gefällt mir“

Ein sehr einfaches Theme-Komponente (mit freundlicher Genehmigung von :robot:) unter Verwendung einer hartcodierten Domain-Liste:

<script type="text/discourse-plugin" version="0.8.25">
  api.decorateCookedElement((element) => {

    const domainsToUnlink = ["example.com", "specificdomain.com"];

    const links = element.querySelectorAll("a");

    links.forEach((link) => {
      const url = new URL(link.href);
      if (domainsToUnlink.includes(url.hostname)) {
        const textNode = document.createTextNode(link.textContent);
        link.replaceWith(textNode);
      }
    });
  }, { id: "unlink-specific-domains" });
</script>

2 „Gefällt mir“

Nur damit ich das richtig verstehe.

Das Skript konvertiert einen angegebenen Link in eine nicht klickbare Textversion des Links?

Könnte es modifiziert werden, um Links z. B. durch „Verboten“ zu ersetzen, vielleicht als Link zu einem Regelbeitrag mit einer Liste nicht erlaubter Domains?

1 „Gefällt mir“

Ja zu beiden Fragen :slight_smile:

1 „Gefällt mir“