Class: Flacky::FlacMetadataImporter

Inherits:
Object
  • Object
show all
Defined in:
lib/flacky/flac_metadata_importer.rb

Defined Under Namespace

Classes: Response

Instance Method Summary collapse

Constructor Details

#initialize(file) ⇒ FlacMetadataImporter

Returns a new instance of FlacMetadataImporter.



9
10
11
# File 'lib/flacky/flac_metadata_importer.rb', line 9

def initialize(file)
  @file = file
end

Instance Method Details

#import!Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/flacky/flac_metadata_importer.rb', line 13

def import!
  return Resonse.new(nil, 0) if ! File.exists?()

  md = JSON.parse(IO.read())

  elapsed = Benchmark.measure do
    FlacTagger.update(@file) do
      trackn_good = self["TRACKNUMBER"] && self["TRACKNUMBER"].to_i > 0
      discn_good = self["DISCNUMBER"] && self["DISCNUMBER"].to_i > 0
      md_good = md["flac"] && md["flac"]["totaltracks"] \
        && md["flac"]["totaltracks"].is_a?(Array)
      totaltracks = md["flac"]["totaltracks"][self["DISCNUMBER"].to_i - 1]

      %w{artist album genre style mood fileowner}.each do |t|
        tag(t, md["flac"][t]) if md["flac"] && md["flac"][t]
      end

      tag "DATE", md["flac"]["year"] if md["flac"]["year"]

      if trackn_good && discn_good && md_good
        tag('TOTALTRACKS', totaltracks.to_s)
        tag('TOTALDISCS', md["flac"]["totaltracks"].size.to_s)
      end
    end
  end

  Response.new(, elapsed.real)
end