mediafile 0.2.12 → 0.3.0

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
  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: []