X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fboard.cpp;h=e429c6c1bc745871baec0d7b884cf0dd477a6f47;hb=dec33c63afafabf83c3039e916725cac6faef9b3;hp=99350f5d7508ab6789766cbfb0d3ca4cc56da610;hpb=3dc3ac3cfe10b7196a7977e9c041c29fa141c35e;p=fms.git diff --git a/src/board.cpp b/src/board.cpp index 99350f5..e429c6c 100644 --- a/src/board.cpp +++ b/src/board.cpp @@ -1,6 +1,8 @@ #include "../include/board.h" #include "../include/stringfunctions.h" +#include + #ifdef XMEM #include #endif @@ -10,11 +12,12 @@ Board::Board() m_boardid=-1; m_boardname=""; m_boarddescription=""; - m_datecreated.Set(1970,1,1); + m_datecreated.assign(1970,1,1); m_lowmessageid=0; m_highmessageid=0; m_messagecount=0; m_savereceivedmessages=true; + m_addedmethod=""; } Board::Board(const long boardid) @@ -27,7 +30,7 @@ Board::Board(const std::string &boardname) Load(boardname); } -Board::Board(const long boardid, const std::string &boardname, const std::string &boarddescription, const std::string datecreated, const long lowmessageid, const long highmessageid, const long messagecount, const bool savereceivedmessages) +Board::Board(const long boardid, const std::string &boardname, const std::string &boarddescription, const std::string datecreated, const long lowmessageid, const long highmessageid, const long messagecount, const bool savereceivedmessages, const std::string &addedmethod) { m_boardid=boardid; m_boardname=boardname; @@ -36,6 +39,7 @@ Board::Board(const long boardid, const std::string &boardname, const std::string m_highmessageid=highmessageid; m_messagecount=messagecount; m_savereceivedmessages=savereceivedmessages; + m_addedmethod=addedmethod; SetDateFromString(datecreated); @@ -48,12 +52,13 @@ const bool Board::Load(const long boardid) m_boardid=-1; m_boardname=""; m_boarddescription=""; - m_datecreated.Set(1970,1,1); + m_datecreated.assign(1970,1,1); m_lowmessageid=0; m_highmessageid=0; m_messagecount=0; + m_addedmethod=""; - SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;"); + SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;"); st.Bind(0,boardid); st.Step(); @@ -88,6 +93,7 @@ const bool Board::Load(const long boardid) { m_savereceivedmessages=false; } + st.ResultText(7,m_addedmethod); return true; } @@ -119,13 +125,14 @@ const bool Board::Load(const std::string &boardname) // same as loading form bo m_boardid=-1; m_boardname=""; m_boarddescription=""; - m_datecreated.Set(1970,1,1); + m_datecreated.assign(1970,1,1); m_lowmessageid=0; m_highmessageid=0; m_messagecount=0; int tempint=-1; + m_addedmethod=""; - SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, tblBoard.BoardID FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardName=?;"); + SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardName=?;"); st.Bind(0,boardname); st.Step(); @@ -161,6 +168,7 @@ const bool Board::Load(const std::string &boardname) // same as loading form bo { m_savereceivedmessages=false; } + st.ResultText(8,m_addedmethod); return true; } @@ -174,37 +182,9 @@ const bool Board::Load(const std::string &boardname) // same as loading form bo void Board::SetDateFromString(const std::string &datestring) { // break out date created - date should be in format yyyy-mm-dd HH:MM:SS, so we split on "-", " " (space), and ":" - int tempint=0; - std::vector dateparts; - StringFunctions::SplitMultiple(datestring,"- :",dateparts); - if(dateparts.size()>0) - { - StringFunctions::Convert(dateparts[0],tempint); - m_datecreated.SetYear(tempint); - } - if(dateparts.size()>1) - { - StringFunctions::Convert(dateparts[1],tempint); - m_datecreated.SetMonth(tempint); - } - if(dateparts.size()>2) - { - StringFunctions::Convert(dateparts[2],tempint); - m_datecreated.SetDay(tempint); - } - if(dateparts.size()>3) - { - StringFunctions::Convert(dateparts[3],tempint); - m_datecreated.SetHour(tempint); - } - if(dateparts.size()>4) - { - StringFunctions::Convert(dateparts[4],tempint); - m_datecreated.SetMinute(tempint); - } - if(dateparts.size()>5) + int tzdiff=0; + if(Poco::DateTimeParser::tryParse(datestring,m_datecreated,tzdiff)==false) { - StringFunctions::Convert(dateparts[5],tempint); - m_datecreated.SetSecond(tempint); + m_log->error("Board::SetDateFromString could not parse date "+datestring); } }