Ja tam pociąłem splitem. i mam taki wynik:
Kod: Zaznacz cały
~> perl split.pl
https://www.google.pl/search?q=thunderbird
ie=utf-8
oe=utf-8
aq=t
rls=org.mozilla:pl:official
client=firefox-a#hl=pl
gs_rn=2
gs_ri=serp
pq=outlook%202010
cp=14
gs_id=1eh
xhr=t
q=outlook+2010+chomikuj
es_nrs=true
pf=p
client=firefox-a
hs=HWE
tbo=d
rls=org.mozilla:pl%3Aofficial
sclient=psy-ab
oq=outlook+2010
teraz tylko delikatny regex, żeby wyciągnąć z tablicy utworzonej splitem potrzebne zmienne (identycznie jak w funkcji vimeo poniżej), a ze zmiennymi można sobie zrobić, co się człowiekowi żywnie podoba.
Kod: Zaznacz cały
sub vimeo {
my @opcjejakosci = ("hd" , "sd" , "mobile");
my $goto = $_[0] ;
my $sygnatura="";
my $playerurl="";
my $timestamp="";
my $videoid="";
my $vimqualities="";
my $jakosc="";
my $sznur="";
my $adres="";
my $sznurek = WWW::Mechanize->new();
$sznurek ->agent( "$useragent" );
$sznurek->max_redirect(1);
$sznurek->default_header('Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
'Accept-Language' => " pl-PL,pl;q=0.5",
'Accept-Charset' => "ISO-8859-2,utf-8;q=0.7,*;q=0.7",
'Accept-Encoding' => "gzip,deflate",
'Connection' => "keep-alive", );
$sznurek->get( $goto );
my $vimtest = $sznurek->content();
if ($vimtest =~m/\"signature":\"(.+?)\"/) {
$sygnatura = $1; }
if ($vimtest =~m/\"player_url":\"(.+?)\"/) {
$playerurl=$1; }
if ($vimtest =~m/"timestamp":(\d+)/) {
$timestamp=$1; }
if ($vimtest =~m/"video":\{"id":(\d+?),/) {
$videoid=$1; }
if ($vimtest =~m/"qualities":\[(.*?)\]/) {
$vimqualities=$1; }
foreach my $vimq (@opcjejakosci) {
if ($vimqualities =~/$vimq/ ){
$jakosc = $vimq;
last;
}
}
$sznur = "http://$playerurl/play_redirect?quality=$jakosc&clip_id=$videoid&time=$timestamp&sig=$sygnatura";
my $film = WWW::Scripter->new(
autocheck => 1,
show_progress => 1,);
$film ->use_plugin(JavaScript => engine => "JE",);
$film ->agent( "$useragent" );
$film->max_redirect(0);
$film->get($sznur);
my $status = $film->status();
if (($status >= 300) && ($status < 400)) {
$adres = $film->response()->header('Location');
}
my @vlcstart = ("$odtwarzacz \"$adres\" 2>&1>/dev/null &" );
exec @vlcstart or print STDERR "couldn't exec $odtwarzacz: $!";
}
Pozdro

Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux
