From 528b5938ec71abed396248cf5e00f346e685aaea Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 14 Aug 2024 02:40:48 +0100 Subject: Automatically determine SQL column type from the field. Also add more column types to ensure we are storing data in the best format in the database. --- modules/botserv/bs_badwords.cpp | 6 +++--- modules/botserv/bs_kick.cpp | 39 +++++++++++++++++++++------------------ 2 files changed, 24 insertions(+), 21 deletions(-) (limited to 'modules/botserv') diff --git a/modules/botserv/bs_badwords.cpp b/modules/botserv/bs_badwords.cpp index e72e32a6e..2396a91c6 100644 --- a/modules/botserv/bs_badwords.cpp +++ b/modules/botserv/bs_badwords.cpp @@ -21,9 +21,9 @@ struct BadWordImpl final void Serialize(Serialize::Data &data) const override { - data["ci"] << this->chan; - data["word"] << this->word; - data.SetType("type", Serialize::Data::DT_INT); data["type"] << this->type; + data.Store("ci", this->chan); + data.Store("word", this->word); + data.Store("type", this->type); } static Serializable *Unserialize(Serializable *obj, Serialize::Data &); diff --git a/modules/botserv/bs_kick.cpp b/modules/botserv/bs_kick.cpp index f2a39dbf1..ba2ace0dd 100644 --- a/modules/botserv/bs_kick.cpp +++ b/modules/botserv/bs_kick.cpp @@ -53,25 +53,28 @@ struct KickerDataImpl final if (kd == NULL) return; - data.SetType("kickerdata:amsgs", Serialize::Data::DT_INT); data["kickerdata:amsgs"] << kd->amsgs; - data.SetType("kickerdata:badwords", Serialize::Data::DT_INT); data["kickerdata:badwords"] << kd->badwords; - data.SetType("kickerdata:bolds", Serialize::Data::DT_INT); data["kickerdata:bolds"] << kd->bolds; - data.SetType("kickerdata:caps", Serialize::Data::DT_INT); data["kickerdata:caps"] << kd->caps; - data.SetType("kickerdata:colors", Serialize::Data::DT_INT); data["kickerdata:colors"] << kd->colors; - data.SetType("kickerdata:flood", Serialize::Data::DT_INT); data["kickerdata:flood"] << kd->flood; - data.SetType("kickerdata:italics", Serialize::Data::DT_INT); data["kickerdata:italics"] << kd->italics; - data.SetType("kickerdata:repeat", Serialize::Data::DT_INT); data["kickerdata:repeat"] << kd->repeat; - data.SetType("kickerdata:reverses", Serialize::Data::DT_INT); data["kickerdata:reverses"] << kd->reverses; - data.SetType("kickerdata:underlines", Serialize::Data::DT_INT); data["kickerdata:underlines"] << kd->underlines; - data.SetType("capsmin", Serialize::Data::DT_INT); data["capsmin"] << kd->capsmin; - data.SetType("capspercent", Serialize::Data::DT_INT); data["capspercent"] << kd->capspercent; - data.SetType("floodlines", Serialize::Data::DT_INT); data["floodlines"] << kd->floodlines; - data.SetType("floodsecs", Serialize::Data::DT_INT); data["floodsecs"] << kd->floodsecs; - data.SetType("repeattimes", Serialize::Data::DT_INT); data["repeattimes"] << kd->repeattimes; - data.SetType("dontkickops", Serialize::Data::DT_INT); data["dontkickops"] << kd->dontkickops; - data.SetType("dontkickvoices", Serialize::Data::DT_INT); data["dontkickvoices"] << kd->dontkickvoices; + data.Store("kickerdata:amsgs", kd->amsgs); + data.Store("kickerdata:badwords", kd->badwords); + data.Store("kickerdata:bolds", kd->bolds); + data.Store("kickerdata:caps", kd->caps); + data.Store("kickerdata:colors", kd->colors); + data.Store("kickerdata:flood", kd->flood); + data.Store("kickerdata:italics", kd->italics); + data.Store("kickerdata:repeat", kd->repeat); + data.Store("kickerdata:reverses", kd->reverses); + data.Store("kickerdata:underlines", kd->underlines); + data.Store("capsmin", kd->capsmin); + data.Store("capspercent", kd->capspercent); + data.Store("floodlines", kd->floodlines); + data.Store("floodsecs", kd->floodsecs); + data.Store("repeattimes", kd->repeattimes); + data.Store("dontkickops", kd->dontkickops); + data.Store("dontkickvoices", kd->dontkickvoices); + + std::ostringstream oss; for (auto ttbtype : kd->ttb) - data["ttb"] << ttbtype << " "; + oss << ttbtype << " "; + data.Store("ttb", oss.str()); } void ExtensibleUnserialize(Extensible *e, Serializable *s, Serialize::Data &data) override -- cgit