From c51eb502c568ea2d84933b8e2445e98c81307671 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 15 Nov 2022 11:41:38 -0500 Subject: Bot now posts to Mastodon instead of Twitter You need to install mastodonpp on your server. --- wordplay.cpp | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'wordplay.cpp') diff --git a/wordplay.cpp b/wordplay.cpp index 5b60a4f..d5051e6 100644 --- a/wordplay.cpp +++ b/wordplay.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include @@ -19,13 +19,10 @@ int main(int argc, char** argv) std::string configfile(argv[1]); YAML::Node config = YAML::LoadFile(configfile); - twitter::auth auth; - auth.setConsumerKey(config["consumer_key"].as()); - auth.setConsumerSecret(config["consumer_secret"].as()); - auth.setAccessKey(config["access_key"].as()); - auth.setAccessSecret(config["access_secret"].as()); - - twitter::client client(auth); + mastodonpp::Instance instance{ + config["mastodon_instance"].as(), + config["mastodon_token"].as()}; + mastodonpp::Connection connection{instance}; verbly::database database(config["verbly_datafile"].as()); @@ -75,14 +72,19 @@ int main(int argc, char** argv) std::string result = action.compile(); std::cout << result << std::endl; - try - { - client.updateStatus(result); - - std::cout << "Tweeted!" << std::endl; - } catch (const twitter::twitter_error& e) + const mastodonpp::parametermap parameters{{"status", result}}; + auto answer{connection.post(mastodonpp::API::v1::statuses, parameters)}; + if (!answer) { - std::cout << "Twitter error: " << e.what() << std::endl; + if (answer.curl_error_code == 0) + { + std::cout << "HTTP status: " << answer.http_status << std::endl; + } + else + { + std::cout << "libcurl error " << std::to_string(answer.curl_error_code) + << ": " << answer.error_message << std::endl; + } } std::cout << "Waiting..." << std::endl; -- cgit 1.4.1