Made type names more consistent.

This commit is contained in:
tastytea 2019-05-13 21:26:55 +02:00
parent 51c9180128
commit 8a6bef8c2c
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
24 changed files with 76 additions and 65 deletions

View File

@ -83,8 +83,8 @@ Not included in this list are entities.
==== Other types ==== Other types
* `Mastodon::parameters`: Vector of `Mastodon::param`, for specifying parameters * `Mastodon::parameters`: Vector of `Mastodon::param` with custom `find()`, for
to an `Mastodon::API` call. specifying parameters to an `Mastodon::API` call.
* `Mastodon::http_method`: HTTP method of an `Mastodon::API` call. * `Mastodon::http_method`: HTTP method of an `Mastodon::API` call.
* `Mastodon::Easy::event_type`: Event types returned in streams. * `Mastodon::Easy::event_type`: Event types returned in streams.
* `Mastodon::Easy::visibility_type`: Describes the visibility of a post. * `Mastodon::Easy::visibility_type`: Describes the visibility of a post.
@ -92,13 +92,12 @@ Not included in this list are entities.
* `Mastodon::Easy::card_type`: Describes the type of card. * `Mastodon::Easy::card_type`: Describes the type of card.
* `Mastodon::Easy::notification_type`: The type of the notification. * `Mastodon::Easy::notification_type`: The type of the notification.
* `Mastodon::Easy::context_type`: Describes the context of a filter. * `Mastodon::Easy::context_type`: Describes the context of a filter.
* `Mastodon::Easy::stream_event`: Type and data of an events returned in * `Mastodon::Easy::stream_event_type`: Type and data of an events returned in
streams. streams.
* `Mastodon::Easy::alerts`: Vector of `Mastodon::Easy::alert_type`, used for * `Mastodon::Easy::alert_type`, used for push subscriptions.
push subscriptions. * `Mastodon::Easy::time_type`: Type for time, can be converted to `time_point`
* `Mastodon::Easy::time`: Type for time, can be converted to `time_point` and and `string`.
`string`. * `Mastodon::Easy::Account::account_field_type`: Type for fields in accounts.
* `Mastodon::Easy::Account::account_fields`: Type for fields in accounts.
=== Error codes === Error codes

View File

