twitterland
Twitterland is a Ruby gem that bundles various Twitter-related APIs
Including:
- Follow Cost
- Twitter Grader
- Mr. Tweet
- Twinfluence
- Twitter Counter
- TweetBlocker
- Thumbfight
- TweetMeme
- FollerMe
- Zutual
Install
sudo gem install twitterland
Follow Cost Usage
# Get follow cost for specified user Twitterland::FollowCost.show('bradleyjoyce') => <Mash at_reply_index=24.0 average_tweets_per_day=6.87254901960784 average_tweets_per_day_recently=19.6396220282001 golden_index=3.0 milliscobles_all_time=324.02 milliscobles_recently=925.96 political_index=1.0 profile_image_url="http://s3.amazonaws.com/twitter_production/profile_images/179927752/bradley_normal.png" statuses_count=3505 twitter_created_at="2008/03/14 18:26:52 -0700" username="bradleyjoyce">
Twitter Grader Usage
# request your api key at [http://twitter.grader.com/accessrequestform](http://twitter.grader.com/accessrequestform) # get twitter grade for user api_key = "OU812" Twitterland::TwitterGrader.grade('bradleyjoyce', api_key) => 98.4183
Mr.Tweet Usage
get your api key at http://api.mrtweet.com/newapi
Initialize Mrtweet
api_key = 'OU812' mt = Twitterland::Mrtweet.new(api_key,'bradleyjoyce')
Is user
# Check whether the given user is a MrTweet user. mt.is_user => true
Profile
# Returns MrTweet statistics of the given user mt.profile => <Mash conversation=0.225 conversation_percentile=53 frequency=8.98621 frequency_percentile=90 links=0.53 links_percentile=87 recommendations=1> mt.profile.links => 0.53
Recommendations
# Returns the latest recommendations the given user received on MrTweet mt.recommendations => [<Mash date=Thu Aug 06 01:02:54 -0500 2009 name="billtrammel" text="he is an entrepreneur, and one of the developers of TweetCongress.org, award-winning site promoting government transparency. Plus, he's a good friend.">] mt.recommendations.first.name => "billtrammel"
Most attention towards
# Returns the twitter_id's of 3 users that for the given user pays the most attention to mt.most_attenion_towards => [15049040, 17993906, 22286046]
Recommend
# Creates a recommendation from the given user, to another user (aka "friend_name") reason = "Wynn is an awesome entrepreneur, rubyist, designer and friend! Follow him for his useful and entertaining tweets!" friend_name = "pengwynn" mt.recommend(reason,friend_name) => true
Twinfluence
Initialize Twinfluence
username = 'bradleyjoyce' password = 'mypassword' t = Twitterland::Twinfluence.new(username,password) => #<Twitterland::Twinfluence:0x317ecf8 @username="bradleyjoyce", @password="mypassword">
User
# gets twinfluence data for user t.user('bradleyjoyce') t.user('bradleyjoyce') => <Mash user=<Mash adrider=<Mash script=[<Mash type="text/javascript">, <Mash src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">]> centralization="24.224443556856" centralization_grade="0.0 Average - Resilient" description="Entrepreneur and Web Developer -- Floxee.com, TweetCongress.org, Sherflock.com, Squeejee.com" followers_count="1315" friends_count="1278" id="14688076" location=nil name="Bradley Joyce" screen_name="bradleyjoyce" second_order="7936664" second_order_grade="Rank: <b>#10,185</b> (93%)" ="6035.4859315589" ="+1.4 High" statuses_count="3511" ="1249683954" url="http://bradleyjoyce.me" velocity="15535.453112211" velocity_grade="+0.1 Fast Average">>
Twitter Counter
Show
tc = Twitterland::TwitterCounter.show('bradleyjoyce') tc.rank => 37194 # available methods tomorrow_2w followers_2w_ago followers_yesterday followers_current friends_current next_month growth_since_2w started_followers rank user_id growth_since follow_days tomorrow next_month_2w average_growth average_growth_2w
TweetBlocker
User
# get grade for user result = Twitterland::TweetBlocker.user('bradleyjoyce') => <Mash grade="a" score=100 url="http://twitter.com/bradleyjoyce" username="Bradley Joyce">
Spam
# report a user as spammer Twitterland::TweetBlocker.report_spam('spamtest')
Rate Limit Status
# check your rate limit status Twitterland::TweetBlocker.rate_limit => <Mash hourly_limit=100 remaining_hits=100 reset_time="2009-08-11 23:12:41 UTC" reset_time_in_seconds=2746>
BackTweets
Get your api_key at http://www.backtype.com/developers
Search
# Return tweet referencing a URL results = Twitterland::BackTweets.search('http://squeejee.com', 'OU812') results.tweets.size => 25 results.tweets.first.from_user => "euromarianne" results.items_per_page => 25 results.total_results => 3301
Thumbfight
Usage
# Get follow cost for single search term Twitterland::Thumbfight.fight('apple') => <Mash challenger1=<Mash score="3 thumbs up" title="apple">> # Get follow cost for two search terms Twitterland::Thumbfight.fight('apple', 'microsoft') => <Mash challenger1=<Mash score="3 thumbs up" title="apple"> challenger2=<Mash score="2 thumbs up" title="microsoft">>
TweetMeme
Usage
# Get comments for a given url details = Twitterland::TweetMeme.url_info('http://tweetcongress.org') # Get recent comments comments = Twitterland::TweetMeme::Comments.firehose # Get popular stories popular = Twitterland::TweetMeme::Stories.popular
Auto Follow Friday
# get the 10 most recent tweeted-to for #followfriday Twitterland::Autoff.user('mrspengwynn') => ["treefrogstudios", "legalzoom", "pengwynn", "str8photography", "kriscolvin", "focalpop", "ahhphotography", "digitalps", "mully", "curvezilla"]
Zutual
You can compare what topics any two Twitter users have in common:
Twitterland::Zutual.match('pengwynn', 'adamstac') => [<Mash strength=87 topic="google">, <Mash strength=87 topic="interview">, <Mash strength=67 topic="google chrome">, <Mash strength=60 topic="sass">, <Mash strength=52 topic="rsync">, <Mash strength=52 topic="rake">, <Mash strength=47 topic="gemcutter">, <Mash strength=45 topic="facebook">, <Mash strength=42 topic="wordpress deployment">, <Mash strength=42 topic="haml">, <Mash strength=42 topic="github">, <Mash strength=35 topic="dallas">, <Mash strength=32 topic="logo">, <Mash strength=32 topic="village church">, <Mash strength=32 topic="css">, <Mash strength=32 topic="mac">, <Mash strength=22 topic="tv">, <Mash strength=22 topic="fix-me">, <Mash strength=22 topic="dns">, <Mash strength=22 topic="lord">]
Source
http://github.com/squeejee/twitterland/
Documentation
http://rdoc.info/projects/squeejee/twitterland
Copyright
Copyright (c) 2009 Squeejee. See LICENSE for details.