X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Fsiteinserter.cpp;h=7ffee2553f3953c9a1029d06b44cb14ef98fece7;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=c717d0d707e9ecfb1a8c60a8a6caa31634988c02;hpb=9a14c0d9f7f7c319e539583b93664953764e83b7;p=fms.git diff --git a/src/freenet/siteinserter.cpp b/src/freenet/siteinserter.cpp index c717d0d..7ffee25 100644 --- a/src/freenet/siteinserter.cpp +++ b/src/freenet/siteinserter.cpp @@ -1,16 +1,21 @@ #include "../../include/freenet/siteinserter.h" #include "../../include/global.h" +#include +#include +#include +#include + #ifdef XMEM #include #endif -SiteInserter::SiteInserter() +SiteInserter::SiteInserter(SQLite3DB::DB *db):IIndexInserter(db) { Initialize(); } -SiteInserter::SiteInserter(FCPv2 *fcp):IIndexInserter(fcp) +SiteInserter::SiteInserter(SQLite3DB::DB *db, FCPv2::Connection *fcp):IIndexInserter(db,fcp) { Initialize(); } @@ -20,11 +25,11 @@ void SiteInserter::CheckForNeededInsert() // only do 1 insert at a time if(m_inserting.size()==0) { - DateTime date; - date.SetToGMTime(); + Poco::DateTime date; + date.assign(date.year(),date.month(),date.day(),0,0,0); SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID FROM tblLocalIdentity WHERE PublishFreesite='true' AND (LastInsertedFreesite IS NULL OR LastInsertedFreesiteFMS site of "+SanitizeOutput(name)+""; - - content+="

My last few posts

