mastodon-cpp  0.15.1
status.hpp
1 /* This file is part of mastodon-cpp.
2  * Copyright © 2018 tastytea <tastytea@tastytea.de>
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef MASTODON_CPP_EASY_STATUS_HPP
18 #define MASTODON_CPP_EASY_STATUS_HPP
19 
20 #include <string>
21 #include <cstdint>
22 #include <chrono>
23 #include <vector>
24 
25 // If we are compiling mastodon-cpp, use another include path
26 #ifdef MASTODON_CPP
27  #include "mastodon-cpp.hpp"
28  #include "easy/easy.hpp"
29  #include "easy/entities/account.hpp"
30  #include "easy/entities/emoji.hpp"
31  #include "easy/entities/attachment.hpp"
32  #include "easy/entities/mention.hpp"
33  #include "easy/entities/tag.hpp"
34  #include "easy/entities/application.hpp"
35 #else
36  #include <mastodon-cpp/mastodon-cpp.hpp>
37  #include <mastodon-cpp/easy/easy.hpp>
38  #include <mastodon-cpp/easy/entities/account.hpp>
39  #include <mastodon-cpp/easy/entities/emoji.hpp>
40  #include <mastodon-cpp/easy/entities/attachment.hpp>
41  #include <mastodon-cpp/easy/entities/mention.hpp>
42  #include <mastodon-cpp/easy/entities/tag.hpp>
43  #include <mastodon-cpp/easy/entities/application.hpp>
44 #endif
45 
46 using std::string;
47 using std::uint_fast64_t;
48 using std::chrono::system_clock;
49 
50 namespace Mastodon
51 {
55  class Easy::Status : public Easy::Entity
56  {
57  public:
63  explicit Status(const string &json);
64 
68  Status();
69 
73  const Account account() const;
74 
78  const Application application() const;
79 
83  const system_clock::time_point created_at() const;
84 
88  const string content() const;
89 
93  const std::vector<Emoji> emojis() const;
94 
98  const bool favourited() const;
99 
103  const uint_fast64_t favourites_count() const;
104 
108  const uint_fast64_t id() const;
109 
113  const uint_fast64_t in_reply_to_id() const;
114 
118  const uint_fast64_t in_reply_to_account_id() const;
119 
123  const string language() const;
124 
128  const std::vector<Attachment> media_attachments() const;
129 
133  const std::vector<Mention> mentions() const;
134 
138  const bool muted() const;
139 
143  const bool pinned() const;
144 
148  const Status reblog() const;
149 
153  const bool reblogged() const;
154 
158  const uint_fast64_t reblogs_count() const;
159 
163  const bool sensitive() const;
164 
168  const string spoiler_text() const;
169 
173  const std::vector<Tag> tags() const;
174 
178  const string uri() const;
179 
183  const string url() const;
184 
188  const visibility_type visibility() const;
189 
194  };
195 }
196 
197 #endif // MASTODON_CPP_EASY_STATUS_HPP
const bool muted() const
Returns true if the user muted the conversation.
Definition: status.cpp:147
const uint_fast64_t in_reply_to_id() const
Returns the ID of the status it replies to.
Definition: status.cpp:98
const bool reblogged() const
Returns true if the user has reblogged the status.
Definition: status.cpp:169
const bool pinned() const
Returns true if the status is pinned.
Definition: status.cpp:152
const string url() const
Returns the URL to the status page.
Definition: status.cpp:211
const visibility_type visibility() const
Returns the visibility of the status.
Definition: status.cpp:216
const uint_fast64_t id() const
Returns the ID of the status.
Definition: status.cpp:93
visibility_type
Describes visibility of toots.
Definition: easy.hpp:61
const std::vector< Emoji > emojis() const
Returns an array of emojis.
Definition: status.cpp:66
const uint_fast64_t reblogs_count() const
Returns the number of reblogs for the status.
Definition: status.cpp:174
const bool sensitive() const
Returns true if the attachments should be hidden by default.
Definition: status.cpp:179
const uint_fast64_t favourites_count() const
Returns the number of favourites.
Definition: status.cpp:88
const std::vector< Attachment > media_attachments() const
Returns the attachments.
Definition: status.cpp:113
const string language() const
Returns the language of the status.
Definition: status.cpp:108
Status()
Constructs an empty Status object.
Definition: status.cpp:28
Class to hold accounts.
Definition: account.hpp:42
Class to hold statuses.
Definition: status.hpp:55
const Status reblog() const
Returns the reblogged Status.
Definition: status.cpp:157
const string content() const
Returns content of status.
Definition: status.cpp:61
Definition: mastodon-cpp.hpp:51
Base class for all entities.
Definition: easy.hpp:225
const std::vector< Tag > tags() const
Returns the tags.
Definition: status.cpp:189
const system_clock::time_point created_at() const
Returns time of creation.
Definition: status.cpp:56
const Account account() const
Returns an array of matched accounts.
Definition: status.cpp:32
const uint_fast64_t in_reply_to_account_id() const
Returns the ID of the account it replies to.
Definition: status.cpp:103
const string uri() const
Returns the Fediverse-unique resource ID.
Definition: status.cpp:206
const Application application() const
Returns application from which the status was posted.
Definition: status.cpp:44
const string spoiler_text() const
Returns the spoiler text.
Definition: status.cpp:184
const std::vector< Mention > mentions() const
Returns the mentions.
Definition: status.cpp:130
const bool favourited() const
Returns true if the user has favourited the status.
Definition: status.cpp:83
Class to hold applications.
Definition: application.hpp:38