\r
#include "idatabase.h"\r
#include "ilogger.h"\r
-#include "datetime.h"\r
+\r
+#include <Poco/DateTime.h>\r
\r
class Message:public IDatabase,public ILogger\r
{\r
public:\r
- Message();\r
- Message(const long messageid);\r
- Message(const std::string &messageuuid);\r
+ Message(SQLite3DB::DB *db);\r
+ Message(SQLite3DB::DB *db, const long messageid);\r
+ Message(SQLite3DB::DB *db, const std::string &messageuuid);\r
\r
const long GetMessageID() const { return m_messageid; }\r
const std::string GetMessageUUID() const { return m_messageuuid; }\r
const std::string GetSubject() const { return m_subject; }\r
const std::string GetBody() const { return m_body; }\r
const std::string GetReplyBoardName() { return m_replyboardname; }\r
- const DateTime GetDateTime() const { return m_datetime; }\r
+ const Poco::DateTime GetDateTime() const { return m_datetime; }\r
const std::string GetFromName() const { return m_fromname; }\r
std::vector<std::string> GetBoards() const { return m_boards; }\r
std::map<long,std::string> GetInReplyTo() const { return m_inreplyto; }\r
\r
+ void SetFromName(const std::string &fromname) { m_fromname=fromname; }\r
+\r
const std::string GetNNTPHeaders() const;\r
const std::string GetNNTPArticleID() const;\r
const std::string GetNNTPBody() const;\r
const bool Load(const std::string &messageuuid);\r
\r
const bool ParseNNTPMessage(const std::string &nntpmessage);\r
+ const bool Create(const long localidentityid, const long boardid, const std::string &subject, const std::string &body, const std::string &references);\r
\r
const bool PostedToAdministrationBoard() { return CheckForAdministrationBoard(m_boards); }\r
\r
const bool CheckForAdministrationBoard(const std::vector<std::string> &boards);\r
void HandleChangeTrust();\r
void StripAdministrationBoards(); // removes administration boards from boards vector\r
+ const int FindLocalIdentityID(const std::string &name);\r
+ const std::string SanitizeFromName(const std::string &fromname) const;\r
+\r
+ struct fileattachment\r
+ {\r
+ fileattachment(const std::string &filename, const std::string &mimetype, const std::vector<unsigned char> &data):m_filename(filename),m_mimetype(mimetype),m_data(data) {}\r
+ std::string m_filename;\r
+ std::string m_mimetype;\r
+ std::vector<unsigned char> m_data;\r
+ };\r
\r
long m_messageid;\r
bool m_addnewpostfromidentities;\r
std::string m_subject;\r
std::string m_body;\r
std::string m_replyboardname;\r
- DateTime m_datetime;\r
+ Poco::DateTime m_datetime;\r
std::string m_fromname;\r
std::vector<std::string> m_boards;\r
std::map<long,std::string> m_inreplyto;\r
+ std::vector<fileattachment> m_fileattachments;\r
long m_changemessagetrustonreply;\r
long m_minlocalmessagetrust;\r
long m_minlocaltrustlisttrust;\r