div#cgit { padding: 0em; margin: 0em; font-family: sans-serif; font-size: 10pt; color: #333; background: white; padding: 4px; } div#cgit a { color: blue; text-decoration: none; } div#cgit a:hover { text-decoration: underline; } div#cgit table { border-collapse: collapse; } div#cgit table#header { width: 100%; margin-bottom: 1em; } div#cgit table#header td.logo { width: 96px; vertical-align: top; } div#cgit table#header td.main { font-size: 250%; padding-left: 10px; white-space: nowrap; } div#cgit table#header td.main a { color: #000; } div#cgit table#header td.form { text-align: right; vertical-align: bottom; padding-right: 1em; padding-bottom: 2px; white-space: nowrap; } div#cgit table#header td.form form, div#cgit table#header td.form input, div#cgit table#header td.form select { font-size: 90%; } div#cgit table#header td.sub { color: #777; border-top: solid 1px #ccc; padding-left: 10px; } div#cgit table.tabs { border-bottom: solid 3px #ccc; border-collapse: collapse; margin-top: 2em; margin-bottom: 0px; width: 100%; } div#cgit table.tabs td { padding: 0px 1em; vertical-align: bottom; } div#cgit table.tabs td a { padding: 2px 0.75em; color: #777; font-size: 110%; } div#cgit table.tabs td a.active { color: #000; background-color: #ccc; } div#cgit table.tabs td.form { text-align: right; } div#cgit table.tabs td.form form { padding-bottom: 2px; font-size: 90%; white-space: nowrap; } div#cgit table.tabs td.form input, div#cgit table.tabs td.form select { font-size: 90%; } div#cgit div.path { margin: 0px; padding: 5px 2em 2px 2em; color: #000; background-color: #eee; } div#cgit div.content { margin: 0px; padding: 2em; border-bottom: solid 3px #ccc; } div#cgit table.list { width: 100%; border: none; border-collapse: collapse; } div#cgit table.list tr { background: white; } div#cgit table.list tr.logheader { background: #eee; } div#cgit table.list tr:hover { background: #eee; } div#cgit table.list tr.nohover:hover { background: white; } div#cgit table.list th { font-weight: bold; /* color: #888; border-top: dashed 1px #888; border-bottom: dashed 1px #888; */ padding: 0.1em 0.5em 0.05em 0.5em; vertical-align: baseline; } div#cgit table.list td { border: none; padding: 0.1em 0.5em 0.1em 0.5em; } div#cgit table.list td.commitgraph { font-family: monospace; white-space: pre; } div#cgit table.list td.commitgraph .column1 { color: #a00; } div#cgit table.list td.commitgraph .column2 { color: #0a0; } div#cgit table.list td.commitgraph .column3 { color: #aa0; } div#cgit table.list td.commitgraph .column4 { color: #00a; } div#cgit table.list td.commitgraph .column5 { color: #a0a; } div#cgit table.list td.commitgraph .column6 { color: #0aa; } div#cgit table.list td.logsubject { font-family: monospace; font-weight: bold; } div#cgit table.list td.logmsg { font-family: monospace; white-space: pre; padding: 0 0.5em; } div#cgit table.list td a { color: black; } div#cgit table.list td a.ls-dir { font-weight: bold; color: #00f; } div#cgit table.list td a:hover { color: #00f; } div#cgit img { border: none; } div#cgit input#switch-btn { margin: 2px 0px 0px 0px; } div#cgit td#sidebar input.txt { width: 100%; margin: 2px 0px 0px 0px; } div#cgit table#grid { margin: 0px; } div#cgit td#content { vertical-align: top; padding: 1em 2em 1em 1em; border: none; } div#cgit div#summary { vertical-align: top; margin-bottom: 1em; } div#cgit table#downloads { float: right; border-collapse: collapse; border: solid 1px #777; margin-left: 0.5em; margin-bottom: 0.5em; } div#cgit table#downloads th { background-color: #ccc; } div#cgit div#blob { border: solid 1px black; } div#cgit div.error { color: red; font-weight: bold; margin: 1em 2em; } div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit a.ls-mod { font-family: monospace; } div#cgit td.ls-size { text-align: right; font-family: monospace; width: 10em; } div#cgit td.ls-mode { font-family: monospace; width: 10em; } div#cgit table.blob { margin-top: 0.5em; border-top: solid 1px black; } div#cgit table.blob td.lines { margin: 0; padding: 0 0 0 0.5em; vertical-align: top; color: black; } div#cgit table.blob td.linenumbers { margin: 0; padding: 0 0.5em 0 0.5em; vertical-align: top; text-align: right; border-right: 1px solid gray; } div#cgit table.blob pre { padding: 0; margin: 0; } div#cgit table.blob a.no, div#cgit table.ssdiff a.no { color: gray; text-align: right; text-decoration: none; } div#cgit table.blob a.no a:hover { color: black; } div#cgit table.bin-blob { margin-top: 0.5em; border: solid 1px black; } div#cgit table.bin-blob th { font-family: monospace; white-space: pre; border: solid 1px #777; padding: 0.5em 1em; } div#cgit table.bin-blob td { font-family: monospace; white-space: pre; border-left: solid 1px #777; padding: 0em 1em; } div#cgit table.nowrap td { white-space: nowrap; } div#cgit table.commit-info { border-collapse: collapse; margin-top: 1.5em; } div#cgit div.cgit-panel { float: right; margin-top: 1.5em; } div#cgit div.cgit-panel table { border-collapse: collapse; border: solid 1px #aaa; background-color: #eee; } div#cgit div.cgit-panel th { text-align: center; } div#cgit div.cgit-panel td { padding
= mastodonpp
:toc: preamble
:project: mastodonpp
:uri-base: https://schlomp.space/tastytea/{project}
:uri-branch-main: {uri-base}/src/branch/main
:uri-mastodon-cpp: https://schlomp.space/tastytea/mastodon-cpp
:uri-reference: https://doc.schlomp.space/{project}/
:uri-gcc: https://gcc.gnu.org/
:uti-clang: https://clang.llvm.org/
:uri-cmake: https://cmake.org/
:uri-doxygen: http://www.doxygen.nl/
:uri-catch: https://github.com/catchorg/Catch2
:uri-dpkg: https://packages.qa.debian.org/dpkg
:uri-rpm-build: http://www.rpm.org
:uri-curl: https://curl.haxx.se/
*{project}* is a C++ wrapper for the Mastodon API. It replaces
link:{uri-mastodon-cpp}[mastodon-cpp].
== Usage
Have a look at the link:{uri-reference}[reference].
// === Examples
== Install
// === Gentoo
// [source,shell]
// --------------------------------------------------------------------------------
// eselect repository enable tastytea
// echo 'dev-cpp/mastodonpp' >> /etc/portage/package.accept_keywords/mastodonpp
// emaint sync -r tastytea
// emerge -a dev-cpp/mastodonpp
// --------------------------------------------------------------------------------
=== From source
==== Dependencies
* Tested OS: Linux
* C++ compiler (tested: link:{uri-gcc}[GCC] 7/8/9, link:{uri-lang}[clang] 6/7)
* link:{uri-cmake}[CMake] (at least: 3.9)
* link:{uri-curl}[curl] (tested: 7.66 / 7.58)
* Optional
** Documentation: link:{uri-doxygen}[Doxygen] (tested: 1.8)
** Tests: link:{uri-catch}[Catch] (tested: 2.5 / 1.2)
// ** DEB package: link:{uri-dpkg}[dpkg] (tested: 1.18)
// ** RPM package: link:{uri-rpm-build}[rpm-build] (tested: 4.11)
==== Get sourcecode
===== Release
Download the current release at link:{uri-base}/releases[schlomp.space].
===== Development version
[source,shell]
--------------------------------------------------------------------------------
git clone https://schlomp.space/tastytea/mastodonpp.git
--------------------------------------------------------------------------------
==== Compile
[source,shell]
--------------------------------------------------------------------------------
mkdir -p build && cd build
cmake ..
cmake --build . -- -j$(nproc --ignore=1)
--------------------------------------------------------------------------------
.CMake options:
* `-DCMAKE_BUILD_TYPE=Debug` for a debug build.
* `-DWITH_TE