From 223db7b2555958e37ab149303e05e5d54edd81bc Mon Sep 17 00:00:00 2001 From: tastytea Date: Tue, 14 Jan 2020 21:03:04 +0100 Subject: Use regex to extract max_toot_chars. --- src/instance.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/instance.cpp b/src/instance.cpp index 5e9126d..7b1d5c1 100644 --- a/src/instance.cpp +++ b/src/instance.cpp @@ -53,19 +53,16 @@ uint64_t Instance::get_max_chars() noexcept _max_chars = [&answer] { - auto &body{answer.body}; - size_t pos_start{body.find("max_toot_chars")}; - if (pos_start == string::npos) + const regex re_chars{R"("max_toot_chars"\s*:\s*([^"]+))"}; + smatch match; + + if (regex_search(answer.body, match, re_chars)) { - debuglog << "max_toot_chars not found.\n"; - return default_max_chars; + return static_cast(stoull(match[1].str())); } - pos_start = body.find(':', pos_start) + 1; - const size_t pos_end{body.find(',', pos_start)}; - const auto max_toot_chars{body.substr(pos_start, - pos_end - pos_start)}; - return static_cast(stoull(max_toot_chars)); + debuglog << "max_toot_chars not found.\n"; + return default_max_chars; }(); debuglog << "Set _max_chars to: " << _max_chars << '\n'; } -- cgit v1.2.3-54-g00ecf