Sha256: 14e6c38eefee520fb52ad8e8bb45f7d3e6cd83a4336ed39bdbba2218606277eb

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

#!/usr/bin/env ruby
require 'nokogiri'
require 'open-uri'
require 'json'

# The main XKCD driver
class XKCD
    # Get img/comic URL from xkcd
    #
    # Example:
    #   >> XKCD.img
    #   => "http://imgs.xkcd.com/comics/hell.png" 
    #
    #   >> XKCD.comic
    #   => "http://xkcd.com/891/"

    def self.comic
        open('http://dynamic.xkcd.com/random/comic/').base_uri.to_s
    end
    
    class << XKCD
        alias_method :get, :comic
    end

=begin
    def self.img
        img = Nokogiri::HTML(open('http://dynamic.xkcd.com/random/comic/')).css('#comic img')[0]
        img_url = img.attributes["src"].value
        img_title = img.attributes["title"].value
        "#{img_title} : #{img_url}"
    end
=end
    def self.img
        max = JSON.parse(open('http://xkcd.com/info.0.json').read)["num"]
        comic_num = Random.rand(max) 
        comic_num = 1 if comic_num == 404 # Avoid 404th comic ;)
        comic = JSON.parse(open("http://xkcd.com/#{comic_num}/info.0.json").read)
        "#{comic['alt']} : #{comic['img']}"    
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xkcd-1.0.0 lib/xkcd.rb