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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/got_mp3.rb +36 -14
- data.tar.gz.sig +0 -0
- metadata +22 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c34d1db35e8baadaaf24b2fa70f3598a64ec38ddd47095188a82eae76e063573
|
4
|
+
data.tar.gz: 86bb8da65ce447a7bbd168b068cc9b992b551b0db201eac8a3e2949fdc1d5dba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
190
|
-
|
191
|
-
end.join("\n")
|
204
|
+
# :xml
|
205
|
+
puts 'xml' if @debug
|
192
206
|
|
193
|
-
|
207
|
+
dx = DxLite.new('album[album_artist, album]/track(tracknum, title, ' +
|
208
|
+
'artist, disc, album_artist)')
|
194
209
|
|
195
|
-
|
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.
|
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-
|
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
|