-- 2016.11.20 -- -- Script will return "Yes" or "No" -- Fields: "m4a", "flac", "ape" function ContentGetSupportedField(Index) if (Index == 0) then return "m4a","", 8; -- FieldName,Units,ft_string elseif (Index == 1) then return "flac","", 8; elseif (Index == 2) then return "ape","", 8; end return "","", 0; end function ContentGetDetectString() return 'EXT="*"' end function ContentGetValue(FileName, FieldIndex, UnitIndex, flags) local k, name, cmd, ext, f name = string.match(FileName, "^.*[\\/]([^\\/]+)$") if (name == "..") then return nil; end k = SysUtils.FileGetAttr(FileName); if (k < 0) then return nil; -- файл/каталог не существует elseif (math.floor(k / 16) % 2 ~= 0) then if (string.find(FileName, "/", 1, true) == nil) then cmd = "dir \"" .. FileName .. "\" /b /s /l /x"; -- для Win else cmd = "ls -R -1 \"" .. FileName .. "\""; -- для Linux end if (FieldIndex == 0) then ext = "m4a"; elseif (FieldIndex == 1) then ext = "flac"; elseif (FieldIndex == 2) then ext = "ape"; end for f in io.popen(cmd):lines() do if (string.find(f, "%." .. ext .. "$") ~= nil) then return "Yes"; end end return "No"; else return nil; end return nil; end |