diff --git a/bots.rb b/bots.rb index 5f0ccc6..21253a7 100644 --- a/bots.rb +++ b/bots.rb @@ -35,6 +35,7 @@ class BoodooBot @access_token = SETTINGS['ACCESS_TOKEN'] @access_token_secret =SETTINGS['ACCESS_TOKEN_SECRET'] @tweet_interval = SETTINGS['TWEET_INTERVAL'] + @tweet_on_hour = to_boolean(SETTINGS['TWEET_ON_HOUR']) @update_follows_interval = SETTINGS['UPDATE_FOLLOWS_INTERVAL'] @refresh_model_interval = SETTINGS['REFRESH_MODEL_INTERVAL'] @@ -94,7 +95,16 @@ class BoodooBot scheduler.interval @tweet_interval do if rand < @tweet_chance - tweet(model.make_statement) + if @tweet_on_hour + tweet(model.make_statement) + else + # schedule tweet to happen at a random minute this hour + this_many_min = rand(1..59).to_s + 'm' + log "Scheduling tweet in #{this_many_min} min!" + scheduler.in.this_many_min do + tweet(model.make_statement) + end + end end end @@ -224,6 +234,11 @@ class BoodooBot text = obscure_curses(text) super(ev, text, opts) end + + # Helps us convert usage of "true" and "false" strings in .env files to booleans + def to_boolean(str) + str == 'true' + end private def load_model! diff --git a/defaults.env b/defaults.env index 9b80925..13adf48 100644 --- a/defaults.env +++ b/defaults.env @@ -6,6 +6,7 @@ ACCESS_TOKEN= ACCESS_TOKEN_SECRET= TWEET_INTERVAL=2h TWEET_CHANCE=0.8 +TWEET_ON_HOUR=true BLACKLIST=tinysubversions, dril BANNED_TERMS=voldemort, evgeny morozov, heroku SPECIAL_TERMS=