Ruthe Comics

Ich mag die Ruthe-Comics sehr gerne, jedoch finde ich die app nicht so praktisch. Also habe ich es in IPS eingebaut, es ist bei mir an das Dashboard gebastelt - muss man sich ggf. anpassen.

Ich habe im Dashboard nur 2 Knöpfe: Einen für einen zufälligen Cartoon (beim Klick auf das Image) sowie einen Button für den aktuellen Cartoon.

Mit dem Timer prüft das Skript jede Stunde auf einen neuen Cartoon. Beim Erscheinen wird die var „id_last“ neu gesetzt und automatisch angezeigt (per Eregnis auf id_last)

<?
IPSUtils_Include ('IPSInstaller.inc.php', 'IPSLibrary::install::IPSInstaller');

if ($_IPS['SENDER']=='Execute'){
	$data=Sys_GetURLContent("http://ruthe.de");
	if (preg_match('|href="(?<url>http://ruthe.de/cartoons/strip_(?<id>[0-9]*).jpg)|',$data,$treffer)){
		$fp = fopen(IPS_GetKernelDir()."media/Ruthe.jpg", "wb+");
		fwrite($fp, file_get_contents($treffer['url']));
		fclose($fp);
		$id=CreateVariable("id_Last", 1, IPS_GetParent($_IPS['SELF']), 0);
		setvalue($id,$treffer['id']);
		}
	}
elseif ($_IPS['SENDER']=='TimerEvent'){
	$data=Sys_GetURLContent("http://ruthe.de");
	if (preg_match('|href="(?<url>http://ruthe.de/cartoons/strip_(?<id>[0-9]*).jpg)|',$data,$treffer)){
		$fp = fopen(IPS_GetKernelDir()."media/Ruthe.jpg", "wb+");
		fwrite($fp, file_get_contents($treffer['url']));
		fclose($fp);
		$id=CreateVariable("id_Last", 1, IPS_GetParent($_IPS['SELF']), 0);
		setvalue($id,$treffer['id']);
		}
	}
elseif ($_IPS['SENDER']=='Designer'){
	switch ($_IPS['COMPONENT']){
	case 'RutheRnd':
	   $ruthe_id=str_pad(Rand(1,GetValue(27684 /*[Ruthe\id_Last]*/)), 4, '0', STR_PAD_LEFT);
		$fp = fopen(IPS_GetKernelDir()."media/Ruthe.jpg", "wb+");
		fwrite($fp, file_get_contents('http://ruthe.de/cartoons/strip_'.$ruthe_id.'.jpg'));
		fclose($fp);
		$id=CreateVariable("id", 1, IPS_GetParent($_IPS['SELF']), 0);
		setvalue($id,$ruthe_id);
	   break;
	case 'RutheLast':
	   $ruthe_id=GetValue(27684 /*[Ruthe\id_Last]*/);
		$fp = fopen(IPS_GetKernelDir()."media/Ruthe.jpg", "wb+");
		fwrite($fp, file_get_contents('http://ruthe.de/cartoons/strip_'.$ruthe_id.'.jpg'));
		fclose($fp);
		$id=CreateVariable("id", 1, IPS_GetParent($_IPS['SELF']), 0);
		setvalue($id,$ruthe_id);
	   break;
		}
	}
else{
//	setvalue(57527 /*[debug]*/,$_IPS['SENDER']);
}
?>