summaryrefslogtreecommitdiff
path: root/modules/extra/m_sql_log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/extra/m_sql_log.cpp')
-rw-r--r--modules/extra/m_sql_log.cpp108
1 files changed, 0 insertions, 108 deletions
diff --git a/modules/extra/m_sql_log.cpp b/modules/extra/m_sql_log.cpp
deleted file mode 100644
index 7335a5abf..000000000
--- a/modules/extra/m_sql_log.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *
- * (C) 2003-2024 Anope Team
- * Contact us at team@anope.org
- *
- * Please read COPYING and README for further details.
- */
-
-#include "module.h"
-#include "modules/sql.h"
-
-class SQLLog final
- : public Module
-{
- std::set<Anope::string> inited;
- Anope::string table;
-
-public:
- SQLLog(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR | EXTRA)
- {
- }
-
- void OnReload(Configuration::Conf *conf) override
- {
- Configuration::Block *config = conf->GetModule(this);
- this->table = config->Get<const Anope::string>("table", "logs");
- }
-
- void OnLogMessage(LogInfo *li, const Log *l, const Anope::string &msg) override
- {
- Anope::string ref_name;
- ServiceReference<SQL::Provider> SQL;
-
- for (const auto &target : li->targets)
- {
- size_t sz = target.find("sql_log:");
- if (!sz)
- {
- ref_name = target.substr(8);
- SQL = ServiceReference<SQL::Provider>("SQL::Provider", ref_name);
- break;
- }
- }
-
- if (!SQL)
- return;
-
- if (!inited.count(ref_name))
- {
- inited.insert(ref_name);
-
- SQL::Query create("CREATE TABLE IF NOT EXISTS `" + table + "` ("
- "`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,"
- "`type` varchar(64) NOT NULL,"
- "`user` varchar(64) NOT NULL,"
- "`acc` varchar(64) NOT NULL,"
- "`command` varchar(64) NOT NULL,"
- "`channel` varchar(64) NOT NULL,"
- "`msg` text NOT NULL"
- ")");
-
- SQL->Run(NULL, create);
- }
-
- SQL::Query insert("INSERT INTO `" + table + "` (`type`,`user`,`acc`,`command`,`channel`,`msg`)"
- "VALUES (@type@, @user@, @acc@, @command@, @channel@, @msg@)");
-
- switch (l->type)
- {
- case LOG_ADMIN:
- insert.SetValue("type", "ADMIN");
- break;
- case LOG_OVERRIDE:
- insert.SetValue("type", "OVERRIDE");
- break;
- case LOG_COMMAND:
- insert.SetValue("type", "COMMAND");
- break;
- case LOG_SERVER:
- insert.SetValue("type", "SERVER");
- break;
- case LOG_CHANNEL:
- insert.SetValue("type", "CHANNEL");
- break;
- case LOG_USER:
- insert.SetValue("type", "USER");
- break;
- case LOG_MODULE:
- insert.SetValue("type", "MODULE");
- break;
- case LOG_NORMAL:
- insert.SetValue("type", "NORMAL");
- break;
- default:
- return;
- }
-
- insert.SetValue("user", l->u ? l->u->nick : "");
- insert.SetValue("acc", l->nc ? l->nc->display : "");
- insert.SetValue("command", l->c ? l->c->name : "");
- insert.SetValue("channel", l->ci ? l->ci->name : "");
- insert.SetValue("msg", msg);
-
- SQL->Run(NULL, insert);
- }
-};
-
-MODULE_INIT(SQLLog)