LOLastfm 0.0.3.5 → 0.0.3.6
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.
- data/lib/LOLastfm.rb +6 -2
- data/lib/LOLastfm/song.rb +12 -38
- data/lib/LOLastfm/version.rb +1 -1
- metadata +2 -2
data/lib/LOLastfm.rb
CHANGED
@@ -263,7 +263,9 @@ class LOLastfm
|
|
263
263
|
end
|
264
264
|
|
265
265
|
def use (*args, &block)
|
266
|
-
|
266
|
+
if args.empty? && !block
|
267
|
+
raise ArgumentError, 'no name or block given'
|
268
|
+
end
|
267
269
|
|
268
270
|
unless args.first.respond_to?(:to_hash) || block
|
269
271
|
name = args.shift.to_sym
|
@@ -276,7 +278,9 @@ class LOLastfm
|
|
276
278
|
rescue LoadError; end
|
277
279
|
end
|
278
280
|
|
279
|
-
block = self.class.checkers[name]
|
281
|
+
unless block = self.class.checkers[name]
|
282
|
+
raise ArgumentError, "#{name} checker could not be found"
|
283
|
+
end
|
280
284
|
end
|
281
285
|
|
282
286
|
if @checker
|
data/lib/LOLastfm/song.rb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
9
9
|
#++
|
10
10
|
|
11
|
-
require '
|
11
|
+
require 'taglib2'
|
12
12
|
require 'json'
|
13
13
|
require 'yaml'
|
14
14
|
require 'date'
|
@@ -69,45 +69,19 @@ class Song
|
|
69
69
|
def fill!
|
70
70
|
return if !@path || (@track && @title && @album && @artist && @comment && @length && @id)
|
71
71
|
|
72
|
-
TagLib::
|
73
|
-
if f.
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
@comment = f.tag.comment unless @comment
|
79
|
-
end
|
80
|
-
|
81
|
-
if f.audio_properties
|
82
|
-
@length = f.audio_properties.length.to_i unless @length
|
83
|
-
end
|
84
|
-
}
|
85
|
-
|
86
|
-
unless @id
|
87
|
-
TagLib::MPEG::File.new(@path).tap {|file|
|
88
|
-
next unless tag = file.id3v2_tag
|
89
|
-
|
90
|
-
if ufid = tag.frame_list('UFID').find { |u| u.owner == 'http://musicbrainz.org' }
|
91
|
-
@id = ufid.identifier
|
92
|
-
end
|
93
|
-
}
|
94
|
-
end
|
95
|
-
|
96
|
-
unless @id
|
97
|
-
TagLib::FLAC::File.new(@path).tap {|file|
|
98
|
-
next unless tag = file.xiph_comment
|
99
|
-
|
100
|
-
@id = tag.field_list_map['MUSICBRAINZ_TRACKID']
|
101
|
-
}
|
102
|
-
end
|
72
|
+
TagLib::File.new(@path).tap {|f|
|
73
|
+
@track = f.track && f.track.to_i if f.track && !@track
|
74
|
+
@title = f.title if f.title && !@title
|
75
|
+
@album = f.album if f.album && !@album
|
76
|
+
@artist = f.artist if f.artist && !@artist
|
77
|
+
@comment = f.comment if f.comment && !@comment
|
103
78
|
|
104
|
-
|
105
|
-
|
106
|
-
|
79
|
+
begin
|
80
|
+
@length = f.length.to_i if f.length && !@length
|
81
|
+
rescue TagLib::BadAudioProperties; end
|
107
82
|
|
108
|
-
|
109
|
-
|
110
|
-
end
|
83
|
+
f.close
|
84
|
+
}
|
111
85
|
end
|
112
86
|
|
113
87
|
def stream?; !!@stream; end
|
data/lib/LOLastfm/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: LOLastfm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3.
|
4
|
+
version: 0.0.3.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|