Migrar um fórum phpBB3 para Discourse

Parece que sou o único postando aqui…

Então, exatamente quando estava prestes a lançar meu novo fórum Discourse, descobrimos um problema muito estranho! Estou sem ideias sobre esse problema e espero que alguém aqui possa esclarecê-lo…

Caso: Importei dois bancos de dados para o Discourse a partir do phpBB3. O primeiro é um arquivo, que é basicamente o fórum atual que dividimos em dois há 15 anos e depois congelamos. A outra metade do fórum permaneceu ativa e cresceu. Minha esperança era que o importador as fundisse durante a importação, o que ele fez! :smiley:

Mas agora descobri um caso envolvendo um usuário, e preciso saber se isso é apenas um caso isolado ou se afetou outros, e, nesse caso, como procurar por outros casos.

O usuário criou duas contas. Ambas no fórum atual. Digamos que a conta antiga se chamava OldName e a nova, NewName.

No Discourse importado, agora existem dois usuários. Um chamado OldName e o que deveria ser NewName foi renomeado para OldName1. Além disso, as postagens de OldName foram mescladas em OldName1.

Não faço ideia de por que isso aconteceu apenas com esse usuário, já que há outros usuários com contas duplicadas que parecem não ter sido afetados.

Alguém sabe o que pode ter acontecido aqui?
Existe alguma maneira de procurar por outros casos?

1 curtida

Mas provavelmente não da maneira que você imagina. Se você simplesmente executou o importador duas vezes, todos os campos personalizados import_id entraram em conflito, de modo que o usuário com userid 123 no primeiro banco de dados agora é o mesmo usuário que o userid 123 no novo banco de dados. O mesmo vale para tópicos e posts.

Tenho quase certeza de que todo userid (e tópico, post e provavelmente categoria) que existe tanto no banco de dados antigo quanto no novo é mesclado com o antigo.

Você precisará fazer algo para garantir que os import_ids não entrem em conflito (talvez excluir os antigos, talvez alterar o script de importação para torná-los únicos em cada importação).

4 curtidas

Bem… eles SÃO o mesmo de qualquer forma??
Quero dizer, é basicamente o mesmo fórum, apenas uma parte continuou e a outra ficou congelada no tempo. Então, o ID de usuário 123 ainda é o ID de usuário 123, e os IDs de postagens e tópicos também?

O que você quer dizer com campos personalizados import_id?

O fórum parece estar ok, todos os tópicos, postagens etc. estão no lugar. Que eles foram mesclados é a ideia geral?

Não consigo encontrar outros problemas com outros usuários/postagens/tópicos, exceto aquele caso de uso?

Para explicar talvez melhor qual é o caso.

O início foi um fórum phpBB. Em algum momento, eu o clonei. Um clone permaneceu fechado e se tornou o arquivo. A outra parte, eu excluí as postagens mais antigas (que agora estavam no arquivo) e mantive aberta. Nesse, os usuários, tópicos, postagens etc. apenas aumentaram e nunca foram alterados (em termos de ID). Então, o que eu pensei foi que o script de importação veria o arquivo e o fórum atual como duas partes do mesmo banco de dados, porque eles são… e os trataria como uma importação incremental. E foi isso que aconteceu?

Então, por favor, ajude-me a entender agora o que deu errado aos seus olhos, porque o que você aponta é exatamente o que eu queria que fizesse…

Se o segundo fórum fosse um superconjunto do primeiro, não vejo motivo para você ter importado ambos, mas, desde que o novo fórum não utilize nenhum dos mesmos IDs de usuário, postagem ou tópico do primeiro, você deve estar bem.

Quando um usuário, tópico ou postagem é importado, um XxxCustomField é criado com o nome “import_id”, para que você possa identificar a correspondência entre o fórum antigo e o novo.

Alguns importadores também criam um campo personalizado import_username se o nome de usuário mudar. Você pode fazer algo como

cd /var/discourse
rails c
u=User.find_by_username('username-youwant')
u.custom_fields

para vê-los.

1 curtida

porque eu queria que a parte arquivada fosse mesclada de volta ao fórum inteiro, em vez de ter duas “metades” de um único fórum. Agora não preciso mais manter um antigo arquivo phpbb2 separado que eu teria que converter para o Discourse de alguma forma… agora está tudo unificado novamente :slight_smile: (fizemos o arquivo na época para reduzir a carga no servidor).

