1 #include "../../include/freenet/inactivemessagelistrequester.h"
\r
3 #include <Poco/DateTimeFormatter.h>
\r
9 InactiveMessageListRequester::InactiveMessageListRequester(SQLite3DB::DB *db):MessageListRequester(db)
\r
14 InactiveMessageListRequester::InactiveMessageListRequester(SQLite3DB::DB *db, FCPv2::Connection *fcp):MessageListRequester(db,fcp)
\r
19 void InactiveMessageListRequester::Initialize()
\r
21 m_fcpuniquename="InactiveMessageListRequester";
\r
22 std::string tempval="";
\r
25 Option option(m_db);
\r
26 option.GetInt("MaxMessageListRequests",m_maxrequests);
\r
28 // inactive identities get 1/2 of the max requests option - active identities get 1/2 + any remaining if not evenly divisible
\r
29 m_maxrequests=(m_maxrequests/2);
\r
34 m_log->error("Option MaxMessageListRequests is currently set at "+tempval+". It must be 1 or greater.");
\r
36 if(m_maxrequests>100)
\r
38 m_log->warning("Option MaxMessageListRequests is currently set at "+tempval+". This value might be incorrectly configured.");
\r
42 option.Get("LocalTrustOverridesPeerTrust",tempval);
\r
45 m_localtrustoverrides=true;
\r
49 m_localtrustoverrides=false;
\r
53 option.Get("SaveMessagesFromNewBoards",tempval);
\r
56 m_savetonewboards=true;
\r
60 m_savetonewboards=false;
\r
63 m_messagedownloadmaxdaysbackward=5;
\r
65 option.Get("MessageDownloadMaxDaysBackward",tempval);
\r
66 StringFunctions::Convert(tempval,m_messagedownloadmaxdaysbackward);
\r
70 void InactiveMessageListRequester::PopulateIDList()
\r
72 Poco::DateTime date;
\r
73 Poco::DateTime yesterday=date-Poco::Timespan(1,0,0,0,0);
\r
76 SQLite3DB::Statement st;
\r
78 // select identities we want to query (we've seen them today) - sort by their trust level (descending) with secondary sort on how long ago we saw them (ascending)
\r
79 if(m_localtrustoverrides==false)
\r
81 st=m_db->Prepare("SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN vwIdentityStats ON tblIdentity.IdentityID=vwIdentityStats.IdentityID WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d")+"' AND (vwIdentityStats.LastMessageDate IS NULL OR vwIdentityStats.LastMessageDate<'"+Poco::DateTimeFormatter::format(yesterday,"%Y-%m-%d")+"') AND (LocalMessageTrust IS NULL OR LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust')) AND (PeerMessageTrust IS NULL OR PeerMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinPeerMessageTrust')) ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");
\r
85 st=m_db->Prepare("SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN vwIdentityStats ON tblIdentity.IdentityID=vwIdentityStats.IdentityID WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d")+"' AND (vwIdentityStats.LastMessageDate IS NULL OR vwIdentityStats.LastMessageDate<'"+Poco::DateTimeFormatter::format(yesterday,"%Y-%m-%d")+"') AND (LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust') OR (LocalMessageTrust IS NULL AND (PeerMessageTrust IS NULL OR PeerMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinPeerMessageTrust')))) ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");
\r
91 while(st.RowReturned())
\r