diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2019-02-28 20:12:45 -0500 | 
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2019-02-28 20:12:45 -0500 | 
| commit | 01fcbeb60da0bff33d5d9f5b870d444cc418a01d (patch) | |
| tree | e506e532c02d08505d4328df37f4fac8c816e89f /ebooks.cpp | |
| parent | 1890eb5d4a496aea5e9114550081ca63bd280f3b (diff) | |
| download | rawr-ebooks-01fcbeb60da0bff33d5d9f5b870d444cc418a01d.tar.gz rawr-ebooks-01fcbeb60da0bff33d5d9f5b870d444cc418a01d.tar.bz2 rawr-ebooks-01fcbeb60da0bff33d5d9f5b870d444cc418a01d.zip | |
Converted to C++ style randomization
The logic in rawr::randomSentence with the cuts might be slightly different now but who even knows what's going on there.
Diffstat (limited to 'ebooks.cpp')
| -rw-r--r-- | ebooks.cpp | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/ebooks.cpp b/ebooks.cpp index 0644132..3918b78 100644 --- a/ebooks.cpp +++ b/ebooks.cpp | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | #include <list> | 2 | #include <list> | 
| 3 | #include <map> | 3 | #include <map> | 
| 4 | #include "kgramstats.h" | 4 | #include "kgramstats.h" | 
| 5 | #include <ctime> | ||
| 6 | #include <cstdlib> | ||
| 7 | #include <fstream> | 5 | #include <fstream> | 
| 8 | #include <iostream> | 6 | #include <iostream> | 
| 9 | #include <twitter.h> | 7 | #include <twitter.h> | 
| @@ -11,14 +9,15 @@ | |||
| 11 | #include <thread> | 9 | #include <thread> | 
| 12 | #include <chrono> | 10 | #include <chrono> | 
| 13 | #include <algorithm> | 11 | #include <algorithm> | 
| 12 | #include <random> | ||
| 14 | 13 | ||
| 15 | const auto QUEUE_TIMEOUT = std::chrono::minutes(1); | 14 | const auto QUEUE_TIMEOUT = std::chrono::minutes(1); | 
| 16 | const auto POLL_TIMEOUT = std::chrono::minutes(5); | 15 | const auto POLL_TIMEOUT = std::chrono::minutes(5); | 
| 17 | 16 | ||
| 18 | int main(int argc, char** args) | 17 | int main(int argc, char** args) | 
| 19 | { | 18 | { | 
| 20 | srand(time(NULL)); | 19 | std::random_device randomDevice; | 
| 21 | rand(); rand(); rand(); rand(); | 20 | std::mt19937 rng(randomDevice()); | 
| 22 | 21 | ||
| 23 | YAML::Node config = YAML::LoadFile("config.yml"); | 22 | YAML::Node config = YAML::LoadFile("config.yml"); | 
| 24 | int delay = config["delay"].as<int>(); | 23 | int delay = config["delay"].as<int>(); | 
| @@ -72,7 +71,8 @@ int main(int argc, char** args) | |||
| 72 | size_t pos = form.find("$name$"); | 71 | size_t pos = form.find("$name$"); | 
| 73 | if (pos != std::string::npos) | 72 | if (pos != std::string::npos) | 
| 74 | { | 73 | { | 
| 75 | form.replace(pos, 6, fv_names[rand() % fv_names.size()]); | 74 | int fvInd = std::uniform_int_distribution<int>(0, fv_names.size()-1)(rng); | 
| 75 | form.replace(pos, 6, fv_names[fvInd]); | ||
| 76 | } | 76 | } | 
| 77 | 77 | ||
| 78 | return form; | 78 | return form; | 
| @@ -92,12 +92,12 @@ int main(int argc, char** args) | |||
| 92 | 92 | ||
| 93 | if (currentTime >= genTimer) | 93 | if (currentTime >= genTimer) | 
| 94 | { | 94 | { | 
| 95 | std::string doc = kgramstats.randomSentence(140); | 95 | std::string doc = kgramstats.randomSentence(140, rng); | 
| 96 | doc.resize(140); | 96 | doc.resize(140); | 
| 97 | 97 | ||
| 98 | postQueue.emplace_back(std::move(doc), false, 0); | 98 | postQueue.emplace_back(std::move(doc), false, 0); | 
| 99 | 99 | ||
| 100 | int genwait = rand() % delay + 1; | 100 | int genwait = std::uniform_int_distribution<int>(1, delay)(rng); | 
| 101 | 101 | ||
| 102 | genTimer = currentTime + std::chrono::seconds(genwait); | 102 | genTimer = currentTime + std::chrono::seconds(genwait); | 
| 103 | } | 103 | } | 
| @@ -125,7 +125,7 @@ int main(int argc, char** args) | |||
| 125 | && tweet.getAuthor() != client.getUser()) | 125 | && tweet.getAuthor() != client.getUser()) | 
| 126 | { | 126 | { | 
| 127 | std::string doc = tweet.generateReplyPrefill(client.getUser()); | 127 | std::string doc = tweet.generateReplyPrefill(client.getUser()); | 
| 128 | doc += kgramstats.randomSentence(140 - doc.length()); | 128 | doc += kgramstats.randomSentence(140 - doc.length(), rng); | 
| 129 | doc.resize(140); | 129 | doc.resize(140); | 
| 130 | 130 | ||
| 131 | postQueue.emplace_back(std::move(doc), true, tweet.getID()); | 131 | postQueue.emplace_back(std::move(doc), true, tweet.getID()); | 
