diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2016-12-02 00:09:13 -0500 |
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2016-12-02 00:09:13 -0500 |
| commit | 8213a9d7f292f8d9c369ed17312194973b406601 (patch) | |
| tree | ab93f51edb94f65e5c49e270d167ddce8f9c75c5 /toldya.cpp | |
| parent | eee2c82d32174395c07dec8e3169a941c43287ff (diff) | |
| download | toldya-8213a9d7f292f8d9c369ed17312194973b406601.tar.gz toldya-8213a9d7f292f8d9c369ed17312194973b406601.tar.bz2 toldya-8213a9d7f292f8d9c369ed17312194973b406601.zip | |
Bot now respects deletion messages
Diffstat (limited to 'toldya.cpp')
| -rw-r--r-- | toldya.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
| diff --git a/toldya.cpp b/toldya.cpp index 285b82a..e152f05 100644 --- a/toldya.cpp +++ b/toldya.cpp | |||
| @@ -25,6 +25,7 @@ int main(int argc, char** argv) | |||
| 25 | }; | 25 | }; |
| 26 | 26 | ||
| 27 | std::vector<twitter::tweet> potential; | 27 | std::vector<twitter::tweet> potential; |
| 28 | std::set<twitter::tweet_id> deletions; | ||
| 28 | std::mutex potential_mutex; | 29 | std::mutex potential_mutex; |
| 29 | 30 | ||
| 30 | twitter::client client(auth); | 31 | twitter::client client(auth); |
| @@ -51,7 +52,7 @@ int main(int argc, char** argv) | |||
| 51 | ) | 52 | ) |
| 52 | { | 53 | { |
| 53 | std::lock_guard<std::mutex> potential_guard(potential_mutex); | 54 | std::lock_guard<std::mutex> potential_guard(potential_mutex); |
| 54 | std::cout << n.getTweet().getText() << std::endl; | 55 | std::cout << n.getTweet().getID() << ": " << n.getTweet().getText() << std::endl; |
| 55 | 56 | ||
| 56 | potential.push_back(std::move(n.getTweet())); | 57 | potential.push_back(std::move(n.getTweet())); |
| 57 | } | 58 | } |
| @@ -64,10 +65,16 @@ int main(int argc, char** argv) | |||
| 64 | { | 65 | { |
| 65 | std::cout << "Twitter error while following @" << n.getUser().getScreenName() << ": " << error.what() << std::endl; | 66 | std::cout << "Twitter error while following @" << n.getUser().getScreenName() << ": " << error.what() << std::endl; |
| 66 | } | 67 | } |
| 68 | } else if (n.getType() == twitter::notification::type::deletion) | ||
| 69 | { | ||
| 70 | std::lock_guard<std::mutex> potential_guard(potential_mutex); | ||
| 71 | std::cout << "Tweet " << n.getTweetID() << " was deleted." << std::endl; | ||
| 72 | |||
| 73 | deletions.insert(n.getTweetID()); | ||
| 67 | } | 74 | } |
| 68 | }); | 75 | }); |
| 69 | 76 | ||
| 70 | std::this_thread::sleep_for(std::chrono::minutes(1)); | 77 | std::this_thread::sleep_for(to_wait); |
| 71 | 78 | ||
| 72 | for (;;) | 79 | for (;;) |
| 73 | { | 80 | { |
| @@ -108,7 +115,7 @@ int main(int argc, char** argv) | |||
| 108 | std::cout << "Sleeping for " << (waitlen/60/60/24) << " days..." << std::endl; | 115 | std::cout << "Sleeping for " << (waitlen/60/60/24) << " days..." << std::endl; |
| 109 | } | 116 | } |
| 110 | 117 | ||
| 111 | std::this_thread::sleep_for(to_wait); | 118 | std::this_thread::sleep_for(std::chrono::minutes(1)); |
| 112 | 119 | ||
| 113 | // Unfollow people who have unfollowed us | 120 | // Unfollow people who have unfollowed us |
| 114 | try | 121 | try |
| @@ -150,13 +157,16 @@ int main(int argc, char** argv) | |||
| 150 | std::vector<twitter::tweet> to_keep; | 157 | std::vector<twitter::tweet> to_keep; |
| 151 | for (auto& pt : potential) | 158 | for (auto& pt : potential) |
| 152 | { | 159 | { |
| 153 | if (old_friends_set.count(pt.getAuthor().getID()) == 0) | 160 | if ( |
| 161 | (old_friends_set.count(pt.getAuthor().getID()) == 0) && // The author has not unfollowed | ||
| 162 | (deletions.count(pt.getID()) == 0)) // The tweet was not deleted | ||
| 154 | { | 163 | { |
| 155 | to_keep.push_back(std::move(pt)); | 164 | to_keep.push_back(std::move(pt)); |
| 156 | } | 165 | } |
| 157 | } | 166 | } |
| 158 | 167 | ||
| 159 | potential = std::move(to_keep); | 168 | potential = std::move(to_keep); |
| 169 | deletions.clear(); | ||
| 160 | } catch (const twitter::twitter_error& error) | 170 | } catch (const twitter::twitter_error& error) |
| 161 | { | 171 | { |
| 162 | std::cout << "Twitter error while getting friends/followers: " << error.what() << std::endl; | 172 | std::cout << "Twitter error while getting friends/followers: " << error.what() << std::endl; |
