BDumper 1.0 – Baixe todas as imagens do /b/ do 4Chan
O 4Chan é, discutivelmente, o maior fórum da internet. Tudo o que os teus tios vão te mandar por email daqui a 5 anos está rolando por lá há pelo menos 3. De RickRolling ao Pedobear, tudo surgiu no 4chan.
Dentre as inúmeras categorias, a mais famosa e insana é o Random, ou /b/ (pronunciado “bê”) para os íntimos. O /b/ é uma terra sem-lei, onde as únicas coisas proibidas são pedofilia e e xingar o admin, embora volta-e-meia alguém escape…
O volume de informação (100% inútil, garanto) é imenso, chegando a casa dos milhões de posts por dia, e pelo menos um quarto deles tem imagens. Se você não conhece o /b/ ainda, vai ali, abre a página (cuidado, potencialmente NSFW!) e volta. Eu te espero.
Pronto, abriu e ficou dando F5 por meia hora, né?
Foi pensando nisso que eu resolvi escrever o BDumper. Ele é um simples robô que vai abrir o /b/, pegar o link de todas as imagens atualmente na página inicial e baixar a versão full de cada uma. Terminado isso, simplesmente repete o processo até encher o saco ou lotar o teu HD, o que vier primeiro.
O programa foi escrito em C++, utilizando somente a STL para fazer o parse das strings e fazendo uma chamada de sistema pro curl para baixar os arquivos.
Esta é a primeira versão do programa, o código está feio, sujo e bobo, não tem uma interface gráfica nem tratamento nenhum além de verificar a ID do arquivo no 4chan para evitar baixar o mesmo link duas vezes (embora baixe duas imagens iguais caso sejam postadas com nomes diferentes).
Aceito sugestões e correções.
Por um momento eu achei que isto fosse maléfico demais, mas, hey, não tem como ser pior que o /b/.
Só peço para, por favor, não postarem este código lá, vai derrubar o servidor deles.
TODO:
- Interface gráfica, provavelmente em QT, embora talvez faça uma em Cocoa para facilitar a vida de quem tem um mac e não quer instalar a SDK do QT.
- Fezer uma checkagem por hash das imagens para evitar baixar imagens repetidas
- Limpar o código
- Edit: Opção para abrir cada thread e baixar as imagens dela, dica do Geek Pobre, nos comentários
O código foi compilado no OSX com o XCode, o projeto e o binário estão inclusos. Para compilar no Linux:
g++ -o bdumper funcoes.cpp main.cpp
Mas eu não testei ainda no Linux.
Edit: Compilei e testei ele no Linux, roda como esperado.
O programa também deve compilar sem problemas no Visual Studio ou outras IDEs no windows, só tenha certeza de ter o CURL no seu PATH.
Related posts:






Já pensou em fazer uma opção para ele “abrir” os threads e pegar as imagens deles também?
@Geek Pobre estava pensando sobre isso. É uma idéia.
Essa semana ainda talvez eu implemente uma rotina que dumpe uma thread, daí é só juntar as duas coisas.
nao consegui usar,como se usa?
Eu também não entendi como se usa, tutorial plz.
Vocês leram o post?
Compilem e rodem, oras.
E não se esqueçam de fazerem uma doação pra mim (aceito paypal).