added example 13, fixed other examples

This commit is contained in:
tastytea 2018-04-01 04:16:40 +02:00
vecāks 364ac268fd
revīzija 88e2846e83
Parakstījis: tastytea
GPG atslēgas ID: 59346E0EA35C67E5
4 mainīti faili ar 100 papildinājumiem un 2 dzēšanām

Parādīt failu

@ -43,11 +43,10 @@ int main(int argc, char *argv[])
return 1;
}
std::string answer;
std::uint16_t ret = 0;
EasyToot masto(argv[1], argv[2]);
masto.toot("Test");
ret = masto.toot("Test");
if (ret != 0)
{
std::cerr << "Error: " << ret << '\n';

Parādīt failu

@ -1,4 +1,5 @@
/* This file is part of mastodon-cpp.
* Prints some information about your last status.
*/
// Don't compile this if the Easy-interface is turned off

Parādīt failu

@ -0,0 +1,97 @@
/* This file is part of mastodon-cpp.
* Prints some information from the public timeline.
*/
// Don't compile this if the Easy-interface is turned off
#ifndef WITHOUT_EASY
#include <iostream>
#include <string>
#include <thread>
#include <memory>
#include <chrono>
#include <vector>
// If we are compiling mastodon-cpp, use another include path
#ifdef MASTODON_CPP
#include "mastodon-cpp.hpp"
#include "easy/all.hpp"
#else
#include <mastodon-cpp/mastodon-cpp.hpp>
// Include all headers in mastodon-cpp/easy/
#include <mastodon-cpp/easy/all.hpp>
#endif
using Mastodon::API;
using Mastodon::Easy;
using std::cout;
int main(int argc, char *argv[])
{
if (argc < 3)
{
std::cerr << "usage: " << argv[0] << " <instance> <access token>\n";
return 1;
}
cout << "I'll show you the public timeline. Press CTRL-C to abort\n";
// These have to be static in order to use them in- and outside the thread
static std::string stream;
// You can abort the stream with this pointer (ptr->abort_stream())
static std::unique_ptr<Mastodon::API::http> ptr;
// Start a new thread for the stream
std::thread pub_tl([=]
{
Easy masto(argv[1], argv[2]);
masto.get_stream(Mastodon::API::v1::streaming_public, stream, ptr);
});
while (true)
{
// Parse event stream and clear it afterwards
std::vector<Easy::stream_event> events = Easy::parse_stream(stream);
stream.clear();
// The contents of the stream are now in a vector of pairs
// { Easy::event_type, std::string }
for (const Easy::stream_event &event : events)
{
Easy::Status status;
Easy::Notification notification;
// Print out some information about the events
switch (event.first)
{
case Easy::event_type::Update:
status.from_string(event.second);
cout << "Status from: " << status.account().acct()
<< " (" << status.url() << ")\n";
break;
case Easy::event_type::Notification:
notification.from_string(event.second);
cout << "Notification involving: "
<< notification.account().acct()
<< " (" << notification.id() << ")\n";
break;
case Easy::event_type::Delete:
cout << "Deleted: " << event.second << '\n';
break;
default:
cout << "Something undefined happened. 😱\n";
}
}
std::this_thread::sleep_for(std::chrono::seconds(1));
}
pub_tl.join();
}
#else
int main()
{
printf("mastodon-cpp was compiled without Easy support.\n");
return 255;
}
#endif // WITHOUT_EASY

Parādīt failu

@ -38,6 +38,7 @@
* @example example10_simplify.cpp
* @example example11_post_media.cpp
* @example example12_easy_laststatus.cpp
* @example example13_easy_laststatus.cpp
*/
namespace Mastodon
{