Acho que não deveria ter escondido essa pergunta dentro da outra postagem.
@gerhard, como os diferentes BBCodes são tratados atualmente? Isso provavelmente aconteceu por engano ou é intencional?
Acho que não deveria ter escondido essa pergunta dentro da outra postagem.
@gerhard, como os diferentes BBCodes são tratados atualmente? Isso provavelmente aconteceu por engano ou é intencional?
Qual taxa de importação de posts por minuto vocês conseguiram ao testar em máquinas mais potentes? Estou executando a importação em um Xeon de 8 núcleos e a máquina parece bastante ociosa, enquanto a taxa não sobe significativamente acima de 1000 posts/min.
O armazenamento é um NVMe SSD rápido, então imagino que o limite não seja a I/O. Alguma ideia de como melhorar ainda mais a velocidade? Estou tentando ganhar alguns pontos percentuais para reduzir o tempo total de importação em talvez uma ou duas horas (atualmente em cerca de 14 horas).
Olá, tenho um pequeno problema… Importei e converti cerca de 100 mil posts e, depois, descobri que esqueci de configurar os links de redirecionamento corretamente (além de não ter vinculado os smileys aos emojis no settings.yml…). Existe alguma maneira de reimportar tudo para que os links sejam analisados corretamente, sem alterar nada mais que eu já configurei? Se eu executar o script novamente, ele simplesmente vai achar que já importou e não fará nada, ou fará?
Pelo que vi, isso não é possível, infelizmente. Ele fará o que você disse: ignorará as postagens já importadas.
Existe alguma maneira de fazer com que ele esqueça temporariamente as postagens importadas e as importe novamente?
(Não permanente, pois eu vou querer adicionar postagens mais tarde)
Provavelmente não foi intencional; a conversão de BBCode para Markdown ainda não é perfeita.
Isso parece correto, a menos que você consiga encontrar uma CPU com velocidade de núcleo único maior.
Você tem um backup de antes de começar a importação? Se tiver, pode restaurá-lo e iniciar a importação novamente. Caso contrário, você está sem sorte e precisará começar do zero.
Isso é lamentável. Isso vale também para os smilies?
Ao dizer “começar do zero”, você quer dizer reinstalar o Discourse?
Sinto muito em dizer, mas seria muito difícil e propenso a erros tentar corrigir os smilies após a importação. Não posso ajudá-lo nisso se você seguir por esse caminho.
Sim, essencialmente. Você pode pular algumas etapas excluindo todos os dados e recriando o container.
./launcher stop app
rm -rf /var/discourse/shared/
./launcher rebuild app
Obrigado!
Quer dizer que com esses dois comandos o fórum estará pronto para a importação? Não há mais nenhuma etapa a seguir? (E quanto aos temas, prêmios, grupos e tudo o mais que foi configurado? Existe uma maneira de fazer backup dessas configurações? (Ok, para temas eu sei como salvar e importá-los, mas para as outras configurações.)) (Ok, muitas parênteses)
Estou basicamente apenas feliz por ter descoberto isso agora, em vez de no meio da migração, quando tudo estiver fora do ar, precisando de correções. Mas eu gostaria de fazer o mínimo de retrabalho possível…
É, sem um backup, você tem que refazer essas coisas manualmente.
Se não estiver claro de alguma forma, isso apaga todo o banco de dados e você começa do zero.
Existem algumas maneiras de salvar e restaurar configurações se você pesquisar.
Mas, como sugerido, você realmente quer fazer isso após a importação ou fazer tudo e criar um backup que use como ponto de partida antes da importação.
Oi Helmi,
Um amigo que está trabalhando em um plugin de BB code personalizado descobriu um bug no importador, que fez com que as tags de cor não fossem renderizadas corretamente.
Nas palavras dele:
As tags de cor estão sendo removidas intencionalmente das postagens. O bug do conversor NÃO é que ele esteja removendo apenas as tags de fechamento. O “bug” é que ele NÃO está removendo as tags de cor para nomes de cores.
Evidência:
https://github.com/discourse/discourse/blob/master/script/import_scripts/ph pbb3/support/text_processor.rb
def clean_bbcodes(text)
# Muitas tags bbcode do phpbb têm um hash anexado a elas. Exemplos:
# [url=https://google.com:1qh1i7ky]clique aqui[/url:1qh1i7ky]
# [quote="cybereality":b0wtlzex]Algum texto.[/quote:b0wtlzex]
text.gsub!(/:(?:\w{8})\]/, ']')
# remove tags de cor
text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
end
A última parte text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "") é uma expressão regular que capturará tags de cor com códigos de hash e capturará tags de fechamento de cor, mas não tags de cor com nomes de cores (como color=green, etc).
Solução: Remover a linha.
text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
Na verdade, não queremos isso. Queremos manter esses dados de cor, independentemente de como decidirmos exibi-los. (Bem, para o nosso fórum, essa é a solução. Para o Discourse, você provavelmente fará com que todas as tags de cor sejam removidas, não apenas as de nomes de cores.)
Oi Gerhard, então, depois de seguir suas instruções (primeiro excluí, depois refiz muito trabalho, fiz um backup e então fiz uma importação. Apenas para descobrir no meio do caminho que havia feito algo errado, então parei a importação e precisei começar do zero novamente (já que os dados já haviam sido importados).
Então, excluí tudo novamente.
Depois de reconstruir o app para poder restaurar meu backup e então fazer a importação, o site se recusa a se conectar.
Quando executo o Discourse Doctor, ele diz: Versão do Discourse em [domínio] NÃO ENCONTRADA. Em localhost não encontrado. Nenhum outro erro.
O que preciso fazer?
Você não precisava reconstruir, apenas restaurar o backup.
Minha suposição é que você precisa executar
./launcher start import
O Discourse-doctor não conhece o contêiner de importação.
Talvez seja necessário reconstruir o app e o import, pois eles devem estar na mesma versão.
Reconstruí o import, reconstruí o app e ainda assim recusa de conexão. ![]()
Você precisa adicionar novamente o dump do banco de dados e os arquivos do phpBB. Provavelmente, você os excluiu durante a redefinição.
Sim, eu excluí aqueles. Mas não precisarei restaurar meus dados primeiro? Eu configurei muitas coisas antes da importação para não ter que fazê-las novamente quando tivesse que refazer uma importação. Não seria apenas uma importação para uma instância vanilla do Discourse agora?
E então você restaurará seu backup, que deve estar em /var/discourse/shared/backups/default
e aqui estou eu de novo, desculpe, mas agora tenho outro problema…
Desta vez é: smilies! Coloquei cada smiley no settings.yml assim:
happy: [‘:D’,‘:-D’]
woo: ‘:woo:’
etc.
Coloquei as imagens dos smilies no diretório /var/discourse/shared/standalone/import/images/smilies.
Durante a importação, não vi nenhum erro relacionado a smilies não encontrados ou algo assim.
Ainda assim, os smilies não foram mapeados para emojis e, nas postagens, foram convertidos em imagens.
O que fiz de errado?
Obrigado mais uma vez pela sua ajuda e insights!
edição:
claro… tenho que mapeá-los a partir do phpbb3, não do phpbb2…
Acho que isso resolve, mas ainda preciso testar se esse era realmente o problema.
edição 2: Fiz uma nova importação agora com um novo dump de banco de dados do phpbb3 que já continha os smilies inseridos. Ainda assim, nenhum smiley apareceu. Eles foram convertidos em imagens e não estão no conjunto de emojis. Qual pode ser o problema?
Finalmente consegui mapear os smilies para emojis.
Como foi bastante difícil para mim, já que tinha mais de 150 smilies personalizados, todos com nomes de imagem e códigos de smiley diferentes, aqui vai um tutorial estendido e rápido para outros que estão na mesma situação.
Entendendo o que o importador faz com os smilies
Eu achava que, ao adicionar os códigos de smiley no importador e colocar as imagens no arquivo de imagem designado, elas seriam automaticamente adicionadas também à pasta de emojis. Mas não é isso que acontece. Então, você precisará importar manualmente as imagens dos seus smilies para os emojis.
Ao importá-las, elas precisam ter o nome do código do smiley que você realmente vai usar. Por exemplo, se você tinha um smiley cujo nome do arquivo de imagem era “cheery_icon0.gif”, que é exibido quando os usuários digitam :cheer:, você terá que renomear essa imagem para cheer.gif e enviá-la para os emojis (em admin cp > personalizar > emojis).
Agora, fica ainda mais interessante quando você tem vários smilies que no phpBB são exibidos com coisas como
<-)
%-)
:3
Então, por exemplo, eu tinha um smiley
código : <:-) e era nomeado "_1partyguyhat.gif"
Primeiro, tive que decidir qual seria o novo código no Discourse, já que não se pode nomear arquivos com ‘<:-)’. Depois, renomeei o gif para esse código e, em seguida, adicionei o mapeamento correspondente no arquivo de configurações.
Então, para mim, para aquele smiley específico, foi isso:
party_hat: '<:-)'
O que acontece então ao importar: todas as instâncias em uma postagem, quando alguém digitou <:-), são traduzidas para :party_hat:.
Em seguida, será usado o emoji de chapéu de festa para renderizar o smiley quando ele estiver disponível nos emojis.
Dicas para quando você tem 120 smilies para converter ![]()
Solução de problemas no settings.yml
emojis. (Eu tinha completamente ignorado isso)"yes": ':yes:' para codificar aquele emoji específico.Espero que isso tenha ajudado alguém. Sei que passei quase duas semanas nisso antes de finalmente importar todos corretamente.