class SerieGetter

Attributes

api_domain[R]
api_protocol[R]
name[R]

Public Class Methods

new(name) click to toggle source
# File lib/serie_getter.rb, line 10
def initialize(name)
  @name         = CGI::escape(name)
  @api_domain   = 'thetvdb.com'
  @api_protocol = 'http'
end

Public Instance Methods

base_url(add=nil) click to toggle source
# File lib/serie_getter.rb, line 16
def base_url(add=nil)
  URI.parse("%s://%s/%s" % [self.api_protocol, self.api_domain, add])
end
fetch() click to toggle source
# File lib/serie_getter.rb, line 24
def fetch
  url = get_series_url
  req = Net::HTTP::Get.new(url.to_s)
  res = Net::HTTP.start(url.host, url.port) {|http| http.request(req)}

  return res.body
end
get_series_url() click to toggle source
# File lib/serie_getter.rb, line 20
def get_series_url
  self.base_url("api/GetSeries.php?seriesname=%s" % self.name)
end
make_nfo(outdir, force=false) click to toggle source
# File lib/serie_getter.rb, line 44
def make_nfo(outdir, force=false)
  content = self.pres_url
  outfile = Pathname.new(outdir).join('tvshow.nfo')

  if content and (!outfile.exist? || force)
    File.write(outfile, content.to_s)
    return true
  else
    return false
  end
end
pres_url() click to toggle source
# File lib/serie_getter.rb, line 39
def pres_url
  sid = self.series_id
  sid ? self.base_url("index.php?tab=series&id=%s" % sid) : nil
end
series_id() click to toggle source
# File lib/serie_getter.rb, line 32
def series_id
  xml  = LibXML::XML::Parser.string(self.fetch)
  doc  = xml.parse
  node = doc.find('//Data//seriesid').first
  return node ? node.content : nil
end