Discourse Chat Bridge (Telegram)

:information_source: Zusammenfassung Verknüpfen Sie Ihren Discourse-Chat mit Telegram
:hammer_and_wrench: Repository-Link https://github.com/Lhcfl/discourse-chat-bridge
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Ich arbeite daran, Discourse mit anderen Plattformen zu verknüpfen. Derzeit wird nur Telegram unterstützt, aber ich plane, in Zukunft Matrix und möglicherweise Discord oder QQ zu unterstützen, abhängig von meiner Energie und der erhaltenen Unterstützung.

Dieses Plugin unterstützt nur den absolut neuesten Discourse test-passed Branch. Warum? Weil Discourse Chat seinen Code häufig ändert, muss ich mit ihnen synchronisieren.

Wenn das Plugin also auf Ihrer Website verfügbar ist und für Sie wichtig ist, reduzieren Sie bitte die Häufigkeit der Aktualisierung von Discourse, da ich möglicherweise keine Zeit habe, die Version des Patch-Codes mit Discourse zu synchronisieren.

Telegram-Brücke

WICHTIGE HINWEISE

Dieses Plugin verwendet Benutzernamen mit den Suffixen .tgid und .tg, um Benutzerinformationen zu synchronisieren (Telegram → Discourse)

Wenn auf Ihrer Website Benutzernamen mit den oben genannten Suffixen vorhanden sind, kann der Benutzer von diesem Plugin übernommen werden!

Funktionsliste

Dieses Plugin ist derzeit meine eigene Arbeit. Es fällt mir schwer, zu viel Energie auf die Behebung von Fehlern zu verwenden, die ich für nicht dringend genug halte. Wenn der von Ihnen gefundene Fehler nicht in dieser Liste steht, ziehen Sie bitte einen PR in Betracht.

Dieses Plugin unterstützt die Synchronisierung der folgenden Inhalte:

  • Klartext (Sicherlich!)

  • Formatierter Text: Fett, Kursiv, durchgestrichen, Spoiler, Inline-Code und

    "Codeblock"
    
  • Zitate (nur Discourse → Telegram)
    Wir unterstützen derzeit keine Zitate für Telegram → Discourse, da Telegram seine API für Zitate noch nicht aktualisiert hat.

  • Bilder, Sticker und Videos
    Als ich diesen Satz schrieb, schien bei Discourse etwas kaputt zu sein. Das einfache Posten eines Bildes ohne Bildunterschrift löst nicht das :chat_message_created-Ereignis aus. Daher ist es unmöglich, Discourse-Bilder an Telegram weiterzuleiten. Dieser Fehler wird möglicherweise in Zukunft automatisch behoben, aber auf jeden Fall werde ich ihn beheben.

  • Antworten

  • Nachrichtenbearbeitung (nur Text)

  • Nachrichten weiterleiten (Telegram → Discourse)

  • Nachrichtenlöschung (Discourse → Telegram)
    Wir werden die Nachrichtenlöschung für Telegram → Discourse NICHT unterstützen, da die Telegram Bot API keine Schnittstelle zum Abhören von Nachrichtenlöschungsereignissen bietet.

  • Benutzeravatar und Benutzernamen (Telegram → Discourse)

Die folgenden Inhalte sind nicht implementiert und sollen in Zukunft unterstützt werden:

  • Zitat (Telegram → Discourse)
  • Album-Bilder (Discourse ↔ Telegram)
    Derzeit wird nur die Synchronisierung des ersten Bildes unterstützt.

Vorschau


Konfiguration

SiteSetting.chat_telegram_bridges

Dies ist eine Liste, und Sie müssen jede Spalte in diesem Format ausfüllen:

discourse_chat_channel_id,telegram_chat_id,bot_token

Zum Beispiel

3,-123456789,123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXX

verknüpft den Discourse-Chat-Kanal 3 ↔ Telegram-Chat -123456789 unter Verwendung eines Bots mit dem Token 123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fügen Sie KEINE Leerzeichen nach Kommas hinzu.

Es ist sicherlich nicht elegant, aber ich habe nicht die zusätzliche Energie, eine schöne Konfigurationsschnittstelle dafür zu schreiben. Bitte PR, wenn Sie es wollen.

Videos und Videosticker synchronisieren zulassen

Dynamische Sticker, GIFs und Videos von Telegram sind im Grunde im webp-Format. Sie müssen den Upload in den SiteSettings.authorized_extensions zulassen, andernfalls erhalten Sie nur eine Meldung [Diese Nachricht wird noch nicht unterstützt].

CHANGELOG

  • 07.11.2023 Veröffentlicht 0.0.1

TODO

  • Matrix zu Discourse verknüpfen
23 „Gefällt mir“

