Module: Miyuki::Parser

Defined in:
lib/miyuki/parser.rb

Class Method Summary collapse

Class Method Details

.filter_episodes!(torrents, from_episode, skip = false) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/miyuki/parser.rb', line 28

def filter_episodes!(torrents, from_episode, skip = false)
  range = from_episode..1.0/0

  if range
    torrents.select! do |torrent|
      return skip unless torrent.title

      episode = torrent.title.scan(/- [0-9]*\.?[0-9]+/).last
      episode = episode.scan(/[0-9]*\.?[0-9]+/).last if episode
      episode = episode[1..-1] if episode && episode[0] == '0'

      if episode
        is_integer?(episode) ? range.include?(episode.to_i) : skip
      else
        skip
      end
    end
  end
end

.parse(series) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/miyuki/parser.rb', line 18

def parse(series)
  pattern = series.fetch('pattern', '[$fansub] $name')

  pattern.scan(/\$[a-zA-Z_]*/).each do |var|
    pattern.gsub!(var, series[var[1..-1]]) if series.has_key?(var[1..-1])
  end

  pattern
end