Babble Chat

Criei uma correção e submeti um PR, já que @gdpelican não respondeu na última semana. Você pode usar o repositório alternativo até que a correção seja integrada ao repositório principal.
Repositório alternativo: https://github.com/PuttyTribe/babble
PR: Fix issue with search controller by ti0 · Pull Request #302 · gdpelican/babble · GitHub

Para alternar, basta alterar sua configuração e substituir o repositório babble existente por: https://github.com/PuttyTribe/babble.git e reconstruir.

@Newuser @itsbhanusharma @Boost @4ong

3 curtidas

Ah, rs, parece que temos um desfile de beleza :wink:

O erro é devido a essa alteração no núcleo:

@angus, vou deixar você ser o juiz :wink:

Que timing, hein! :slight_smile: Sem atividade por uma semana e, de repente, duas soluções com 20 minutos de diferença!
Eu tinha escolhido aquela solução inicialmente, mas decidi optar por uma solução genérica, já que o parâmetro não é usado em nenhum caso.

1 curtida

Fundi o PR do @merefield, que corrige o problema aqui.

@ti0 Obrigado também pelo seu PR. O argumento é realmente utilizado :slight_smile: Se você chamar super sem argumentos (ou seja, em vez de super()), os argumentos da subclasse são automaticamente passados para super. Se você observar o método que está sendo sobrescrito, verá onde o argumento está sendo utilizado: discourse/lib/search.rb at main · discourse/discourse · GitHub.

@ti0 @merefield Como nota lateral, deveríamos criar um PR no núcleo do Discourse aqui para adicionar um hook para adicionar novos type_filters à classe Search a partir de um plugin. Seria mais performático e estável do que aplicar patches no método execute. Poderia ser um projeto interessante se você conseguir convencer a equipe do Discourse de que vale a pena como uma adição.

@justin Você conseguiu resolver isso? Encontrei o mesmo problema até mudar a maneira como o Babble carrega seu engine em minha própria branch. Suspeito que tenha a ver com como diferentes ambientes estão tratando o método de @gdpelican para carregar arquivos no inicializador, ou seja,

require Rails.root.join('plugins', 'babble', 'app', path).to_s

É difícil identificar exatamente. Talvez eu crie um PR para atualizar o método de carregamento de arquivos do Babble e ver se @gdpelican concorda em mudar isso para o método padrão de plugin do Discourse, usando load com File.expand_path em vez de require com Rails.root.


edição Também adicionei o Babble ao try.thepavilion.io para que você possa testá-lo em um ambiente atualizado a cada 24 horas.

No futuro, se houver um bug crítico no Babble (ou seja, ele não estiver funcionando completamente) e o James não estiver disponível, por favor, marque @angus ou @merefield e nós corrigiremos (ou revisaremos um PR :)).

6 curtidas

Eu quis dizer que o parâmetro não é utilizado dentro do método sobrescrito que alteramos. Com base no que você está dizendo, meu código ainda deveria funcionar, pois a chamada ao super apenas passaria o **args, que coleta argumentos nomeados, e isso é mais estável caso outros parâmetros sejam adicionados no futuro. Faz sentido? Ou estou deixando algo passar?

1 curtida

Sim, você está certo :slight_smile:

Acabei de fazer um pequeno teste e sua abordagem também parece funcionar para os propósitos imediatos (ou seja, preserva a funcionalidade de readonly_mode). É um pouco estranho conceitualmente quando se pensa nisso, já que teoricamente o **args deveria ser definido antes mesmo de chamar a superclasse. Pessoalmente (e talvez James tenha uma visão diferente), acho que ainda prefiro a forma mais explícita, pois já estamos passando os argumentos implicitamente apenas chamando super; adicionar mais uma camada de implicitismo com **args parece ficar um pouco complexo demais.

Embora eu entenda para onde você quer chegar, no geral, acho que a melhor ação nesses casos é buscar uma maneira explícita de evitar conflitos com o código principal, em vez de recorrer a métodos implícitos de captura geral. Essa abordagem tende a levar a outros problemas mais adiante. Como mencionado acima, eu preferiria que pudéssemos refatorar isso buscando adicionar um novo type_filter na base de código principal. Acredito que seria um bom projeto.

É possível definir globalmente “abrir o chat automaticamente ao carregar a página” como sim para todos os usuários por padrão?

É possível fazer com que as URLs sejam renderizadas no Babble como no Threads?

