O Markdown também deve funcionar, mas acho que usar <strong> pode contornar ainda mais casos extremos. Lembre-se, misturar HTML e Markdown também tem seus problemas… Aqui está uma solução simples de Markdown:
**texto\\\n\\\nmultilinha**
Estou curioso, de qual versão do phpBB você está importando? A conversão de BBCode para Markdown é muito melhor para a 3.2 do que para versões anteriores. Idealmente, você não deveria mais ver [b] em posts importados.
Pensei nisso no início, mas… eu odeio coisas de computador
Não conheço bem o phpBB e não queria ter que lidar com qualquer erro que pudesse acontecer durante uma atualização de uma versão tão antiga.
Como o script de migração do Discourse é compatível com o phpBB 3.0, optei por não atualizar o phpBB…
Talvez alguns problemas de bbcode que encontrei tivessem sido evitados com uma atualização do phpBB. Coisas como listas aninhadas, [b] com novas linhas, etc…
Mas como comecei a trabalhar na importação em dezembro, estou perto de ter uma importação que funcione bem (idealmente, o novo fórum estaria online em talvez duas semanas…) e não tenho certeza se quero experimentar uma atualização do phpBB agora, especialmente se eu tiver que revisar todas as correções de importação personalizadas que fiz para ver se o importador do phpBB 3.2 gerencia essas coisas melhor . Seria demorado.
Dito isso… eu poderia experimentar coisas neste fim de semana tarde se eu estiver entediado o suficiente!
edit: Tentei; mudar para um novo servidor e depois atualizar para o pbpBB 3.2 é um incômodo. Problemas de HTTPS. Problemas de cache. Outros problemas. Procedimentos complicados e frustrantes. O tutorial oficial aconselha o uso de ferramentas que exigem versão desatualizada do PHP (olá, PHP 5, quanto tempo não te vejo…). Aparentemente, às vezes fico entediado, mas não louco - não o suficiente para fazer esse tipo de coisa, pelo menos.
Gerhard! Você está enganando! Atualizar para a versão 3.2 não é um grande favor!
Mas chega de falar sobre o próprio phpBB… E louve a atualização com um clique do Discourse.
Estou tentando migrar usuários do WordPress para o Discourse. Consegui seguir as instruções para me conectar ao nosso banco de dados WP e importar usuários no contêiner Docker. Eu queria ter certeza de que nenhum e-mail será enviado durante ou após a migração, pois estamos usando o plugin SSO do WordPress.
Eu prefixei os e-mails com “import_” para que eles não recebam, caso haja tarefas em segundo plano enviando confirmação por e-mail após a conclusão da migração.
Vejo que há uma coluna last_emailed_at definida após a migração:
Eu sei que é definido por opts[:last_emailed_at] = opts.fetch(:last_emailed_at, Time.now) em ImportScripts::Base::create_user()
Existe uma função semelhante a admin.email_tokens.update_all(confirmed: true) usada em ImportScripts::Base::create_admin onde o e-mail é confirmado?
Não vejo nenhum log mostrando os e-mails enviados. E-mails foram realmente enviados? O Discourse tentará enviar e-mails depois que eu alterar os e-mails para válidos?
Isso está fora do tópico, já que este tópico é sobre a migração do phpBB3…
Eu recomendo usar um domínio .invalid se você quiser ter certeza de que alguns usuários nunca receberão e-mails (por exemplo, foo@mywpimport.invalid). Mas, se você apenas quiser desabilitar e-mails de saída até estar pronto, definir a configuração do site disable_emails como “yes” ou “non-staff” é sua melhor opção!
E-mails de saída são automaticamente desabilitados durante uma importação. Os valores do atributo last_emailed_at provavelmente são do Discourse tentando enviar um e-mail, antes de descobrir que não tem permissão.
O Discourse definitivamente tentará enviar e-mails após a migração.
Obrigado, primeiro tentei uma string vazia para o campo de e-mail e a classe base ImportScript gerou e-mails falsos com o domínio inválido. Eles também têm o atributo last_emailed_at definido.
Então, o que você está dizendo é que assim que eu corrigir o e-mail do banco de dados, o Discourse tentará enviar o e-mail? Mas um login normal autenticado pelo WordPress não requer confirmação por e-mail. Não há como contornar isso com o ImportScript?
Encontro esse problema em muitas postagens. Você tem alguma ideia para corrigir isso globalmente?
Como muitos fóruns antigos, os links antigos do Imageshack estão quebrados há muito tempo e para sempre. Mas alguns links agora exibem uma bandeira da Ucrânia em vez de nada:
Como você lidaria com esse comportamento?
Estou aberto a qualquer ideia, mas um administrador do fórum tem uma cópia estática de todo o fórum em um disco rígido antigo, onde a maioria das imagens antigas são válidas (já que foram baixadas e armazenadas localmente). Estou pensando que, no futuro, talvez eu possa criar um script que substitua todos os links “mortos” do Imageshack pelas imagens válidas da versão estática. Parece muito complicado de fazer, mas por esse motivo, não tenho certeza se quero simplesmente remover todos os links do Imageshack do fórum, substituindo-os por uma string vazia ou algo assim.
É a quebra de linha que está causando o problema? Essa seria a minha suposição. Você precisará remapear esses BBCodes para remover a quebra de linha. Replace a string in all posts deve ser útil.
Talvez convertê-los em comentários HTML por enquanto? Você poderia substituí-los mais tarde pelas imagens armazenadas.
Sim, é uma boa ideia! Então, basicamente, substituir as strings (do tópico que você linkou) usando expressões regulares para direcionar apenas os links do Imageshack, certo?
Tentei refazer a postagem com as imagens quebradas (que são exibidas corretamente na prévia da mensagem, veja minha postagem anterior), mas isso não resolveu nada.
Até onde sei, o conteúdo bruto de ambas as postagens é exatamente o mesmo.
It was in safe-mode with all theme and plugins disabled, but this code block mentions on the first line: plugins/discourse-chat/lib/guardian_extensions.rb:71:in 'can_rebake?'
Warning:
Failed to handle exception in exception app middleware : ArgumentError : wrong number of arguments (given 0, expected 1)
Do this information help?
I’m doing what I can to try to repair these posts, but I’m starting to believe this has something to do with Discourse itself and not something on my side maybe?
edit: see the automatically linked post below.
Issue resolved:
Now I just have to rebake all my posts.
Another edit:
Could have worked for sure, and will for images that still have their old plain URL, but:
Since all the old Imageshack broken links were replaced by valid images displaying a Ukraine flag by Imageshack itself, they were automatically uploaded to Discourse, changing their URL to a markdown local image link.
Fortunately, all these flags were uploaded to Discourse with identical links ( in my case - excellent Discourse behavior by the way ), which means that they will be very easy to target and remove/replace with something else.
I’m just writing this to inform people that would encounter the same issue as me after a migration.
Parece que o valor de poll_option_total está incorreto às vezes. Estou vendo mais votos não anônimos por opção do que o valor de poll_option_total. E todos esses usuários existem.
Usar GREATEST(..., 0) corrige isso. Pelo menos, não trava.
SELECT o.poll_option_id, o.poll_option_text, o.poll_option_total AS total_votes,
GREATEST(CAST(o.poll_option_total AS SIGNED) - (
SELECT COUNT(DISTINCT v.vote_user_id)
FROM #{@table_prefix}poll_votes v
JOIN #{@table_prefix}users u ON (v.vote_user_id = u.user_id)
JOIN #{@table_prefix}topics t ON (v.topic_id = t.topic_id)
WHERE v.poll_option_id = o.poll_option_id AND v.topic_id = o.topic_id
),0) AS anonymous_votes
FROM #{@table_prefix}poll_options o
WHERE o.topic_id = #{topic_id}
ORDER BY o.poll_option_id
Se eu deveria iniciar um novo tópico para isso, peço desculpas antecipadamente.
Tenho um fórum phpBB em uma subpasta:
thedomain.com/forum/
Estou planejando usar o script de importação para migrar do phpBB para o Discourse em um subdomínio; ou seja:
forum.thedomain.com
Então, parece que tudo que precisarei fazer - para o domínio e os permalinks - é definir o seguinte em settings.yml usando HTTPS no novo site:
site_prefix:
# isso é necessário para reescrever links internos em posts
original: thdomain.com/forum # sem http(s)://
new: https://forum.thedomain.com # com http:// ou https://
# Habilite isso, se você quiser redirecionar links antigos do fórum para os novos locais.
permalinks:
categories: true # redireciona /viewforum.php?f=1 para /c/category-name
topics: true # redireciona /viewtopic.php?f=6&t=43 para /t/topic-name/81
posts: true # redireciona /viewtopic.php?p=2455#p2455 para /t/topic-name/81/4
# Anexe um prefixo a cada tipo de link, por exemplo, 'forum' para redirecionar /forum/viewtopic.php?f=6&t=43 para /t/topic-name/81
# Deixe em branco se o seu fórum não foi instalado em uma subpasta.
prefix: forum
E então, no servidor original, que executa o Apache, no .htaccess com RewriteEngine já ativado, precisarei:
Posts estão definidos como “false” nas configurações de permalink. Sei que existem links para posts específicos por aí, então gostaria que eles também tivessem permalinks. Há alguma razão para não defini-los como true; por exemplo, desempenho ou algo assim?
O prefixo está ok sem aspas simples, ou deve ser entre aspas como no comentário?
Isso irá desacelerar um pouco a importação, mas você não deve se preocupar com isso. Geralmente está desativado por padrão porque raramente é necessário.
Encontrei um obstáculo enquanto me preparo para esta importação.
O fórum phpBB que planejo migrar está usando um BBcode personalizado que cria tags de imagem HTML para imagens armazenadas em pastas por ano em um diretório fora do phpBB, mas na mesma conta de usuário no servidor. O BBcode tem o seguinte formato:
O {NUMBER1} e o {NUMBER2} são inteiros para a largura e altura da imagem, respectivamente. O {NUMBER3} é um inteiro para a pasta do ano em que a imagem está, e o {SIMPLETEXT} é o nome do arquivo da imagem. A substituição HTML para o BBcode se parece com isto:
O que preciso descobrir é como lidar com este BBcode personalizado com o script de migração, tanto para converter o BBcode personalizado em algo que o Discourse possa usar, quanto para descobrir onde colocar os arquivos de imagem na árvore de arquivos para a importação.
Dei uma olhada em Ruby-BBcode-to-MD, que diz que “permite estender facilmente este conjunto com tags personalizadas editando tags.rb”. Dei uma olhada em tags.rb, mas como esta é a primeira vez que olho código Ruby, estou perdido sobre como lidar com meu BBcode personalizado, já que seu formato separado por barras difere de qualquer um dos BBcodes oficiais que o arquivo tags.rb inclui, que eu poderia ter usado como guia.
Eu ainda não tenho templates/import/phpbb3.template.yml carregado, então imagino que isso adicionará o gem Ruby BBcode para MD?
Então tenho perguntas:
Qual é a melhor maneira de lidar com este BBcode personalizado para a migração? Editar o arquivo tags.rb é o caminho a seguir? (Se sim, vou pesquisar um pouco sobre codificação Ruby e talvez regex em seguida, mas quaisquer dicas serão bem-vindas!)
Qual é o melhor lugar para colocar os arquivos de imagem para esta galeria na árvore de arquivos de importação para que sejam salvos no Discourse e apareçam nas postagens importadas?