Warning, /multimedia/kid3/src/qml/script/EmbedAlbumArt.qml is written in an unsupported language. File is not indexed.
0001 /**
0002 * \file EmbedAlbumArt.qml
0003 * Embed cover art found in image files into audio files in the same folder.
0004 *
0005 * \b Project: Kid3
0006 * \author Urs Fleisch
0007 * \date 08 Mar 2015
0008 *
0009 * Copyright (C) 2015-2017 Urs Fleisch
0010 *
0011 * This program is free software; you can redistribute it and/or modify
0012 * it under the terms of the GNU Lesser General Public License as published by
0013 * the Free Software Foundation; version 3.
0014 *
0015 * This program is distributed in the hope that it will be useful,
0016 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0018 * GNU Lesser General Public License for more details.
0019 *
0020 * You should have received a copy of the GNU Lesser General Public License
0021 * along with this program. If not, see <http://www.gnu.org/licenses/>.
0022 */
0023
0024 import Kid3 1.1
0025
0026 Kid3Script {
0027 onRun: {
0028 var lastDir, picName, picData
0029 var baseName = configs.fileConfig().defaultCoverFileName
0030
0031 function doWork() {
0032 if (app.selectionInfo.tag(Frame.Tag_2).tagFormat ||
0033 app.selectionInfo.tag(Frame.Tag_1).tagFormat) {
0034 var fileName = app.selectionInfo.fileName
0035 var dirName = app.selectionInfo.filePath
0036 dirName = dirName.substring(0, dirName.length - fileName.length)
0037 if (dirName !== lastDir) {
0038 lastDir = dirName
0039 var existingImageFiles = script.listDir(dirName, ["*.png", "*.jpg", "*.webp"])
0040 picName = ""
0041 picData = null
0042 if (existingImageFiles.indexOf(baseName) !== -1) {
0043 picName = baseName
0044 } else if (existingImageFiles.length > 0) {
0045 picName = existingImageFiles[0]
0046 }
0047 if (picName) {
0048 picName = dirName + picName
0049 picData = script.readFile(picName)
0050 if (script.getDataSize(picData) === 0) {
0051 picData = null
0052 }
0053 }
0054 }
0055 if (picData) {
0056 if (script.getDataSize(app.getPictureData()) === 0) {
0057 app.setPictureData(picData)
0058 console.log("%1: Embedding picture from %2".
0059 arg(fileName).arg(picName))
0060 } else {
0061 console.log(fileName + ": Already contains picture")
0062 }
0063 }
0064 }
0065 if (!nextFile()) {
0066 if (isStandalone()) {
0067 // Save the changes if the script is started stand-alone, not from Kid3.
0068 app.saveDirectory()
0069 }
0070 Qt.quit()
0071 } else {
0072 setTimeout(doWork, 1)
0073 }
0074 }
0075
0076 firstFile()
0077 doWork()
0078 }
0079 }