X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fpeermaintenancepage.cpp;h=f605f5f2cf744c433fd145987458a174f7a0db31;hb=fcb124f8d6d3f5678e82049fb8e5e23c8cfaec6d;hp=33d1357a4c2416a7bd69dd09dc55cd64b1ebebb5;hpb=0236076defe60bcd4b3a25c23efa53c21993a48e;p=fms.git diff --git a/src/http/pages/peermaintenancepage.cpp b/src/http/pages/peermaintenancepage.cpp index 33d1357..f605f5f 100644 --- a/src/http/pages/peermaintenancepage.cpp +++ b/src/http/pages/peermaintenancepage.cpp @@ -1,6 +1,10 @@ #include "../../../include/http/pages/peermaintenancepage.h" #include "../../../include/stringfunctions.h" -#include "../../../include/datetime.h" + +#include +#include +#include +#include #ifdef XMEM #include @@ -11,9 +15,9 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c std::string content=""; SQLite3DB::Statement st; std::string tempval; - DateTime date; + Poco::DateTime date; - if(queryvars.find("formaction")!=queryvars.end()) + if(queryvars.find("formaction")!=queryvars.end() && ValidateFormPassword(queryvars)) { if((*queryvars.find("formaction")).second=="removenotseen") { @@ -21,10 +25,10 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c } else if((*queryvars.find("formaction")).second=="removelastseen20") { - date.SetToGMTime(); - date.Add(0,0,0,-20); + date=Poco::Timestamp(); + date-=Poco::Timespan(20,0,0,0,0); st=m_db->Prepare("DELETE FROM tblIdentity WHERE LastSeenPrepare("DELETE FROM tblIdentity WHERE IdentityID NOT IN (SELECT IdentityID FROM tblMessage GROUP BY IdentityID) AND LastSeenPrepare("DELETE FROM tblIdentity WHERE LastSeenPrepare("DELETE FROM tblIdentity WHERE LastSeenPrepare("DELETE FROM tblIdentity WHERE IdentityID IN (SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE (SELECT MAX(MessageDate) FROM tblMessage WHERE tblMessage.IdentityID=tblIdentity.IdentityID)<=? GROUP BY tblIdentity.IdentityID);"); - st.Bind(0,date.Format("%Y-%m-%d")); + st.Bind(0,Poco::DateTimeFormatter::format(date,"%Y-%m-%d")); st.Step(); } else if((*queryvars.find("formaction")).second=="removeadded20daysneversent") { - date.SetToGMTime(); - date.Add(0,0,0,-20); + date=Poco::Timestamp(); + date-=Poco::Timespan(20,0,0,0,0); st=m_db->Prepare("DELETE FROM tblIdentity WHERE IdentityID IN (SELECT tblIdentity.IdentityID FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL AND tblIdentity.DateAddedPeer Maintenance"; content+="

Removing a peer will not remove the messages they sent, but will remove everything else about that peer, including their trust levels.

"; + content+="

"; + content+="Recently Added Peers"; + content+="

"; content+=""; content+=""; @@ -98,16 +105,17 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+=""; content+=""; content+=""; - date.SetToGMTime(); - date.Add(0,0,0,-20); + date=Poco::Timestamp(); + date-=Poco::Timespan(20,0,0,0,0); st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity WHERE LastSeen"; @@ -115,16 +123,17 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+=""; content+=""; content+=""; - date.SetToGMTime(); - date.Add(0,0,0,-30); + date=Poco::Timestamp(); + date-=Poco::Timespan(30,0,0,0,0); st=m_db->Prepare("SELECT COUNT(*) FROM (SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE (SELECT MAX(MessageDate) FROM tblMessage WHERE tblMessage.IdentityID=tblIdentity.IdentityID)<=? GROUP BY tblIdentity.IdentityID);"); - st.Bind(0,date.Format("%Y-%m-%d")); + st.Bind(0,Poco::DateTimeFormatter::format(date,"%Y-%m-%d")); st.Step(); st.ResultText(0,tempval); content+=""; @@ -132,6 +141,7 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+=""; content+=""; content+=""; content+=""; - date.SetToGMTime(); - date.Add(0,0,0,-20); + date=Poco::Timestamp(); + date-=Poco::Timespan(20,0,0,0,0); st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL AND tblIdentity.DateAdded"; @@ -163,16 +174,17 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+=""; content+=""; content+=""; - date.SetToGMTime(); - date.Add(0,0,0,-20); + date=Poco::Timestamp(); + date-=Poco::Timespan(20,0,0,0,0); st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL AND tblIdentity.LastSeen"; @@ -180,6 +192,7 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+=""; content+=""; content+=""; - content+=""; + content+=""; content+=""; content+=""; content+=""; content+=""; - content+=""; + content+=""; content+=""; content+=""; content+=""; content+="
Stats
never seen"; content+="
"; + content+=CreateFormPassword(); content+=""; content+=""; content+="
"; content+="
last seen more than 20 days ago"; content+="
"; + content+=CreateFormPassword(); content+=""; content+=""; content+="
"; content+="
last sent a message more than 30 days ago"; content+="
"; + content+=CreateFormPassword(); content+=""; content+=""; content+="
"; @@ -146,16 +156,17 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+="
never sent a message"; content+="
"; + content+=CreateFormPassword(); content+=""; content+=""; content+="
"; content+="
added more than 20 days ago and never sent a message"; content+="
"; + content+=CreateFormPassword(); content+=""; content+=""; content+="
"; content+="
last seen more than 20 days ago and never sent a message"; content+="
"; + content+=CreateFormPassword(); content+=""; content+=""; content+="
"; @@ -187,20 +200,24 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c content+="
"; + content+=CreateFormPassword(); + content+="last seen days ago
"; + content+=CreateFormPassword(); + content+="last seen days ago, and have null local trust
"; - return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content); + return StringFunctions::Replace(m_template,"[CONTENT]",content); } const bool PeerMaintenancePage::WillHandleURI(const std::string &uri)