Inhaltsverzeichnis
Items für Forumbeiträge
Idee verworfen; bleibt aber hier, falls jemand sowas realisieren möchte :)
Idee
Für neue Themen und/oder Beiträge bekommt man am Ende eines Monats eine Belohnung in Minecraft.
Ziel
Nach einer Auswertung muss man auf dem Server nur noch das Shell-Script mit Angabe des Benutzers starten; dieser muss gerade auf dem Server sein und Platz im Inventar haben und bekommt dann per give die Gegenstände die das Script ermittelt hat.
Berechung
Dabei gibt es x*Item für normale Beiträge und 3x*Item für neu begonnene Themen; dies ist aber nur eine Idee und muss noch diskutiert werden.
Auswertung
Als Forum verwenden wir phpbb3. Die folgenden MySQL-Abfragen werden verwendet.
(Ich bin ein Anfänger was SQL angeht, kann also noch fehlerhaft sein, auch wenn es zu passen scheint.)
„forum_id=15“ ist unser Spambereich und wird nicht mitgezählt.
Für Beiträge (Posts)
SELECT phpbb_users.user_id,phpbb_users.username,COUNT(*) AS Posts from phpbb_posts INNER JOIN phpbb_users on phpbb_posts.poster_id = phpbb_users.user_id WHERE forum_id<>15 AND post_time>=0 AND post_time<=1329573684 GROUP BY phpbb_users.user_id ORDER BY phpbb_users.user_id ASC;
Für Themen (Topics)
SELECT phpbb_users.user_id,phpbb_users.username,COUNT(*) AS Topics from phpbb_topics INNER JOIN phpbb_users on phpbb_topics.topic_poster = phpbb_users.user_id WHERE forum_id<>15 AND topic_time>=0 AND topic_time<=1329573684 GROUP BY phpbb_users.user_id ORDER BY phpbb_users.user_id ASC;
Shell-Funktion für Anfangs- und Endzeit
get_dates () { _date_from=$1; _date_to=$2; _timestamp_from=$(date "+%s" --date="$_date_from"); _timestamp_to=$(date "+%s" --date="$_date_to"); echo "From ($_timestamp_from), to ($_timestamp_to)" }
Aufruf
get_dates 2012-01-01 2012-01-31 From (1325372400), to (1327964400)
Todo
- Ergebnis sind dann die Anzahl der Topics/Posts pro Monat je Benutzer.
- Wir brauchen eine Liste mit NameimForum:NameinMinecraft
- Hat ein Benutzer für Monat X bereits seinen Lohn erhalten, so muss gewährleistet werden, dass derjenige nicht nochmals versehentlich dasselbe bekommt (in Liste eintragen).