about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--snitch.cpp34
1 files changed, 22 insertions, 12 deletions
diff --git a/snitch.cpp b/snitch.cpp index b1f01a3..88d9d3b 100644 --- a/snitch.cpp +++ b/snitch.cpp
@@ -24,6 +24,11 @@ int main(int argc, char** argv)
24 img_file.read(img_buf, img_len); 24 img_file.read(img_buf, img_len);
25 img_file.close(); 25 img_file.close();
26 26
27 std::vector<std::string> triggers {
28 "calling the cops",
29 "calling the police"
30 };
31
27 twitter::client client(auth); 32 twitter::client client(auth);
28 std::set<twitter::user_id> streamed_friends; 33 std::set<twitter::user_id> streamed_friends;
29 client.setUserStreamReceiveAllReplies(true); 34 client.setUserStreamReceiveAllReplies(true);
@@ -47,23 +52,28 @@ int main(int argc, char** argv)
47 std::transform(std::begin(orig), std::end(orig), std::back_inserter(canonical), [] (char ch) { 52 std::transform(std::begin(orig), std::end(orig), std::back_inserter(canonical), [] (char ch) {
48 return std::tolower(ch); 53 return std::tolower(ch);
49 }); 54 });
50
51 if (canonical.find("calling the cops") != std::string::npos)
52 {
53 std::cout << "Calling the cops on @" << n.getTweet().getAuthor().getScreenName() << std::endl;
54 55
55 long media_id; 56 for (auto trigger : triggers)
56 twitter::response resp = client.uploadMedia("image/jpeg", (const char*) img_buf, img_len, media_id); 57 {
57 if (resp != twitter::response::ok) 58 if (canonical.find(trigger) != std::string::npos)
58 { 59 {
59 std::cout << "Twitter error while uploading image: " << resp << std::endl; 60 std::cout << "Calling the cops on @" << n.getTweet().getAuthor().getScreenName() << std::endl;
60 } else { 61
61 twitter::tweet tw; 62 long media_id;
62 resp = client.updateStatus(client.generateReplyPrefill(n.getTweet()), tw, n.getTweet(), {media_id}); 63 twitter::response resp = client.uploadMedia("image/jpeg", (const char*) img_buf, img_len, media_id);
63 if (resp != twitter::response::ok) 64 if (resp != twitter::response::ok)
64 { 65 {
65 std::cout << "Twitter error while tweeting: " << resp << std::endl; 66 std::cout << "Twitter error while uploading image: " << resp << std::endl;
67 } else {
68 twitter::tweet tw;
69 resp = client.updateStatus(client.generateReplyPrefill(n.getTweet()), tw, n.getTweet(), {media_id});
70 if (resp != twitter::response::ok)
71 {
72 std::cout << "Twitter error while tweeting: " << resp << std::endl;
73 }
66 } 74 }
75
76 break;
67 } 77 }
68 } 78 }
69 } 79 }