Estou planejando uma migração de uma comunidade existente (macscripter.net - discussões sobre automação do Mac OS) hospedada no FluxBB para o Discourse. Este artigo parece promissor em termos de migração dos dados. Será um grande trabalho, pois tenho mais de 30.000 usuários e 120 mil posts, mas parece viável.
No entanto, quero preservar todos os links de entrada. O macscripter.net é uma referência significativa para a comunidade de automação da Apple. Temos quase 20 anos de posts com muitas referências ao site aparecendo em outros sites e em arquivos de listas de e-mail, que não quero quebrar.
Estou procurando uma maneira de traduzir links de posts do FluxBB para os posts correspondentes no Discourse? Não vejo nenhuma maneira de fazer isso com o Discourse padrão, então presumo que precisarei criar algum tipo de plugin que responda aos links do FluxBB no formato /viewtopic.php?id=##### e redirecione para o link apropriado no Discourse. Se alguém mais tiver experiência resolvendo esse tipo de problema, adoraria saber como vocês abordaram a questão.
A maioria dos scripts de importação cria links permanentes que gerenciam os redirecionamentos. Não sei de imediato se algum deles o faz. Caso contrário, você pode consultar um dos outros para obter exemplos de código.
Tenho a mesma dúvida e estou um pouco confuso com a resposta. Também estou querendo fazer uma importação considerável do FluxBB.
Vejo que existe um recurso do Discourse chamado “Permalinks” (How to make a redirect URL in a Discourse install? - #4 by cpradio), então estamos dizendo que, ao criar essas coisas, o Discourse poderia pegar um URL no estilo FluxBB como “/viewtopic.php?id=((id antigo do tópico))” e redirecionar para “/t/((novo slug do tópico))/((novo id do tópico))”. Talvez o mesmo para posts individuais em um tópico? O mesmo para URLs de perfis de usuário. (Então precisaremos de muitos permalinks). Vejo a tabela do banco de dados para Permalinks.
Isso parece uma solução interessante, mas o importador do FluxBB não está criando nenhum permalink. Não consigo ver nenhum código para isso. Na verdade, não consigo ver nenhum código em nenhum dos scripts de importação para fazer isso (Nenhuma menção ao modelo ActiveRecord “Permalink”).
Ficarei feliz em trabalhar na modificação do importador do FluxBB para fazer isso, mas existe um exemplo em um dos outros importadores?
A única coisa que vejo no código nesse sentido é a inicialização do “LookupContainer” e o armazenamento de todos os IDs antigos e seus IDs novos correspondentes. Isso pode ser usado para criar muitos objetos Permalink?
Verifique o importador do vbulletin (mas também o answerhub, vanilla, mylittleforum, bbpress, drupal para alguns outros - talvez você tenha usado grep com sensibilidade a maiúsculas e minúsculas ou algo assim), que o faz na função import_topics (ignore a função de arquivo permalink). Você vai querer código que adicione o permalink e uma permalink_normalization que mapeie o URL do fluxbb para qualquer permalink que você criou.
Gah! Você tem razão. A pesquisa do meu IDE estava me pregando peças. Na verdade, há muitos exemplos de objetos “Permalink” sendo criados. Então, talvez eu adicione isso à importação do FluxBB.
Estou curioso para saber como foi sua grande importação, @alldritt. Bem, parece que o macscripter.net ainda está no FluxBB, então não foi muito bem? Se você notou que o importador do FluxBB não está convertendo muito bem o bbcode, tenho trabalhado em várias correções para isso: Pull request em andamento.
Há uma sobreposição interessante (desajeitada) entre essas discussões, porque o FluxBB suporta bbcode do tipo [post=123] para vincular a outro post por ID (referenciando IDs de posts antigos no sistema FluxBB de origem). Isso facilitará o tratamento disso se tivermos uma solução redirecionando esses IDs.
Não vai. Permalinks funcionam apenas para links de entrada, não para os internos. Você precisará escrever algo para reescrever esses links internos como citações do Discourse. Existem exemplos disso também.
Tive algumas tentativas de conversão e desisti. Com o tempo, à medida que mudei para um Mac M1, perdi meu ambiente de teste Discourse e nunca cheguei a recriá-lo. Espero retornar a este projeto assim que tiver algum tempo livre. Lidar com o redirecionamento de links existentes foi uma parte com a qual eu estava lutando. Eu não tinha chegado a verificar se todo o BBCode foi traduzido corretamente. Tenho mais de 130 mil posts para converter, o que é assustador de verificar.
Espero que isso seja útil para você então. Ontem estive trabalhando para adicionar a funcionalidade create_permlinks ao importador do FluxBB.
No momento, isso está no meu PR de WIP. Veja o commit “Add Permalink creation logic to FluxBB importer”no final desta lista. Espero que tudo isso seja mesclado em algum momento, possivelmente em uma ordem diferente (atualmente estou esperando que alguém revise este PR básico como ponto de partida).
Então, isso cria redirecionamentos para quatro tipos diferentes de URLs do FluxBB.
profile.php?id=<user id>
viewtopic.php?pid=<post id>
viewtopic.php?id=<topic id>
viewforum.php?id=<forum id>
Acho que estes quatro cobrem tudo o que as pessoas vão querer preservar como links funcionais. O que você acha?
De volta ao tópico dos links internos especiais do FluxBB
Eu não ia tentar mantê-los como links internos no novo discourse. Solução preguiçosa: eles vão linkar para as URLs antigas do fórum FluxBB (como URLs completas, então links externos) que, graças a esses Permalinks, redirecionarão o usuário de volta ao lugar certo no novo discourse.