slashhome : Kompjuteriges : Dreckiges Gejavascripte dreckiges verdammtes zum 2ten! : Re: Dreckiges Gejavascripte dreckiges verdammtes zum 2ten!


Nachdem save.tv etwas geändert hat, hier ein kleines Update:

#!/usr/bin/perl

use Expect;
use strict;

my $lnk=shift() || die "No link!";

my $debug=0;

$lnk =~ s/<b>TelecastID=(<b>)/$1/g;

my $flnk = "http://www.save.tv/STV/M/obj/cRecordOrder/croGetDownloadUrl.cfm?null.GetDownloadUrl&ajax=true&clientAuthenticationKey=&callCount=1&c0-scriptName=null&c0-methodName=GetDownloadUrl&c0-id=4331_1271963921321&c0-param0=number:$lnk&c0-param1=number:0&c0-param2=boolean:false&xml=true";

open (FILE, '>>/tmp/fyst.log');
if($debug) {
print FILE "---- LINK ----n$flnkn";
}

$Expect::Log_Stdout = 0;

my $ssh=new Expect;
$ssh->slave->clone_winsize_from(*STDIN);
$ssh->spawn("elinks "$flnk"");
$ssh->expect(10, 'EOF');
my $read = $ssh->before();
$ssh->send_slow(0, "qn");

if($debug) {
print FILE "---- READ ----n";
print FILE $read;
}

$read =~ s/<b>'OK','//gm;
$read =~ s/'<b>//gm;

if($debug) {
print FILE "n---- TARGET ----n";
print FILE $read;
}

my $cmd="wget -b -o /dev/null --content-disposition '$read' > /dev/null";
print FILE "n---- WGET ----n" if($debug);
print FILE "$cmdn";
system $cmd;

close (FILE);

Damit die URL vollständig ist, muss das Elinks "Fenster" größer sein. Da ich auf die schnelle nicht rausfand wie man die Größe des virtuellen Fensters richtig setzt, erbt es die Größe des aufrufenden Fensters. Dieses sollte als halbwegs groß sein, so ab 40 Zeichen aufwärts denke ich.