Um exemplo seria postar um link do Twitter no Babble Chat e que ele mostre o conteúdo do tweet em vez de apenas a URL.

Alguém já integrou com o Memberful e teve o nome real dos usuários aparecendo abaixo do nome da conta no chat?

Gostaria de ocultar o nome real deles, se possível.

Edição: Tenho uma solução temporária: pedir que os membros usem o nome de exibição como nome completo durante o cadastro, ou eu edito manualmente o nome completo deles para corresponder ao nome de exibição após o onboarding.

Alguém está usando isso em 17 de setembro de 2020?

Só queria confirmar se isso não é um projeto paralelo.

3 curtidas

@angus, você pode ser o assistente do Babble mais disponível neste momento. Então estou te marcando com uma solicitação de atualização de código, embora eu ficaria feliz se qualquer pessoa resolvesse isso.

Acabei de atualizar nossa versão do Discourse para a 2.6.0beta2 (especificamente esta versão do commit no GitHub) e o seletor de emojis está quebrado agora.

@itsbhanusharma ajuda com nossa instalação do Discourse e a ideia inicial dele é que seja um problema de compatibilidade com a atualização do seletor de emojis no núcleo do Discourse.

Problema com o Seletor de Emojis

Ambiente:

Navegador: Firefox ou Chrome (versão mais recente)
Visualização: Desktop, tablet e móvel
Capacidade de Reproduzir o Problema: 100%

Passos para reproduzir:

  • Abra uma janela de chat do Babble.
  • Clique ou pressione o ícone do seletor de emojis

Resultado esperado:

A interface do seletor de emojis se abre

Resultado real:

Nada acontece. Nenhuma janela do seletor de emojis se abre.


Se não complicar as coisas, quem resolver o problema do seletor de emojis também pode querer corrigir uma tradução faltante.

Ao clicar no ícone “…” ao lado de uma mensagem de chat, a opção “Denunciar” aparece como “[en_US.post.actions.flag]” em vez de “Denunciar”.

2 curtidas

O seletor de emojis no Babble também não está funcionando para o meu site.

1 curtida

Além disso, meu chat está subindo aleatoriamente também. Acredito que esse já foi um problema antes.

1 curtida

@angus ou qualquer outra pessoa que tenha as habilidades técnicas para ajudar com o Babble atualmente – você tem alguma esperança de corrigir os dois problemas que relatei há três semanas nesta resposta no fórum?

Obrigado pela resposta rápida, Joel.

Adicionei suporte ao novo seletor de emojis do Discourse.

Também resolvi isso.

7 curtidas

Olá @angus, obrigado pelo seu duro trabalho neste plugin!

Meu sistema Discourse funciona com uma URL base de polling personalizado. Como acabei de adicionar o Babble, notei que ele não adiciona nenhum cabeçalho Access-Control (CORS), o que faz com que várias solicitações falhem.

Eu poderia possivelmente escrever uma correção, se você me apontar a direção certa no código. :slight_smile:

Após instalar as atualizações mais recentes do Discourse e a versão mais recente do Babble (há alguns dias e novamente ontem para verificar se o problema foi corrigido), estou com problemas ao enviar mensagens, e o indicador de leitura permanece travado mostrando que há novas mensagens.

Agora, quando não consegui enviar uma mensagem, apareceu uma série desses erros no console do navegador:

Uncaught Error: No Reason Phrase
    jQuery 13
    error _application-49dab3118e527975ea48703627a0152cbe26663b7fde8423c667b094d716ae08.js:8967
    jQuery 4
_ember_jquery-865569b174cc91f4563f3552f437b32c6eadf9f6c3d49eae02cfe50e5a8c7dfa.js:38573:14
    jQuery 13
    u self-hosted:1177
    error _application-49dab3118e527975ea48703627a0152cbe26663b7fde8423c667b094d716ae08.js:8967
    jQuery 4
1 curtida

Foram detectadas contas com nomes de usuário estranhos (que começam com “f5c…”, por exemplo, f5cfe2e6cc098d) na lista de contas do fórum - This is the problem of a specific user or something else?

Seu plugin já encontrou esse problema antes?

https://site.example.com/u?name=f5c

Qual poderia ser o motivo (não havia canais no site de teste até este ponto)?


babble
6db4042

Por favor, corrija (babble_initial_user_count)

caminho admin/site_settings/category/plugins?filter=plugin%3Ababble

1 curtida