Das sieht fantastisch aus, gute Arbeit! :+1:

Das sollte site_settings sein :slight_smile:

2 „Gefällt mir“

Oh mein Gott, danke, ich werde es sofort ändern

…Und es sollte in client.en.yml sein. Ich habe den Code am frühen Morgen geschrieben und es sieht so aus, als ob die Codequalität etwas schlecht ist. :melting_face:

3 „Gefällt mir“

Tolle Arbeit, danke für die Erstellung!

4 „Gefällt mir“

Ich habe es ein wenig getestet und es funktioniert gut! :+1:

2 „Gefällt mir“

Hallo!
Vielen Dank für ein so wunderbares Plugin :raised_hands: Das habe ich mir in den letzten Monaten überlegt :confetti_ball:. Sie scheinen meine Gedanken erfasst zu haben :sweat_smile:
Ich möchte mich vergewissern. Funktioniert das Plugin nur für den Chat-Modus oder kann es auch mit einem Thema verbunden werden?

Können Sie das etwas genauer ausführen?

2 „Gefällt mir“

Hallo! Entschuldigung, wenn ich meine Gedanken nicht genug ausgedrückt habe :pray:. Ich benutze Google Translate und bin mir nicht sicher, ob ich die Beiträge in diesem Forum richtig verstehe. Und ich weiß nicht, wie man programmiert, daher verstehe ich die Nachrichten von Programmierern nicht immer. Lassen Sie mich Ihnen meine Frage in Diagrammform zeigen:

Ich verstehe wahrscheinlich, was Sie meinen… Möchten Sie, dass der Inhalt im Chat gleichzeitig im Thema veröffentlicht wird?
Ich hatte zuvor eine fertige Node.js-Software, aber sie musste für andere Foren angepasst werden. Und ich war in letzter Zeit sehr beschäftigt und hatte keine Zeit dafür.
Für eine Weile wird es nur den Chat unterstützen.

2 „Gefällt mir“

Ich bin mir nicht ganz sicher, ob ich Ihre Frage richtig verstanden habe, aber ich werde versuchen, Schritt für Schritt zu erklären, was ich mir vorstelle. Im Zeitraum von 2021 bis 2022 habe ich versucht, ein Forum auf Basis von Discourse zu erstellen. Trotz der Relevanz des Forums war das Projekt jedoch erfolglos, da in unserer Region (Zentralasien) die Mehrheit der Einwohner es vorzieht, Messenger wie Telegram und WhatsApp zu nutzen, anstatt sich auf Websites zu registrieren und neue Funktionen zu nutzen.

Mit dem Aufkommen künstlicher Intelligenz habe ich Veränderungen in den Spielregeln beobachtet. Es entstanden verschiedene Dienste, darunter Websites und Anwendungen, die für die Nutzung künstlicher Intelligenz konzipiert sind. Messenger können keine vollständige Funktionalität für die Arbeit mit künstlicher Intelligenz bieten, obwohl Telegram fortschrittlicher als WhatsApp ist. Als ich von neuen Plugins in Discourse erfuhr, wie Discourse AI und Chatbot, erkannte ich, dass dies eine neue Chance für meine Website war.

Ich möchte die Möglichkeit, thematische Beiträge (Themen) zu erstellen, voll ausschöpfen. Kürzlich habe ich hier auf Meta eine Frage zum Chatbot-Plugin gestellt, ob der GPT-Chat den ersten Beitrag erinnern und den Inhalt des Hauptthemas nach zahlreichen Nachrichten im Thread nicht vergessen kann. Dann antwortete @merefield, dass der Chatbot den ersten Beitrag immer im Gedächtnis behalten wird. Dies wurde zum Hauptkriterium für die Anwendung dieses Plugins auf meiner Website.

Ich plane, auf dem Forum thematische Bereiche für die Interaktion mit künstlicher Intelligenz und echten Menschen zu schaffen. Das Kommunikationsformat in Discourse durch die Erstellung von Themen ist technisch fortschrittlicher als Chats. Daher sind Chats für das Training des Bots nicht ganz geeignet, da der Bot in einem Chat das ursprüngliche Thema inmitten zahlreicher aktueller Nachrichten möglicherweise nicht erinnert. Ich plane, die Funktion der Erstellung thematischer Beiträge zu nutzen, um den Bot im ersten Beitrag zu trainieren, damit er auf Benutzeranfragen innerhalb des angegebenen Themas antworten kann.

Angesichts der Popularität von Messengern in unserer Region und der Gewohnheit der Menschen, Chats zu nutzen, überlege ich jedoch, wie ich den Benutzern das Discourse-Forum-Erlebnis bieten kann, ohne ihre vertrauten Messenger aufzugeben. Nach der Installation des Discourse Chat Bridge-Plugins stellte ich fest, dass es den Discourse-Chat mit dem Telegram-Chat verbindet, aber keine Brücke zwischen einem veröffentlichten Beitrag im Forum und dem Telegram-Chat schafft.

