Discourse Chat Bridge (Telegram)

:information_source: Resumo Conecte seu chat do Discourse a outras plataformas
:hammer_and_wrench: Link do Repositório https://github.com/Lhcfl/discourse-chat-bridge
:open_book: Guia de Instalação Como instalar plugins no Discourse

Estou trabalhando na ponte do Discourse para outras plataformas. Atualmente, ele suporta apenas o Telegram, mas planejo suportar Matrix e, talvez, Discord ou QQ no futuro, dependendo da minha energia e do suporte que receber.

Este plugin suporta apenas o branch test-passed absolutamente mais recente do Discourse. Por quê? Porque o Discourse Chat muda seu código com frequência, tenho que sincronizar com eles.

Portanto, se o plugin estiver disponível em seu site e for importante para você, por favor, reduza a frequência de atualização do Discourse, pois posso não ter tempo para sincronizar a versão do código de patch com o Discourse.

Ponte do Telegram

NOTAS IMPORTANTES

Este plugin usa nomes de usuário com sufixos .tgid e .tg para sincronizar informações do usuário (Telegram → Discourse)

Se houver nomes de usuário com os sufixos acima em seu site, o usuário poderá ser assumido por este plugin!

Lista de recursos

Este plugin é atualmente meu próprio trabalho. É difícil para mim gastar muita energia para corrigir bugs que considero não urgentes o suficiente. Portanto, se o bug que você encontrar não estiver nesta lista, considere um PR.

Este plugin suporta a sincronização do seguinte conteúdo:

  • Texto Simples (Certamente!)

  • Texto Formatado: Negrito, Itálico, riscado, spoiler, código inline e

    "bloco de código"
    
  • Citações (apenas Discourse → Telegram)
    Não suportamos citações para Telegram → Discourse agora porque o Telegram ainda não atualizou sua API para citações.

  • Imagens, adesivos e vídeos
    Enquanto escrevo esta frase, parece haver algo quebrado no Discourse. Simplesmente postar uma imagem sem legenda não aciona o evento :chat_message_created. Portanto, é impossível encaminhar imagens do Discourse para o Telegram. Este erro pode ser resolvido automaticamente no futuro, mas, de qualquer forma, eu o corrigirei.

  • Responder

  • Edição de mensagens (apenas texto)

  • Encaminhar mensagens (Telegram → Discourse)

  • Exclusão de mensagens (Discourse → Telegram)
    Não suportaremos a exclusão de mensagens para Telegram → Discourse porque a API do bot do Telegram não fornece uma interface para ouvir eventos de exclusão de mensagens.

  • Avatar e nomes de usuário (Telegram → Discourse)

O conteúdo a seguir não é implementado e está planejado para ser suportado no futuro

  • Citação (Telegram → Discourse)
  • Imagens de álbum (Discourse ↔ Telegram)
    Atualmente, suporta apenas a sincronização da primeira imagem

Prévia


Configuração

SiteSetting.chat_telegram_bridges

É uma lista e você precisa preencher cada coluna neste formato:

discourse_chat_channel_id,telegram_chat_id,bot_token

Por exemplo

3,-123456789,123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXX

conectará o canal de chat do Discourse 3 ↔ chat do Telegram -123456789 usando o bot com o token 123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXX

NÃO adicione espaços após as vírgulas.

Certamente não é elegante, mas não tenho energia extra para escrever uma interface de configuração bonita para isso. Por favor, envie um PR se você quiser.

Permitir sincronização de vídeos e adesivos de vídeo

Os adesivos dinâmicos, gifs e vídeos do Telegram estão basicamente no formato webp. Você precisa permitir o upload deles nas Configurações do Site.authorized_extensions, caso contrário, você receberá apenas uma mensagem [Esta mensagem ainda não é suportada]

CHANGELOG

  • 07/11/2023 Lançado 0.0.1

TODO

  • Conectar Matrix ao Discourse
23 curtidas

Isso parece incrível, bom trabalho! :+1:

Isso deveria ser site_settings :slight_smile:

2 curtidas

Oh meu Deus, obrigado, vou mudar imediatamente

…E deveria estar em client.en.yml. Escrevi o código de madrugada e a qualidade do código parece um pouco ruim. :melting_face:

3 curtidas

Trabalho incrível, obrigado por criar isso!

4 curtidas

Eu testei um pouco e funciona bem! :+1:

2 curtidas

Olá!
Obrigado por um plugin tão maravilhoso :raised_hands: É sobre isso que tenho pensado nos últimos meses :confetti_ball:. Parece que você capturou meus pensamentos :sweat_smile:
Quero esclarecer. O plugin funcionará apenas para o modo de chat ou também pode ser conectado a um tópico?

Você pode elaborar um pouco mais especificamente?

2 curtidas

Olá! Desculpe se não expressei meus pensamentos o suficiente :pray:. Estou usando o Google Tradutor e não tenho certeza se estou entendendo corretamente as postagens neste fórum. E eu não sei programar, então nem sempre entendo as mensagens dos programadores. Deixe-me mostrar minha pergunta em forma de diagrama:

Eu provavelmente entendo o que você quer dizer… Você quer que o conteúdo do chat seja publicado no tópico simultaneamente?
Eu tinha um software nodejs pronto antes disso, mas ele precisava ser adaptado para outros fóruns. E eu estive muito ocupado recentemente e não tenho tempo para fazer isso.
Por enquanto, ele só suportará o chat.

2 curtidas

