class Bathyscaphe::TVDB

Constants

TVREGEXP1
TVREGEXP2
TVREGEXP3
TVREGEXP4
TVREGEXP5

Attributes

episode[RW]
name[RW]
season[RW]

Public Class Methods

new(filename, filedir) click to toggle source
# File lib/bathyscaphe/tvdb.rb, line 13
def initialize filename, filedir

  wholefile = File.join(filedir, filename)
  @name = @season = @episode = nil

  if md = filename.match(TVREGEXP1) || md = filename.match(TVREGEXP2) || md = filename.match(TVREGEXP3)
    @name, @season, @episode = get_from_md(md)
  end
  return unless [@name, @season, @episode].collect(&:blank?).any?

  if md = wholefile.match(TVREGEXP4) || md = wholefile.match(TVREGEXP5)
    @name, @season, @episode = get_from_md(md)
  end
  return unless [@name, @season, @episode].collect(&:blank?).any?

  if md = filedir.split("/").last.match(/(.*)Season(.*)/i)  
    @name = md[1].gsub(/[-.]+/i, ' ').gsub("'", '').strip
    @season = md[2].strip.scan(/^(\d+).*/).flatten.last.to_i.to_s
    if namemd = filename.match(/(\d*).*/)
      @episode = namemd[1].to_i.to_s
    end
  end

end

Public Instance Methods

get_from_md(md) click to toggle source
# File lib/bathyscaphe/tvdb.rb, line 38
def get_from_md(md)
  name = md[1].gsub(/[-.]+/i, " ").strip
  name = "Castle" if name =~ /Castle 2009/i
  name = "Missing (2012)" if name =~ /Missing 2012/i
  name = "Brooklyn Nine-Nine" if name =~ /Brooklyn Nine Nine/i
  season = md[2].to_i.to_s
  episode = md[3].to_i.to_s
  return name, season, episode
end