added example 13, fixed other examples
This commit is contained in:
vecāks
364ac268fd
revīzija
88e2846e83
|
@ -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';
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
{
|
||||
|
|
Atsaukties uz šo jaunā problēmā