X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=include%2Fmessage.h;h=3c4c666a378a57e82528bac3641f1f5f82dae03e;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=74c25d4817534661f26010ae2cf3a367cbea5ab0;hpb=52c0819bfc1d083c6e0738f75f0d7eeba521295a;p=fms.git diff --git a/include/message.h b/include/message.h index 74c25d4..3c4c666 100644 --- a/include/message.h +++ b/include/message.h @@ -3,25 +3,28 @@ #include "idatabase.h" #include "ilogger.h" -#include "datetime.h" + +#include class Message:public IDatabase,public ILogger { public: - Message(); - Message(const long messageid); - Message(const std::string &messageuuid); + Message(SQLite3DB::DB *db); + Message(SQLite3DB::DB *db, const long messageid); + Message(SQLite3DB::DB *db, const std::string &messageuuid); const long GetMessageID() const { return m_messageid; } const std::string GetMessageUUID() const { return m_messageuuid; } const std::string GetSubject() const { return m_subject; } const std::string GetBody() const { return m_body; } const std::string GetReplyBoardName() { return m_replyboardname; } - const DateTime GetDateTime() const { return m_datetime; } + const Poco::DateTime GetDateTime() const { return m_datetime; } const std::string GetFromName() const { return m_fromname; } std::vector GetBoards() const { return m_boards; } std::map GetInReplyTo() const { return m_inreplyto; } + void SetFromName(const std::string &fromname) { m_fromname=fromname; } + const std::string GetNNTPHeaders() const; const std::string GetNNTPArticleID() const; const std::string GetNNTPBody() const; @@ -43,10 +46,11 @@ public: const bool Load(const std::string &messageuuid); const bool ParseNNTPMessage(const std::string &nntpmessage); + const bool Create(const long localidentityid, const long boardid, const std::string &subject, const std::string &body, const std::string &references); const bool PostedToAdministrationBoard() { return CheckForAdministrationBoard(m_boards); } - void StartFreenetInsert(); + const bool StartFreenetInsert(); void HandleAdministrationMessage(); private: @@ -54,17 +58,31 @@ private: // checks vector of boards for any special administration boards - if it finds one true is returned, otherwise false const bool CheckForAdministrationBoard(const std::vector &boards); void HandleChangeTrust(); + void StripAdministrationBoards(); // removes administration boards from boards vector + const int FindLocalIdentityID(const std::string &name); + + struct fileattachment + { + fileattachment(const std::string &filename, const std::string &mimetype, const std::vector &data):m_filename(filename),m_mimetype(mimetype),m_data(data) {} + std::string m_filename; + std::string m_mimetype; + std::vector m_data; + }; long m_messageid; + bool m_addnewpostfromidentities; std::string m_messageuuid; std::string m_subject; std::string m_body; std::string m_replyboardname; - DateTime m_datetime; + Poco::DateTime m_datetime; std::string m_fromname; std::vector m_boards; std::map m_inreplyto; + std::vector m_fileattachments; long m_changemessagetrustonreply; + long m_minlocalmessagetrust; + long m_minlocaltrustlisttrust; };