diff options
author | Marius <mariausol@gmail.com> | 2013-10-20 01:20:14 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-10-20 01:20:14 +0300 |
commit | 965214d981e6129b782c67adcaf3a81aedcb0bac (patch) | |
tree | 84f5945aae8efc9b6eb1898b873be5453cafe43d /scripts/context/lua/mtx-flac.lua | |
parent | e7d0d90a434e5452ff9e86c8abab5a4cac35e2f1 (diff) | |
download | context-965214d981e6129b782c67adcaf3a81aedcb0bac.tar.gz |
stable 2013.05.28 00:36
Diffstat (limited to 'scripts/context/lua/mtx-flac.lua')
-rw-r--r-- | scripts/context/lua/mtx-flac.lua | 37 |
1 files changed, 8 insertions, 29 deletions
diff --git a/scripts/context/lua/mtx-flac.lua b/scripts/context/lua/mtx-flac.lua index 4e01abc99..2155b24be 100644 --- a/scripts/context/lua/mtx-flac.lua +++ b/scripts/context/lua/mtx-flac.lua @@ -56,20 +56,11 @@ readers.default = function(f,size,target) f:seek("cur",size) end -local valid = { - ["fLaC"] = true, - ["ID3♥"] = false, -} - function flac.getmetadata(filename) local f = io.open(filename, "rb") if f then - local banner = readstring(f,4) - local whatsit = valid[banner] - if whatsit ~= nil then - if whatsit == false then - flac.report("suspicious flac file: %s (%s)",filename,banner) - end + local banner = readstring(f,4) + if banner == "fLaC" then local data = { banner = banner, filename = filename, @@ -105,14 +96,13 @@ function flac.savecollection(pattern,filename) local files = dir.glob(pattern) flac.report("%s files found, analyzing files",#files) local music = { } - table.sort(files) for i=1,#files do local data = flac.getmetadata(files[i]) if data then - local tags = data.tags - local info = data.info - local artist = tags.artist or "no-artist" - local album = tags.album or "no-album" + local tags = data.tags + local info = data.info + local artist = tags.artist + local album = tags.album local albums = music[artist] if not albums then albums = { } @@ -144,18 +134,8 @@ function flac.savecollection(pattern,filename) f:write("\t<artist>\n") f:write("\t\t<name>",lpegmatch(p_escaped,artist),"</name>\n") f:write("\t\t<albums>\n") - local list = table.keys(albums) - table.sort(list,function(a,b) - local ya, yb = albums[a].year or 0, albums[b].year or 0 - if ya == yb then - return a < b - else - return ya < yb - end - end) - for nofalbums=1,#list do - local album = list[nofalbums] - local data = albums[album] + for album, data in sortedpairs(albums) do + nofalbums = nofalbums + 1 f:write("\t\t\t<album year='",data.year or 0,"'>\n") f:write("\t\t\t\t<name>",lpegmatch(p_escaped,album),"</name>\n") f:write("\t\t\t\t<tracks>\n") @@ -199,7 +179,6 @@ local helpinfo = [[ <category name="basic"> <subcategory> <flag name="collect"><short>collect albums in xml file</short></flag> - <flag name="pattern"><short>use pattern for locating files</short></flag> </subcategory> </category> </flags> |