got_mp3 0.2.2 → 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: 44c046df30aa09ee8f417c5151a511c16a55758cb324b64c9b8bb376f68b14ac
4
- data.tar.gz: d6b18ee2753e965126a74218816625f48c36bdb09ca3b0b91b822236934f4158
3
+ metadata.gz: c34d1db35e8baadaaf24b2fa70f3598a64ec38ddd47095188a82eae76e063573
4
+ data.tar.gz: 86bb8da65ce447a7bbd168b068cc9b992b551b0db201eac8a3e2949fdc1d5dba
5
5
  SHA512:
6
- metadata.gz: 3b8136cf7e4e913de207514afbe0c24295e95a18131c64aa49c57a5ce8c554cb9411ac638626c840aa3a0653f01391fd7e43f5d1aabafc0c090521a7dd58cffa
7
- data.tar.gz: db25f65976be5cccda5a2ef7a56a194ae08577c56e916fdcd368de15cc8a5b70e563e6e5792ce7179a4f70a0df1fdc5074e6bb334636257b9f6590500c15aa79
6
+ metadata.gz: 5c666482d88a53d4e608316cbbbe83dd8b7b2c1fed9d725f666fdbf0c32c4e20ff809e5a2a51f72f87cf63659dc94f3f1bf5420b823bbebb0638b7e95781bcfe
7
+ data.tar.gz: f6508835a0db94da8febc2d301ed40ab8b490caf17caf74af73c46418e0ffddb80142a3c24f8a82ca157a355bec0fa792cb6b813af9ae8dcf3c66ac350c702d4
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/got_mp3.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  # file: got_mp3.rb
4
4
 
5
+ require 'dxlite'
5
6
  require 'ostruct'
6
7
  require "mp3info"
7
8
 
@@ -77,13 +78,11 @@ class GotMP3
77
78
 
78
79
  find_by_ext('.mp3').each do |directory, _ |
79
80
 
80
- puts 'write_titles() - directory: ' + directory.inspect if @debug
81
81
  txt_filename = Dir[File.join(directory, '*.txt')].first
82
82
 
83
83
  next unless txt_filename
84
84
 
85
85
  target_file = File.basename(directory)
86
-
87
86
  FileUtils.cp txt_filename, File.join(target_directory,
88
87
  target_file + '.txt')
89
88
 
@@ -149,7 +148,7 @@ class GotMP3
149
148
 
150
149
  end
151
150
 
152
- def write_titles()
151
+ def write_titles(format: 'txt')
153
152
 
154
153
  puts 'inside write_titles()' if @debug
155
154
 
@@ -158,41 +157,64 @@ class GotMP3
158
157
  puts 'write_titles() - directory: ' + directory.inspect if @debug
159
158
  txt_filename = Dir[File.join(directory, '*.txt')].first
160
159
 
161
- next if txt_filename
160
+ next if txt_filename and format.to_sym == :txt
162
161
 
163
162
  tracks = []
164
163
 
165
164
  each_mp3_track(directory) do |mp3, trackno, mp3_filepath|
166
165
 
167
166
  tracks << OpenStruct.new({
168
- title: mp3.tag.title,
167
+ title: mp3.tag.title.sub(/^\d+\. */,''),
169
168
  artist: mp3.tag.artist,
170
169
  album: mp3.tag.album,
171
- album_artist: mp3.tag2['TPE2'],
172
- disc: mp3.tag2['TPOS'],
170
+ album_artist: mp3.tag2['TPE2'] || mp3.tag.artist,
171
+ disc: mp3.tag2['TPOS'] || 1,
173
172
  tracknum: mp3.tag.tracknum,
174
173
  filename: File.basename(mp3_filepath)
175
174
  })
176
175
 
177
176
  end
178
177
 
178
+ puts 'tracks: ' + tracks.inspect if @debug
179
+
179
180
  heading = tracks[0].album_artist + ' - ' + tracks[0].album
181
+
180
182
  s = "# %s\n\n" % [heading]
181
183
  h = tracks.group_by(&:disc)
182
184
 
183
- body = if h.length == 1 then
184
185
 
185
- list(tracks)
186
+ if format.to_sym == :txt then
187
+
188
+ body = if h.length == 1 then
189
+
190
+ list(tracks)
191
+
192
+ else
193
+
194
+ "\n" + h.map do |disc, tracks2|
195
+ ("## Disc %d\n\n" % disc) + list(tracks2) + "\n\n"
196
+ end.join("\n")
197
+
198
+ end
199
+
200
+ File.write File.join(directory, heading + '.txt'), s + body
186
201
 
187
202
  else
188
203
 
189
- "\n" + h.map do |disc, tracks2|
190
- ("## Disc %d\n\n" % disc) + list(tracks2) + "\n\n"
191
- end.join("\n")
204
+ # :xml
205
+ puts 'xml' if @debug
192
206
 
193
- end
207
+ dx = DxLite.new('album[album_artist, album]/track(tracknum, title, ' +
208
+ 'artist, disc, album_artist)')
194
209
 
195
- File.write File.join(directory, heading + '.txt'), s + body
210
+ h.each {|_,x| puts x.inspect } if @debug
211
+ h.each {|_,x| x.each {|track| dx.create(track.to_h) } }
212
+
213
+ dx.album_artist = dx.all[0].album_artist
214
+ dx.album = dx.all[0].album
215
+ dx.save File.join(directory, 'playlist.dx')
216
+
217
+ end
196
218
 
197
219
  end
198
220
 
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.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,8 +35,28 @@ cert_chain:
35
35
  RFrZsrDO1Cwk4v03qCUvuZ8H/nCojYYJGMrJE1JhBBJNJXCAULivh/zlOYcDhG69
36
36
  uPtZOD7YKrG45OftX8aNxlNv
37
37
  -----END CERTIFICATE-----
38
- date: 2021-11-26 00:00:00.000000000 Z
38
+ date: 2021-11-27 00:00:00.000000000 Z
39
39
  dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: dxlite
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.3'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.3.5
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.3'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.3.5
40
60
  - !ruby/object:Gem::Dependency
41
61
  name: ruby-mp3info
42
62
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file