mastodon-cpp  0.110.0
status.hpp
1 /* This file is part of mastodon-cpp.
2  * Copyright © 2018, 2019 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 Affero 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 Affero General Public License for more details.
12  *
13  * You should have received a copy of the GNU Affero 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 <vector>
23 
24 #include "../../mastodon-cpp.hpp"
25 #include "../entity.hpp"
26 #include "account.hpp"
27 #include "emoji.hpp"
28 #include "attachment.hpp"
29 #include "mention.hpp"
30 #include "tag.hpp"
31 #include "application.hpp"
32 #include "card.hpp"
33 
34 using std::string;
35 using std::uint64_t;
36 
37 namespace Mastodon
38 {
39 namespace Easy
40 {
46  class Status : public Entity
47  {
48  public:
49  using Entity::Entity;
50 
51  virtual bool valid() const override;
52 
58  const Account account() const;
59 
65  const Application application() const;
66 
72  const Card card() const;
73 
79  const Easy::time_type created_at() const;
80 
86  const string content() const;
87 
93  Status content(const string &content);
94 
100  const std::vector<Emoji> emojis() const;
101 
107  bool favourited() const;
108 
114  uint64_t favourites_count() const;
115 
121  const string id() const;
122 
128  const string in_reply_to_id() const;
129 
135  Status in_reply_to_id(const string &in_reply_to_id);
136 
142  const string in_reply_to_account_id() const;
143 
149  const string language() const;
150 
156  Status language(const string &language);
157 
163  const std::vector<Attachment> media_attachments() const;
164 
171  (const std::vector<Attachment> &media_attachments);
172 
178  const std::vector<Mention> mentions() const;
179 
185  bool muted() const;
186 
192  bool pinned() const;
193 
199  const Status reblog() const;
200 
206  bool reblogged() const;
207 
213  uint64_t reblogs_count() const;
214 
220  uint64_t replies_count() const;
221 
227  bool sensitive() const;
228 
234  Status sensitive(const bool &sensitive);
235 
241  const string spoiler_text() const;
242 
248  Status spoiler_text(const string &spoiler_text);
249 
255  const std::vector<Tag> tags() const;
256 
262  const string uri() const;
263 
269  const string url() const;
270 
276  visibility_type visibility() const;
277 
284  };
285 }
286 }
287 
288 #endif // MASTODON_CPP_EASY_STATUS_HPP
Entity()
Constructs an empty Entity object.
Definition: entity.cpp:43
bool sensitive() const
Returns true if the attachments should be hidden by default.
Definition: status.cpp:233
uint64_t reblogs_count() const
Returns the number of reblogs for the status.
Definition: status.cpp:223
Class to hold cards.
Definition: card.hpp:38
const Easy::time_type created_at() const
Returns time of creation.
Definition: status.cpp:81
const string url() const
Returns the URL to the status page.
Definition: status.cpp:275
Type for time. Converts to time_point and string.
Definition: types_easy.hpp:150
const std::vector< Emoji > emojis() const
Returns an array of emojis.
Definition: status.cpp:97
uint64_t favourites_count() const
Returns the number of favourites.
Definition: status.cpp:117
const std::vector< Attachment > media_attachments() const
Returns the attachments.
Definition: status.cpp:154
const string language() const
Returns the language of the status.
Definition: status.cpp:143
uint64_t replies_count() const
Returns the number of replies for the status.
Definition: status.cpp:228
Class to hold accounts.
Definition: account.hpp:42
Class to hold statuses.
Definition: status.hpp:46
bool pinned() const
Returns true if the status is pinned.
Definition: status.cpp:202
const Card card() const
Returns card.
Definition: status.cpp:70
visibility_type visibility() const
Returns the visibility of the status.
Definition: status.cpp:280
const string content() const
Returns content of status.
Definition: status.cpp:86
Collection of things to interface with server software that implements the Mastodon API.
Definition: mastodon-cpp.hpp:47
Base class for all entities.
Definition: entity.hpp:36
const std::vector< Tag > tags() const
Returns the tags.
Definition: status.cpp:255
const Account account() const
Returns an array of matched accounts.
Definition: status.cpp:48
bool muted() const
Returns true if the user muted the conversation.
Definition: status.cpp:197
const string uri() const
Returns the Fediverse-unique resource ID.
Definition: status.cpp:270
bool reblogged() const
Returns true if the user has reblogged the status.
Definition: status.cpp:218
const string in_reply_to_account_id() const
Returns the ID of the account it replies to.
Definition: status.cpp:138
const Application application() const
Returns application from which the status was posted.
Definition: status.cpp:59
const string spoiler_text() const
Returns the spoiler text.
Definition: status.cpp:244
visibility_type
Describes visibility of posts.
Definition: types_easy.hpp:54
const std::vector< Mention > mentions() const
Returns the mentions.
Definition: status.cpp:182
virtual bool valid() const override
Returns true if the Entity holds valid data.
Definition: status.cpp:25
Class to hold applications.
Definition: application.hpp:36
bool favourited() const
Returns true if the user has favourited the status.
Definition: status.cpp:112
const string in_reply_to_id() const
Returns the ID of the status it replies to.
Definition: status.cpp:127
const string id() const
Returns the ID of the status.
Definition: status.cpp:122
const Status reblog() const
Returns the reblogged Status.
Definition: status.cpp:207