Testei sua consulta, obrigado.
Para o caso de uso no meu post, obtive {"import_id"=>"21293"} para NewName
e para OldName1, o resultado foi
{"import_id"=>"8800", "import_username"=>"OldName"}
então, uau, isso mostra exatamente o que aconteceu… Alguma razão para ter decidido que import_id8800 pertencia ao usuário de importação NewName? Já que eles têm import_id diferentes.

Existe alguma maneira de fazer uma busca mais genérica, pois não sei quais usuários são afetados. É isso que estou tentando descobrir, então não conheço a parte username-youwant.

Uma maneira de fazer isso seria:

  • Restaurar o backup feito logo após concluir a importação do arquivo.
  • Limpar os valores de import_id de postagens, tópicos, categorias e usuários.
  • Realizar a importação atual do fórum.

Ao fazer isso, os usuários devem ser correspondidos e combinados por e-mail.

4 curtidas

Certo. Eles têm import_ids diferentes, mas o mesmo nome de usuário. Se você quiser que sejam o mesmo usuário, precisarão ter o mesmo nome de usuário (ou você pode fazer com que tenham o mesmo import_id).

Talvez pesquisar por

User.where("username like '%1'")

Isso também pegará pessoas que simplesmente quiseram terminar seu nome de usuário com um 1. .

E isso funcionará perfeitamente . . . a menos que seus endereços de e-mail tenham mudado.

Independentemente de como você fez isso, você terá algumas coisas como essa para resolver manualmente.

1 curtida