Não tenho certeza se entendi sua pergunta corretamente, mas tentarei explicar passo a passo o que imagino. No período de 2021 a 2022, tentei criar um fórum baseado em Discourse. No entanto, apesar da relevância do fórum, o projeto não teve sucesso porque, em nossa região (Ásia Central), a maioria dos residentes prefere usar mensageiros como Telegram e WhatsApp em vez de se registrar e usar novos recursos em sites.

Com o advento da inteligência artificial, observei mudanças nas regras do jogo. Surgiram vários serviços, incluindo sites e aplicativos projetados para o uso de inteligência artificial. Os mensageiros não podem fornecer totalmente a funcionalidade para trabalhar com inteligência artificial, embora o Telegram seja mais avançado que o WhatsApp. Ao saber sobre novos plugins no Discourse, como Discourse AI e Chatbot, percebi que esta era uma nova oportunidade para o meu site.

Quero utilizar ao máximo a capacidade de criar posts temáticos (tópicos). Recentemente, fiz uma pergunta aqui - no Meta sobre o plugin Chatbot, perguntando se o chat GPT pode se lembrar do primeiro post e não esquecer o conteúdo do tópico principal após inúmeras mensagens na thread. Então, @merefield respondeu que o chatbot sempre se lembrará do primeiro post. Este se tornou o principal critério para aplicar este plugin em meu site.

Pretendo criar seções temáticas no fórum para interação com inteligência artificial e pessoas reais. O formato de comunicação no Discourse através da criação de tópicos é tecnicamente mais avançado em comparação com os chats. Portanto, os chats não são totalmente adequados para treinar o bot, pois em um chat, o bot pode não se lembrar do tópico inicial entre inúmeras mensagens recentes. Pretendo usar a capacidade de criar posts temáticos, treinando o bot no primeiro post para que ele possa responder às perguntas dos usuários dentro do tópico especificado.

No entanto, considerando a popularidade dos mensageiros em nossa região e o hábito das pessoas de usar chats, estou pensando em como fornecer aos usuários a experiência do fórum Discourse sem abandonar seus mensageiros familiares. Após instalar o plugin Discourse Chat Bridge, descobri que ele conecta o chat do Discourse com o chat do Telegram, mas não cria uma ponte entre um post publicado no fórum e o chat do Telegram.

Meus planos incluem:

  1. Um usuário (possivelmente pessoal do site) envia uma mensagem privada (MP) para o bot de IA no fórum com instruções sobre como o bot deve responder às mensagens subsequentes, como aconselhar outros usuários sobre o uso do fórum.
  2. O usuário vincula esta mensagem privada à inteligência artificial em um bot regular do Telegram.
  3. O usuário compartilha o link para o bot do Telegram com outros usuários que ainda não estão registrados no fórum, mas desejam saber mais sobre ele.
  4. Cada usuário, clicando no link no bot do Telegram, inicia uma conversa privada com a inteligência artificial, que responde e aconselha de acordo com as instruções postadas no fórum.
  5. Todas as mensagens do usuário direcionadas à inteligência artificial são publicadas em um tópico privado do fórum. Assim, os usuários do Telegram não veem as mensagens de outros usuários do Telegram, pois cada usuário se comunica separadamente com o bot do Telegram.

Então vocês planejam usar o bot do Telegram como um funil para usuários que vêm para o fórum ou querem permitir que os usuários permaneçam apenas no Telegram interagindo com o bot de IA (o bot de IA sendo um proxy entre o conteúdo do fórum e o usuário)?

1 curtida

Tudo bem… isso parece um recurso muito personalizado e não acho que adicionaria esse recurso gratuitamente, pois minha energia é muito limitada.

1 curtida

Sim, é isso mesmo, o bot/chat do Telegram será usado como um espelho e duplicará o conteúdo do fórum e de volta.

Ok, entendi. Atualmente estou fazendo um trabalho geral de preparação no meu site. Se você permitir, voltarei a este tópico em algumas semanas com propostas mais específicas em uma mensagem pessoal para você.

Estou muito interessado nisso e me ofereço para ajudar se precisar.

1 curtida

Ok, obrigado pela oferta :raised_hands:, voltarei assim que estiver pronto.

1 curtida

Ao testar, parece que descobri um bug no plugin. Depois de enviar uma mensagem para o chat via Telegram –> Discourse, nada aparece no site no chat (às vezes, apenas o nome de usuário 1234567890.tgid aparece). Para resolver este problema, tenho que atualizar a página do site. Após a atualização, o nome do remetente da mensagem aparece, mas o conteúdo da mensagem em si não é mostrado. Para resolver este problema, reorganizo o HTML e então o texto da mensagem do chat aparece. Aqui está um vídeo:

Além disso, queria esclarecer. Se eu enviar uma mensagem via Telegram para um chat em grupo sem usar o botão Responder, a mensagem não chega ao chat no Discourse. Acontece que, para que a mensagem seja enviada, devo selecionar a função Responder no chat do Telegram. Mas e se eu não quiser responder à mensagem de ninguém no chat, mas apenas quiser enviar uma mensagem com uma pergunta para todos os membros do grupo?

1 curtida

Notei este problema há alguns dias, mas nunca tive tempo de consertá-lo. Minha lista de tarefas está acumulada no momento.

Uma atualização recente no Discourse Chat quebrou este plugin. Preciso de tempo para adaptá-lo ou enviar diretamente as funções que preciso para o núcleo.

Estou aguardando uma resposta. Agora, devido à falta desse recurso, preciso monkey patch, e meu plugin pode ser quebrado por um commit a qualquer momento.

2 curtidas

Ok, entendi. Espero que a equipe de desenvolvimento preste atenção à sua mensagem :pray:

1 curtida