Meine Pläne umfassen:

  1. Ein Benutzer (möglicherweise Website-Personal) sendet eine private Nachricht (PM) an den KI-Bot im Forum mit Anweisungen, wie der Bot auf nachfolgende Nachrichten reagieren soll, z. B. andere Benutzer bei der Nutzung des Forums zu beraten.
  2. Der Benutzer verknüpft diese private Nachricht mit der künstlichen Intelligenz in einem regulären Telegram-Bot.
  3. Der Benutzer teilt den Link zum Telegram-Bot mit anderen Benutzern, die noch nicht im Forum registriert sind, aber mehr darüber erfahren möchten.
  4. Jeder Benutzer, der auf den Link im Telegram-Bot klickt, beginnt eine private Konversation mit künstlicher Intelligenz, die gemäß den auf dem Forum veröffentlichten Anweisungen antwortet und berät.
  5. Alle an die künstliche Intelligenz gerichteten Benutzernachrichten werden in einem privaten Forum-Thema veröffentlicht. So sehen Telegram-Benutzer keine Nachrichten von anderen Telegram-Benutzern, da jeder Benutzer separat mit dem Telegram-Bot kommuniziert.

Planen Sie also, den Telegram-Bot als Trichter für Benutzer zu nutzen, die zum Forum kommen, oder möchten Sie es den Benutzern erlauben, nur in Telegram zu bleiben und mit dem KI-Bot zu interagieren (wobei der KI-Bot ein Proxy zwischen den Foreninhalten und dem Benutzer ist)?

1 „Gefällt mir“

In Ordnung… das sieht nach einer sehr persönlichen Funktion aus und ich glaube nicht, dass ich diese Funktion kostenlos anbieten würde, da meine Energie sehr begrenzt ist.

1 „Gefällt mir“

Ja, das stimmt, der Telegram-Bot/Chat wird als Spiegel verwendet und dupliziert Inhalte aus dem Forum und zurück.

Ok, ich verstehe. Ich bereite gerade allgemeine Arbeiten für meine Website vor. Wenn Sie es erlauben, werde ich in ein paar Wochen mit konkreteren Vorschlägen in einer persönlichen Nachricht auf Sie zurückkommen.

Ich bin sehr daran interessiert und biete meine Hilfe an, falls Sie sie benötigen.

1 „Gefällt mir“

Okay, danke für das Angebot :raised_hands:, ich komme wieder, sobald ich bereit bin.

1 „Gefällt mir“

Beim Testen scheint ein Fehler im Plugin aufgetreten zu sein. Nachdem ich eine Nachricht über Telegram an den Chat gesendet habe → Discourse, erscheint nichts auf der Website im Chat (manchmal erscheint nur der Benutzername 1234567890.tgid). Um dieses Problem zu lösen, muss ich die Seite neu laden. Nach dem Aktualisieren erscheint der Name des Absenders der Nachricht, aber der Inhalt der Nachricht selbst wird nicht angezeigt. Um dieses Problem zu lösen, ordne ich das HTML neu an und dann erscheint der Chat-Nachrichtentext. Hier ist ein Video:

Außerdem wollte ich etwas klären. Wenn ich eine Nachricht über Telegram an einen Gruppenchat sende, ohne die Antwort-Schaltfläche zu verwenden, erreicht die Nachricht den Chat in Discourse nicht. Es stellt sich heraus, dass ich die Antwortfunktion im Telegram-Chat auswählen muss, damit die Nachricht gesendet wird. Aber was ist, wenn ich auf die Nachricht von niemandem im Chat antworten möchte, sondern nur eine Nachricht mit einer Frage an alle Gruppenmitglieder senden möchte?

1 „Gefällt mir“

Ich habe dieses Problem vor ein paar Tagen bemerkt, aber nie wirklich dazu gekommen, es zu beheben. Meine To-do-Liste ist im Moment überfüllt.

Ein kürzliches Update für Discourse Chat hat dieses Plugin kaputt gemacht. Ich muss Zeit finden, es anzupassen oder die Funktionen, die ich brauche, direkt in den Core einzureichen.

Ich warte auf eine Antwort. Aufgrund des Fehlens dieser Funktion muss ich jetzt Monkey Patching verwenden, und mein Plugin kann jederzeit durch einen Commit kaputt gehen.

2 „Gefällt mir“

Ok, ich verstehe. Ich hoffe, das Entwicklungsteam wird Ihre Nachricht beachten :pray:

1 „Gefällt mir“