Discourse Chat Bridge (Telegram)

:information_source: 概要 DiscourseチャットをTelegramにブリッジする
:hammer_and_wrench: リポジトリリンク https://github.com/Lhcfl/discourse-chat-bridge
:open_book: インストールガイド Discourseにプラグインをインストールする方法

Discourseを他のプラットフォームにブリッジする作業をしています。現在はTelegramのみをサポートしていますが、将来的にはMatrix、そして私のエネルギーと受け取るサポートに応じてDiscordやQQもサポートする予定です。

このプラグインは、絶対に最新のDiscourse test-passed ブランチのみをサポートしています。なぜなら、Discourse Chatは頻繁にコードを変更するため、それに同期する必要があるからです。

そのため、プラグインがサイトで利用可能で、そのプラグインがあなたにとって重要である場合は、Discourseのアップデート頻度を減らしてください。なぜなら、パッチコードのバージョンをDiscourseと同期する時間がなくなる可能性があるからです。

Telegramブリッジ

重要事項

このプラグインは、ユーザー情報を同期するために.tgidおよび.tgサフィックスを持つユーザー名を使用します(Telegram → Discourse)。

上記サフィックスを持つユーザー名があなたのサイトにある場合、そのユーザーはこのプラグインによって乗っ取られる可能性があります!

機能リスト

このプラグインは現在、私自身の作品です。緊急ではないと思われるバグを修正するために多くのエネルギーを費やすことは困難です。そのため、見つけたバグがこのリストにない場合は、PRを検討してください。

このプラグインは、以下のコンテンツの同期をサポートしています。

  • プレーンテキスト(もちろん!)
  • フォーマットされたテキスト:太字イタリック取り消し線、[ネタバレ]ネタバレ[/ネタバレ]、インラインコード、および
"コードブロック"
  • 引用(Discourse → Telegramのみ)
    Telegramがまだ引用のAPIを更新していないため、現在はTelegram → Discourseの引用をサポートしていません。

  • 画像、ステッカー、ビデオ
    この記事を書いている時点で、Discourseで何かが壊れているようです。キャプションなしで画像を投稿するだけでは、:chat_message_created イベントがトリガーされません。そのため、Discourseの画像をTelegramに転送することは不可能です。このエラーは将来的に自動的に解決されるかもしれませんが、いずれにせよ修正します。

  • 返信

  • メッセージの編集(テキストのみ)

  • メッセージの転送(Telegram → Discourse)

  • メッセージの削除(Discourse → Telegram)
    TelegramのボットAPIにはメッセージ削除イベントをリッスンするインターフェースが提供されていないため、Telegram → Discourseのメッセージ削除はサポートしません

  • ユーザーアバターとユーザー名(Telegram → Discourse)

以下のコンテンツは実装されておらず、将来的にサポートされる予定です。

  • 引用(Telegram → Discourse)
  • アルバム画像(Discourse ↔ Telegram)
    現在は最初の画像のみ同期をサポートしています。

プレビュー


設定

SiteSetting.chat_telegram_bridges

これはリストであり、各列を次の形式で入力する必要があります。

discourse_chat_channel_id,telegram_chat_id,bot_token

3,-123456789,123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXX

は、ボットトークン 123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXX を使用して、Discourseチャットチャンネル3 ↔ Telegramチャット-123456789をブリッジします。

コンマの後にスペースを追加しないでください

確かにエレガントではありませんが、美しい設定インターフェースを作成する余力はありません。それを望む場合はPRを検討してください。

動画と動画ステッカーの同期を許可する

Telegramのダイナミックステッカー、GIF、ビデオは基本的にwebp形式です。SiteSettings.authorized_extensionsでアップロードを許可する必要があります。そうしないと、[このメッセージはまだサポートされていません]しか表示されません。

CHANGELOG

  • 2023/11/07 リリース 0.0.1

TODO

  • MatrixをDiscourseにブリッジする
「いいね!」 23

素晴らしいですね、よくできました!:+1:

これは site_settings であるべきです :slight_smile:

「いいね!」 2

ありがとうございます、すぐに変更します。

…そして、それはclient.en.ymlにあるべきです。早朝にコードを書いたので、コードの品質は少し悪いようです。 :melting_face:

「いいね!」 3

素晴らしい出来栄えです。作成いただきありがとうございます!

「いいね!」 4

少しテストしてみましたが、問題なく動作します!:+1:

「いいね!」 2

こんにちは!
素晴らしいプラグインをありがとうございます :raised_hands: ここ数ヶ月、ずっと考えていたことです :confetti_ball: まさに私の考えを捉えてくれたようです :sweat_smile:
確認したいことがあります。このプラグインはチャットモード専用で動作しますか、それともトピックにも接続できますか?

もう少し具体的に説明していただけますか?

「いいね!」 2

こんにちは!私の考えを十分に表現できていなかったらごめんなさい:pray:。Google翻訳を使用しており、このフォーラムの投稿を正しく理解できているか確信がありません。また、プログラミングができないため、プログラマーのメッセージを常に理解できるわけではありません。質問を図で示します。

おそらくあなたの言っていることは理解できます…チャットの内容をトピックにも同時に公開したいということでしょうか?
以前はNode.jsのソフトウェアを用意していたのですが、他のフォーラムに対応させる必要がありました。最近は非常に忙しく、その時間もありません。
しばらくの間はチャットのみの対応となります。

「いいね!」 2

ご質問の意図を正確に理解できているか分かりませんが、私が思い描いていることを段階的に説明させていただきます。2021年から2022年にかけて、Discourseをベースにしたフォーラムを作成しようと試みました。しかし、フォーラムの関連性にもかかわらず、プロジェクトは成功しませんでした。なぜなら、私たちの地域(中央アジア)では、ほとんどの住民がウェブサイトに登録して新しい機能を使用するよりも、TelegramやWhatsAppのようなメッセンジャーを使用することを好むからです。