@ -51,11 +51,12 @@ int main(int argc, char *argv[])
// Acquire lock for the stream variable to avoid simultaneous access. // Acquire lock for the stream variable to avoid simultaneous access.
std::lock_guard<std::mutex> lock(ptr->get_mutex()); std::lock_guard<std::mutex> lock(ptr->get_mutex());
// Parse event stream into a vector. // Parse event stream into a vector.
std::vector<Easy::stream_event> events = Easy::parse_stream(stream); std::vector<Easy::stream_event_type> events
= Easy::parse_stream(stream);
// Clear the stream buffer. // Clear the stream buffer.
stream.clear(); stream.clear();
for (const Easy::stream_event &event : events) for (const Easy::stream_event_type &event : events)
{ {
// Print out some information about the events. // Print out some information about the events.
switch (event.type) switch (event.type)

View File

@ -49,13 +49,13 @@ const std::vector<string> Easy::json_array_to_vector(const string &json)
return {}; return {};
} }
const vector<Easy::stream_event> Easy::parse_stream( const vector<Easy::stream_event_type> Easy::parse_stream(
const std::string &streamdata) const std::string &streamdata)
{ {
string stream = streamdata; string stream = streamdata;
std::regex reevent("event: (update|notification|delete|ERROR)\ndata: (.*)\n"); std::regex reevent("event: (update|notification|delete|ERROR)\ndata: (.*)\n");
std::smatch match; std::smatch match;
std::vector<stream_event> vec = {}; std::vector<stream_event_type> vec = {};
while (std::regex_search(stream, match, reevent)) while (std::regex_search(stream, match, reevent))
{ {
@ -79,7 +79,7 @@ const vector<Easy::stream_event> Easy::parse_stream(
return vec; return vec;
} }
const Easy::time Easy::string_to_time(const string &strtime) const Easy::time_type Easy::string_to_time(const string &strtime)
{ {
std::stringstream sstime(strtime); std::stringstream sstime(strtime);
struct std::tm tm = {}; struct std::tm tm = {};

View File

@ -112,7 +112,7 @@ namespace Easy
* *
* @since before 0.11.0 * @since before 0.11.0
*/ */
const std::vector<string> json_array_to_vector(const string &json); const vector<string> json_array_to_vector(const string &json);
/*! /*!
* @brief Split stream into a vector of events * @brief Split stream into a vector of events
@ -123,14 +123,14 @@ namespace Easy
* *
* @since before 0.11.0 * @since before 0.11.0
*/ */
const std::vector<stream_event> parse_stream(const std::string &streamdata); const vector<stream_event_type> parse_stream(const std::string &streamdata);
/*! /*!
* @brief Convert ISO 8601 time string to Easy::time. * @brief Convert ISO 8601 time string to Easy::time.
* *
* @param strtime Time string as returned by Mastodon. * @param strtime Time string as returned by Mastodon.
*/ */
const Easy::time string_to_time(const string &strtime); const Easy::time_type string_to_time(const string &strtime);
/*! /*!
* @brief Child of Mastodon::API with abstract methods. * @brief Child of Mastodon::API with abstract methods.

View File

@ -65,7 +65,7 @@ bool Account::bot() const
return get_bool("bot"); return get_bool("bot");
} }
const Easy::time Account::created_at() const const Easy::time_type Account::created_at() const
{ {
return get_time("created_at"); return get_time("created_at");
} }
@ -93,13 +93,13 @@ const std::vector<Easy::Emoji> Account::emojis()
return {}; return {};
} }
const Easy::account_fields Account::fields() const const vector<Easy::account_field_type> Account::fields() const
{ {
const Json::Value &node = get("fields"); const Json::Value &node = get("fields");
if (node.isArray()) if (node.isArray())
{ {
Easy::account_fields vec; vector<Easy::account_field_type> vec;
std::transform(node.begin(), node.end(), std::back_inserter(vec), std::transform(node.begin(), node.end(), std::back_inserter(vec),
[](const Json::Value &value) [](const Json::Value &value)
{ {
@ -221,13 +221,13 @@ bool Account::Source::valid() const
}); });
} }
const Easy::account_fields Account::Source::fields() const const vector<Easy::account_field_type> Account::Source::fields() const
{ {
const Json::Value &node = get("fields"); const Json::Value &node = get("fields");
if (node.isArray()) if (node.isArray())
{ {
Easy::account_fields vec; vector<Easy::account_field_type> vec;
std::transform(node.begin(), node.end(), std::back_inserter(vec), std::transform(node.begin(), node.end(), std::back_inserter(vec),
[](const Json::Value &value) [](const Json::Value &value)
{ {

View File

@ -35,6 +35,7 @@
using std::string; using std::string;
using std::uint64_t; using std::uint64_t;
using std::vector;
namespace Mastodon namespace Mastodon
{ {
@ -88,7 +89,7 @@ namespace Easy
* *
* @since before 0.11.0 * @since before 0.11.0
*/ */
const Easy::time created_at() const; const Easy::time_type created_at() const;
/*! /*!
* @brief Returns display name. * @brief Returns display name.
@ -109,7 +110,7 @@ namespace Easy
* *
* @since 0.16.1 * @since 0.16.1
*/ */
const Easy::account_fields fields() const; const vector<Easy::account_field_type> fields() const;
/*! /*!
* @brief Returns number of followers. * @brief Returns number of followers.
@ -206,7 +207,7 @@ namespace Easy
* *
* @since 0.18.5 * @since 0.18.5
*/ */
const Easy::account_fields fields() const; const vector<Easy::account_field_type> fields() const;
/*! /*!
* @brief Returns the language as ISO 6391 string. * @brief Returns the language as ISO 6391 string.

View File

@ -71,7 +71,7 @@ const vector<Easy::context_type> Filter::context() const
return {}; return {};
} }
const Easy::time Filter::expires_at() const const Easy::time_type Filter::expires_at() const
{ {
return get_time("expires_at"); return get_time("expires_at");
} }

View File

@ -72,7 +72,7 @@ namespace Easy
* *
* @since 0.104.0 * @since 0.104.0
*/ */
const Easy::time expires_at() const; const Easy::time_type expires_at() const;
/*! /*!
* @brief Returns if the phrase should disappear irreversibly. * @brief Returns if the phrase should disappear irreversibly.

View File

@ -32,6 +32,7 @@ bool Instance::valid() const
"email", "email",
"version", "version",
"urls", "urls",
"stats",
"languages" "languages"
}); });
} }
@ -44,7 +45,6 @@ const Easy::Account Instance::contact_account() const
return Easy::Account(node.toStyledString()); return Easy::Account(node.toStyledString());
} }
ttdebug << "Could not get data: contact_account\n";
return Easy::Account(); return Easy::Account();
} }
@ -83,6 +83,11 @@ const string Instance::streaming_api() const
return get_string("urls.streaming_api"); return get_string("urls.streaming_api");
} }
const string Instance::thumbnail() const
{
return get_string("thumbnail");
}
uint64_t Instance::max_toot_chars() const uint64_t Instance::max_toot_chars() const
{ {
const uint64_t max_chars = get_uint64("max_toot_chars"); const uint64_t max_chars = get_uint64("max_toot_chars");

View File

@ -81,6 +81,13 @@ namespace Easy
*/ */
const std::vector<string> languages() const; const std::vector<string> languages() const;
/*!
* @brief Returns the thumbnail of the instance.
*
* @since 0.106.0
*/
const string thumbnail() const;
/*! /*!
* @brief Returns the title of the instance * @brief Returns the title of the instance
* *

View File

@ -43,7 +43,7 @@ const Easy::Account Notification::account() const
return Easy::Account(); return Easy::Account();
} }
const Easy::time Notification::created_at() const const Easy::time_type Notification::created_at() const
{ {
return get_time("created_at"); return get_time("created_at");
} }

View File

@ -64,7 +64,7 @@ namespace Easy
* *
* @since before 0.11.0 * @since before 0.11.0
*/ */
const Easy::time created_at() const; const Easy::time_type created_at() const;
/*! /*!
* @brief Returns notification ID * @brief Returns notification ID

View File

@ -44,9 +44,9 @@ const string PushSubscription::server_key() const
return get_string("server_key"); return get_string("server_key");
} }
const Easy::alerts PushSubscription::alerts() const const vector<Easy::alert_type> PushSubscription::alerts() const
{ {
Easy::alerts alerts; vector<Easy::alert_type> alerts;
const Json::Value node = get("alerts"); const Json::Value node = get("alerts");
for (auto it = node.begin(); it != node.end(); ++it) for (auto it = node.begin(); it != node.end(); ++it)
{ {

View File

@ -18,6 +18,7 @@
#define MASTODON_CPP_EASY_PUSHSUBSCRIPTION_HPP #define MASTODON_CPP_EASY_PUSHSUBSCRIPTION_HPP
#include <string> #include <string>
#include <vector>
#include <cstdint> #include <cstdint>
#include <map> #include <map>
@ -31,6 +32,7 @@
#endif #endif
using std::string; using std::string;
using std::vector;
namespace Mastodon namespace Mastodon
{ {
@ -75,7 +77,7 @@ namespace Easy
* *
* @since 0.100.0 * @since 0.100.0
*/ */
const Easy::alerts alerts() const; const vector<Easy::alert_type> alerts() const;
protected: protected:
/*! /*!

View File

@ -78,7 +78,7 @@ const Easy::Card Status::card() const
return Easy::Card(); return Easy::Card();
} }
const Easy::time Status::created_at() const const Easy::time_type Status::created_at() const
{ {
return get_time("created_at"); return get_time("created_at");
} }

View File

@ -89,7 +89,7 @@ namespace Easy
* *
* @since before 0.11.0 * @since before 0.11.0
*/ */
const Easy::time created_at() const; const Easy::time_type created_at() const;
/*! /*!
* @brief Returns content of status * @brief Returns content of status

View File

@ -75,7 +75,7 @@ uint64_t Tag::History::accounts()
return stouint64(get_string("accounts")); return stouint64(get_string("accounts"));
} }
const Easy::time Tag::History::day() const Easy::time_type Tag::History::day()
{ {
const Json::Value node = get("day"); const Json::Value node = get("day");
@ -86,7 +86,7 @@ const Easy::time Tag::History::day()
} }
ttdebug << "Could not get data: day\n"; ttdebug << "Could not get data: day\n";
return Easy::time(); return Easy::time_type();
} }
uint64_t Tag::History::uses() uint64_t Tag::History::uses()

View File

@ -68,7 +68,7 @@ namespace Easy
* *
* @since 0.16.0 * @since 0.16.0
*/ */
const Easy::time day(); const Easy::time_type day();
/*! /*!
* @brief Returns the number of accounts using that hashtag. * @brief Returns the number of accounts using that hashtag.

View File

@ -45,7 +45,7 @@ const string Token::scope() const
return get_string("scope"); return get_string("scope");
} }
const Easy::time Token::created_at() const const Easy::time_type Token::created_at() const
{ {
return get_time("created_at"); return get_time("created_at");
} }

View File

@ -72,7 +72,7 @@ namespace Easy
* *
* @since 0.103.0 * @since 0.103.0
*/ */
const Easy::time created_at() const; const Easy::time_type created_at() const;
}; };
} }
} }

