// Cover Art Dimensions // (c) 2020 Steve Banham scriptName = "Cover Art Dimensions Column"; scriptVersion = "1.5"; scriptDate = "22/03/2020"; scriptCopyright = "(c) 2020 Steve Banham"; scriptMinVersion = "12"; scriptURL = "https://resource.dopus.com/t/cover-art-dimensions-column"; scriptDesc = "Adds a new column displaying the dimensions of the cover art in a music file."; // This is a script for Directory Opus. // See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information. // Called by Directory Opus to initialize the script function OnInit(initData) { initData.name = scriptName; initData.version = scriptVersion; initData.copyright = scriptCopyright; initData.url = scriptURL; initData.desc = scriptDesc; initData.default_enable = true; initData.min_version = scriptMinVersion; initData.config_desc = DOpus.Create.Map(); initData.config_groups = DOpus.Create.Map(); var configName = ""; configName = "Directories"; initData.Config[configName] = ""; initData.config_desc(configName) = "String to show for directories (Can be blank)."; initData.config_groups(configName) = "No Cover Art"; configName = "Files"; initData.Config[configName] = "---"; initData.config_desc(configName) = "String to show for files without cover art (Can be blank)."; initData.config_groups(configName) = "No Cover Art"; configName = "Bit Depth"; initData.Config[configName] = true; initData.config_desc(configName) = "Include bit depth in column."; initData.config_groups(configName) = "Include In Column"; configName = "Image Type"; initData.Config[configName] = true; initData.config_desc(configName) = "Include the image type in the column."; initData.config_groups(configName) = "Include In Column"; configName = "Image Size"; initData.config[configName] = true; initData.config_desc(configName) = "Include the image size in the column."; initData.config_groups(configName) = "Include In Column"; var col = initData.AddColumn(); col.name = "CoverArtDim"; col.method = "OnCoverArtDim"; col.label = "Cover Art Dimensions"; col.header = "Cover Art Dimensions"; col.autogroup = true; col.autorefresh = true; col.justify = "left"; col.match.push_back("Yes"); } function OnCoverArtDim(scriptColData) { if (scriptColData.item.is_dir) { scriptColData.value = Script.Config["Directories"]; return; } if (scriptColData.item.metadata() == "audio" && scriptColData.item.metadata.audio.coverart > 0) { var caExt = scriptColData.item.metadata.audio.coverart(0).ext; var caSize = scriptColData.item.metadata.audio.coverart(0).size; if(caExt == ".jpg"){ caExt = "JPEG Image"; } else { caExt = "PNG Image"; } var colData = scriptColData.item.metadata.audio.coverart(0).width + " x " + scriptColData.item.metadata.audio.coverart(0).height; if (Script.Config["Bit Depth"] == true) { colData = colData + " x " + scriptColData.item.metadata.audio.coverart(0).depth; } if (Script.Config["Image Size"] == true) { colData = colData + " (" + caSize.fmt() + ")"; } if (Script.Config["Image Type"] == true) { colData = colData + " " + caExt; } scriptColData.value = colData; } else { scriptColData.value = Script.Config["Files"]; } } function OnAboutScript(aboutData) { dlg = DOpus.Dlg; dlg.window = aboutData.window; dlg.title = scriptName; dlg.message = scriptName + " v" + scriptVersion + "\t\t" + scriptDate+ "\n\n" + scriptDesc + "\n\n" + scriptCopyright; dlg.buttons = "Close"; dlg.icon = "info"; dlg.show; }