Skip to content

Instantly share code, notes, and snippets.

@dtsato
Last active August 29, 2015 14:07
Show Gist options
  • Save dtsato/cd3f30ae47680c811dc6 to your computer and use it in GitHub Desktop.
Save dtsato/cd3f30ae47680c811dc6 to your computer and use it in GitHub Desktop.
Script para sorteio de brindes na RuPy Natal 2014
require 'twitter'
require 'dotenv'
require 'colorize'
Dotenv.load
def twitter_client
Twitter::REST::Client.new do |config|
config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"]
end
end
def spin_it(n)
pinwheel = %w{| / - \\}
n.times { sleep(0.1) and print(pinwheel.rotate!.first + "\b") }
end
def twitter_user(tweet)
"@#{tweet.user.screen_name}"
end
def uniq_contenders(query, invalid_users=[])
twitter_client
.search(query)
.reject { |t| t.retweet? }
.reject { |t| invalid_users.include?(t.user.screen_name) }
.uniq { |t| t.user.screen_name}
end
if __FILE__ == $0
invalid = %q(dtsato RuPyNatal)
winners = %q(EmillyLeao Herik_Matheus marioidival deeh_azevedo)
absents = %q(dojusa davicfg)
contenders = uniq_contenders("#RuPyNatal since:2014-10-17", invalid + winners + absents)
puts "RuPy Natal 2014".on_cyan.red
puts
puts "Participantes do sorteio:".light_red
contenders.each do |tweet|
printf " %15s: %s\n" % [twitter_user(tweet).cyan, tweet.text.light_white]
end
puts
printf "E o ganhador é: ".light_red
spin_it(50)
puts twitter_user(contenders.sample).green
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment