<divclass="fragment"><divclass="line"><spanclass="comment">/* This file is part of mastodon-cpp.</span></div><divclass="line"><spanclass="comment"> * Prints a Mastodon-conversation in a tree.</span></div><divclass="line"><spanclass="comment"> * Argument has to be in the form: https://<domain>/<user>/<status id></span></div><divclass="line"><spanclass="comment"> * </span></div><divclass="line"><spanclass="comment"> * This example uses a rather wasteful approach in order to use less code and</span></div><divclass="line"><spanclass="comment"> * therefore be more clear. Please don't use it on long conversations.</span></div><divclass="line"><spanclass="comment"> */</span></div><divclass="line"></div><divclass="line"><spanclass="comment">// Don't compile this if the Easy-interface is turned off</span></div><divclass="line"><spanclass="preprocessor">#ifndef WITHOUT_EASY</span></div><divclass="line"></div><divclass="line"><spanclass="preprocessor">#include <iostream></span></div><divclass="line"><spanclass="preprocessor">#include <string></span></div><divclass="line"><spanclass="preprocessor">#include <thread></span></div><divclass="line"><spanclass="preprocessor">#include <chrono></span></div><divclass="line"><spanclass="preprocessor">#include <ctime></span></div><divclass="line"><spanclass="preprocessor">#include <regex></span></div><divclass="line"></div><divclass="line"><spanclass="comment">// If we are compiling mastodon-cpp, use another include path</span></div><divclass="line"><spanclass="preprocessor">#ifdef MASTODON_CPP</span></div><divclass="line"><spanclass="preprocessor"> #include "mastodon-cpp.hpp"</span></div><divclass="line"><spanclass="preprocessor"> #include "easy/all.hpp"</span></div><divclass="line"><spanclass="preprocessor">#else</span></div><divclass="line"><spanclass="preprocessor"> #include <mastodon-cpp/mastodon-cpp.hpp></span></div><divclass="line"><spanclass="comment">// Include all headers in mastodon-cpp/easy/</span></div><divclass="line"><spanclass="preprocessor"> #include <mastodon-cpp/easy/all.hpp></span></div><divclass="line"><spanclass="preprocessor">#endif</span></div><divclass="line"></div><divclass="line"><spanclass="keyword">using</span><aname="_a0"></a><aclass="code"href="classMastodon_1_1API.html">Mastodon::API</a>;</div><divclass="line"><spanclass="keyword">using</span><aname="_a1"></a><aclass="code"href="classMastodon_1_1Easy.html">Mastodon::Easy</a>;</div><divclass="line"><spanclass="keyword">using</span> std::cout;</div><divclass="line"><spanclass="keyword">using</span> std::chrono::system_clock;</div><divclass="line"></div><divclass="line"><spanclass="comment">// Print a status to stdout, nicely formatted</span></div><divclass="line"><spanclass="keywordtype">void</span> format_status(<spanclass="keyword">const</span> Easy::Status &status, <spanclass="keyword">const</span> std::uint8_t &level)</div><divclass="line">{</div><divclass="line"> std::string space(level, <spanclass="charliteral">''</span>);</div><divclass="line"><spanclass="comment">// Remove HTML-tags</span></div><divclass="line"> std::regex restrip(<spanclass="stringliteral">"<[^>]*>"</span>);</div><divclass="line"> std::string content = std::regex_replace(status.content(), restrip, <spanclass="stringliteral">""</span>);</div><divclass="line"></div><divclass="line"> cout << space <<<spanclass="stringliteral">"+-----------------------------------------\n"</span>;</div><divclass="line"> cout << space <<<spanclass="stringliteral">"| "</span><< status.account().acct() <<<spanclass="stringliteral">": \n"</span>;</div><divclass="line"></div><divclass="line"><spanclass="keywordflow">while</span> (!content.empty())</div><divclass="line"> {</div><divclass="line"> cout <<