simonreed-lyrebird 0.1.0.2.2 → 0.1.0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/lyre_bird +14 -14
- data/lib/lyre_bird/request.rb +2 -1
- data/lib/lyre_bird/response.rb +9 -9
- data/lib/lyre_bird/route.rb +7 -9
- data/lib/lyre_bird.rb +10 -4
- metadata +1 -1
data/bin/lyre_bird
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'lyre_bird'
|
2
|
+
require 'lib/lyre_bird'
|
3
3
|
|
4
|
-
routes = [
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
:password => 'password',
|
9
|
-
:routes => routes,
|
10
|
-
:since_filename => File.dirname(__FILE__) + '/listenSince.txt')
|
4
|
+
routes = [
|
5
|
+
{ 'str' => "Do you have a :item for me" },
|
6
|
+
{ 'str' => ":item near :location" },
|
7
|
+
]
|
11
8
|
|
12
9
|
$no_responses = []
|
13
10
|
|
@@ -19,16 +16,19 @@ end
|
|
19
16
|
puts
|
20
17
|
puts "LyreBird Interface"
|
21
18
|
puts
|
22
|
-
debug = ask('
|
23
|
-
|
24
|
-
|
19
|
+
debug = ask('Run in debug mode? (y/n)')
|
20
|
+
$lyre_debug = ( debug.match(/^(Y|y|yes|Yes|YES)/)) ? true : false
|
21
|
+
|
22
|
+
puts if $lyre_debug
|
23
|
+
puts "Running in debug mode" if $lyre_debug
|
25
24
|
|
26
|
-
|
27
|
-
puts "Running in DEBUG mode" if DEBUG
|
25
|
+
@lb = LyreBird::Base.new(:username => 'username', :password => 'password', :routes => routes, :since_filename => File.dirname(__FILE__) + '/listenSince.txt')
|
28
26
|
|
29
27
|
while true
|
28
|
+
puts
|
30
29
|
msg = ask('What do you want to ask?')
|
31
|
-
|
30
|
+
puts
|
31
|
+
while msg !~ /[A-Za-z]/
|
32
32
|
msg = ask('No really, what do you want to ask?')
|
33
33
|
end
|
34
34
|
|
data/lib/lyre_bird/request.rb
CHANGED
@@ -6,7 +6,8 @@ module LyreBird
|
|
6
6
|
|
7
7
|
def initialize(options={})
|
8
8
|
self.tweet = options[:tweet]
|
9
|
-
|
9
|
+
puts "@#{$lyrebird_username} "
|
10
|
+
self.response = self.respond(:text => self.tweet['text'].gsub("@#{$lyrebird_username} ",''))
|
10
11
|
end
|
11
12
|
|
12
13
|
def respond(options={})
|
data/lib/lyre_bird/response.rb
CHANGED
@@ -18,24 +18,24 @@ module LyreBird
|
|
18
18
|
|
19
19
|
history = $responses[self.to]
|
20
20
|
|
21
|
-
klass = self.params['class'] ||
|
22
|
-
method = self.params['method'] ||
|
21
|
+
klass = self.params['class'] || $lyrebird_default_class
|
22
|
+
method = self.params['method'] || $lyrebird_default_method
|
23
23
|
|
24
|
-
|
24
|
+
klass_obj = eval '::' + klass + '.new'
|
25
|
+
self.text = klass_obj.send method.to_sym, self, history, self.params
|
25
26
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def register_response(params)
|
29
|
-
$responses[self.to] =
|
30
|
+
$responses[self.to] = {} if $responses[self.to].nil?
|
31
|
+
$responses[self.to] = $responses[self.to].merge(params)
|
30
32
|
end
|
31
33
|
|
32
34
|
def error
|
33
|
-
puts "LyreBird::Response.error"
|
34
35
|
$no_responses.push(self.request_tweet)
|
35
36
|
msg = "Don't know what you're asking for"
|
36
37
|
self.text = msg
|
37
|
-
|
38
|
-
if DEBUG
|
38
|
+
if $lyre_debug
|
39
39
|
puts "-" * 50
|
40
40
|
puts
|
41
41
|
puts "From @#{self.request_tweet['user']['screen_name']} - \"#{self.request_tweet['text']}\""
|
@@ -61,8 +61,8 @@ module LyreBird
|
|
61
61
|
puts
|
62
62
|
puts "-" * 50
|
63
63
|
puts
|
64
|
-
|
65
|
-
if
|
64
|
+
|
65
|
+
if $lyre_debug
|
66
66
|
puts
|
67
67
|
puts "Params - #{self.params.inspect}"
|
68
68
|
puts
|
data/lib/lyre_bird/route.rb
CHANGED
@@ -7,29 +7,27 @@ module LyreBird
|
|
7
7
|
def self.route(str='', debug=false)
|
8
8
|
|
9
9
|
successes = []
|
10
|
-
puts "Parsing '#{str}'" if
|
10
|
+
puts "Parsing '#{str}'" if $lyre_debug
|
11
11
|
$lyrebird_routes.each do | r |
|
12
12
|
route = r['str']
|
13
13
|
clear = r['clear']
|
14
|
-
puts "- Trying '#{route}'" if
|
14
|
+
puts "- Trying '#{route}'" if $lyre_debug
|
15
15
|
regex = {}
|
16
16
|
regex[:vars] = route.gsub(/(:[a-z]*)/, '(:[a-z]*)')
|
17
|
-
puts "- REGEX VARS '#{regex[:vars]}'" if
|
17
|
+
puts "- REGEX VARS '#{regex[:vars]}'" if $lyre_debug
|
18
18
|
vars = route.match(regex[:vars])
|
19
19
|
|
20
|
-
|
21
|
-
puts "str.match(/#{regex[:vars]}/)" if CONSOLE and vars.nil?
|
22
|
-
|
23
|
-
puts "- NO VARS '#{vars.inspect}'" if DEBUG and vars.nil?
|
20
|
+
puts "- NO VARS '#{vars.inspect}'" if $lyre_debug and vars.nil?
|
24
21
|
next if vars.nil?
|
25
22
|
|
26
23
|
regex[:values] = regex[:vars].gsub(/\:\[a\-z\]/, '.')
|
27
|
-
puts "- Trying '#{regex[:values]}'" if
|
24
|
+
puts "- Trying '#{regex[:values]}'" if $lyre_debug
|
28
25
|
values = str.match(regex[:values])
|
29
26
|
|
30
27
|
next if values.nil?
|
31
28
|
|
32
29
|
params = {}.merge(r)
|
30
|
+
params.delete('str')
|
33
31
|
|
34
32
|
i = 1;
|
35
33
|
|
@@ -39,7 +37,7 @@ module LyreBird
|
|
39
37
|
i += 1
|
40
38
|
end
|
41
39
|
params = (str.match(/good|ok|pretty good/).nil?) ? params : params.merge({:sort => :rating})
|
42
|
-
puts "-- PASS '#{route}' got #{params.inspect}" if
|
40
|
+
puts "-- PASS '#{route}' got #{params.inspect}" if $lyre_debug
|
43
41
|
successes.unshift(params)
|
44
42
|
end
|
45
43
|
return successes.last
|
data/lib/lyre_bird.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), "/../lib"))
|
2
|
+
|
1
3
|
require 'lyre_bird/response'
|
2
4
|
require 'lyre_bird/request'
|
3
5
|
require 'lyre_bird/route'
|
@@ -10,12 +12,16 @@ module LyreBird
|
|
10
12
|
attr_accessor :password
|
11
13
|
attr_accessor :since_filename
|
12
14
|
|
13
|
-
def initialize(options={})
|
15
|
+
def initialize(username=nil,password=nil,options={})
|
14
16
|
$responses = {}
|
15
|
-
|
16
|
-
self.
|
17
|
+
$no_responses = []
|
18
|
+
self.username = username || 'username'
|
19
|
+
$lyrebird_username = self.username
|
20
|
+
self.password = password || 'password'
|
17
21
|
self.since_filename = options[:since_filename] || "lyre_bird_listen_since.txt"
|
18
22
|
$lyrebird_routes = options[:routes] || []
|
23
|
+
$lyrebird_default_class = (options[:defaults] and options[:defaults][:class]) ? options[:defaults][:class] : 'LyresController'
|
24
|
+
$lyrebird_default_method = (options[:defaults] and options[:defaults][:method]) ? options[:defaults][:method] : 'index'
|
19
25
|
end
|
20
26
|
|
21
27
|
def listen(options={})
|
@@ -62,7 +68,7 @@ module LyreBird
|
|
62
68
|
|
63
69
|
mentions = mentions.sort {|a,b| a['id']<=>b['id']}
|
64
70
|
mentions.each do | tweet |
|
65
|
-
puts "Tweet - #{tweet.keys.to_yaml}" if
|
71
|
+
puts "Tweet - #{tweet.keys.to_yaml}" if $lyre_debug
|
66
72
|
req = LyreBird::Request.new(:tweet => tweet)
|
67
73
|
if options[:post]
|
68
74
|
req.response.post(options[:live])
|