Programmeringsgränssnittet kan enkelt utforskas genom att använda QML-terminalen, som är tillgänglig som ett exempelskript med ett användargränssnitt.
Kid3Script
är en vanlig QML-komponent som finns i katalogen med insticksprogram. Du skulle lika enkelt kunna använda en annan QML-komponent. Genom att använda Kid3Script
blir det enkelt att starta skriptfunktionen med signalhanteraren onRun
. Dessutom erbjuder den några funktioner:
onRun: Signalhanterare som anropas när skriptet startas tagv1, tagv2, tagv2v1: Konstanter för taggparametrar script: Åtkomst till skriptfunktioner configs: Åtkomst till inställningsobjekt getArguments(): Lista över skripargument isStandalone(): true om skriptet inte startades inifrån Kid3 setTimeout(callback, delay): Startar återanrop efter delay ms firstFile(): Till första markerade fil nextFile(): Till nästa markerade fil
Eftersom JavaScript och därför också QML bara har en begränsad uppsättning funktioner för skript, har objektet script
några ytterligare metoder, exempelvis:
script.properties(obj): Sträng med Qt-egenskaper script.writeFile(filePath, data): Skriv data i filen, true om ok script.readFile(filePath): Läs data från fil script.removeFile(filePath): Ta bort fil, true om ok script.fileExists(filePath): true om filen finns script.fileIsWritable(filePath): true om filen är skrivbar script.getFilePermissions(filePath): Hämta filrättighetsbitar script.setFilePermissions(filePath, modeBits): Tilldela filrättighetsbitar script.classifyFile(filePath): Hämta filklassen (katalog "/", symbolisk länk "@", exe "*", file " ") script.renameFile(oldName, newName): Byt namn på fil, true om ok script.copyFile(source, dest): Kopiera fil, true om ok script.makeDir(path): Skapa katalog, true om ok script.removeDir(path): Ta bort katalog, true om ok script.tempPath(): Sökväg till temporär katalog script.musicPath(): Sökväg till musikfolder script.listDir(path, [nameFilters], [classify]): Lista katalogposter script.system(program, [args], [msecs]): Starta ett systemkommando synkront, [avslutningskod, standardutmatning, standardfelutmatning] om tidsgräns inte överskrids script.systemAsync(program, [args], [callback]): Starta ett systemkommando asynkront, återanrop görs med [avslutningskod, standardutmatning, standardfelutmatning] script.getEnv(varName): Hämta värde på miljövariabel script.setEnv(varName, value): Tilldela miljövariabel värde script.getQtVersion(): Qt-versionssträng, t.ex. "5.4.1" script.getDataMd5(data): Hämta hexadecimal sträng med MD5-kondensat för data script.getDataSize(data): Hämta storlek på bytefält script.dataToImage(data, [format]): Skapa en bild från data script.dataFromImage(img, [format]): Hämta data från en bild script.loadImage(filePath): Läs in en bild från en fil script.saveImage(img, filePath, [format]): Spara en bild i en fil, true om ok script.imageProperties(img): Hämta egenskaper för en bild, avbildning med "width", "height", "depth" och "colorCount", tom om ogiltig bild script.scaleImage(img, width, [height]): Skala en bild, returnerar skalad bild
Med användning av QML, är en stor del av funktionerna i Kid3 tillgängliga. Programmeringsgränssnittet liknar det som används för D-Bus. För detaljerad information, se respektive anmärkningar.
app.openDirectory(path): Öppna katalog app.unloadAllTags(): Ladda ur alla taggar app.saveDirectory(): Spara katalog app.revertFileModifications(): Ångra app.importTags(tag, path, fmtIdx): Importera filer app.importFromTags(tag, source, extraction): Importera från taggar app.importFromTagsToSelection(tag, source, extraction): Importera från taggar från markerade filer app.downloadImage(url, allFilesInDir): Ladda ner bild app.exportTags(tag, path, fmtIdx): Exportera filer app.writePlaylist(): Skriv spellista app.getPlaylistItems(path): Hämta objekt i en spellista app.setPlaylistItems(path, items): Tilldela objekt i en spellista app.selectAllFiles(): Markera alla app.deselectAllFiles(): Avmarkera app.firstFile([select], [onlyTaggedFiles]): Till första fil app.nextFile([select], [onlyTaggedFiles]): Till nästa fil app.previousFile([select], [onlyTaggedFiles]): Till föregående fil app.selectCurrentFile([select]): Markera aktuell fil app.selectFile(path, [select]): Markera en specifik fil app.getSelectedFilePaths([onlyTaggedFiles]): Hämta sökvägar för markerade filer app.requestExpandFileList(): Expandera alla app.applyFilenameFormat(): Använd filnamnsformat app.applyTagFormat(): Verkställ taggformat app.applyTextEncoding(): Verkställ textkodning app.numberTracks(nr, total, tag, [options]): Nummerspår app.applyFilter(expr): Filtrera app.convertToId3v23(): Konvertera ID3v2.4.0 till ID3v2.3.0 app.convertToId3v24(): Konvertera ID3v2.3.0 till ID3v2.4.0 app.getFilenameFromTags(tag): Filnamn från taggar app.getTagsFromFilename(tag): Filnamn till taggar app.getAllFrames(tag): Hämta object med alla ramar app.getFrame(tag, name): Hämta ram app.setFrame(tag, name, value): Tilldela ram app.getPictureData(): Hämta data från bildram app.setPictureData(data): Tilldela data i bildram app.copyToOtherTag(tag): Taggar till andra taggar app.copyTags(tag): Kopiera app.pasteTags(tag): Klistra in app.removeTags(tag): Ta bort app.playAudio(): Spela app.readConfig(): Läs inställning app.applyChangedConfiguration(): Verkställ inställning app.dirName: Katalognamn app.selectionInfo.fileName: Filnamn app.selectionInfo.filePath: Absolut filsökväg app.selectionInfo.detailInfo: Formatdetaljer app.selectionInfo.tag(Frame.Tag_1).tagFormat: Tagg 1 format app.selectionInfo.tag(Frame.Tag_2).tagFormat: Tagg 2 format app.selectionInfo.formatString(tag, format): Ersätt koder i formatsträng app.selectFileName(caption, dir, filter, saveFile): Öppna fildialogruta för att markera en fil app.selectDirName(caption, dir): Öppna fildialogruta för att markera en katalog
För asynkrona operationer, kan återanrop anslutas till signaler.
function automaticImport(profile) { function onAutomaticImportFinished() { app.batchImporter.finished.disconnect(onAutomaticImportFinished) } app.batchImporter.finished.connect(onAutomaticImportFinished) app.batchImport(profile, tagv2) } function renameDirectory(format) { function onRenameActionsScheduled() { app.renameActionsScheduled.disconnect(onRenameActionsScheduled) app.performRenameActions() } app.renameActionsScheduled.connect(onRenameActionsScheduled) app.renameDirectory(tagv2v1, format, false) }
De olika inställningsdelarna kan kommas åt via metoder kallade configs
. Deras egenskaper kan listas i QML-konsolen.
script.properties(configs.networkConfig())
Egenskaperna kan ställas in:
configs.networkConfig().useProxy = false
configs.batchImportConfig() configs.exportConfig() configs.fileConfig() configs.filenameFormatConfig() configs.filterConfig() configs.findReplaceConfig() configs.guiConfig() configs.importConfig() configs.mainWindowConfig() configs.networkConfig() configs.numberTracksConfig() configs.playlistConfig() configs.renDirConfig() configs.tagConfig() configs.tagFormatConfig() configs.userActionsConfig()