{\r
origmess.ResultInt(0,identityid);\r
origmess.ResultText(1,identityname);\r
- origmess.ResultInt(2,origmessagetrust);\r
- origmess.ResultInt(3,origtrustlisttrust);\r
+ if(origmess.ResultNull(2)==false)\r
+ {\r
+ origmess.ResultInt(2,origmessagetrust);\r
+ }\r
+ else\r
+ {\r
+ origmessagetrust=50;\r
+ }\r
+ if(origmess.ResultNull(3)==false)\r
+ {\r
+ origmess.ResultInt(3,origtrustlisttrust);\r
+ }\r
+ else\r
+ {\r
+ origtrustlisttrust=50;\r
+ }\r
\r
origmessagetrust+=changemessagetrust;\r
origtrustlisttrust+=changetrustlisttrust;\r
int localmessagetrust=0;\r
\r
st.ResultInt(0,identityid);\r
- st.ResultInt(1,localmessagetrust);\r
+ if(st.ResultNull(1)==false)\r
+ {\r
+ st.ResultInt(1,localmessagetrust);\r
+ }\r
+ else\r
+ {\r
+ localmessagetrust=50;\r
+ }\r
\r
localmessagetrust+=m_changemessagetrustonreply;\r
if(localmessagetrust<0)\r
m_changemessagetrustonreply=0;\r
Option::Instance()->Get("ChangeMessageTrustOnReply",tempval);\r
StringFunctions::Convert(tempval,m_changemessagetrustonreply);\r
+ Option::Instance()->Get("AddNewPostFromIdentities",tempval);\r
+ if(tempval=="true")\r
+ {\r
+ m_addnewpostfromidentities=true;\r
+ }\r
+ else\r
+ {\r
+ m_addnewpostfromidentities=false;\r
+ }\r
}\r
\r
const bool Message::Load(const long messageid, const long boardid)\r
return true;\r
}\r
\r
-void Message::StartFreenetInsert()\r
+const bool Message::StartFreenetInsert()\r
{\r
\r
MessageXML xml;\r
xml.SetDate(m_datetime.Format("%Y-%m-%d"));\r
xml.SetTime(m_datetime.Format("%H:%M:%S"));\r
\r
+ StripAdministrationBoards();\r
for(std::vector<std::string>::iterator i=m_boards.begin(); i!=m_boards.end(); i++)\r
{\r
xml.AddBoard((*i));\r
// couldn't find identity with this name - insert a new identity\r
if(!st.RowReturned())\r
{\r
- DateTime now;\r
- now.SetToGMTime();\r
- st=m_db->Prepare("INSERT INTO tblLocalIdentity(Name) VALUES(?);");\r
- st.Bind(0,m_fromname);\r
- st.Step(true);\r
- localidentityid=st.GetLastInsertRowID();\r
+ if(m_addnewpostfromidentities==true)\r
+ {\r
+ DateTime now;\r
+ now.SetToGMTime();\r
+ st=m_db->Prepare("INSERT INTO tblLocalIdentity(Name) VALUES(?);");\r
+ st.Bind(0,m_fromname);\r
+ st.Step(true);\r
+ localidentityid=st.GetLastInsertRowID();\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
}\r
else\r
{\r
\r
HandleChangeTrust();\r
\r
+ return true;\r
+\r
+}\r
+\r
+void Message::StripAdministrationBoards()\r
+{\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT tblBoard.BoardID FROM tblBoard INNER JOIN tblAdministrationBoard ON tblBoard.BoardID=tblAdministrationBoard.BoardID WHERE BoardName=?;");\r
+ for(std::vector<std::string>::iterator i=m_boards.begin(); i!=m_boards.end(); )\r
+ {\r
+ st.Bind(0,(*i));\r
+ st.Step();\r
+ if(st.RowReturned())\r
+ {\r
+ i=m_boards.erase(i);\r
+ }\r
+ else\r
+ {\r
+ i++;\r
+ }\r
+ st.Reset();\r
+ }\r
}\r