mediafile 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a7bcf6ac66198cbc1ced8c4dad57a421b972dcd
4
- data.tar.gz: 67ca3e8a2a6d9faf352238812ff16c437a41e95f
3
+ metadata.gz: 2f05a893a431ccf6a01d7ce805d638dccf833ee6
4
+ data.tar.gz: f977d616d977d2d6da6f13bada1172ef619c827f
5
5
  SHA512:
6
- metadata.gz: 26bdcdbea2842a5d3567cee06019d6a26dccbf3548ac6e14d674a7c4eaa4e2da7440eee7d2a6c77a797ec8238fefb9f04f4899d2c67e9c71381a9be3360d2790
7
- data.tar.gz: c68c42c8ebb3ad8260b2dc54a93d05bac6f7803ecef6d0c9a94b06d026de08551f4b7223e8bf39de0e368c8aaff6d058fa17e795c9cf99190699333cafa8dcb9
6
+ metadata.gz: 9958d8b4ca7fb6bc581eb3c81b61695e6721c9ffcd6be9b99645dc16c702b9882b83d3285d8f5ee51812bd55ffa5e34080fb8659931507cda87bf1653018ecc4
7
+ data.tar.gz: 6dea2e30560c492ed3b79d17c7badd07736a7ed0a88c3a36f0f65c3055d70158b49f1ba307e00a4fee2ae2b38d3d92dbadf40f26f7fb3398f3288eb9c6a5d85e
@@ -40,7 +40,7 @@ module MediaFile; class MediaFile
40
40
  begin
41
41
  transcode_table.has_key?(@type) ?
42
42
  transcode(transcode_table, temp_dest) :
43
- FileUtils.cp(@source, temp_dest)
43
+ really_copy(@source, temp_dest)
44
44
  FileUtils.mv temp_dest, destination
45
45
  rescue => e
46
46
  FileUtils.rm temp_dest if File.exists? temp_dest
@@ -72,6 +72,11 @@ module MediaFile; class MediaFile
72
72
 
73
73
  private
74
74
 
75
+ def really_copy(src,dest)
76
+ FileUtils.cp(src, dest)
77
+ set_album_artist(dest)
78
+ end
79
+
75
80
  def set_decoder()
76
81
  case @type
77
82
  when :flac
@@ -241,6 +246,34 @@ module MediaFile; class MediaFile
241
246
  ) << ".#{transcode_table[@type] || @type}"
242
247
  end
243
248
 
249
+ def set_album_artist(file)
250
+ type = file[/(\w+)$/].downcase.to_sym
251
+ return unless @force_album_artist
252
+ case type
253
+ when :m4a
254
+ TagLib::MP4::File.open(file) do |f|
255
+ f.tag.item_list_map.insert("aART", TagLib::MP4::Item.from_string_list([@force_album_artist]))
256
+ f.save
257
+ end
258
+ when :flac
259
+ TagLib::FLAC::File.open(file) do |f|
260
+ tag = f.xiph_comment
261
+ ['ALBUMARTIST', 'ALBUM ARTIST', 'ALBUM_ARTIST'].select do |t|
262
+ tag.add_field(t, @force_album_artist)
263
+ end
264
+ f.save
265
+ end
266
+ when :mp3
267
+ TagLib::MPEG::File.open(file) do |f|
268
+ tag = f.id3v2_tag
269
+ frame = TagLib::ID3v2::TextIdentificationFrame.new("TPE2", TagLib::String::UTF8)
270
+ frame.text = @force_album_artist
271
+ tag.add_frame(frame)
272
+ f.save
273
+ end
274
+ end
275
+ end
276
+
244
277
  def read_tags
245
278
  return if @red
246
279
  @album = @artist= @title = @genre = @year = nil
@@ -1,3 +1,3 @@
1
1
  module MediaFile
2
- VERSION = "0.1.4" unless defined?(::MediaFile::VERSION)
2
+ VERSION = "0.1.5" unless defined?(::MediaFile::VERSION)
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediafile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Harvey-Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-06 00:00:00.000000000 Z
11
+ date: 2016-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: taglib-ruby