Class: IML::PatternBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/iml/pattern_builder.rb

Constant Summary collapse

FIELDS =
%i[
  title year tags quality source codec audio group
  extension season episode episode_title extras
  video_tags bit_depth
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PatternBuilder

Returns a new instance of PatternBuilder.



10
11
12
13
14
# File 'lib/iml/pattern_builder.rb', line 10

def initialize(config)
  @config = config
  @field_patterns = {}
  FIELDS.each { |f| @field_patterns[f] = config.pattern_for(f) }
end

Instance Method Details

#movie_patternsObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/iml/pattern_builder.rb', line 16

def movie_patterns
  @movie_patterns ||= [
    # Standard: title.year.tags.quality.source.codec.audio-group.ext
    build('^%<title>s\.%<year>s\.?%<tags>s\.?%<quality>s?\.?%<source>s\.%<codec>s\.?%<audio>s?-?%<group>s\.%<extension>s$'),
    # Audio before codec: title.year.tags.quality.source.audio.codec-group.ext
    build('^%<title>s\.%<year>s\.?%<tags>s\.?%<quality>s?\.?%<source>s\.%<audio>s\.?%<codec>s-?%<group>s\.%<extension>s$'),
    # Bracket format: title_(year)_[quality,source,audio,codec]_-_group.ext
    build('^%<title>s_\(%<year>s\)_\[%<quality>s,%<source>s,%<audio>s,%<codec>s\]_-_%<group>s.%<extension>s$'),
    # P2P with bracket group: title.year.tags.quality.source.extras[group].ext
    build('^%<title>s\.%<year>s\.?%<tags>s\.?%<quality>s?\.?%<source>s\.%<extras>s%<group>s\.%<extension>s$'),
    # Extended: title.year.quality.video_tags.source.codec.bit_depth.audio-group.ext
    build('^%<title>s\.%<year>s\.?%<tags>s\.?%<quality>s?\.?%<video_tags>s%<source>s\.%<codec>s\.?%<bit_depth>s\.?%<audio>s?-?%<group>s\.%<extension>s$')
  ].freeze
end

#tv_patternsObject



31
32
33
34
35
# File 'lib/iml/pattern_builder.rb', line 31

def tv_patterns
  @tv_patterns ||= [
    build('^%<title>s.S%<season>sE%<episode>s.?%<episode_title>s?.?%<quality>s?.%<source>s.%<audio>s?\.?%<codec>s-%<group>s.%<extension>s$')
  ].freeze
end