git repos / oastat

commit b0881aaf

sago007 · 2012-01-08 19:09
b0881aaf45d5d11647cddefe913d66d172bbf792 patch · browse files
parent 1fdd0f58fffc6e9688bf632749fb98fb1f0f462c

"-backend" parameter. It is now possible to recieve hashed ids from input.


git-svn-id: http://oastat.googlecode.com/svn/trunk@33 a36be8df-c75f-1e49-46ad-4f0ee64bdc62

Changed files

M src/oastat.cpp before
M src/oss2db/userinfo2db.cpp before
diff --git a/src/oastat.cpp b/src/oastat.cpp index 93ac716..3a9bb67 100644 --- a/src/oastat.cpp +++ b/src/oastat.cpp
@@ -99,6 +99,7 @@ int main (int argc, const char* argv[])
{
string dbargs = "";
string filename = "";
+ string backend = "DbiXX";
/////////////
dbargs = "mysql dbname oastat username poul";
filename = "/home/poul/.openarena/elimination/games.log";
@@ -113,8 +114,13 @@ int main (int argc, const char* argv[])
i++;
filename = string(argv[i]);
}
+ if(string(argv[i]) == "-backend" && onemore) {
+ i++;
+ backend = string(argv[i]);
+ }
}
try{
+ db = NULL;
#if USESTDOUT
cout << "INFO: oastat " << VERSION << " ready to process data" << endl;
db = new DB2stdout();
@@ -129,13 +135,21 @@ int main (int argc, const char* argv[])
#endif*/
#if USEDBIXX
- cout << "Using DBI" << endl;
- if(dbargs.length()<1)
- db = new Db2DbiXX();
- else
- db = new Db2DbiXX(dbargs);
+ if(backend == "DbiXX") {
+ cout << "Using DBI" << endl;
+ if(dbargs.length()<1)
+ db = new Db2DbiXX();
+ else
+ db = new Db2DbiXX(dbargs);
+ }
#endif
+ if(!db) {
+ string error("Failed to find backend: ");
+ error += backend;
+ throw error.c_str();
+ }
+
addCommands();
if(filename.length()>0) {
diff --git a/src/oss2db/userinfo2db.cpp b/src/oss2db/userinfo2db.cpp index cd09172..366a5bf 100644 --- a/src/oss2db/userinfo2db.cpp +++ b/src/oss2db/userinfo2db.cpp
@@ -36,13 +36,20 @@ bool Userinfo2Db::canProcess(OaStatStruct oss) {
void Userinfo2Db::process(OaStatStruct oss) {
if(!canProcess(oss))
return; //Invalid oss
+ bool isBot = false;
map<string,string> arguments = oss.GetInfostring();
- if(arguments["id"].length()>0) //Not bot
- clientIdMap[oss.parameters.at(0)] = getHashedId(arguments["id"]);
+ if(arguments["id"].length()>0 || arguments["hashedid"].length() > 0) //Not bot
+ if(arguments["id"].length()>0)
+ clientIdMap[oss.parameters.at(0)] = getHashedId(arguments["id"]);
+ else
+ clientIdMap[oss.parameters.at(0)] = arguments["hashedid"];
else //bot
+ {
clientIdMap[oss.parameters.at(0)] = arguments["n"];
+ isBot = true;
+ }
string player = clientIdMap[oss.parameters.at(0)];
- dp->setPlayerInfo(player,arguments["n"],arguments["id"]=="",oss.second,atoi(arguments["t"].c_str()), arguments["model"],arguments["hmodel"],-1,&oss);
+ dp->setPlayerInfo(player,arguments["n"],isBot,oss.second,atoi(arguments["t"].c_str()), arguments["model"],arguments["hmodel"],-1,&oss);
}