diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f24100..88e2a52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -g -DDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} -O2") +file(GLOB SOURCES "src/*/*.cpp") + find_package(Boost COMPONENTS program_options REQUIRED) -add_executable(oastat_static_web_generator src/oastat_static_web_generator.cpp) +add_executable(oastat_static_web_generator src/oastat_static_web_generator.cpp ${SOURCES}) TARGET_LINK_LIBRARIES( oastat_static_web_generator ${Boost_LIBRARIES} cppdb ctemplate ) diff --git a/src/common/common.cpp b/src/common/common.cpp new file mode 100644 index 0000000..246f999 --- /dev/null +++ b/src/common/common.cpp @@ -0,0 +1,13 @@ +#include "common.hpp" + + +std::string timestamp_now_as_string(cppdb::session& database) { + cppdb::statement st = database.prepare("SELECT now()"); + cppdb::result res = st.query(); + if(res.next()) { + std::string value; + res >> value; + return value; + } + return ""; +} diff --git a/src/common/common.hpp b/src/common/common.hpp new file mode 100644 index 0000000..ca68690 --- /dev/null +++ b/src/common/common.hpp @@ -0,0 +1,60 @@ +#include +#include + +// means of death +typedef enum { + MOD_UNKNOWN, + MOD_SHOTGUN, + MOD_GAUNTLET, + MOD_MACHINEGUN, + MOD_GRENADE, + MOD_GRENADE_SPLASH, + MOD_ROCKET, + MOD_ROCKET_SPLASH, + MOD_PLASMA, + MOD_PLASMA_SPLASH, + MOD_RAILGUN, + MOD_LIGHTNING, + MOD_BFG, + MOD_BFG_SPLASH, + MOD_WATER, + MOD_SLIME, + MOD_LAVA, + MOD_CRUSH, + MOD_TELEFRAG, + MOD_FALLING, + MOD_SUICIDE, + MOD_TARGET_LASER, + MOD_TRIGGER_HURT, + MOD_NAIL, + MOD_CHAINGUN, + MOD_PROXIMITY_MINE, + MOD_KAMIKAZE, + MOD_JUICED, + MOD_GRAPPLE +} meansOfDeath_t; + +#define AWARD_IMPRESSIVE 2 +#define AWARD_EXCELLENT 1 +#define AWARD_GAUNTLET 0 +#define AWARD_DEFENCE 3 +#define AWARD_CAPTURE 4 +#define AWARD_ASSIST 5 + + +struct MapInfo { + int times_played = {}; + tm last_played = {}; +}; + + +struct OastatPlayer { + int playerid = 0; + std::string nickname; + tm lastseen; + std::string isBot = "n"; + std::string model; + std::string headmodel; +}; + +std::string timestamp_now_as_string(cppdb::session& database); diff --git a/src/oastat_static_web_generator.cpp b/src/oastat_static_web_generator.cpp index 42923d1..0ba870e 100644 --- a/src/oastat_static_web_generator.cpp +++ b/src/oastat_static_web_generator.cpp @@ -8,6 +8,7 @@ #include #include #include +#include "common/common.hpp" #ifndef VERSIONNUMBER #define VERSIONNUMBER "0.1.0" @@ -20,58 +21,6 @@ const size_t MAX_MAP_LIST = 10; const char* const SAGO_CONNECTION_STRING = "SAGO_CONNECTION_STRING"; -// means of death -typedef enum { - MOD_UNKNOWN, - MOD_SHOTGUN, - MOD_GAUNTLET, - MOD_MACHINEGUN, - MOD_GRENADE, - MOD_GRENADE_SPLASH, - MOD_ROCKET, - MOD_ROCKET_SPLASH, - MOD_PLASMA, - MOD_PLASMA_SPLASH, - MOD_RAILGUN, - MOD_LIGHTNING, - MOD_BFG, - MOD_BFG_SPLASH, - MOD_WATER, - MOD_SLIME, - MOD_LAVA, - MOD_CRUSH, - MOD_TELEFRAG, - MOD_FALLING, - MOD_SUICIDE, - MOD_TARGET_LASER, - MOD_TRIGGER_HURT, - MOD_NAIL, - MOD_CHAINGUN, - MOD_PROXIMITY_MINE, - MOD_KAMIKAZE, - MOD_JUICED, - MOD_GRAPPLE -} meansOfDeath_t; - -#define AWARD_IMPRESSIVE 2 -#define AWARD_EXCELLENT 1 -#define AWARD_GAUNTLET 0 -#define AWARD_DEFENCE 3 -#define AWARD_CAPTURE 4 -#define AWARD_ASSIST 5 - -std::string timestamp_now_as_string(cppdb::session& database) { - cppdb::statement st = database.prepare("SELECT now()"); - cppdb::result res = st.query(); - if(res.next()) { - std::string value; - res >> value; - return value; - } - return ""; -} - - static void create_dir_recursive(const std::string& path) { std::string command = std::string("mkdir -p \"")+path+"\""; int ret = std::system(command.c_str()); @@ -122,11 +71,6 @@ class PrintStartEndTimer { }; -struct MapInfo { - int times_played = {}; - tm last_played = {}; -}; - static std::map kills_by_player; static std::map player_deaths; static std::map> player_awards; @@ -214,14 +158,6 @@ std::vector get_most_played_maps(cppdb::session& database) { return ret; } -struct OastatPlayer { - int playerid = 0; - std::string nickname; - tm lastseen; - std::string isBot = "n"; - std::string model; - std::string headmodel; -}; static std::map players; diff --git a/src/pages/game.cpp b/src/pages/game.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/game.cpp diff --git a/src/pages/index.cpp b/src/pages/index.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/index.cpp diff --git a/src/pages/pages.hpp b/src/pages/pages.hpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/pages.hpp