Class: Twitorious::API::Twitter
- Inherits:
-
Object
- Object
- Twitorious::API::Twitter
- Defined in:
- lib/twitorious/api/twitter.rb
Instance Method Summary collapse
- #fetch_timeline ⇒ Object
-
#initialize(config, site) ⇒ Twitter
constructor
A new instance of Twitter.
- #update(status) ⇒ Object
Constructor Details
#initialize(config, site) ⇒ Twitter
Returns a new instance of Twitter.
9 10 11 12 13 |
# File 'lib/twitorious/api/twitter.rb', line 9 def initialize(config, site) @config = config @site = site @notifier = Twitorious::Notifier.new end |
Instance Method Details
#fetch_timeline ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/twitorious/api/twitter.rb', line 23 def fetch_timeline puts "Fetching timeline from #{@site[:name]}" res = nil Net::HTTP.start(@site[:url].host, @site[:url].port) do |http| path = @site[:url].path + "/statuses/friends_timeline.json" path += "?count=200&since_id=#{@site[:since_id]}" if @site[:since_id] req = Net::HTTP::Get.new(path, { "User-Agent" => "Twitorious/#{Twitorious::VERSION}"}) req.basic_auth @site[:user], @site[:pass] res = http.request(req) end updates = JSON.parse(res.body) puts " No updates" if updates.empty? return if updates.empty? puts " Got #{updates.size} update#{"s" if updates.size > 1}" updates.reverse.each do |update| image = Twitorious::Image.from_url(update["user"]["profile_image_url"], @config.image_store) filename = image ? image.filename : @site[:icon] @notifier.notify(update["user"]["screen_name"], update["text"], update["created_at"], filename) sleep @config.sleep_between_notifications.to_i end # Returning the last ID we saw, so we can update since_id for the site return updates[0]["id"] end |
#update(status) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/twitorious/api/twitter.rb', line 15 def update(status) puts "Updating #{@site[:name]}" req = Net::HTTP::Post.new(@site[:url].path + "/statuses/update.json", { "User-Agent" => "Twitorious/#{Twitorious::VERSION}"}) req.basic_auth @site[:user], @site[:pass] req.set_form_data({'status' => status}, ';') res = Net::HTTP.new(@site[:url].host, @site[:url].port).start { |http| http.request(req) } end |