diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2016-06-12 21:59:17 -0400 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2016-06-12 21:59:17 -0400 |
commit | 7959b99c54473505ee37e35e7a32133d143ee5a9 (patch) | |
tree | 261c07473b235677c299f5687b599b2c22801aa8 /troublemaker.cpp | |
parent | 9b5d284e8fa8af25b613ce362656df6db379f322 (diff) | |
download | troublemaker-7959b99c54473505ee37e35e7a32133d143ee5a9.tar.gz troublemaker-7959b99c54473505ee37e35e7a32133d143ee5a9.tar.bz2 troublemaker-7959b99c54473505ee37e35e7a32133d143ee5a9.zip |
Bot now logs stats in a file in case it restarts
Diffstat (limited to 'troublemaker.cpp')
-rw-r--r-- | troublemaker.cpp | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/troublemaker.cpp b/troublemaker.cpp index 31381dc..d924894 100644 --- a/troublemaker.cpp +++ b/troublemaker.cpp | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <iostream> | 10 | #include <iostream> |
11 | #include <list> | 11 | #include <list> |
12 | #include <yaml-cpp/yaml.h> | 12 | #include <yaml-cpp/yaml.h> |
13 | #include <fstream> | ||
13 | 14 | ||
14 | struct userstats { | 15 | struct userstats { |
15 | int total = 0; | 16 | int total = 0; |
@@ -42,6 +43,33 @@ int main(int argc, char** argv) | |||
42 | std::map<twitter::user_id, userstats> stats; | 43 | std::map<twitter::user_id, userstats> stats; |
43 | std::mutex stats_mutex; | 44 | std::mutex stats_mutex; |
44 | 45 | ||
46 | // Read in old data | ||
47 | { | ||
48 | std::ifstream datafile("data.txt"); | ||
49 | |||
50 | if (datafile.is_open()) | ||
51 | { | ||
52 | std::string line; | ||
53 | while (std::getline(datafile, line)) | ||
54 | { | ||
55 | std::istringstream iss(line); | ||
56 | |||
57 | twitter::user_id uid; | ||
58 | iss >> uid; | ||
59 | |||
60 | userstats& s = stats[uid]; | ||
61 | iss >> s.total; | ||
62 | iss >> s.days; | ||
63 | iss >> s.day2; | ||
64 | iss >> s.day3; | ||
65 | iss >> s.day4; | ||
66 | iss >> s.day5; | ||
67 | iss >> s.day6; | ||
68 | iss >> s.day7; | ||
69 | } | ||
70 | } | ||
71 | } | ||
72 | |||
45 | twitter::client client(auth); | 73 | twitter::client client(auth); |
46 | client.setUserStreamNotifyCallback([&] (twitter::notification n) { | 74 | client.setUserStreamNotifyCallback([&] (twitter::notification n) { |
47 | std::lock_guard<std::mutex> friend_guard(friends_mutex); | 75 | std::lock_guard<std::mutex> friend_guard(friends_mutex); |
@@ -150,9 +178,12 @@ int main(int argc, char** argv) | |||
150 | std::cout << "Twitter error while getting friends: " << resp << std::endl; | 178 | std::cout << "Twitter error while getting friends: " << resp << std::endl; |
151 | } | 179 | } |
152 | 180 | ||
181 | std::cout << "stat rotation" << std::endl; | ||
153 | // This is all just for stats rotation | 182 | // This is all just for stats rotation |
154 | { | 183 | { |
155 | std::lock_guard<std::mutex> stats_guard(stats_mutex); | 184 | std::lock_guard<std::mutex> stats_guard(stats_mutex); |
185 | std::ofstream datafile("data.txt", std::ofstream::out | std::ofstream::trunc); | ||
186 | |||
156 | for (auto mapping : stats) | 187 | for (auto mapping : stats) |
157 | { | 188 | { |
158 | auto& s = mapping.second; | 189 | auto& s = mapping.second; |
@@ -167,9 +198,18 @@ int main(int argc, char** argv) | |||
167 | s.day4 = s.day3; | 198 | s.day4 = s.day3; |
168 | s.day3 = s.day2; | 199 | s.day3 = s.day2; |
169 | s.day2 = s.day1; | 200 | s.day2 = s.day1; |
170 | s.day1 = 0; | ||
171 | 201 | ||
172 | s.total = s.day2 + s.day3 + s.day4 + s.day5 + s.day6 + s.day7; | 202 | s.total = s.day2 + s.day3 + s.day4 + s.day5 + s.day6 + s.day7; |
203 | |||
204 | datafile << mapping.first << " "; | ||
205 | datafile << s.total << " "; | ||
206 | datafile << s.days << " "; | ||
207 | datafile << s.day2 << " "; | ||
208 | datafile << s.day3 << " "; | ||
209 | datafile << s.day4 << " "; | ||
210 | datafile << s.day5 << " "; | ||
211 | datafile << s.day6 << " "; | ||
212 | datafile << s.day7 << std::endl; | ||
173 | } | 213 | } |
174 | } | 214 | } |
175 | } | 215 | } |