View File

@ -227,7 +227,7 @@ bool Easy::Entity::get_bool(const string &key) const
return false; return false;
} }
const Easy::time Easy::Entity::get_time(const string &key) const const Easy::time_type Easy::Entity::get_time(const string &key) const
{ {
const Json::Value node = get(key); const Json::Value node = get(key);

View File

@ -203,7 +203,7 @@ namespace Easy
* *
* Returns clocks epoch if the value does not exist or is null. * Returns clocks epoch if the value does not exist or is null.
*/ */
const Easy::time get_time(const string &key) const; const Easy::time_type get_time(const string &key) const;
/*! /*!
* @brief Returns the value of key as vector * @brief Returns the value of key as vector

View File

@ -20,17 +20,17 @@ namespace Mastodon
{ {
namespace Easy namespace Easy
{ {
time::operator const system_clock::time_point() const time_type::operator const system_clock::time_point() const
{ {
return timepoint; return timepoint;
} }
time::operator const string() const time_type::operator const string() const
{ {
return strtime("%FT%T%z", true); return strtime("%FT%T%z", true);
} }
const string time::strtime(const string &format, const bool &local) const const string time_type::strtime(const string &format, const bool &local) const
{ {
constexpr std::uint16_t bufsize = 1024; constexpr std::uint16_t bufsize = 1024;
std::time_t time = system_clock::to_time_t(timepoint); std::time_t time = system_clock::to_time_t(timepoint);
@ -51,7 +51,7 @@ namespace Easy
} }
std::ostream &operator <<(std::ostream &out, std::ostream &operator <<(std::ostream &out,
const time &t) const time_type &t)
{ {
const string s = t; // Converts using operator const string(). const string s = t; // Converts using operator const string().
out << s; out << s;

View File

@ -20,11 +20,9 @@
#include <string> #include <string>
#include <utility> #include <utility>
#include <chrono> #include <chrono>
#include <vector>
using std::string; using std::string;
using std::chrono::system_clock; using std::chrono::system_clock;
using std::vector;
namespace Mastodon namespace Mastodon
{ {
@ -121,11 +119,14 @@ namespace Easy
* *
* @since 0.100.0 * @since 0.100.0
*/ */
typedef struct stream_event typedef struct stream_event_type
{ {
event_type type = event_type::Undefined; event_type type = event_type::Undefined;
string data; string data;
} stream_event; } stream_event_type;
[[deprecated("Replaced by Mastodon::Easy::stream_event_type")]]
typedef stream_event_type stream_event;
/*! /*!
* @brief Type of notification and 'push is requested or not'. * @brief Type of notification and 'push is requested or not'.
@ -138,21 +139,12 @@ namespace Easy
bool pushreq = false; bool pushreq = false;
} alert_type; } alert_type;
/*!
* @brief Vector of Easy::alert_type.
*
* Used in PushSubscription::alerts().
*
* @since 0.100.0
*/
typedef vector<alert_type> alerts;
/*! /*!
* @brief Type for time. Converts to time_point and string. * @brief Type for time. Converts to time_point and string.
* *
* @since 0.100.0 * @since 0.100.0
*/ */
struct time struct time_type
{ {
system_clock::time_point timepoint = system_clock::time_point(); system_clock::time_point timepoint = system_clock::time_point();
@ -171,7 +163,7 @@ namespace Easy
* @since 0.100.0 * @since 0.100.0
*/ */
friend std::ostream &operator <<(std::ostream &out, friend std::ostream &operator <<(std::ostream &out,
const Easy::time &t); const Easy::time_type &t);
/*! /*!
* @brief Converts time to a string. * @brief Converts time to a string.
@ -196,6 +188,9 @@ namespace Easy
const bool &local = true) const; const bool &local = true) const;
}; };
[[deprecated("Replaced by Mastodon::Easy::time_type")]]
typedef time_type time;
/*! /*!
* @brief Describes an account-field. * @brief Describes an account-field.
* *
@ -205,17 +200,18 @@ namespace Easy
{ {
const string name; const string name;
const string value; const string value;
Easy::time verified_at; Easy::time_type verified_at;
} account_field_type; } account_field_type;
/*! /*!
* @brief Vector of Easy::account_field_type. * @brief URLs returned by Instance::urls().
*
* Used in Easy::Account.
* *
* @since 0.106.0 * @since 0.106.0
*/ */
typedef vector<account_field_type> account_fields; typedef struct urls_type
{
string streaming_api;
} urls_type;
} }
} }
#endif // MASTODON_CPP_EASY_TYPES_EASY_HPP #endif // MASTODON_CPP_EASY_TYPES_EASY_HPP