mediafile 0.2.12 → 0.3.0

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
  SHA256:
3
- metadata.gz: 78e32141528e2849d8f1ee8f20529200ffdda85edcaa853319ddb2da8fa2f1f1
4
- data.tar.gz: 88680356354e30f78f4b59bf6572ee4d5cb8e55015ec8e19a303a4b16bee618c
3
+ metadata.gz: 1d13b07db004204da62e828da733ff2e350adea5340efd5dc53d6e6adbf2d8b9
4
+ data.tar.gz: 8a085e9ac0f79ba5a31538531a4f36537ddf295d413039b8d844e452bbe3f960
5
5
  SHA512:
6
- metadata.gz: 3e564ed905d2ec30cc6bfed8301f4a78f204bbba643a4bddf426120fca465aeffd6075ffc84c1ef97760b447fd1bc0fa3d373df230594233a05f28e2e650eb00
7
- data.tar.gz: 2ae294445a9f023573c7c3197497350e8c8316342ca4ed44c1c52769f2f6c73f66a8fbd8b10242ab95e961b7e293de7dbde93f38547f0f7c7f39ca4b0d4d648f
6
+ metadata.gz: dc9392f337144ff23223e9703abca1d3702158088a16d1ae435a8e08b1948b3bed5e6dfa358644ccf77619e34c05bfd8cabb4ecb97bf62fcb01729599576fc89
7
+ data.tar.gz: 6c338249dc18475cd4bd4ae415b376929cb11be6bd8361c350d43145df663f2f944d5c60409fecaec1076dbd7aa699ac235eb997fe83528b4b59d6d3574b51d9
@@ -50,11 +50,13 @@ class MediaFile
50
50
  temp_dest = tmp_path base_dir: dest, typ: transcode_table[@type]
51
51
  debug "temp dest is '#{temp_dest}'"
52
52
 
53
- if File.exist?(destination)
54
- @noop = true
55
- info("File already exists at destination: #{@source} => #{destination}")
56
- return
57
- end
53
+ lock {
54
+ if File.exist?(destination) || File.exist?(temp_dest)
55
+ @noop = true
56
+ info("File already exists at destination: #{@source} => #{destination}")
57
+ end
58
+ }
59
+ return if @noop
58
60
 
59
61
  unless check_transfer(temp_dest)
60
62
  error "Another file is already getting " +
@@ -63,7 +65,10 @@ class MediaFile
63
65
  error "This file: #{@source} => #{temp_dest}"
64
66
  return
65
67
  end
68
+ really_copy(temp_dest, destination, transcode_table)
69
+ end
66
70
 
71
+ def really_copy(temp_dest, destination, transcode_table)
67
72
  debug("Create parent directories at '#{File.dirname destination}'.")
68
73
  FileUtils.mkdir_p File.dirname destination
69
74
  FileUtils.touch temp_dest
@@ -287,7 +292,7 @@ class MediaFile
287
292
  case typ
288
293
  when :m4a
289
294
  TagLib::MP4::File.open(file) do |f|
290
- return true if f.tag.item_list_map['covr'].to_cover_art_list.find do |p|
295
+ return true if f.tag.item_map['covr'].to_cover_art_list.find do |p|
291
296
  p.format == TagLib::MP4::CoverArt::JPEG
292
297
  end
293
298
  end
@@ -324,7 +329,7 @@ class MediaFile
324
329
  case @type
325
330
  when :m4a
326
331
  TagLib::MP4::File.open(@source) do |f|
327
- p = f.tag.item_list_map['covr'].to_cover_art_list.first
332
+ p = f.tag.item_map['covr'].to_cover_art_list.first
328
333
  p.data if p
329
334
  end
330
335
  when :flac
@@ -355,7 +360,7 @@ class MediaFile
355
360
  TagLib::MP4::File.open(file) do
356
361
  c = TagLib::MP4::CoverArt.new(TagLib::MP4::CoverArt::JPEG, cover_art)
357
362
  item = TagLib::MP4::Item.from_cover_art_list([c])
358
- file.tag.item_list_map.insert('covr', item)
363
+ file.tag.item_map.insert('covr', item)
359
364
  file.save
360
365
  end
361
366
  when :flac
@@ -396,7 +401,7 @@ class MediaFile
396
401
  case typ
397
402
  when :m4a
398
403
  TagLib::MP4::File.open(file) do |f|
399
- f.tag.item_list_map.insert("aART",
404
+ f.tag.item_map.insert("aART",
400
405
  TagLib::MP4::Item.from_string_list([@force_album_artist]))
401
406
  f.save
402
407
  end
@@ -440,8 +445,10 @@ class MediaFile
440
445
  tag.comment = "#{@comment}"
441
446
  tag.title = (@title || @name.tr('_',' ')) unless tag.title && tag.title != ""
442
447
  if (typ == :mp3)
448
+ debug("saving tags as id3v2")
443
449
  f.save(TagLib::MPEG::File::ID3v2)
444
450
  else
451
+ debug("NOT saving tages as id3v2")
445
452
  f.save
446
453
  end
447
454
  end
@@ -474,11 +481,11 @@ class MediaFile
474
481
  case @type
475
482
  when :m4a
476
483
  TagLib::MP4::File.open(@source) do |file|
477
- @disc_number = file.tag.item_list_map["disk"] ?
478
- file.tag.item_list_map["disk"].to_int_pair[0] :
484
+ @disc_number = file.tag.item_map["disk"] ?
485
+ file.tag.item_map["disk"].to_int_pair[0] :
479
486
  nil
480
- @album_artist = file.tag.item_list_map["aART"] ?
481
- file.tag.item_list_map["aART"].to_string_list[0] :
487
+ @album_artist = file.tag.item_map["aART"] ?
488
+ file.tag.item_map["aART"].to_string_list[0] :
482
489
  @album_artist
483
490
  end
484
491
  when :flac
@@ -1,3 +1,3 @@
1
1
  module MediaFile
2
- VERSION = "0.2.12" unless defined?(::MediaFile::VERSION)
2
+ VERSION = "0.3.0" unless defined?(::MediaFile::VERSION)
3
3
  end
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediafile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.12
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Harvey-Smith
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-04 00:00:00.000000000 Z
11
+ date: 2023-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: taglib-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.6.0
20
17
  - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '0.6'
19
+ version: 1.1.2
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 0.6.0
30
24
  - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '0.6'
26
+ version: 1.1.2
33
27
  description: Parse media file metadata, copy or transcode mediafiles.
34
28
  email:
35
29
  - jharveysmith@gmail.com
@@ -48,23 +42,23 @@ homepage: https://github.com/seginoviax/mediafile
48
42
  licenses:
49
43
  - MIT
50
44
  metadata: {}
51
- post_install_message:
45
+ post_install_message:
52
46
  rdoc_options: []
53
47
  require_paths:
54
48
  - lib
55
49
  required_ruby_version: !ruby/object:Gem::Requirement
56
50
  requirements:
57
- - - "~>"
51
+ - - ">="
58
52
  - !ruby/object:Gem::Version
59
- version: '2'
53
+ version: '2.7'
60
54
  required_rubygems_version: !ruby/object:Gem::Requirement
61
55
  requirements:
62
56
  - - ">="
63
57
  - !ruby/object:Gem::Version
64
58
  version: '0'
65
59
  requirements: []
66
- rubygems_version: 3.0.6
67
- signing_key:
60
+ rubygems_version: 3.4.3
61
+ signing_key:
68
62
  specification_version: 4
69
63
  summary: Parse media file metadata.
70
64
  test_files: []