Muito útil. Estou migrando meu fórum de jogos para o Discord. A hospedagem do phpBB (esta aqui: https://www.cloudways.com/en/phpbb-hosting.php) que eu usava não suporta aplicativos além de PHP. Por isso, estou no processo de explorar outra plataforma para isso.

Estou tentando migrar um fórum phpBB 3.2.9 para o Discourse. Tenho cerca de 2.800 usuários e quase 36.000 posts. Para a importação, estou usando o repositório Git de @gerhard com a branch phpbb3.

A migração dos usuários e das mensagens privadas funciona bem. Mas com os posts, tenho um problema. Apenas cerca de 2.800 posts foram migrados. Recebi mensagens como a seguinte:

    12201 / 35281 ( 34.6%)  [68323 itens/min]  Falha ao mapear post com ID 14742
undefined method `name' for nil:NilClass
/var/www/discourse/script/import_scripts/phpbb3/support/bbcode/xml_to_markdown.rb:57:in `visit'
/var/www/discourse/script/import_scripts/phpbb3/support/bbcode/xml_to_markdown.rb:25:in `convert'
/var/www/discourse/script/import_scripts/phpbb3/support/text_processor.rb:41:in `process_raw_text'
/var/www/discourse/script/import_scripts/phpbb3/support/text_processor.rb:68:in `process_post'
/var/www/discourse/script/import_scripts/phpbb3/importers/post_importer.rb:35:in `map_post'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:130:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:128:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:186:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:122:in `import_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:33:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:22:in `perform'
./script/import_scripts/phpbb3.rb:33:in `<module:PhpBB3>'
./script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
./script/import_scripts/phpbb3.rb:13:in `<main>'
    12202 / 35281 ( 34.6%)  [68322 itens/min]  Falha ao mapear post com ID 14744
undefined method `name' for nil:NilClass

Não sou especialista em Ruby. Então, não sei exatamente como depurar isso. Parece que falta um método. Mas como posso obtê-los e por que quase 2.800 posts foram migrados?

Alguma ideia do que está causando esse problema e, claro, como posso corrigi-lo?

Obrigado!

1 curtida

Às vezes, há alguns gremlins no código ou goblins no banco de dados.

Se sua migração parar com um erro (parece que é o caso aqui), o que eu faço é olhar a mensagem de erro, abrir o arquivo problemático no script e envolver o erro em algo simples como:

begin
   #linha ou linhas problemáticas de código Ruby
rescue
   puts "erro! em <routine problemática> variável #{variável} blab blah minha ótima mensagem"
end

Recentemente, migrei mais de 1 milhão de posts, e capturar erros como no exemplo acima e “seguir em frente” foi um salva-vidas.

Cada migração é diferente, não que eu tenha tanta experiência quanto outros, mas já fiz isso de cerca de 20 maneiras diferentes e 100 vezes diferentes, LOL, e minha experiência é que a estrutura begin rescue end é muito importante.

Claro, você pode investigar mais a fundo e ver se há um problema maior mais tarde; mas às vezes você só quer continuar avançando e migrando :slight_smile:

2 curtidas

Bem-vindo @TBauer :wave:

Talvez você tenha passado por cima desse aviso na primeira postagem.

2 curtidas

@TBauer parece estar usando esta branch experimental, então acho que está tudo bem. Ainda não é suportado, mas gostaria de saber o que está causando esse erro de qualquer forma.

@TBauer, você poderia me enviar o conteúdo da coluna post_text na tabela phpbb_posts para a postagem com ID 14742 em uma MP ou postar aqui?

Estou supondo que você tenha atualizado recentemente para o phpBB 3.2 e a conversão do formato antigo de BBCode para o novo ainda não tenha sido concluída. É por isso que pode falhar após 2800 posts. Se for esse o caso, talvez seja interessante executar o Reprocessador de Texto do phpBB 3.2+ via CLI. O script de importação atualmente não suporta a mistura de formatos de armazenamento antigos e novos para BBCodes, e a conversão de BBCode para Markdown deve funcionar muito melhor com o novo formato. :wink:

4 curtidas

Não, a migração não para. O script é executado até terminar normalmente. O que acontece é que muitos posts não são migrados. Neste caso, recebi mensagens como a acima. Verifiquei alguns posts no banco de dados e parece que todos esses são antigos e não possuem código XML.

@Helmi: claro que li isso. É por isso que usei a branch experimental do código. :wink:

1 curtida

Talvez essa seja a solução. Vou tentar isso primeiro. Percebi que os posts com falha estão em BBCode e não no formato XML. Então, na próxima tentativa, vou converter após o reparse…

2 curtidas

Desculpe, isso não ficou totalmente claro para mim ao ler sua postagem.

@Helmi: sem problema. :smiley:

@gerhard: funcionou! Depois de converter as postagens para o novo formato, consegui importar as postagens. Apenas obtive uma exceção durante a importação de quatro postagens, mas, no meu caso, isso está tudo bem.

   35264 / 35281 (100.0%)  [4879 itens/min]  Exceção ao criar a postagem 39353. Ignorando.
atributo desconhecido 'reply_id' para PostReply.
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:53:in `_assign_attribute'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:44:in `block in _assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:43:in `each'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:43:in `_assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/attribute_assignment.rb:22:in `_assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:35:in `assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/core.rb:326:in `initialize'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/inheritance.rb:70:in `new'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/inheritance.rb:70:in `new'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/reflection.rb:158:in `build_association'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/associations/association.rb:325:in `build_record'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/associations/collection_association.rb:108:in `build'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/associations/collection_proxy.rb:316:in `build'
/var/www/discourse/app/models/post.rb:1064:in `create_reply_relationship_with'
/var/www/discourse/app/models/post.rb:750:in `block in save_reply_relationships'
/var/www/discourse/app/models/post.rb:748:in `each'
/var/www/discourse/app/models/post.rb:748:in `save_reply_relationships'
/var/www/discourse/lib/post_creator.rb:187:in `block in create'
/var/www/discourse/lib/post_creator.rb:360:in `block (2 levels) in transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:281:in `block in transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
/usr/local/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:281:in `transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/lib/post_creator.rb:359:in `block in transaction'
/var/www/discourse/lib/distributed_mutex.rb:33:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in `synchronize'
/var/www/discourse/lib/post_creator.rb:358:in `transaction'
/var/www/discourse/lib/post_creator.rb:168:in `create'
/var/www/discourse/script/import_scripts/base.rb:555:in `create_post'
/var/www/discourse/script/import_scripts/base.rb:503:in `block in create_posts'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:128:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:186:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:122:in `import_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:33:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:22:in `perform'
script/import_scripts/phpbb3.rb:33:in `<module:PhpBB3>'
script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
script/import_scripts/phpbb3.rb:13:in `<main>'

Obrigado pelo importador e pelo excelente trabalho! :slight_smile:

3 curtidas

Olá @gerhard, estamos realmente usando o script para importar um fórum phpBB muito antigo que precisa ser salvo da exclusão. Tudo está indo muito bem, mas, no final, o fórum apresenta problemas de codificação. Os títulos e o conteúdo das mensagens estão sendo exibidos com codificação incorreta.

O fórum estava em francês, e o dump SQL que baixamos do phpBB está codificado em UTF-8. O que estamos esquecendo, por favor?

Muito obrigado, esse trabalho é incrível! :open_mouth:

É possível que haja uma incompatibilidade de codificação em algum lugar… há uma razão pela qual alguém chamou isso de inferno da codificação do MySQL.

Há muito tempo, criei um script para corrigir bancos de dados que contêm dados UTF-8 em tabelas com codificação latin1. Talvez isso ajude? Caso contrário, você precisará resolver isso sozinho.

3 curtidas

Olá @gerhard e obrigado pela resposta. Qual deve ser o formato do meu arquivo de dump SQL, por favor? Na verdade, o VS Code me diz que está em UTF-8. Então… deveria funcionar, não é?

Esses problemas de codificação me deixam louco.. :frowning:

@gerhard : EDIT : Um exemplo do que tenho no arquivo de dump abaixo.

#
# Script de Backup do phpBB
# Dump de tabelas para phpbb3_
# DATA : 06-04-2020 08:26:04 GMT
#
# Tabela: phpbb3_posts
DROP TABLE IF EXISTS phpbb3_posts;
CREATE TABLE `phpbb3_posts` (
  `post_id` mediumint(8) unsigned NOT NULL auto_increment,
  `topic_id` mediumint(8) unsigned NOT NULL default '0',
  `forum_id` mediumint(8) unsigned NOT NULL default '0',
  `poster_id` mediumint(8) unsigned NOT NULL default '0',
  `icon_id` mediumint(8) unsigned NOT NULL default '0',
  `poster_ip` varchar(40) collate utf8_bin NOT NULL default '',
  `post_time` int(11) unsigned NOT NULL default '0',
  `post_approved` tinyint(1) unsigned NOT NULL default '1',
  `post_reported` tinyint(1) unsigned NOT NULL default '0',
  `enable_bbcode` tinyint(1) unsigned NOT NULL default '1',
  `enable_smilies` tinyint(1) unsigned NOT NULL default '1',
  `enable_magic_url` tinyint(1) unsigned NOT NULL default '1',
  `enable_sig` tinyint(1) unsigned NOT NULL default '1',
  `post_username` varchar(255) collate utf8_bin NOT NULL default '',
  `post_subject` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL default '',
  `post_text` mediumtext character set utf8 collate utf8_unicode_ci NOT NULL,
  `post_checksum` varchar(32) collate utf8_bin NOT NULL default '',
  `post_attachment` tinyint(1) unsigned NOT NULL default '0',
  `bbcode_bitfield` varchar(255) collate utf8_bin NOT NULL default '',
  `bbcode_uid` varchar(8) collate utf8_bin NOT NULL default '',
  `post_postcount` tinyint(1) unsigned NOT NULL default '1',
  `post_edit_time` int(11) unsigned NOT NULL default '0',
  `post_edit_reason` varchar(255) collate utf8_bin NOT NULL default '',
  `post_edit_user` mediumint(8) unsigned NOT NULL default '0',
  `post_edit_count` smallint(4) unsigned NOT NULL default '0',
  `post_edit_locked` tinyint(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`post_id`),
  KEY `forum_id` (`forum_id`),
  KEY `topic_id` (`topic_id`),
  KEY `poster_ip` (`poster_ip`),
  KEY `poster_id` (`poster_id`),
  KEY `post_approved` (`post_approved`),
  KEY `tid_post_time` (`topic_id`,`post_time`),
  KEY `post_username` (`post_username`)
) ENGINE=MyISAM AUTO_INCREMENT=33585 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO phpbb3_posts (post_id, topic_id, forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, post_reported, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_time, post_edit_reason, post_edit_user, post_edit_count, post_edit_locked) VALUES (3, 2, 1, 2, 0, '82.225.50.160', 1135852994, 1, 0, 1, 1, 1, 0, '', 'FORUM APAGADO POR UM HACKER - Em 28/12/05 !!!', 'Em 28/12/05, o fórum foi vítima <!-- s:cry: --><img src=\"{SMILIES_PATH}/icon_cry.gif\" alt=\":cry:\" title=\"Chorando ou Muito triste\" /><!-- s:cry: --> da visita de um hacker <!-- s:pan --><img src=\"{SMILIES_PATH}/panpan.gif\" alt=\":pan\" title=\"panpan\" /><!-- s:pan --> que pode ser meticuloso <!-- s:sick --><img src=\"{SMILIES_PATH}/sick.gif\" alt=\":sick\" title=\"doente\" /><!-- s:sick --> : este, após encontrar uma maneira de se conectar ao Fórum como Administrador do fórum, simplesmente apagou todos os nossos mensagens <!-- s:evil: --><img src=\"{SMILIES_PATH}/icon_evil.gif\" alt=\":evil:\" title=\"Maligno ou Muito bravo\" /><!-- s:evil: --> !!! \r\n\r\nInfelizmente e peço desculpas <!-- s:oops: --><img src=\"{SMILIES_PATH}/icon_redface.gif\" alt=\":oops:\" title=\"Embaraçado\" /><!-- s:oops: -->  (deveria ter pensado nisso!!!) não havia nenhum backup do site e não consegui recuperar nenhuma das mensagens antigas !!!\r\n\r\n[b:f3vjqlv5]AGORA CABE A NÓS FAZER RENASCER ESSE FORUM E MOSTRAR QUE NÃO É ESSE TIPO DE TERRORISMO QUE IMPEDIRÁ O DUB E OS SOUNDS SYSTEM DE PROGRESSAR !!![/b:f3vjqlv5]:thumb \r\n\r\nPerdido por perdido : não tendo conseguido recuperar as mensagens, preferi apagar tudo e instalar a última versão do software do fórum que corrige várias falhas de segurança. Assim, [b:f3vjqlv5]OS MEMBROS ANTIGOS DEVEM SE RE-INSCREVER...[/b:f3vjqlv5]\r\n\r\nRespeito a Todos\r\nRed Lion', '', 0, 'QA==', 'f3vjqlv5', 1, 0, '', 2, 0, 0),(5, 3, 4, 3, 0, '82.225.50.160', 1135856969, 1, 0, 1, 1, 1, 1, '', 'DUB FACTORY RED LION SOUND encontra IRATION STEPPAS 21/01/06', 'Olá a todos,\r\n\r\nUma grande noite de Roots Dub &amp; Steppa em apoio ao Festival do col des 1000 da associação L\'anamounto\r\n\r\nRED LION Sound acolhem os gigantes de Leeds:\r\n\r\nIRATION STEPPAS para uma sessão 100% heavy weight bass....\r\n\r\nCuidado!!!\r\n\r\nAcontece no dia 21 de Janeiro na ADAEP em Grenoble... Entrada 10 euros 22H&gt;&gt;5H\r\nMais informações em breve,\r\nEnquanto isso vocês podem sempre ouvir trechos da noite que aconteceu em Chalon-s/Saône no ano passado:\r\n\r\n<!-- m --><a class=\"postlink\" href=\"http://dubnews.free.fr/iration/irationmix.html\">http://dubnews.free.fr/iration/irationmix.html</a><!-- m -->\r\n\r\na+steph\r\nLions\'Den', '', 0, 'QA==', '2vvambac', 1, 0, '', 3, 0, 0),(6, 2, 1, 5, 0, '172.206.42.240', 1135857292, 1, 0, 1, 1, 1, 1, '', '', 'Vamos lá ao trabalho !!!\r\n\r\nLion está certo, não devemos perder a esperança e principalmente não devemos deixar esse fórum cair sob o pretexto de que não há mais informações, a informação somos nós todos ! \r\n\r\nUnidade Novamente !!! \r\n\r\nRespeito à RedLion Crew\r\nBless\r\nBokson', '', 0, 'QA==', '185llc4j', 1, 0, '', 5, 0, 0),(7, 2, 1, 4, 0, '81.56.248.144', 1135857298, 1, 0, 1, 1, 1, 0, '', '', 'Miséria.... sem brincadeira......\r\nDeve-se acreditar que isso ocupa alguns a chatear os outros sem nenhum interesse....\r\nBom.......\r\nNão deveríamos nos irritar nem gritar contra esse hacker, isso poderia agradá-lo......\r\n\r\nAqui estou, me reinscrevi\r\n\r\nRespeitos,\r\nmathieu', '', 0, 'QA==', '3ra8xkgy', 1, 0, '', 4, 0, 0),(8, 4, 11, 5, 0, '172.206.42.240', 1135857735, 1, 0, 1, 1, 1, 1, '', 'Relação Amplificador - Caixas de Som', 'Irie \r\n\r\nVisto que fomos hackeados, refaço minha pergunta ! \r\nComo calcular essa história de impedância ! \r\nSe fizermos bridge no amplificador, se usarmos em estéreo etc... \r\nE refaço a pergunta, tenho 2 caixas de som bass reflex de 750 watts sob 8 ohms\r\nmeu amplificador atrás 2x700 watts sob 8 ohms (por exemplo) se eu fizer bridge e conseguir sair com 1x1400 watts que eu mando para 2 caixas, já que fiz bridge, ele passa para 4 ohms meu amplificador, então as caixas precisam suportar isso, mas infelizmente nas características das caixas, elas não suportam uma impedância menor que 4,75 ohms \r\n\r\nComo faço, você pode explicar um pouco mais lion, o que você tinha começado (antes da passagem do hacker furioso) \r\nAlém disso, você já me explicou, mas eu esqueci algumas coisas !!!\r\n\r\nObrigado\r\nBokson', '', 0, 'QA==', '3bec5jss', 1, 0, '', 5, 0, 0),(9, 5, 3, 5, 0, '172.206.42.240', 1135857870, 1, 0, 1, 1, 1, 1, '', 'Por que o homem destrói !', 'Tena y Stellin \r\n\r\nUma questão me passa pela mente, não consigo responder sozinho, acredito, pois a resposta pode ser muito ampla ! \r\n\r\nPor que os homens destroem o que o outro criou ? \r\n\r\nCiúme, frustrações .... Não sei, não consigo entender.\r\n\r\nBokson', '', 0, 'QA==', '34xwhk4b', 1, 0, '', 5, 0, 0),(10, 2, 1, 6, 0, '82.64.69.118', 1135859358, 1, 0, 1, 1, 1, 1, '', '', 'Bom, começamos do Zero, não é uma coisa tão ruim <!-- s:) --><img src=\"{SMILIES_PATH}/icon_smile.gif\" alt=\":)\" title=\"Sorriso\" /><!-- s:) -->\r\n\r\nBig Up !!\r\n\r\n\r\nNao\r\nGuidance,,,,', '', 0, 'QA==', '143421z7', 1, 0, '', 6, 0, 0),(11, 2, 1, 7, 0, '212.147.0.191', 1135861490, 1, 0, 1, 1, 1, 0, '', '', 'Sim, contente de ver o fórum no ar!  <!-- s:) --><img src=\"{SMILIES_PATH}/icon_smile.gif\" alt=\":)\" title=\"Sorriso\" /><!-- s:) --> \r\n\r\nLongo vida a este fórum muito instrutivo ! \r\n\r\nUm ensina o outro !\r\n\r\nJ-M', '', 0, 'QA==', '3gohbqv1', 1, 0, '', 7, 0, 0),(12, 2, 1, 8, 0, '82.235.34.36', 1135864108, 1, 0, 1, 1, 1, 0, '', 'Está rolando!!', 'Contente de ver que vocês resolveram o problema rápido!\r\nRespeito a toda a galera...\r\nAté logo\r\nmanu', '', 0, 'QA==', '3oql1d2j', 1, 0, '', 8, 0, 0),(13, 6, 4, 8, 0, '82.235.34.36', 1135865115, 1, 0, 1, 1, 1, 0, '', 'Dub Addict Sound encontra Jr CONY &amp; SHANTI D. 3/02/06', 'Uma semana depois de Red Lion e Iration, vocês podem\r\ndar mais uma camada de bass no RAIL theatre em LYON..\r\nrecebemos JUNIOR CONY &amp; Shant D...\r\nBoudou e Roots massacre farão seu show, 19Dub na seleção\r\ne Phil no vocal.\r\nde 21h às 3h por 7 euros\r\n\r\ntchau a todos...', '', 0, 'QA==', '1y0bfm7j', 1, 0, '', 8, 0, 0),(14, 7, 4, 9, 0, '83.156.49.183', 1135865763, 1, 0, 1, 1, 1, 1, '', 'BORDEAUX: Manasseh, Manutension, Iration Steppas &amp; Uzinadub', 'O 4SANS em Bordeaux apresenta a partir das 22h 8) :\r\n\r\nEM 21 de Janeiro <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> \r\n\r\nMANASSEH feat Brother Culture\r\nMANUTENSION feat MC Tablloyd\r\nCRYSTAL DISTORSION\r\n\r\npor 10 euros\r\n\r\n\r\nEM 25 de Fevereiro <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> \r\n\r\nIRATION STEPPAS\r\nUZINADUB\r\nGG PROJECT\r\nELISA DO BRASIL\r\n\r\nPor 10 euros\r\n\r\nEntão 2 boas noites em Bordeaux para o início do ano de 2006 <!-- s:bravo --><img src=\"{SMILIES_PATH}/bravoo.gif\" alt=\":bravo\" title=\"bravo\" /><!-- s:bravo -->', '', 0, 'QA==', '319buiqc', 1, 0, '', 9, 0, 0),(15, 6, 4, 3, 0, '82.225.50.160', 1135865811, 1, 0, 1, 1, 1, 1, '', '', 'e no dia seguinte DUB FACTORY N°2 no sábado 4 de fevereiro das 21H&gt;&gt;5H\r\n\r\n[b:2d4j075e][color=red:2d4j075e]RED LION SOUND feat Sis ilie encontra JAH FREE feat GARY JAMES[/b:2d4j075e][/color:2d4j075e]\r\n\r\nEntrada 10 euros\r\nStand de Discos UK Dub\r\na+steph', '', 0, 'Qg==', '2d4j075e', 1, 0, '', 3, 0, 0),(16, 6, 4, 9, 0, '83.156.49.183', 1135865981, 1, 0, 1, 1, 1, 1, '', '', 'Isso está rolando essa noite com JAH FREE e RED LION!!!!!!!!!!!! <!-- s:wink: --><img src=\"{SMILIES_PATH}/icon_wink.gif\" alt=\":wink:\" title=\"Piscadinha\" /><!-- s:wink: -->', '', 0, 'Qg==', 'sirogssh', 1, 0, '', 9, 0, 0),(17, 4, 11, 2, 0, '82.225.50.160', 1135866119, 1, 0, 1, 1, 1, 0, '', 'Série e Paralelo', 'Sim Bokson, vamos resolver essa história de impedância :\r\n\r\nA impedância sendo a resistência (entre outras?) de um circuito ou de um componente, você precisa imaginar seu alto-falante como uma resistência que é conectada em um circuito com a saída do amplificador. É a totalidade da resistência desse circuito (com uma ou mais resistências conectadas entre si) que vai determinar a resistência SOB A QUAL seu amplificador vai funcionar.\r\n\r\nVamos tomar o exemplo do seu amplificador : \r\nCaracterísticas técnicas :\r\n750 watts sob 8 ohms x 2 (2 canais)\r\n1400 watts sob 8 ohms x 1 (saída em bridge)\r\n\r\nConecto 1 alto-falante de 750 watts sob 8 ohms em um dos 2 canais (modo não bridge) e tudo bem?\r\nAdiciono um 2º alto-falante de 750/8. Tenho 2 soluções : \r\n\r\nOu conecto o 2º alto-falante no 2º canal do amplificador e tenho então 2 alto-falantes de 750 W/ 8 Ohms conectados em 2 canais de 700 W / 8 Ohms\r\n\r\nOu decido colocar os 2 alto-falantes em série ou em paralelo :\r\n\r\n[b:1ms11ykd] Em série :\nquando conectamos vários alto-falantes em série suas impedâncias Z se somam[/b:1ms11ykd] o que dá : \r\n\r\n[b:1ms11ykd]Zt (saída amplificador) =  Z (hf1) + Z (hf2) + ?[/b:1ms11ykd]\r\n \r\nou para nosso exemplo :\r\n8 Ohms +  8 Ohms =  16 Ohms \r\n\r
portanto, neste caso, para funcionar corretamente seu amplificador deverá ser capaz de fornecer 750W + 750W = 1500 W sob 16 Ohms em um único canal (se conectarmos os 2 alto-falantes em série e em um único canal do amplificador)\r\n\r\n[b:1ms11ykd] Em paralelo :\nquando conectamos vários alto-falantes em paralelo o inverso de suas impedâncias se somam [/b:1ms11ykd] o que dá :\r\n\r\n[b:1ms11ykd]1/Zt = 1/Z (hf1) + 1/Z (hf2) + ?[/b:1ms11ykd]\r\n\r
ou em nosso exemplo :\r\n1/8 + 1/8 = 2/8  então Zt= 8/2=4 Ohms\r\n\r
portanto, neste caso, para funcionar corretamente seu amplificador deverá ser capaz de fornecer 750W + 750W = 1500 W sob 4 Ohms em um único canal \r\n(se conectarmos os 2 alto-falantes em paralelo e em um único canal do amplificador)\r\n\r\n\r\nE se [b:1ms11ykd]decidir colocar 4 alto-falantes no mesmo canal (circuito)[/b:1ms11ykd] terei :\r\n\r\n[b:1ms11ykd]Se todos os alto-falantes estão em série :\n\n8 Ohms +  8 Ohms + 8 Ohms +  8 Ohms = 32 Ohms[/b:1ms11ykd]\r\n\r
portanto, neste caso, para funcionar corretamente seu amplificador deverá ser capaz de fornecer 750W + 750W + 750W + 750W = 3000 W sob 32 Ohms em um único canal\r\n \r\n[b:1ms11ykd]Se todos os alto-falantes estão em paralelo :\n1/Zt= 1/8+1/8+1/8+1/8= 4/8 Zt=8/4=2 Ohms[/b:1ms11ykd]\r\n\r
portanto, neste caso, para funcionar corretamente seu amplificador deverá ser capaz de fornecer 750W + 750W + 750W + 750W = 3000 W sob 2 Ohms em um único canal\r\n\r\n[b:1ms11ykd]Se 2 x 2 alto-falantes acoplados em série são montados em paralelo :\n1/Zt = 1/(8+8)+1/(8+8)=1/16+1/16= 2/16 Zt = 16/2=8 Ohms[/b:1ms11ykd]\r\n\r
portanto, neste caso, para funcionar corretamente seu amplificador deverá ser capaz de fornecer 750W + 750W + 750W + 750W = 3000 W sob 8 Ohms em um único canal\r\n\r\n[b:1ms11ykd]Para 2 x 2 alto-falantes acoplados em paralelo são montados em série :\nZt=(1/(1/8+1/8))+(1/(1/8+1/8)=1/(2/8)+1/(2/8)=4+4=8 Ohms[/b:1ms11ykd]\r\n\r
portanto, neste caso, para funcionar corretamente seu amplificador deverá ser capaz de fornecer 750W + 750W + 750W + 750W = 3000 W sob 8 Ohms em um único canal\r\n\r\nPara o caso em que você tem 6 alto-falantes, deixo para você fazer o cálculo.\r\n\r\nDepois, no nível do seu amplificador, você não tem nenhuma configuração a fazer (é como você vai conectar suas caixas de som entre si que fará com que seu amplificador funcione sob tal ou tal impedância), você só precisa verificar nas especificações técnicas quais são as impedâncias que ele pode suportar (e, na mesma ocasião, qual potência ele pode entregar sob cada impedância)...\r\n\r\nRespeito\r\nRed Lion', '', 0, 'QA==', '1ms11ykd', 1, 1136464838, '', 2, 1, 0),(18, 8, 4, 3, 0, '82.225.50.160', 1135866440, 1, 0, 1, 1, 1, 1, '', 'DUB FACTORY 2: RED LION SOUND encontra JAH FREE feat GARY JAMES', '[b:79akxjmn][size=150:79akxjmn]DUB FACTORY N°2 no sábado 4 de fevereiro das 21H&gt;&gt;5H[/size:79akxjmn][/b:79akxjmn]\r\n\r\n<!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola -->\r\n[b:79akxjmn][color=red:79akxjmn][size=167:79akxjmn]RED LION SOUND feat

...
...
2 curtidas

Uma importação recente do vBulletin que fiz parece ter diferentes codificações em diferentes posts. Escrevi um código que tentou várias coerções de codificação.

1 curtida