Skip to content

Instantly share code, notes, and snippets.

Created May 22, 2012 08:27
Show Gist options
  • Save anonymous/c91a57c54b08bb048b99 to your computer and use it in GitHub Desktop.
Save anonymous/c91a57c54b08bb048b99 to your computer and use it in GitHub Desktop.
#!/usr/bin/evn ruby
require 'net/http'
require 'open-uri'
# 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()
# This method gets random comic links from xkcd, the uri is the redirected location found in the resp headers
uri = URI.parse 'http://dynamic.xkcd.com/random/comic/'
req = Net::HTTP::Get.new(uri.request_uri)
http = Net::HTTP.new(uri.host)
res = http.start { |server|
server.request(req)
}
res["location"]
end
def self.img
url = 'http://dynamic.xkcd.com/random/comic/'
html = open(url).read()
imgs = URI.extract(html).select{ |l| l[/comics\//]}
imgs.first
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment