Class: LyreBird::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/lyre_bird.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username = nil, password = nil, options = {}) ⇒ Base

Returns a new instance of Base.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/lyre_bird.rb', line 15

def initialize(username=nil,password=nil,options={})
  $responses = {}
  $no_responses = []      
  
  self.username = username || 'username'
  $lyrebird_username = self.username
  self.password = password || 'password'    
  $lyrebird_password = self.password   
     
  self.since_filename = options[:since_filename] || "lyre_bird_listen_since.txt"
  $lyrebird_routes =  options[:routes] || []
  $lyrebird_default_class = (options[:defaults] and options[:defaults][:class]) ? options[:defaults][:class] : 'LyresController'
  $lyrebird_default_method = (options[:defaults] and options[:defaults][:method]) ? options[:defaults][:method] : 'index'      
end

Instance Attribute Details

#passwordObject

Returns the value of attribute password.



12
13
14
# File 'lib/lyre_bird.rb', line 12

def password
  @password
end

#since_filenameObject

Returns the value of attribute since_filename.



13
14
15
# File 'lib/lyre_bird.rb', line 13

def since_filename
  @since_filename
end

#usernameObject

Returns the value of attribute username.



11
12
13
# File 'lib/lyre_bird.rb', line 11

def username
  @username
end

Instance Method Details

#check(options = {}) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/lyre_bird.rb', line 58

def check(options={})

  options = {:live=>true, :post=>true}.merge(options)
  responses = []

  if options[:messages]
    puts "DOING AN OFFLINE LYREBIRD CHECK"
    mentions = options[:messages]
  else
    $twitter = LyreBird::Twitter.new($lyrebird_username,$lyrebird_password)
    since = options[:since] || get_since()   
    mentions = $twitter.mentions(:mentions,{ :since_id => since })      
  end
  
  if mentions.is_a?(Hash)
    puts "Twitter ERROR - #{mentions["error"]}"
    return
  else
    mentions = mentions.sort {|a,b| a.id<=>b.id}
  end
  mentions.each do | tweet |
            
    req = LyreBird::Request.new(:tweet => tweet)
    if options[:post]
      req.response.post(options[:live])
    end
    responses.push(req.response)
  end

  puts "NO NEW TWEETS @ #{Time.now}" unless mentions.size > 0
  set_since(mentions.last['id']) unless mentions.size == 0
end

#get_sinceObject



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/lyre_bird.rb', line 40

def get_since
  since = 0;
  if File.exists?(self.since_filename)
    File.open(self.since_filename).each { |line|
        since = line
    }
    return since      
  else
    return nil
  end
end

#listen(options = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/lyre_bird.rb', line 30

def listen(options={})
  options = { :limit => 1, :sleep=> 5}.merge(options)

  responses = []
  :limit.to_i.times do 
    responses.push(self.check(:post => true))
  end
  responses
end

#set_since(since_id) ⇒ Object



52
53
54
55
56
# File 'lib/lyre_bird.rb', line 52

def set_since(since_id)
  puts "Modified SINCE_ID to - #{since_id}"
  since = File.open(self.since_filename, 'w') {|f| f.write(since_id) }
  since
end