User:Telegnom/tahstats

From OpenStreetMap Wiki
Jump to navigation Jump to search

Ich war auf der Suche nach ein Möglichkeit, die persönliche Statistik von Tiles@Home in meine Homepage (in der rechten Spalte) einzubinden. Da es scheinbar keine API gibt, von der man diese Daten bekommen kann, habe ich ein kleines Script geschrieben, dass die Daten aus der t@h Homepage extrahiert und formatiert in einer Textdatei abspeichert.

Ich habe mich bewusst dafür entschieden, ein Shell-Script zu nehmen, das alle x Minuten als Cronjob läuft.

#!/bin/bash

# Script zur Erzeugung einer HTML-Liste mit den aktuellen TAH-UserStats
# ACHTUNG: Das Script ist noch sehr jung und wenig getestet!
# Fragen und Kritik: telegnom at gmail dot com

# Hier bitte Benutzernamen und Arbeitsverzeichnis eintragen
user='telegnom'
dir='.'


# Aktuelle Statistikseite herunterladen
wget http://tah.openstreetmap.org/User/show/byname/$user/ -q -O $dir/tahdump.tmp

# Anfang der unsortierten Liste schreiben
echo "<ul>" > $dir/tahstats

# Zeile suchen, in der der Benutzername vorkommt (gibt nur eine!) und
# alles was nach <td></td><tr></tr> riecht entfernen 
data=`grep "<td>$user" < $dir/tahdump.tmp | sed -e 's/<\/*t.>/ /ig'`

# Die einzelnen Werte formatiert ausgeben
echo $data | awk '{ print "<li>Benutzer: "$2 }'  >> $dir/tahstats
echo $data | awk '{ print "<li>gerenderte Kacheln: "$3 }' >>$dir/tahstats
echo $data | awk '{ print "<li>hochgeladene KB: "$4 }' >> $dir/tahstats
echo $data | awk '{ print "<li>letzte Aktivität: "$5" "$6" "$7" "$8 }' >> $dir/tahstats

# Abschluss der unsortierten Liste
echo "</ul>" >> $dir/tahstats

# temporäre Datei löschen
rm -f $dir/tahdump.tmp

Die so erzeugte Textdatei kann man dann z.B. per PHP in eine Homepage einfügen.

<?php
  include "tahstats";
?>