"; - SQLite3DB::Statement boardst=m_db->Prepare("SELECT tblBoard.BoardName FROM tblBoard INNER JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID WHERE tblMessageBoard.MessageID=? ORDER BY tblBoard.BoardName COLLATE NOCASE;"); SQLite3DB::Statement st=m_db->Prepare("SELECT tblMessage.Body, tblMessage.Subject, tblMessage.MessageID FROM tblMessage INNER JOIN tblIdentity ON tblMessage.IdentityID=tblIdentity.IdentityID INNER JOIN tblLocalIdentity ON tblIdentity.PublicKey=tblLocalIdentity.PublicKey WHERE tblLocalIdentity.LocalIdentityID=? ORDER BY tblMessage.MessageDate DESC, tblMessage.MessageTime DESC LIMIT 0,10;"); st.Bind(0,localidentityid); @@ -154,11 +155,20 @@ void SiteInserter::GeneratePages(const long localidentityid, std::string &uskkey StringFunctions::Convert(edition,editionstr); } + // make SSK a USK + if(key.find("SSK@")==0) + { + key.erase(0,3); + key="USK"+key; + } + key+=m_messagebase+"/"+editionstr+"/"; + uskkey=key; + filename=name+"-template.htm"; - FILE *infile=fopen(filename.c_str(),"r+b"); + FILE *infile=fopen(filename.c_str(),"rb"); if(!infile) { - infile=fopen("site-template.htm","r+b"); + infile=fopen("site-template.htm","rb"); } if(infile) { @@ -174,6 +184,7 @@ void SiteInserter::GeneratePages(const long localidentityid, std::string &uskkey htmltemplate.append(data.begin(),data.end()); htmltemplate=StringFunctions::Replace(htmltemplate,"[LINKS]",GenerateLinks(publishtrustlist,publishboardlist)); + htmltemplate=StringFunctions::Replace(htmltemplate,"[IDENTITYNAME]",SanitizeOutput(name)); pages["index.htm"]=GenerateIndex(htmltemplate,localidentityid,name); if(publishtrustlist) @@ -185,24 +196,15 @@ void SiteInserter::GeneratePages(const long localidentityid, std::string &uskkey // pages["boardlist.htm"]=GenerateBoardList(htmltemplate,localidentityid,name); } - // make SSK a USK - if(key.find("SSK@")==0) - { - key.erase(0,3); - key="USK"+key; - } - key+=m_messagebase+"/"+editionstr+"/"; - uskkey=key; - } else { - LogFile::Instance()->WriteLog(LogFile::LOGLEVEL_ERROR,"SiteInserter::GeneratePages unable to open "+filename+" or site-template.htm."); + m_log->error("SiteInserter::GeneratePages unable to open "+filename+" or site-template.htm."); } // get extra files that the user wants to add to the Freesite filename=name+"-files.txt"; - infile=fopen(filename.c_str(),"r+b"); + infile=fopen(filename.c_str(),"rb"); if(infile) { std::vector files; @@ -225,7 +227,7 @@ void SiteInserter::GeneratePages(const long localidentityid, std::string &uskkey if((*i)!="" && (*i).find("index.htm")==std::string::npos && (*i).find("trustlist.htm")==std::string::npos && (*i).find("files.htm")==std::string::npos) { filename=(*i); - infile=fopen(filename.c_str(),"r+b"); + infile=fopen(filename.c_str(),"rb"); if(infile) { fseek(infile,0,SEEK_END); @@ -253,7 +255,7 @@ void SiteInserter::GeneratePages(const long localidentityid, std::string &uskkey } else { - m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"SiteInserter::GeneratePages could not include user file "+(*i)); + m_log->error("SiteInserter::GeneratePages could not include user file "+(*i)); } } } @@ -266,20 +268,19 @@ void SiteInserter::GeneratePages(const long localidentityid, std::string &uskkey std::string SiteInserter::GenerateTrustList(const std::string &htmltemplate, const long localidentityid, const std::string &name) { std::string content=""; - DateTime date; + Poco::DateTime date; - date.SetToGMTime(); - date.Add(0,0,0,-20); + date-=Poco::Timespan(20,0,0,0,0); SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,tblIdentityTrust.LocalMessageTrust,tblIdentityTrust.LocalTrustListTrust,tblIdentity.IdentityID,tblIdentityTrust.MessageTrustComment,tblIdentityTrust.TrustListTrustComment,tblIdentity.FreesiteEdition FROM tblIdentity LEFT JOIN (SELECT IdentityID,LocalMessageTrust,LocalTrustListTrust,MessageTrustComment,TrustListTrustComment FROM tblIdentityTrust WHERE LocalIdentityID=?) AS 'tblIdentityTrust' ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID WHERE PublicKey IS NOT NULL AND LastSeen IS NOT NULL AND LastSeen>=? ORDER BY Name COLLATE NOCASE;"); st.Bind(0,localidentityid); - st.Bind(1,date.Format("%Y-%m-%d %H:%M:%S")); + st.Bind(1,Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S")); st.Step(); - content+=""; - content+="
"; + content+=""; + content+=""; content+="Trust List of "+SanitizeOutput(name); content+=""; - content+=""; + content+=""; while(st.RowReturned()) { std::string idname=""; @@ -315,11 +316,11 @@ std::string SiteInserter::GenerateTrustList(const std::string &htmltemplate, con content+=""; if(freesiteedition!="") { - content+=""; + content+=""; } else { - content+=""; + content+=""; } content+=""; content+=""; @@ -329,6 +330,7 @@ std::string SiteInserter::GenerateTrustList(const std::string &htmltemplate, con st.Step(); } + content+="
Message TrustMessage CommentTrust List TrustTrust Comment
Message TrustMessage CommentTrust List TrustTrust Comment
"+SanitizeOutput(CreateShortIdentityName(idname,publickey))+""+SanitizeOutput(CreateShortIdentityName(idname,publickey))+"
"+SanitizeOutput(CreateShortIdentityName(idname,publickey))+"
"+messagetrust+""+SanitizeOutput(messagetrustcomment)+"
"; return StringFunctions::Replace(htmltemplate,"[CONTENT]",content); @@ -353,7 +355,7 @@ const std::string SiteInserter::GetClassString(const std::string &trustlevel) } } -const bool SiteInserter::HandlePutFailed(FCPMessage &message) +const bool SiteInserter::HandlePutFailed(FCPv2::Message &message) { std::vector idparts; long localidentityid; @@ -363,20 +365,18 @@ const bool SiteInserter::HandlePutFailed(FCPMessage &message) RemoveFromInsertList(localidentityid); - m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"SiteInserter::HandlePutFailed failed to insert Freesite, Freenet error code : "+message["Code"]); + m_log->error("SiteInserter::HandlePutFailed failed to insert Freesite, Freenet error code : "+message["Code"]); return true; } -const bool SiteInserter::HandlePutSuccessful(FCPMessage &message) +const bool SiteInserter::HandlePutSuccessful(FCPv2::Message &message) { std::vector idparts; std::vector uriparts; long localidentityid; int edition=-1; - DateTime now; - - now.SetToGMTime(); + Poco::DateTime now; StringFunctions::Split(message["Identifier"],"|",idparts); StringFunctions::Convert(idparts[1],localidentityid); @@ -389,12 +389,12 @@ const bool SiteInserter::HandlePutSuccessful(FCPMessage &message) } SQLite3DB::Statement st=m_db->Prepare("UPDATE tblLocalIdentity SET LastInsertedFreesite=?, FreesiteEdition=? WHERE LocalIdentityID=?;"); - st.Bind(0,now.Format("%Y-%m-%d %H:%M:%S")); + st.Bind(0,Poco::DateTimeFormatter::format(now,"%Y-%m-%d %H:%M:%S")); st.Bind(1,edition); st.Bind(2,localidentityid); st.Step(); - m_log->WriteLog(LogFile::LOGLEVEL_INFO,"SiteInserter::HandlePutSuccessful successfully inserted Freesite."); + m_log->information("SiteInserter::HandlePutSuccessful successfully inserted Freesite."); RemoveFromInsertList(localidentityid); @@ -419,7 +419,7 @@ const std::string SiteInserter::SanitizeOutput(const std::string &input) const bool SiteInserter::StartInsert(const long &localidentityid) { - FCPMessage message; + FCPv2::Message message; std::string localidentityidstr=""; std::string sizestr=""; std::string uskkey=""; @@ -451,12 +451,12 @@ const bool SiteInserter::StartInsert(const long &localidentityid) filenum++; } - m_fcp->SendMessage(message); + m_fcp->Send(message); // send data of each page for(std::map::iterator pagei=pages.begin(); pagei!=pages.end(); pagei++) { - m_fcp->SendRaw(&(*pagei).second[0],(*pagei).second.size()); + m_fcp->Send(std::vector((*pagei).second.begin(),(*pagei).second.end())); } m_inserting.push_back(localidentityid);