X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fglobal.cpp;h=2dbfcdf9a3148f26a3e8a56e13c6fe4ef03e4160;hb=3dc3ac3cfe10b7196a7977e9c041c29fa141c35e;hp=a9477679f30ffd2aec00de69a612452eace6a8fe;hpb=4430e7762844c66428b6f822288beb71b7f82b95;p=fms.git diff --git a/src/global.cpp b/src/global.cpp index a947767..2dbfcdf 100644 --- a/src/global.cpp +++ b/src/global.cpp @@ -386,6 +386,9 @@ void SetupDB() // insert garfield's public key db->Execute("INSERT INTO tblIdentity(PublicKey,DateAdded) VALUES('SSK@T8l1IEGU4-PoASFzgc2GYhIgRzUvZsKdoQWeuLHuTmM,QLxAPfkGis8l5NafNpSCdbxzXhBlu9WL8svcqJw9Mpo,AQACAAE/','"+date.Format("%Y-%m-%d %H:%M:%S")+"');"); + // TODO remove sometime after 0.1.17 + FixCapitalBoardNames(); + } void ConvertDB0100To0101() @@ -645,6 +648,12 @@ void SetupDefaultOptions() st.Step(); st.Reset(); + st.Bind(0,"DeleteMessagesOlderThan"); + st.Bind(1,"180"); + st.Bind(2,"Automatically delete messages older than this many days."); + st.Step(); + st.Reset(); + } void SetupLogFile() @@ -770,3 +779,67 @@ void StartThreads(std::vector &threads) } */ + +void FixCapitalBoardNames() +{ + SQLite3DB::DB *db=SQLite3DB::DB::Instance(); + + SQLite3DB::Statement st=db->Prepare("SELECT BoardID,BoardName FROM tblBoard WHERE BoardID NOT IN (SELECT BoardID FROM tblAdministrationBoard);"); + SQLite3DB::Statement st2=db->Prepare("SELECT BoardID FROM tblBoard WHERE BoardName=?;"); + SQLite3DB::Statement del=db->Prepare("DELTE FROM tblBoard WHERE BoardID=?;"); + SQLite3DB::Statement upd=db->Prepare("UPDATE tblBoard SET BoardName=? WHERE BoardID=?;"); + SQLite3DB::Statement upd2=db->Prepare("UPDATE tblMessage SET ReplyBoardID=? WHERE ReplyBoardID=?;"); + SQLite3DB::Statement upd3=db->Prepare("UPDATE tblMessageBoard SET BoardID=? WHERE BoardID=?;"); + + st.Step(); + while(st.RowReturned()) + { + int boardid=0; + int newboardid=0; + std::string name=""; + std::string lowername=""; + + st.ResultInt(0,boardid); + st.ResultText(1,name); + + lowername=name; + StringFunctions::LowerCase(lowername,lowername); + + if(name!=lowername) + { + st2.Bind(0,lowername); + st2.Step(); + + if(st2.RowReturned()) + { + st2.ResultInt(0,newboardid); + + upd2.Bind(0,newboardid); + upd2.Bind(1,boardid); + upd2.Step(); + upd2.Reset(); + + upd3.Bind(0,newboardid); + upd3.Bind(1,boardid); + upd3.Step(); + upd3.Reset(); + + del.Bind(0,boardid); + del.Step(); + del.Reset(); + } + else + { + upd.Bind(0,lowername); + upd.Bind(1,boardid); + upd.Step(); + upd.Reset(); + } + + st2.Reset(); + } + + st.Step(); + } + +}