App-get_flash_videos
view release on metacpan or search on metacpan
lib/FlashVideo/Mechanize.pm view on Meta::CPAN
package FlashVideo::Mechanize;
use WWW::Mechanize;
use FlashVideo::Downloader;
use Encode ();
use strict;
use base "WWW::Mechanize";
sub new {
my $class = shift;
my $browser = $class->SUPER::new(autocheck => 0);
$browser->agent_alias("Windows Mozilla");
my $proxy = $App::get_flash_videos::opt{proxy};
if($proxy && $proxy !~ /^\w+:/) {
my $port = ($proxy =~ /:(\d+)/)[0] || 1080;
$proxy = "socks://$1:$port";
}
if($proxy) {
$browser->proxy([qw[http https]] => $proxy);
lib/FlashVideo/Mechanize.pm view on Meta::CPAN
sub allow_redirects {
my($self) = @_;
$self->{redirects_ok} = 1;
}
sub get {
my($self, @rest) = @_;
print STDERR "-> GET $rest[0]\n" if $App::get_flash_videos::opt{debug};
my $r = $self->SUPER::get(@rest);
if($App::get_flash_videos::opt{debug}) {
my $text = join " ", $self->response->code,
$self->response->header("Content-type"), "(" . length($self->content) . ")";
$text .= ": " . DBI::data_string_desc($self->content) if eval { require DBI };
print STDERR "<- $text\n";
}
return $r;
lib/FlashVideo/Mechanize.pm view on Meta::CPAN
}
}
if($charset) {
eval { $html = Encode::decode($charset, $html) };
FlashVideo::Utils::error("Failed decoding as $charset: $@") if $@;
}
}
}
return $self->SUPER::update_html($html);
}
sub _parse_charset {
my($field) = @_;
return(($field =~ /;\s*charset=([-_.:a-z0-9]+)/i)[0]);
}
sub get_socks_proxy {
my $self = shift;
my $proxy = $self->proxy("http");
( run in 0.590 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )