
Índice
Os programas em QML podem ser invocados através do menu de contexto da lista de ficheiros e podem ser configurados na página Acções do Utilizador da janela de configuração. Os programas que são aqui configurados podem ser usados como exemplos para programas personalizados. O QML usa o JavaScript, sendo que aqui está o obrigatório "Olá Mundo":
import Kid3 1.0 Kid3Script { onRun: { console.log("Olá mundo, a pasta é", app.dirName) Qt.quit() } }
Se este programa for gravado em /local/do/Exemplo.qml
, o comando do utilizador poderá ser definido como @qml /local/do/Exemplo.qml com o nome Teste de QML
e o Resultado assinalado. Poderá então ser iniciado com o item Teste de QML no menu de contexto da lista de ficheiros, ficando o resultado visível na janela.
Infelizmente, o arranque de programas em QML com o qml (p.ex. qml -apptype widget -I /usr/lib/kid3/plugins/imports /localização/do/Exemplo.qml) está com problemas nas versões recentes do Qt. Mas o kid3-cli oferece uma forma alternativa de executar um programa em QML a partir da linha de comandos, usando o seu comando execute.
kid3-cli -c "execute @qml /localização/do/Exemplo.qml"
Para enumerar os títulos nas marcas 2 de todos os ficheiros na pasta actual, poderia ser usado o seguinte programa:
import Kid3 1.0 Kid3Script { onRun: { app.firstFile() do { if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) { console.log(app.getFrame(tagv2, "title")) } } while (app.nextFile()) } }
Se a pasta tiver vários ficheiros, um destes programas poderá bloquear a interface do utilizador durante algum tempo. Para as operações mais demoradas, deverá então pausar de tempos a tempos. A implementação alternativa em baixo tem o trabalho feito para um único ficheiro transferido para uma função. Essa função invoca-se a si própria com um tempo-limite de 1 ms no fim, desde que existam mais ficheiros para serem processados. Isto irá garantir que a GUI continua a reagir enquanto o programa está em execução.
import Kid3 1.0 Kid3Script { onRun: { function trabalhar() { if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) { console.log(app.getFrame(tagv2, "title")) } if (!app.nextFile()) { Qt.quit() } else { setTimeout(trabalhar, 1) } } app.firstFile() trabalhar() } }
Ao usar o app.firstFile() com o app.nextFile(), serão processados todos os ficheiros na pasta actual. Se só é suposto processar os ficheiros seleccionados, use o firstFile() e o nextFile() em alternativa; estas são funções de conveniência do componente Kid3Script
. O seguinte exemplo é um programa que copia apenas os pacotes do número do disco e dos direitos de cópia do ficheiro seleccionado.
import Kid3 1.1 Kid3Script { onRun: { function trabalhar() { if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) { app.setFrame(tagv2, "*.selected", false) app.setFrame(tagv2, "discnumber.selected", true) app.setFrame(tagv2, "copyright.selected", true) app.copyTags(tagv2) } if (!nextFile()) { Qt.quit() } else { setTimeout(trabalhar, 1) } } firstFile() trabalhar() } }
Mais programas vêm disponíveis com o Kid3 e estão já registados como comandos do utilizador.
ReplayGain to SoundCheck (
ReplayGain2SoundCheck.qml
): Criar a informação de SoundCheck do iTunNORM a partir dos pacotes de ganho de reprodução.Dimensionar as Imagens do Álbum (
ResizeAlbumArt.qml
): Dimensiona as imagens das capas dos álbuns incorporadas que forem maiores que 500x500 pixels.Extrair as Imagens do Álbum (
ExtractAlbumArt.qml
): Extrai todas as imagens incorporadas das capas, evitando os duplicados.Incorporar as Imagens do Álbum (
EmbedAlbumArt.qml
): Incorpora as imagens de capas encontradas nos ficheiros de imagens dentro dos ficheiros de áudio na mesma pasta.Incorporar as Letras Musicais (
EmbedLyrics.qml
): Obtém as letras musicais não sincronizadas a partir de um serviço na Web.Codificação de Texto do ID3v1 (
ShowTextEncodingV1.qml
): Ajuda a descobrir a codificação das marcas ID3v1, apresentando as marcas do ficheiro actual em todas as codificações de caracteres disponíveis.ID3v1 para ASCII (
Tag1ToAscii.qml
): Traduz os caracteres acentuados estendidos na marca ID3v1 para ASCII.Capitalização de Títulos em Inglês (
TitleCase.qml
): Formato o texto nas marcas como títulos em Inglês.Reescrever as Marcas (
RewriteTags.qml
): Volta a gravar todas as marcas nos ficheiros seleccionados.Exportar para CSV (
ExportCsv.qml
): Exporta de forma recursiva todas as marcas de todos os ficheiros para um ficheiro CSV.Importar um CSV (
ImportCsv.qml
): Importa de forma recursiva todas as marcas de todos os ficheiros a partir de um ficheiro CSV.Exportar para JSON (
ExportJson.qml
): Exporta de forma recursiva todas as marcas de todos os ficheiros para um ficheiro JSON.Importar um JSON (
ImportJson.qml
): Exporta de forma recursiva todas as marcas de todos os ficheiros a partir de um ficheiro JSON.Exportar a Pasta da Lista de Reprodução (
ExportPlaylist.qml
): Copiar todos os ficheiros de uma lista de reprodução para uma pasta e muda o nome delas de acordo com a sua posição.Consola de QML (
QmlConsole.qml
): Uma consola simples para lidar com a API em QML do Kid3.