Created
March 18, 2011 13:48
-
-
Save kayakaya/876091 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/ruby | |
require 'rubygems' | |
require 'rubytter' | |
require 'oauth' | |
require 'yaml' | |
require 'pp' | |
CONSUMER_KEY = '' | |
CONSUMER_SERCRET = '' | |
ACCESS_TOKEN = '' | |
ACCESS_TOKEN_SERCTET = '' | |
def to_yaml(users, filename) | |
users.to_yaml | |
open(filename, 'w') do |f| | |
YAML.dump(users, f) | |
end | |
end | |
def get_friends(client, username) | |
friends = Array.new | |
last = nil | |
begin | |
last = client.friends(username, :cursor => last ? last.next_cursor : -1) | |
friends.concat(last.users) | |
rescue Timeout::Error, StandardError | |
puts "print Timeout::Error, StandardError" | |
break | |
end until last.next_cursor == 0 | |
return friends | |
end | |
def get_followers(client, username) | |
followers = Array.new | |
last = nil | |
begin | |
last = client.followers(username, :cursor => last ? last.next_cursor : -1) | |
followers.concat(last.users) | |
rescue Timeout::Error, StandardError | |
puts "print Timeout::Error, StandardError" | |
break | |
end until last.next_cursor == 0 | |
return followers | |
end | |
def create_client | |
consumer = OAuth::Consumer.new( | |
CONSUMER_KEY, | |
CONSUMER_SERCRET, | |
:site => 'http://api.twitter.com' | |
) | |
access_token = OAuth::AccessToken.new( | |
consumer, | |
ACCESS_TOKEN, | |
ACCESS_TOKEN_SERCTET | |
) | |
return OAuthRubytter.new(access_token) | |
end | |
username = 'kayakaya' | |
client = create_client | |
to_yaml(get_friends(client, username), 'friends.yaml') | |
to_yaml(get_followers(client, username), 'followers.yaml') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'date' | |
require 'yaml' | |
require 'pp' | |
def read_friends | |
file = 'friends.yaml' | |
return friends = YAML.load_file(file) | |
end | |
def read_followers | |
file = 'followers.yaml' | |
return friends = YAML.load_file(file) | |
end | |
def count_create(users) | |
created_years = Array.new | |
users.each do |user| | |
created_date = Date.parse(user[:created_at]) | |
created_years << created_date.year | |
end | |
return created_years | |
end | |
friends = read_friends | |
followers = read_followers | |
friends_created_year = count_create(friends) | |
followers_created_year = count_create(followers) | |
[2006, 2007, 2008, 2009, 2010, 2011].each do |year| | |
puts "#{year},#{friends_created_year.count(year)},#{followers_created_year.count(year)}" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment