about summary refs log tree commit diff stats
path: root/wordplay.cpp
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2022-11-15 11:41:38 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2022-11-15 11:41:38 -0500
commitc51eb502c568ea2d84933b8e2445e98c81307671 (patch)
treefa52213f63b85f01d011d5820302f04814807c07 /wordplay.cpp
parent9fa36f95fd33940001dcd6abee623bfe67b5d7fb (diff)
downloadwordplay-c51eb502c568ea2d84933b8e2445e98c81307671.tar.gz
wordplay-c51eb502c568ea2d84933b8e2445e98c81307671.tar.bz2
wordplay-c51eb502c568ea2d84933b8e2445e98c81307671.zip
Bot now posts to Mastodon instead of Twitter
You need to install mastodonpp on your server.
Diffstat (limited to 'wordplay.cpp')
-rw-r--r--wordplay.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/wordplay.cpp b/wordplay.cpp index 5b60a4f..d5051e6 100644 --- a/wordplay.cpp +++ b/wordplay.cpp
@@ -3,7 +3,7 @@
3#include <iostream> 3#include <iostream>
4#include <list> 4#include <list>
5#include <algorithm> 5#include <algorithm>
6#include <twitter.h> 6#include <mastodonpp/mastodonpp.hpp>
7#include <verbly.h> 7#include <verbly.h>
8#include <chrono> 8#include <chrono>
9#include <thread> 9#include <thread>
@@ -19,13 +19,10 @@ int main(int argc, char** argv)
19 std::string configfile(argv[1]); 19 std::string configfile(argv[1]);
20 YAML::Node config = YAML::LoadFile(configfile); 20 YAML::Node config = YAML::LoadFile(configfile);
21 21
22 twitter::auth auth; 22 mastodonpp::Instance instance{
23 auth.setConsumerKey(config["consumer_key"].as<std::string>()); 23 config["mastodon_instance"].as<std::string>(),
24 auth.setConsumerSecret(config["consumer_secret"].as<std::string>()); 24 config["mastodon_token"].as<std::string>()};
25 auth.setAccessKey(config["access_key"].as<std::string>()); 25 mastodonpp::Connection connection{instance};
26 auth.setAccessSecret(config["access_secret"].as<std::string>());
27
28 twitter::client client(auth);
29 26
30 verbly::database database(config["verbly_datafile"].as<std::string>()); 27 verbly::database database(config["verbly_datafile"].as<std::string>());
31 28
@@ -75,14 +72,19 @@ int main(int argc, char** argv)
75 std::string result = action.compile(); 72 std::string result = action.compile();
76 std::cout << result << std::endl; 73 std::cout << result << std::endl;
77 74
78 try 75 const mastodonpp::parametermap parameters{{"status", result}};
79 { 76 auto answer{connection.post(mastodonpp::API::v1::statuses, parameters)};
80 client.updateStatus(result); 77 if (!answer)
81
82 std::cout << "Tweeted!" << std::endl;
83 } catch (const twitter::twitter_error& e)
84 { 78 {
85 std::cout << "Twitter error: " << e.what() << std::endl; 79 if (answer.curl_error_code == 0)
80 {
81 std::cout << "HTTP status: " << answer.http_status << std::endl;
82 }
83 else
84 {
85 std::cout << "libcurl error " << std::to_string(answer.curl_error_code)
86 << ": " << answer.error_message << std::endl;
87 }
86 } 88 }
87 89
88 std::cout << "Waiting..." << std::endl; 90 std::cout << "Waiting..." << std::endl;