Sha256: ac8a429fa77835417a7d83c0296dcfbefb3b5b6242ead53aa999d5d6631a9948
Contents?: true
Size: 1.54 KB
Versions: 3
Compression:
Stored size: 1.54 KB
Contents
# encoding: utf-8 module Nanoc3::DataSources # Nanoc3::DataSources::Twitter provides tweets from a single user as items # (Nanoc3::Item instances). # # The configuration must have a "username" attribute containing the username # of the account from which to fetch the tweets. # # The items returned by this data source will be mounted at {root}/{id}, # where +id+ is the unique identifier of the tweet. # # The items returned by this data source will have the following attributes: # # +:created_at+:: The timestamp when this tweet was posted (a string). # # +source+:: The client used to tweet this message (HTML-encoded). class Twitter < Nanoc3::DataSource def items @item ||= begin require 'json' require 'time' # Get data @http_client ||= Nanoc3::Extra::CHiCk::Client.new status, headers, data = *@http_client.get("http://twitter.com/statuses/user_timeline/#{self.config[:username]}.json") # Parse as JSON raw_items = JSON.parse(data) # Convert to items raw_items.enum_with_index.map do |raw_item, i| # Get data content = raw_item['text'] attributes = { :created_at => raw_item['created_at'], :source => raw_item['source'] # TODO add more } identifier = "/#{raw_item['id']}/" mtime = Time.parse(raw_item['created_at']) # Build item Nanoc3::Item.new(content, attributes, identifier, mtime) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nanoc3-3.0.2 | lib/nanoc3/data_sources/twitter.rb |
nanoc3-3.0.1 | lib/nanoc3/data_sources/twitter.rb |
nanoc3-3.0.0 | lib/nanoc3/data_sources/twitter.rb |