got_mp3 0.1.0 → 0.1.1

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: ba5c71c2a3dd150c8be5e6f1d370c6437145e8b6dd95f139647f67ddba469a1f
4
- data.tar.gz: c267589160c6a9ba438b997ccec0365c6c069766947fdf5bc802a9f8f1687e9d
3
+ metadata.gz: 838f650beb51908cd19f1c17ea92c14fc017311a27294e1870f65ba5910110e2
4
+ data.tar.gz: 79bc380538aa93ebd4ecc1e007699cad0d1f01f0082c85a7077d1ca2ae52c7dd
5
5
  SHA512:
6
- metadata.gz: 988db3e77e2d5695efaf0a47f27f84f5c34c774dd49d81ee63ff095221b1cf641e9f827f79b22c84e88c8c2734c02ef8add3314a2d0da87a25f6ebf989e76763
7
- data.tar.gz: eb1e2afa7793029dc227c55476138bc6aa02664ddf92a57afabe2b3f6d24d219a55e0609905a374d2b762fa8469578f44a9c3a13ba11d50339139d6280721102
6
+ metadata.gz: '09309170f4a66c730c1e1a7dca2c27a67a65576eac016b7f8808301d2378cf859b42971661dabb18571e1e6c46cfd865955ba5b35cf4ef6af36a214edcf85ed5'
7
+ data.tar.gz: 12f09a40443a40ed6524107b98fb984afce361a721af3584324401cbde2f7e5b60a2ef85000fcfee7dad2bc052306041d212f7fd962dedb7ae24a477f030c225
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/got_mp3.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+
2
3
  # file: got_mp3.rb
3
4
 
4
5
  require "mp3info"
@@ -11,32 +12,47 @@ class GotMP3
11
12
  end
12
13
 
13
14
 
15
+ # Adds album art to each MP3 file
16
+ #
14
17
  # Example usage:
15
18
  # gotmp3 = GotMP3.new(dir: '/tmp/tree/Da Fustra - Over The Waves To Shetland')
16
19
  # gotmp3.add_jpg
17
- #
20
+ #
18
21
  def add_jpg()
19
22
 
20
- a = Dir[File.join(@dir, "**", "*.jpg")]
21
- puts 'a: ' + a.inspect if @debug
22
- directories = a.inject({}) {|r, x| r[File.dirname(x)] = File.basename(x); r }
23
-
24
- directories.each do |directory, img_filename|
23
+ find_by_ext('.jpg').each do |directory, img_filename|
25
24
  add_image directory, img_filename
26
25
  end
27
26
 
28
27
  end
29
28
 
29
+ # Adds a track title to each MP3 file
30
+ #
31
+ # Example usage:
32
+ # gotmp3 = GotMP3.new(dir: '/tmp/tree/Da Fustra - Over The Waves To Shetland')
33
+ # gotmp3.add_titles
34
+ #
35
+ def add_titles()
36
+
37
+ find_by_ext('.txt').each do |directory, txt_filename|
38
+ add_tracktitles directory, txt_filename
39
+ end
40
+
41
+ end
42
+
43
+ #def go()
44
+ #end
45
+
30
46
  private
31
47
 
32
48
  # adds album art to each mp3 file in a file directory
33
49
  #
34
50
  def add_image(directory, img_filename)
35
51
 
36
- image_file = File.new(File.join(directory, img_filename),'rb')
52
+ image_file = File.new(File.join(directory, img_filename),'rb')
37
53
  img = image_file.read
38
54
 
39
- each_mp3(directory) do |mp3|
55
+ each_mp3(directory) do |mp3, _, _|
40
56
 
41
57
  mp3.tag2.remove_pictures
42
58
  mp3.tag2.add_picture img
@@ -45,16 +61,63 @@ class GotMP3
45
61
 
46
62
  end
47
63
 
48
- def each_mp3(directory, &blk)
64
+ def add_tracktitles(directory, txt_filename)
65
+
66
+ txt_file = File.join(directory, txt_filename)
67
+ track_titles = File.read(txt_file).lines[1..-1].map(&:strip)
68
+
69
+ each_mp3(directory) do |mp3, trackno, _|
70
+
71
+ mp3.tag.title = track_titles[trackno-1]
72
+
73
+ end
74
+ end
75
+
76
+ def add_image_and_titles(directory, img_filename, txt_filename)
77
+
78
+ image_file = File.new(File.join(directory, img_filename),'rb')
79
+ img = image_file.read
80
+
81
+ txt_file = File.join(directory, txt_filename)
82
+ track_titles = File.read(txt_file).lines[1..-1].map(&:strip)
49
83
 
50
- Dir[File.join(directory, "*.mp3")].each do |mp3_filepath|
84
+ found = Dir[File.join(directory, "*.mp3")].sort_by { |x| File.mtime(x) }
85
+ found.each.with_index do |mp3_filepath, i|
51
86
 
52
- Mp3Info.open mp3_filepath do |mp3|
53
- blk.call mp3
87
+ Mp3Info.open(mp3_filepath) do |mp3|
88
+ mp3.tag2.remove_pictures
89
+ mp3.tag2.add_picture img
90
+ mp3.tag.title = track_titles[trackno-1]
54
91
  end
55
92
 
93
+ File.rename(mp3_filepath, File.join(directory,
94
+ track_titles[i][/^[^\/]+/].gsub(/\W/,'').rstrip + '.mp3'))
56
95
  end
57
96
 
58
97
  end
59
98
 
99
+ def each_mp3(directory, &blk)
100
+
101
+ found = Dir[File.join(directory, "*.mp3")].sort_by { |x| File.mtime(x) }
102
+ found.each.with_index do |mp3_filepath, i|
103
+
104
+ Mp3Info.open(mp3_filepath) {|mp3| blk.call(mp3, i+1, mp3_filepath) }
105
+
106
+ end
107
+
108
+ end
109
+
110
+ def find_by_ext(extension)
111
+
112
+ a = Dir[File.join(@dir, "**", "*" + extension)]
113
+ puts 'a: ' + a.inspect if @debug
114
+
115
+ a.inject({}) do |r, x|
116
+
117
+ r[File.dirname(x)] = File.basename(x)
118
+ r
119
+
120
+ end
121
+ end
122
+
60
123
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: got_mp3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  RFrZsrDO1Cwk4v03qCUvuZ8H/nCojYYJGMrJE1JhBBJNJXCAULivh/zlOYcDhG69
36
36
  uPtZOD7YKrG45OftX8aNxlNv
37
37
  -----END CERTIFICATE-----
38
- date: 2021-11-24 00:00:00.000000000 Z
38
+ date: 2021-11-25 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ruby-mp3info
metadata.gz.sig CHANGED
@@ -1,3 +1 @@
1
- B?����# c6��^bf��鳈�62%�F9���&kZ9���jL�O�׽�[
2
- ��Z���@��
3
- ��~�ogF�> S�qc�Zq���U���y+���<�@̹�]��8l�r���5dTR�!��ũ����hQ�:��@#e"vڬ�ε��f��L���"����ݜ��У.:x0���;����k&H�yg���у�BZ�ҩsjE2���_��j:OM=ez��2�VU92NkB�h�
1
+ �٠�">��ievjjO̜ld���_���,�)aϵ�8