mediafile 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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