diff --git a/ebook.rb b/ebook.rb index e1401e5..831714f 100644 --- a/ebook.rb +++ b/ebook.rb @@ -15,20 +15,24 @@ unless params.key?("tweet") params["tweet"] = true end +rand_key = rand($rand_limit) + # randomly running only about 1 in $rand_limit times -unless rand($rand_limit) == 0 || params["force"] - puts "Not running this time" +unless rand_key == 0 || params["force"] + puts "Not running this time (key: #{rand_key})" else # Fetch a thousand tweets begin - user_tweets = Twitter.user_timeline($source_account, :count => 200, :trim_user => true, :exclude_replies => false, :include_replies => true) + user_tweets = Twitter.user_timeline($source_account, :count => 200, :trim_user => true, :exclude_replies => true, :include_rts => false) max_id = user_tweets.last.id - source_tweets += user_tweets.reject {|t| t.text =~ /(http:\/\/)|(\bRT\b)|(\bMT\b)|@/ } + source_tweets += user_tweets.reject {|t| t.text =~ /(https?:\/\/)/ }.map {|t| t.text.gsub(/\b(RT|MT) .+/, '') } - 25.times do - user_tweets = Twitter.user_timeline($source_account, :count => 200, :trim_user => true, :max_id => max_id - 1, :exclude_replies => false, :include_replies => true) + # Twitter only returns up to 3200 of a user timeline, includes retweets. + 17.times do + user_tweets = Twitter.user_timeline($source_account, :count => 200, :trim_user => true, :max_id => max_id - 1, :exclude_replies => true, :include_rts => false) + puts "MAX_ID #{max_id} TWEETS: #{user_tweets.length}" max_id = user_tweets.last.id - source_tweets += user_tweets.reject {|t| t.text =~ /(http:\/\/)|(\bRT\b)|(\bMT\b)|@/ } + source_tweets += user_tweets.reject {|t| t.text =~ /(https?:\/\/)/ }.map {|t| t.text.gsub(/\b(RT|MT) .+/, '') } end rescue end @@ -38,7 +42,7 @@ else markov = MarkovChainer.new(2) source_tweets.each do |twt| - text = twt.text + text = twt text.gsub!(/\#[\w\d]+/, '') # remove hashtags markov.add_text(text) end @@ -47,7 +51,7 @@ else 5.times do tweet = markov.generate_sentence - break if !tweet.nil? && tweet.length < 140 && !source_tweets.any? {|t| t.text != tweet } + break if !tweet.nil? && tweet.length < 110 && !source_tweets.any? {|t| t =~ /#{tweet}/ } end if params["tweet"]