commit 81f64e2f
Tail is now a command so that in simple cases it can be started even easier
git-svn-id: http://oastat.googlecode.com/svn/trunk@40 a36be8df-c75f-1e49-46ad-4f0ee64bdc62
Changed files
| M | sql/select_statements.usql before |
| M | sql/somesql.usql before |
| M | src/oastat.cpp before |
diff --git a/sql/select_statements.usql b/sql/select_statements.usql
index 3d509ba..eefc7a0 100644
--- a/sql/select_statements.usql
+++ b/sql/select_statements.usql
@@ -29,9 +29,9 @@ WHERE games.gamenumber IN (SELECT DISTINCT gamenumber FROM OASTAT_KILLS)
AND games.mapname = 'dm4ish';
-- Top players on dm4ish
-SELECT p.nickname, count(0) AS kills FROM OASTAT_PLAYERS p, OASTAT_KILLS k
-WHERE k.attacker = p.guid AND k.gamenumber IN (SELECT gamenumber FROM OASTAT_GAMES WHERE LOWER(mapname) = 'dm4ish')
-GROUP BY p.guid,p.nickname ORDER BY kills DESC;
+SELECT p.nickname, count(0) AS kills FROM oastat_players p, oastat_kills k
+WHERE k.attacker = p.playerid AND k.gamenumber IN (SELECT gamenumber FROM oastat_games WHERE LOWER(mapname) = 'dm4ish')
+GROUP BY p.playerid,p.nickname ORDER BY kills DESC;
--Top killers on the server
SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
diff --git a/sql/somesql.usql b/sql/somesql.usql
index 4bc6001..9f511e3 100644
--- a/sql/somesql.usql
+++ b/sql/somesql.usql
@@ -113,4 +113,23 @@ SELECT MAX(gamenumber) FROM OASTAT_GAMES;
INSERT INTO oastat_games(gametype, mapname, basegame) VALUES (0,'dm4ish','baseoa');
-INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4857,14989,'^3^^8/Eli^7te/^3-^3^^8VeRt^7!go^3*',0,'tony/default',-1);
\ No newline at end of file
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4857,14989,'^3^^8/Eli^7te/^3-^3^^8VeRt^7!go^3*',0,'tony/default',-1);
+
+(
+SELECT s.player, s.second, s.score
+FROM oastat_points s
+WHERE s.gamenumber =140
+ORDER BY SECOND
+)
+UNION ALL (
+
+SELECT s.player, g.second, s.score
+FROM oastat_games g, oastat_points s
+WHERE g.gamenumber = s.gamenumber
+AND g.gamenumber =140
+AND s.eventnumber = (
+SELECT max( maxs.eventnumber )
+FROM oastat_points maxs
+WHERE maxs.player = s.player
+AND maxs.gamenumber = g.gamenumber )
+)
diff --git a/src/oastat.cpp b/src/oastat.cpp
index 5d1fe21..b96c051 100644
--- a/src/oastat.cpp
+++ b/src/oastat.cpp
@@ -23,6 +23,7 @@ Copyright (C) 2010 Poul Sander (oastat@poulsander.com)
#include <iostream>
#include <fstream>
+#include <pstreams/pstream.h>
#include <vector>
#include <gcrypt.h>
#include <stdio.h>
@@ -70,6 +71,7 @@ Database *db;
vector<Struct2Db*> commands;
+
/**
* This function adds objects that are inherited from the Struct2Db class
* to the vector commands.
@@ -103,6 +105,7 @@ int main (int argc, const char* argv[])
string dbargs = "";
string filename = "";
string backend = "DbiXX";
+ bool useTail = false;
/////////////
dbargs = "mysql dbname oastat username poul";
filename = "/home/poul/.openarena/elimination/games.log";
@@ -117,6 +120,9 @@ int main (int argc, const char* argv[])
i++;
filename = string(argv[i]);
}
+ if(string(argv[i]) == "-tail") {
+ useTail = true;
+ }
if(string(argv[i]) == "-backend" && onemore) {
i++;
backend = string(argv[i]);
@@ -163,8 +169,13 @@ int main (int argc, const char* argv[])
addCommands();
if(filename.length()>0) {
- ifstream in(filename.c_str(),ifstream::in);
- processStdIn(&in);
+ if(useTail) {
+ redi::ipstream in("tail -s 1 -f "+filename);
+ processStdIn(&in);
+ } else {
+ ifstream in(filename.c_str(),ifstream::in);
+ processStdIn(&in);
+ }
} else
processStdIn(&cin);