mirror of
https://github.com/thewesker/iron_ebooks.git
synced 2025-12-22 13:21:10 -05:00
Some tweaks to the algorithm
This commit is contained in:
22
ebook.rb
22
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"]
|
||||
|
||||
Reference in New Issue
Block a user