leifg
19.02.03, 21:34
manche von euch kennen vielleicht die webseite userfriendly.org (webcomic reihe)
ich habe ein script geschrieben welches alle folgen die es dort zu bestaunen gibt herunterläd und möchte euch dieses script nicht vorenthalten.
ein paar generelle funktionen zu diesem script:
ist in php geschrieben (kann ich einfach besser als bash etc...) um es auszuführen braucht ihr also einen php interpreter (unter debian apt-get install php4-cgi)
features des skripts:
erkennt selbständig welche folgen fehlen
benennt alle folgen nach dem format yyyymmtt.gif
anwendung:
in verzeichnis wechseln in das folgen geladen werden, skript starten, warten
kritik, verbesserungscorschläge, portierung auf andere sprachen bitte hier posten
hier der code:
uf_dl_script.php
#!/usr/bin/php4 -q
<?php
$startyear = 1997;
$startmonth = 11;
$startday = 17;
$today = getdate(time());
$missing = array();
$i = 0;
$bild = 0;
$finished = false;
$datum = mktime (0, 0, 0, $startmonth, $startday, $startyear);
//while (!finished)
//{
for ($datum; $datum <= mktime (0, 0, 0, $today[mon], $today[mday], $today[year]); $datum=$datum+86400)
//for ($datum; $datum < mktime (0, 0, 0, 6, 1, 2001); $datum=$datum+86400)
{
$startday=date("d",$datum);
$startmonth=date("m",$datum);
$startyear=date("Y",$datum);
$startdate = $startyear.$startmonth.$startday;
$filename = $startdate.".gif";
if (!file_exists($filename))
{
$missing[$i]=$startdate;
//echo $filename."\n";
$i++;
}
}
$gesamt = sizeof($missing);
if ($gesamt == 0)
echo "everything up to date\n";
else
echo "$gesamt issues missing ... now download\n";
foreach ($missing as $x)
{
$bild++;
echo "Fetching: #".$bild."/".$gesamt." ";
download_strip($x);
}
function download_strip($issue)
{
$timeout = 3;
// $default_reg_exp ="http\:\/\/www.userfriendly.org\/cartoons\/archives\/[[:digit:]][[:digit:]][[:alpha:]][[:alpha:]][[:alpha:]]\/[[:alpha:]][[:alpha:]][[:digit:]]*.gif";
$default_reg_exp ="http\:\/\/www.userfriendly.org\/cartoons\/archives\/[[:digit:]]*[[:alpha:]]*\/[[:alpha:]]*[[:digit:]]*.gif";
echo "(issue: $issue)";
$site = join('',file("http://ars.userfriendly.org/cartoons/?id=".$issue));
if (eregi($default_reg_exp,$site,$reg))
{
$dateiname = $issue.".gif";
while (!file_exists($dateiname))
{
$timeout--;
if ($timeout == 0)
{
echo "download FAILED!!!\n";
return false;
}
exec("nohup wget -O $dateiname $reg[0]");
}
echo " ... Done\n";
}
return true;
}
mfg
leifg
ich habe ein script geschrieben welches alle folgen die es dort zu bestaunen gibt herunterläd und möchte euch dieses script nicht vorenthalten.
ein paar generelle funktionen zu diesem script:
ist in php geschrieben (kann ich einfach besser als bash etc...) um es auszuführen braucht ihr also einen php interpreter (unter debian apt-get install php4-cgi)
features des skripts:
erkennt selbständig welche folgen fehlen
benennt alle folgen nach dem format yyyymmtt.gif
anwendung:
in verzeichnis wechseln in das folgen geladen werden, skript starten, warten
kritik, verbesserungscorschläge, portierung auf andere sprachen bitte hier posten
hier der code:
uf_dl_script.php
#!/usr/bin/php4 -q
<?php
$startyear = 1997;
$startmonth = 11;
$startday = 17;
$today = getdate(time());
$missing = array();
$i = 0;
$bild = 0;
$finished = false;
$datum = mktime (0, 0, 0, $startmonth, $startday, $startyear);
//while (!finished)
//{
for ($datum; $datum <= mktime (0, 0, 0, $today[mon], $today[mday], $today[year]); $datum=$datum+86400)
//for ($datum; $datum < mktime (0, 0, 0, 6, 1, 2001); $datum=$datum+86400)
{
$startday=date("d",$datum);
$startmonth=date("m",$datum);
$startyear=date("Y",$datum);
$startdate = $startyear.$startmonth.$startday;
$filename = $startdate.".gif";
if (!file_exists($filename))
{
$missing[$i]=$startdate;
//echo $filename."\n";
$i++;
}
}
$gesamt = sizeof($missing);
if ($gesamt == 0)
echo "everything up to date\n";
else
echo "$gesamt issues missing ... now download\n";
foreach ($missing as $x)
{
$bild++;
echo "Fetching: #".$bild."/".$gesamt." ";
download_strip($x);
}
function download_strip($issue)
{
$timeout = 3;
// $default_reg_exp ="http\:\/\/www.userfriendly.org\/cartoons\/archives\/[[:digit:]][[:digit:]][[:alpha:]][[:alpha:]][[:alpha:]]\/[[:alpha:]][[:alpha:]][[:digit:]]*.gif";
$default_reg_exp ="http\:\/\/www.userfriendly.org\/cartoons\/archives\/[[:digit:]]*[[:alpha:]]*\/[[:alpha:]]*[[:digit:]]*.gif";
echo "(issue: $issue)";
$site = join('',file("http://ars.userfriendly.org/cartoons/?id=".$issue));
if (eregi($default_reg_exp,$site,$reg))
{
$dateiname = $issue.".gif";
while (!file_exists($dateiname))
{
$timeout--;
if ($timeout == 0)
{
echo "download FAILED!!!\n";
return false;
}
exec("nohup wget -O $dateiname $reg[0]");
}
echo " ... Done\n";
}
return true;
}
mfg
leifg