人工知能の登場により、ゲームのルールが変わったことに気づきました。人工知能を使用するために設計されたウェブサイトやアプリケーションを含む、さまざまなサービスが登場しました。メッセンジャーは、人工知能との作業に完全な機能を提供することはできませんが、TelegramはWhatsAppよりも進んでいます。Discourseの新しいプラグイン、例えばDiscourse AIChatbotについて知るうちに、これは私のウェブサイトにとって新しい機会であると気づきました。

フォーラムにテーマ別の投稿(トピック)を作成する機能を最大限に活用したいと考えています。最近、MetaでChatbotプラグインについて質問しました。GPTチャットは最初の投稿を記憶し、スレッドで多数のメッセージがやり取りされた後もメインのトピックの内容を忘れないのかどうか疑問に思いました。すると、@merefieldさんが、チャットボットは常に最初の投稿を記憶すると返信してくれました。これが、私のサイトでこのプラグインを適用する主な基準となりました。

人工知能と実際の人間との対話のために、フォーラムにテーマ別のセクションを作成する予定です。トピックを作成することによるDiscourseでのコミュニケーション形式は、チャットと比較して技術的に高度です。したがって、チャットでは、ボットが多数の最近のメッセージの中から最初のトピックを覚えていない可能性があるため、ボットのトレーニングには完全には適していません。テーマ別の投稿を作成する機能を使用し、最初の投稿でボットをトレーニングして、指定されたトピック内でユーザーの質問に答えることができるようにする予定です。

しかし、私たちの地域でのメッセンジャーの人気と、人々がチャットを使用する習慣を考慮すると、使い慣れたメッセンジャーを放棄することなく、Discourseフォーラムの体験をユーザーに提供する方法を検討しています。Discourse Chat Bridgeプラグインをインストールしたところ、DiscourseチャットとTelegramチャットを接続することは分かりましたが、フォーラムでの公開投稿とTelegramチャットの間にブリッジを作成するものではありませんでした。

私の計画には以下が含まれます:

  1. ユーザー(おそらくサイトの担当者)が、フォーラムのAIボットにプライベートメッセージ(PM)を送信し、その後のメッセージにどのように応答するか、例えばフォーラムの使用方法について他のユーザーにアドバイスするなど、指示を与えます。
  2. ユーザーはこのプライベートメッセージを、通常のTelegramボットの人工知能にリンクします。
  3. ユーザーはこのTelegramボットへのリンクを、まだフォーラムに登録していないが、フォーラムについてもっと知りたい他のユーザーと共有します。
  4. 各ユーザーは、Telegramボットのリンクをクリックすることで、人工知能とのプライベートな会話を開始し、フォーラムに投稿された指示に従って応答し、アドバイスを提供します。
  5. 人工知能に向けられたすべてのユーザーメッセージは、プライベートフォーラムのトピックに公開されます。したがって、各ユーザーは個別にTelegramボットと通信するため、Telegramユーザーは他のTelegramユーザーからのメッセージを見ることはありません。

Telegram ボットをフォーラムへのユーザーのファネルとして使用する予定ですか、それともユーザーが Telegram 内にとどまり、AI ボットと対話できるようにしたいですか (AI ボットはフォーラム コンテンツとユーザー間のプロキシとなりますか)?

「いいね!」 1

わかりました…これは非常にパーソナライズされた機能のようで、無料では追加しないと思います。私のエネルギーは非常に限られています。

「いいね!」 1

はい、その通りです。Telegramボット/チャットは、フォーラムからコンテンツをミラーリングおよび複製し、その逆を行うために使用されます。

承知いたしました。現在、ウェブサイトの一般的な準備作業を行っております。よろしければ、数週間後に個人的なメッセージで、より具体的な提案をさせていただきます。

これには非常に興味があり、必要であればお手伝いします。

「いいね!」 1

はい、ありがとうございます:raised_hands:。準備ができたらすぐに戻ります。

「いいね!」 1

テスト中に、プラグインにバグがあることがわかりました。TelegramからDiscourseにチャット経由でメッセージを送信すると、サイトのチャットに何も表示されません(時々、1234567890.tgidというユーザー名のみが表示されます)。この問題を解決するには、サイトのページを更新する必要があります。更新後、メッセージ送信者の名前は表示されますが、メッセージの内容自体は表示されません。この問題を解決するには、HTMLを並べ替えると、チャットメッセージのテキストが表示されます。ビデオはこちらです。

また、確認したいことがあります。返信ボタンを使用せずにTelegramからグループチャットにメッセージを送信した場合、メッセージはDiscourseのチャットに届きません。メッセージを送信するには、Telegramチャットで返信機能を選択する必要があるようです。しかし、チャットで誰かのメッセージに返信したくない場合はどうすればよいでしょうか。グループメンバー全員に質問メッセージを送信したいだけの場合はどうすればよいでしょうか。

「いいね!」 1

数日前にこの問題に気づきましたが、実際には修正する時間がありませんでした。今、私のToDoリストは山積みになっています。

Discourse Chatの最近のアップデートにより、このプラグインが壊れてしまいました。これを適応させるか、必要な機能を直接コアに提出する時間を見つける必要があります。

返信をお待ちしています。この機能がないため、現在モンキーパッチを使用しており、私のプラグインはいつでもコミットによって壊れる可能性があります。

「いいね!」 2

承知いたしました。開発チームがあなたのメッセージに注意を払ってくれることを願っています :pray:

「いいね!」 1