Esta tarde, en 15 minutillos que tenía aburridos, me he puesto a rehacer mi script de firma para foros

Creo que ya comenté hace algún tiempo lo de este script, es muy sencillo. Recoge información del sistema, y la monta junto con una imagen aleatoria, lo mete en un JPG y lo envía al solicitante.
Hasta ahora solo mostraba la versión del kernel, el uptime, el número de usuarios en el sistema y la cantidad de ram y swap libres. Me he cansado un poco de toda esa información, y he decidido cambiar lo que se muestra. Ahora aparece la versión del kernel de mi servidor, el uptime y la ram libre, y como extra la última canción escuchada (información sacada de audioscrobber

).
Aun me falta darle algunos retoques a ese script, de momento es bastante cutre, pero hace muy bien su función. Mi principal problema es que la mayoría de canciones tienen o el title o el autor en caracteres asiáticos (japoneses, chinos o coreanos), así que no se muestran bien.
A petición de Kebrantador, pongo parte del código, aunque no esperéis demasiado.
// $rs es un objeto que uso para acceder a la base de datos// en este caso ya he leido los datos. Cada firma tiene// un formato diferente, por eso guardo la info en una tabla.// Entre la info estan las coordenadas donde va a ir el texto// el color, la fuente, el nivel de compresion de la imagen, etc $image =
$rs->
fields['image'];
$compress =
$rs->
fields['compress'];
$fotn_name =
$rs->
fields['text_font'];
$acolor =
explode(':',
$rs->
fields['text_color'];
$x_pos =
$rs->
fields['text_x'];
$y_pos =
$rs->
fields['text_y'];
$altura =
$rs->
fields['altura'];
$special =
$rs->
fields['special'];
$imagedir =
'/dir/dir/dir/imagenes/firmas/';
$imagepath =
$imagedir .
$image;
$attr =
getimagesize($imagepath);
if($attr[2] >
3) die();
switch($attr[2]) { case 1:
$image = imagecreatefromgif
($imagepath);
break;
case 2:
$image = imagecreatefromjpeg
($imagepath);
break;
case 3:
$image = imagecreatefrompng
($imagepath);
break;
} // Color del texto $color = imagecolorallocate
($image,
$acolor[0],
$acolor[1],
$acolor[2]);
// Seleccionar fuente $font = imageloadfont
($imagedir .
'fonts/' .
$font_name);
// Version // En el cron he indicado que a los 5 minutos // de reiniciar se ejecute: // /usr/bin/uname -r > /dir/dir/firma_kernel.txt $version =
file_get_contents('/firma_kernel.txt');
$text =
'Gentoo GNU/Linux ' .
$version;
if($special==
'center') $x =
$x_pos +
40;
else $x =
$x_pos;
imagestring
($image,
$font,
$x,
$y_pos +
(0 <strong>
$altura,
$text,
$color);
// RAM y Uptime // Se obtienen de forma muy parecida, los omito // lastsong played // Mediante un script shell que se ejecuta cada minuto // en el crontab, descargo el ficherito: // http://ws.audioscrobbler.com/txt/recent/th1nk3r // y lo renombro como "firma_audio.txt" $trackData = @
file('/dir/dir/firma_audio.txt');
if($trackData !=
null) { $trackData[0] =
trim($trackData[0]);
// Comprobamos si se esta escuchando ahora, aunque es // una tonteria con el lag tan tremendo que hay entre // que audioscrobbler publica los cambios y el script los // descarga... if($trackData[0] !=
'') $track =
'[' .
$trackData[0] .
']';
else $track =
'[' .
$trackData[1] .
']';
$track =
html_entity_decode($track);
$track =
trim($track);
} else $track =
'Audioscrobbler data error' // Este error se produce cuando se esta actualizando // el fichero firma_audio.txt... if($special==
'center') $x =
$x_pos +
25;
else $x =
$x_pos>;
imagestring
($image,
$font,
$x,
$y_pos +
(2 </strong>
$altura,
$track,
$color);
// Enviamos la imagen header('Content-Type: image/jpeg');
$newimage = imagecreatetruecolor
(500,
150);
imagecopyresampled
($newimage,
$image,
0,
0,
0,
0,
500,
150,
$attr[0],
$attr[1]);
imageinterlace
($newimage,
1);
imagejpeg
($newimage,
'',
$compress);
imagedestroy
($image);
imagedestroy
($newimage);
Este código forma parte del script que genera las imágenes. Los directorios y alguna otra info es inventada, pero cambiando esos datos debería funcionar. Como ya he dicho, son firmas dinámicas y algunos foros no las admiten. Sin embargo, es fácil saltarse esa protección, lo dejo a vuestra imaginación.
Comentarios