{\r
DateTime date;\r
date.SetToGMTime();\r
- date.Add(0,0,-1);\r
+ int currentday=date.GetDay();\r
+ date.Add(0,0,-6);\r
+ // insert trust lists every 6 hours - if 6 hours ago was different day then set to midnight of current day to insert list today ASAP\r
+ if(currentday!=date.GetDay())\r
+ {\r
+ date.Set(date.GetYear(),date.GetMonth(),currentday);\r
+ }\r
SQLite3DB::Recordset rs=m_db->Query("SELECT LocalIdentityID, PrivateKey FROM tblLocalIdentity WHERE PrivateKey IS NOT NULL AND PrivateKey <> '' AND PublishTrustList='true' AND InsertingTrustList='false' AND (LastInsertedTrustList<='"+date.Format("%Y-%m-%d %H:%M:%S")+"' OR LastInsertedTrustList IS NULL);");\r
\r
if(rs.Empty()==false)\r
\r
void TrustListInserter::Initialize()\r
{\r
- Option::instance()->Get("MessageBase",m_messagebase);\r
+ Option::Instance()->Get("MessageBase",m_messagebase);\r
m_lastchecked.SetToGMTime();\r
}\r
\r
std::string publickey;\r
int messagetrust;\r
int trustlisttrust;\r
- DateTime now;\r
+ DateTime now,date;\r
int index;\r
std::string indexstr;\r
std::string localidentityidstr;\r
+ std::string messagetrustcomment="";\r
+ std::string trustlisttrustcomment="";\r
\r
now.SetToGMTime();\r
- \r
- // build the xml file\r
- SQLite3DB::Statement st=m_db->Prepare("SELECT PublicKey, LocalMessageTrust, LocalTrustListTrust FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey<>'';");\r
+ date.SetToGMTime();\r
+\r
+ // build the xml file - we only want to add identities that we recently saw, otherwise we could be inserting a ton of identities\r
+ date.Add(0,0,0,-20); // identities seen in last 20 days\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT PublicKey, LocalMessageTrust, LocalTrustListTrust, MessageTrustComment, TrustListTrustComment FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey<>'' AND LastSeen>=?;");\r
+ st.Bind(0,date.Format("%Y-%m-%d"));\r
st.Step();\r
while(st.RowReturned())\r
{\r
st.ResultText(0,publickey);\r
- st.ResultInt(1,messagetrust);\r
- st.ResultInt(2,trustlisttrust);\r
- xml.AddTrust(publickey,messagetrust,trustlisttrust);\r
+ if(st.ResultNull(1)==false)\r
+ {\r
+ st.ResultInt(1,messagetrust);\r
+ }\r
+ else\r
+ {\r
+ messagetrust=-1;\r
+ }\r
+ if(st.ResultNull(2)==false)\r
+ {\r
+ st.ResultInt(2,trustlisttrust);\r
+ }\r
+ else\r
+ {\r
+ trustlisttrust=-1;\r
+ }\r
+ st.ResultText(3,messagetrustcomment);\r
+ st.ResultText(4,trustlisttrustcomment);\r
+ xml.AddTrust(publickey,messagetrust,trustlisttrust,messagetrustcomment,trustlisttrustcomment);\r
st.Step();\r
}\r
\r
\r
m_db->Execute("UPDATE tblLocalIdentity SET InsertingTrustList='true' WHERE LocalIdentityID="+localidentityidstr+";");\r
\r
-}
\ No newline at end of file
+}\r