Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 1st, 2012  |  syntax: None  |  size: 1.45 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. require 'httparty'
  2.  
  3. class Tweet < ActiveRecord::Base
  4.   include HTTParty
  5.   format :json
  6.      
  7.   def self.import!
  8.     @client = TwitterSearch::Client.new('royalroads')
  9.    
  10.     rru = %w(user1 user2 user3 user4 user5)
  11.    
  12.     rru.each do |u|
  13.       @tweets = @client.query(:q => "from:#{u}", :since => Date.today, :until => Date.today)
  14.       for tweet in @tweets
  15.         Tweet.create(:screen_name => tweet.from_user, :body => tweet.text, :source => tweet.source, :tweet_created_at => tweet.created_at, :to_user => tweet.to_user, :to_user_id => tweet.to_user_id, :twitter_id => tweet.from_user_id)
  16.       end
  17.     end
  18.   end
  19.  
  20.   def self.find_active!
  21.     rru = Tweet.all.map(&:screen_name)
  22.     a = rru.inject(Hash.new(0)) {|h,x| h[x]+=1;h}.sort{ |a,b| a[1] <=> b[1] }
  23.     return a.reverse.first(5)
  24.   end
  25.  
  26.   def self.find_replied!
  27.     rru = Tweet.all.map(&:to_user)
  28.     a = rru.inject(Hash.new(0)) {|h,x| h[x]+=1;h}.sort{ |a,b| a[1] <=> b[1] }
  29.     return a.reverse.first(5)
  30.   end
  31.  
  32.   def self.find_sources!
  33.     rru = Tweet.all.map(&:source)
  34.     a = rru.inject(Hash.new(0)) {|h,x| h[x]+=1;h}.sort{ |a,b| a[1] <=> b[1] }
  35.     return a.reverse.first(5)
  36.   end
  37.  
  38.   def self.find_most_followed!
  39.     users = Tweet.all.map(&:screen_name)
  40.     users.each do |u|
  41.       find_followers(u)
  42.     end
  43.   end
  44.  
  45.   def self.find_followers(u)
  46.      get('http://api.twitter.com/1/statuses/followers.json', :screen_name => {:u => u})
  47.      return
  48.    end
  49.  
  50. end