streambot 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/lib/retweet.rb +6 -1
  2. data/lib/streambot.rb +14 -8
  3. metadata +3 -3
data/lib/retweet.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'net/http'
2
2
  require 'open-uri'
3
3
 
4
+ # wrapper class for dealing with twitters native retweet api
5
+ # it simply connects to twitter api via http basic auth with given credentials
4
6
  class Retweet
5
7
 
6
8
  # intitialize method aka constructor
@@ -13,12 +15,15 @@ class Retweet
13
15
  def retweet(id)
14
16
  url = URI.parse("http://api.twitter.com/1/statuses/retweet/#{id}.json")
15
17
  req = Net::HTTP::Post.new(url.path)
18
+ # set credentials
16
19
  req.basic_auth @auth[:username],@auth[:password]
20
+ # connect
17
21
  res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
18
22
  case res
19
- when Net::HTTPSuccess, Net::HTTPRedirection
20
23
  #OK
24
+ when Net::HTTPSuccess, Net::HTTPRedirection
21
25
  else
26
+ # when connection wasn't successful print error message
22
27
  res.error!
23
28
  end
24
29
  end
data/lib/streambot.rb CHANGED
@@ -2,27 +2,33 @@ require 'rubygems'
2
2
  require 'tweetstream'
3
3
  require 'retweet'
4
4
 
5
+ # The StreamBot class that provides a start and a stop method
5
6
  class StreamBot
6
7
 
7
- # initialize method aka constructor
8
- def initialize(auth, blacklist=nil, *keywords)
8
+ # the initialization method aka the constructor
9
+ def initialize(auth, blacklist, *keywords)
9
10
  @stream = TweetStream::Client.new(auth[:username],auth[:password])
10
- @retweet = Retweet.new(auth)
11
+ # initializing retweet
12
+ @retweet = Retweet.new(auth) #
13
+ # get string with keywords comma separated keywords
11
14
  @keywords=keywords.join(',')
12
- @blacklist=blacklist if !blacklist.nil?
15
+ # set blacklist array if not nil
16
+ @blacklist=blacklist
13
17
  end
14
18
 
15
- # starts the bot
19
+ # start the bot
16
20
  def start
21
+ # starting to track the keywords via tweetstream
17
22
  @stream.track(@keywords) do |status|
18
- if !@blacklist.include?(status.user)
19
- #puts "#{status.text} - #{status.id}"
23
+ # if status.user is NOT in blacklist then retweet it
24
+ if !@blacklist.include?(status.user)
25
+ #puts "#{status.text}"
20
26
  @retweet.retweet(status.id)
21
27
  end
22
28
  end
23
29
  end
24
30
 
25
- # stop bot
31
+ # stop the bot
26
32
  def stop
27
33
  @stream.stop
28
34
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 2
9
- version: 0.2.2
8
+ - 3
9
+ version: 0.2.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sascha Wessel
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-13 00:00:00 +02:00
17
+ date: 2010-04-15 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency