Status Updater
Was leistet das Programm?
Das Java Programm sendet in einem einstellbaren Intervall, den Status an eine Webseite (Zum Beispiel an: http://devone.de/compute/status.php). Der Status und ein zusätzliches Passwort wird per "Postdata" übertragen, denn es soll verhindert werden, dass andere deinen Status manipulieren können.
Der gesendete Status wird in einer Logfile gespeichert und kann dadurch jederzeit ausgelesen werden. Die Anzeige kann natürlich sehr individuell sein, sei es als Text, Flash oder Bild. Ich werde im folgenden in Schritten erklären wie du zu einem Banner mit der Statusanzeige kommst.
Beispielergebnisse:
1. Java Updater
Das Java Programm ist zum einlesen und zum senden des Status. Die Datei "updater.java" benötigt jedoch ein paar Einstellungen. Diese wichtigsten werden im folgenden Codeabschnitt gezeigt, der Rest muss nicht geändert werden.
updater.java
...
// Konfiguration
int intervall = 20;
String host = "domain.de";
String path = "/compute/status.php";
String pass = "password";
String unitinfo = "C:/path/to/unitinfo.txt";
...
Das komplette Programm: updater.java
Die Variable "intervall" bestimmt die Minuten, wie oft der Status gesendet werden soll. Der Rest sollte selbsterklärend sein. ;-)
2. Speicherung
Die Speicherung erfolgt sobald das Java Programm die "status.php" aufgerufen und die Daten übermittelt hat. Zunächst wird das Password überprüft und ggf. wird dann der Status in der Logfile gesichert.
status.php
<?php
$file = "status.txt";
if($_POST['pass']=="password") {
$fp = fopen($file, "w+");
fwrite($fp, $_POST['status']."\r\n".time());
fclose($fp);
}
?>
3. Anzeige als Banner
Die "img.php" erstellt ein Bild im Jpeg-Format mit einem Hintergrundbild und dem Status in Prozent. Damit die Banneranzeige funktioniert, wird auf dem Server die GD Lib benötigt. Diese ist jedoch meistens schon dabei.
img.php
<?php
// Konfiguration
$varianz = 1800;
$file = "status.txt";
// Daten auslesen
$data = file($file);
$progress = trim($data[0])."%";
if(time()-$varianz<$data[1]) {
$img = "online.jpg";
} else {
$img = "offline.jpg";
}
// Bild erstellen
$image = imagecreatefromjpeg($img);
$res = imagecreatetruecolor(88,31);
imagecopy($res, $image, 0,0,0,0, 88, 31);
$black = imagecolorallocate($res, 0, 0, 0);
imagestring($res, 2, 30, 4, "Progress:", $black);
imagestring($res, 2, 30, 14, $progress, $black);
header("Content-Type: image/jpeg");
imagejpeg($res, '', 100);
?>
Die Variable "$varianz" ist voreingestellt auf 1800 Sekunden, das bedeutet, dass erst nach 1800 Sekunden ohne Update das Offline Bild angezeigt wird. Ansonsten wird das Online Bild angezeigt.
4. Programm starten
Um das Programm in Betrieb zu nehmen, muss zunächst die Java Datei kompiliert werden. Dazu verwende einen entsprechenden Java Editor oder alternativ unter Windows wie folgt:
Erstelle eine Datei namens compile.bat und füge den untenstehenden Inhalt ein. Dann einfach mit einem Doppelklick die Datei ausführen.
compile.bat
@C:\Path\To\j2sdk\javac updater.java
pause
Ist die kompilierung erfolgreich verlaufen, kann das Programm gestartet werden, am besten unter Windows mit einer Batch Datei "launch.bat", dann kann diese auch in den Autostart gepackt werden. :-)
launch.bat
@C:\Path\To\j2sdk\bin\java updater
pause