[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
bom galera eu refiz o script do 0 devido a versao 1.3 nao funcionar mais, retirei algumas coisas e adicionei outras, um exemplo no anterior para baixar era necessario a sintaxe -u seguido da url a sintaxe -f seguido do formato e a sintaxe -d nesse nao é necessario o formato e as sintaxe sao --url e --down no lugar de -u e -d
by kodo no kami
- Código:
#!/usr/bin/perl
#coder: kodo no kami (hfts315)
#face: www.facebook.com/hacker.fts315
#forum: endoffile.umforum.net
#greetz: mmxm, f.ramon, suspeito_virtual, jhonydk
use WWW::Mechanize;
use Getopt::Long;
#varaiveis
my $help,$menu,$about,$url,$link,$down,$hd,$info,$wget,$file,$view;
my $slogan = "=====================================\n".
" FTS ANITUBE DOWN v1.4 (beta)\n" .
"=====================================\n\n";
my $semopt = "opcao invalida digite --help ou --menu\n\n";
my $ajuda_string = "--help comando de ajuda\n--menu abre o menu de comandos\n--url * especifica o anime (* url)\n--down baixa determinado anime\n--wget baixa determinado anime pelo wget (necessario wget instalado)\n" .
"--link exibe os links do anime\n--info mostra inforamacao do anime\n--hd baixa animes em hd (caso tenha)\n--file * manipula uma lista de url em um arquivo (* arquivo)\n--view exibe o arquivo\n--install_wget baixa o wget\n--about mostra informacao do script\n\n";
my $autor = "coder: kodo no kami (hfts315)\nface: www.facebook.com/hacker.fts315\nforum: endoffile.umforum.net\ngreetz: mmxm, f.ramon, suspeito_virtual, jhonydk\n\n";
my $url_winwget = "http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip";
my $linha = "===================================";
GetOptions("help"=>\$help, "menu"=>\$menu, "about"=>\$about, "url=s"=>\$url, "link"=>\$link, "install_wget" =>\$instw, "down"=>\$down,"hd"=>\$hd,"info" =>\$info,"wget"=>\$wget,"file=s"=>\$file,"view"=>\$view);
############
#menu
############
if(defined($menu))
{
$menu_loop = 1;
#loop menu principal
while($menu_loop == 1)
{
fts_cls();
print $slogan;
print "1 - url (--url)\n2 - arquivo (--file)\n7 - instalar o wget (--install_wget)\n8 - ajuda (--help)\n9 - about (--about)\n0 - sair\n\n> ";
$menu_opt = <stdin>;
print "\n";
#sair
if($menu_opt == 0)
{
exit(0);
}
#url
elsif($menu_opt == 1)
{
$menu_loop_url = 1;
while($menu_loop_url == 1)
{
fts_cls();
print $slogan;
print "digite a url: ";
$url = <stdin>;
$menu_loop_url2 = 1;
#loop
while($menu_loop_url2 == 1){
fts_cls();
print $slogan;
print " url: " . $url . "\n";
print "\n1 - download (--down)\n2 - download pelo wget (--wget)\n3 - link (--link)\n4 - info (--info)\n9 - nova url\n0 - voltar\n\n> ";
$url_opt = <stdin>;
#voltar
if($url_opt == 0)
{
$menu_loop_url = 0;
$menu_loop_url2 = 0;
}
#download
elsif($url_opt == 1)
{
$link = fts_links($url);
print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
$opt_hd = <stdin>;
print "\n";
if($opt_hd == 1)
{
$hd = "1";
}
#hd
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
print "baixando anime, aguarde!!!\n\n";
fts_download($arq,$nome);
print "anime baixado com sucesso!!!\n\n";
fts_pause();
}
#wget
elsif($url_opt == 2)
{
$link = fts_links($url);
print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
$opt_hd = <stdin>;
print "\n";
if($opt_hd == 1)
{
$hd = "1";
}
#hd
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
$cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
print "baixando anime, aguarde!!!\n\n";
system($cmd);
print "anime baixado com sucesso!!!\n\n";
fts_pause();
}
#link
elsif($url_opt == 3)
{
print "\n\nnormal: ";
$link = fts_links($url);
print fts_link_file($link,0);
print "\n\nhd: ";
$link = fts_links($url);
print fts_link_file($link,1);
print "\n\n";
fts_pause();
}
#info
elsif($url_opt == 4)
{
fts_cls();
print $slogan;
fts_anime_info($url);
fts_pause();
}
#nova url
elsif($url_opt == 9)
{
$menu_loop_url2 = 0;
}
}
}
}
#file
elsif($menu_opt == 2)
{
fts_cls();
$menu_loop_file = 1;
while($menu_loop_file == 1)
{
fts_cls();
print $slogan;
print "digite o arquivo: ";
$file = <stdin>;
open(ARQ,"<" . $file);
@urls = <ARQ>;
$urlrem = 0;
$menu_loop_file2 = 1;
while($menu_loop_file2 == 1)
{
fts_cls();
print $slogan;
print " arquivo: " . $file . "\n";
print "1 - download (--down)\n2 - download pelo wget (--wget)\n3 - link (--link)\n4 - info (--info)\n5 - exibir arquivo (--view) \n9 - novo arquivo\n0 - voltar\n\n> ";
$arq_opt = <stdin>;
#voltar
if($arq_opt == 0)
{
$menu_loop_file = 0;
$menu_loop_file2 = 0;
}
#down
elsif($arq_opt == 1)
{
print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
$opt_hd = <stdin>;
print "\n";
if($opt_hd == 1)
{
$hd = "1";
}
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
$link = fts_links($url);
#HD
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
print "baixando anime: " . $nome;
fts_download($arq,$nome);
print " (sucesso!!!) \n\n";
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
print "\n\ntodos os animes baixado com sucesso\n\n";
fts_pause();
}
#wget
elsif($arq_opt == 2)
{
print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
$opt_hd = <stdin>;
print "\n";
if($opt_hd == 1)
{
$hd = "1";
}
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
$link = fts_links($url);
#HD
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
print "baixando anime: " . $nome . "\n\n";
$cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
system($cmd);
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
print "\n\ntodos os animes baixado com sucesso\n\n";
fts_pause();
}
#link
elsif($arq_opt == 3)
{
fts_cls();
print $slogan;
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
print "anime: " . fts_anime_nome($url) . "\n\n";
print "normal: ";
$link = fts_links($url);
print fts_link_file($link,0);
print "\n\nhd: \n";
$link = fts_links($url);
print fts_link_file($link,1);
print "\n\n";
print $linha;
print "\n\n";
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
fts_pause();
}
#info
elsif($arq_opt == 4)
{
fts_cls();
print $slogan;
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
$nome = fts_anime_nome($url);
print "anime: " . $nome . "\n\n";
print "url: " . $url . "\n";
fts_anime_info($url);
print $linha . "\n\n";
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
fts_pause();
}
#view
elsif($arq_opt == 5)
{
fts_cls();
print $slogan;
fts_file_view($file);
fts_pause();
}
#novo arquivo
elsif($arq_opt == 9)
{
$menu_loop_file2 = 0;
}
}
}
}
#instala o wget
elsif($menu_opt == 7)
{
fts_cls();
print $slogan;
fts_install_wget($url_winwget);
fts_pause();
}
#ajuda
elsif($menu_opt ==
{
fts_cls();
print $slogan;
print $ajuda_string;
fts_pause();
}
#about
elsif($menu_opt == 9)
{
fts_cls();
print $slogan;
print "\n" . $autor;
fts_pause();
}
#opcao invalida
else
{
print "essa opcao e invalida tente novamente\n\n";
fts_pause();
}
}
exit(0);
}
##############
#comando
##############
else
{
#ajuda
if(defined($help))
{
print $slogan;
print $ajuda_string;
exit(0);
}
#about
if(defined($about))
{
print $slogan;
print $autor;
exit(0);
}
#url
elsif(defined($url))
{
fts_anime_nome($url);
#link
if(defined($link))
{
print $slogan;
print "normal: \n";
$link = fts_links($url);
print fts_link_file($link,0);
print "\n\nhd: \n";
$link = fts_links($url);
print fts_link_file($link,1);
}
#down
elsif(defined($down))
{
print $slogan;
$link = fts_links($url);
#HD
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
print "baixando anime, aguarde!!!\n\n";
fts_download($arq,$nome);
print "anime baixado com sucesso!!!\n\n";
exit(0);
}
#wget
elsif(defined($wget))
{
print $slogan;
$link = fts_links($url);
#HD
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
$cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
print "baixando anime, aguarde!!!\n\n";
system($cmd);
print "anime baixado com sucesso!!!\n\n";
exit(0);
}
#info
elsif(defined($info))
{
print $slogan;
fts_anime_info($url);
exit(0);
}
}
#file
elsif(defined($file))
{
open(ARQ,"<" . $file);
@urls = <ARQ>;
$urlrem = 0;
#link
if(defined($link))
{
print $slogan;
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
print "anime: " . fts_anime_nome($url) . "\n\n";
print "normal: ";
$link = fts_links($url);
print fts_link_file($link,0);
print "\n\nhd: \n";
$link = fts_links($url);
print fts_link_file($link,1);
print "\n\n";
print $linha;
print "\n\n";
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
exit(0);
}
#down
elsif(defined($down))
{
print $slogan;
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
$link = fts_links($url);
#HD
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
print "baixando anime: " . $nome;
fts_download($arq,$nome);
print " (sucesso!!!) \n\n";
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
exit(0);
}
#wget
elsif(defined($wget))
{
print $slogan;
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
$link = fts_links($url);
#HD
if(defined($hd))
{
$arq = fts_link_file($link,1);
}
#normal
else
{
$arq = fts_link_file($link,0);
}
$nome = fts_anime_nome($url);
$cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
print "baixando anime: " . $nome . "\n\n";
system($cmd);
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
exit(0);
}
#info
elsif(defined($info))
{
print $slogan;
foreach(@urls)
{
$url = $_;
unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
{
$nome = fts_anime_nome($url);
print "anime: " . $nome . "\n\n";
print "url: " . $url . "\n";
fts_anime_info($url);
print $linha . "\n\n";
}
else
{
if($url =~ /^##/)
{
$urlrem = !$urlrem;
}
}
}
exit(0);
}
#exibe o arquivo
elsif(defined($view))
{
print $slogan;
fts_file_view($file);
exit(0);
}
close(ARQ);
exit(0);
}
#instala o wget
elsif(defined($instw))
{
print $slogan;
fts_install_wget($url_winwget);
exit(0);
}
#opção invalida
else
{
print $slogan;
print $semopt;
fts_anime_info("http://www.anitube.se/video/5444/HighSchool-of-the-Dead-02--CAOn");
exit(0);
}
}
#############
#função
#############
#função pausa o terminal
sub fts_pause
{
print "aperte enter para continuar!!!\n\n";
<stdin>;
}
#função limpa tela
sub fts_cls
{
#win
if($^O eq "MSWin32" || $^O eq "MSWin64")
{
system("cls");
}
#linux
else
{
system("clear");
}
}
#função retorna o arquivo xml q ta os links
sub fts_links
{
$link_mecha = WWW::Mechanize->new;
$link_mecha->get($_[0]);
$link_content = $link_mecha->content;
@reg_content = $link_content =~ /var cnf='(.*)'; var w='/;
return $reg_content[0];
}
#função retorna o link de um arquivo
sub fts_link_file
{
$link_mecha = WWW::Mechanize->new;
$link_mecha->get($_[0]);
$link_content = $link_mecha->content;
#normal
if($_[1] == 0)
{
@reg_content = $link_content =~ /<file>(.*)<\/file>/;
return $reg_content[0];
}
#HD
elsif($_[1] == 1)
{
@reg_content = $link_content =~ /<filehd>(.*)<\/filehd>/;
return $reg_content[0];
}
return 0;
}
#função para instala o wget
sub fts_install_wget
{
#win
if($^O eq "MSWin32" || $^O eq "MSWin64")
{
print "baixando o wget, aguarde...\n\n";
$wget_mechanize = WWW::Mechanize->new;
$wget_mechanize->get($_[0],":content_file" => "wget.zip");
print "o wget foi baixado com sucesso\n\ninstalacao: extraia ele e coloque o executavel \"wget\" que esta dentro da pasta bin, coloque ele na pasta \"?:\\windows\\system32\" para poder usar ele livremente pelo terminal, ou deixe ele sempre junto ao script para o mesmo poder baixar por ele\n\n";
print "dica: uma das vantagens do wget que voce pode ver o tempo que falta para baixar determindo arquivo e se a internet cair voce pode voltar para aquela parte onde estava baixando, outra vantagem que voce poderia baixar qualquer arquivo direto com wget ele e um dos melhores gerenciador de download por linha de comando, se voce coloco ele na pasta system32 voce pode abrir o terminal e digitar wget da um espaco seguido do link do arquivo a ser baixado\n\n"
}
#linux
else
{
system("sudo apt-get install wget"); #pelo aptget
#system("yum install wget");
}
}
#função para baixar o arquivo
sub fts_download
{
$down_mechanize = WWW::Mechanize->new;
$arq_salvo = $_[1];
$down_mechanize->get($_[0],":content_file" => $arq_salvo);
}
#função retorna o nome do anime
sub fts_anime_nome
{
@nome = $_[0] =~ /www.anitube.se\/video\/\d+\/(.*)/;
return $nome[0] . ".mp4";
}
#função retorna o nome do anime
sub fts_anime_info
{
$info_mechanize = WWW::Mechanize->new;
$cat_mechanize = WWW::Mechanize->new;
$info_mechanize->get($_[0]);
#uploader
@reg_content = $info_mechanize->content =~ /<span class="moreLink"><a href="http:\/\/www.anitube.se\/users\/(.*)">.*<\/a><\/span>/;
print "Uploader: " . $reg_content[0] . "\n\n";
#data
@reg_content = $info_mechanize->content =~ /class="textGlow">(\d+-\d+-\d+)<\/span><\/p>/;
print "Data: " . $reg_content[0] . "\n\n";
#duração
@reg_content = $info_mechanize->content =~ /ao: <span class="textGlow">(.*)<\/span><\/p>/;
print "Duracao: " . $reg_content[0] . "\n\n";
#votos
@reg_content = $info_mechanize->content =~ /<li class="videoRate">.*\((\d+) Votos\) <img src='/s;
print "Votos: " . $reg_content[0] . "\n\n";
#categoria
@reg_content = $info_mechanize->content =~ /<p class="viewVideoTags">Categoria:.*<a href="http:\/\/www.anitube.se\/categories\/\d+\/.*">(.*)<\/a>.*<\/p>.*<\/li>/si;
@reg_content_catlink = $info_mechanize->content =~ /<p class="viewVideoTags">Categoria:.*<a href="(http:\/\/www.anitube.se\/categories\/\d+\/.*)">.*<\/a>.*<\/p>.*<\/li>/si;
print "Categoria: " . $reg_content[0] . "\n\n";
print "Categoria (link): " . $reg_content_catlink[0] . "\n\n";
$cat_mechanize->get($reg_content_catlink[0]);
@reg_content_catdesc = $cat_mechanize->content =~ /<meta name="description" content="(.*)." \/>.*<meta name="keywords" content="/s;
#descrição
@reg_content = $info_mechanize->content =~ /<li class="videoDesc">(.*)<\/li>.*<li class="videoRate">.*<div id="voteProcess">/s;
@reg_content = $reg_content[0] =~ /^\s+(.*)/;
print "Descricao: " . $reg_content[0] . "\n\n";
#descrição categoria
print "Descricao (categoria): " . $reg_content_catdesc[0] . "\n\n";
}
#função exibe o arquivo
sub fts_file_view
{
open(ARQ_EXIB,"<" . $_[0]);
@ARQ_EX = <ARQ_EXIB>;
foreach(@ARQ_EX)
{
print $_;
}
close(ARQ_EXIB);
print "\n\n";
}
bom galera eu refiz o script do 0 devido a versao 1.3 nao funcionar mais, retirei algumas coisas e adicionei outras, um exemplo no anterior para baixar era necessario a sintaxe -u seguido da url a sintaxe -f seguido do formato e a sintaxe -d nesse nao é necessario o formato e as sintaxe sao --url e --down no lugar de -u e -d
- Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --down
- Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --down --hd
- Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --link
- Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --info
- Código:
perl anitube.pl --file anime.txt --down
- Código:
perl anitube.pl --file anime.txt --view
- Código:
perl anitube.pl --install_wget
- Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --wget
- Código:
perl anitube.pl --menu
by kodo no kami