From da9ff8e9d6c03167e4fbdb000aa7a421e46667ab Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 20 Aug 2016 14:07:45 -0400 Subject: Updated libtwitter++ (API changes) --- ebooks.cpp | 48 ++++++++++++++++-------------------------------- vendor/libtwittercpp | 2 +- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/ebooks.cpp b/ebooks.cpp index dd9c7bd..fd9ca83 100644 --- a/ebooks.cpp +++ b/ebooks.cpp @@ -75,20 +75,10 @@ int main(int argc, char** args) return form; }); - std::mutex stats_mutex; - - twitter::user me; - auto resp = client.getUser(me); - if (resp != twitter::response::ok) - { - std::cout << "Could not get current Twitter user" << std::endl; - return -1; - } - - client.setUserStreamNotifyCallback([&] (twitter::notification n) { + twitter::stream user_stream(client, [&kgramstats] (const twitter::notification& n) { if (n.getType() == twitter::notification::type::tweet) { - if ((!n.getTweet().isRetweet()) && (n.getTweet().getAuthor() != me)) + if ((!n.getTweet().isRetweet()) && (n.getTweet().isMyTweet())) { std::string original = n.getTweet().getText(); std::string canonical; @@ -98,42 +88,36 @@ int main(int argc, char** args) if (canonical.find("@rawr_ebooks") != std::string::npos) { - std::string doc = client.generateReplyPrefill(n.getTweet()); + std::string doc = n.getTweet().generateReplyPrefill(); + doc += kgramstats.randomSentence(140 - doc.length()); + doc.resize(140); + + try { - std::lock_guard stats_lock(stats_mutex); - doc += kgramstats.randomSentence(140 - doc.length()); - doc.resize(140); - } - - twitter::tweet tw; - twitter::response resp = client.updateStatus(doc, tw, n.getTweet()); - if (resp != twitter::response::ok) + n.getTweet().reply(doc); + } catch (const twitter::twitter_error& error) { - std::cout << "Twitter error while tweeting: " << resp << std::endl; + std::cout << "Twitter error while tweeting: " << error.what() << std::endl; } } } } }); - client.startUserStream(); std::this_thread::sleep_for(std::chrono::minutes(1)); std::cout << "Generating..." << std::endl; for (;;) { - std::string doc; - { - std::lock_guard stats_lock(stats_mutex); - doc = kgramstats.randomSentence(140); - } + std::string doc = kgramstats.randomSentence(140); doc.resize(140); - twitter::tweet tw; - resp = client.updateStatus(doc, tw); - if (resp != twitter::response::ok) + try + { + client.updateStatus(doc); + } catch (const twitter::twitter_error& error) { - std::cout << "Twitter error while tweeting: " << resp << std::endl; + std::cout << "Twitter error while tweeting: " << error.what() << std::endl; } int waitlen = rand() % delay; diff --git a/vendor/libtwittercpp b/vendor/libtwittercpp index 9fdcbee..6c9f541 160000 --- a/vendor/libtwittercpp +++ b/vendor/libtwittercpp @@ -1 +1 @@ -Subproject commit 9fdcbee29350846db7f136b023da64bb2e6a93f5 +Subproject commit 6c9f541f34c58ac817f88ffb5e069b929bbbc274 -- cgit 1.4.1