1 votes

Un applescript iTunes qui n'ajoute une étiquette que lorsqu'elle ne correspond pas à une partie de la chaîne de l'étiquette ?

J'essaie de trouver un moyen d'ajouter un mot-clé ou un groupe de mots/balises/cordes à un ensemble de morceaux iTunes sélectionnés s'ils n'ont pas été ajoutés. Un cas d'utilisation serait d'ajouter des métadonnées supplémentaires dans un commentaire comme (live) ou (remix).

Si certaines pistes contenaient précédemment (live) lors de l'ajout, alors il ne l'ajouterait pas - seulement les fichiers non appariés. Ainsi, une balise de commentaire contenant (remix)(rapide)(accordéon)(aléatoire) deviendrait (remix)(rapide)(accordéon)(aléatoire)(live) après. Cependant, si on l'appliquait à nouveau, on sauterait cette piste.

La chose la plus proche que je puisse trouver est Appendice intelligent mais il est destiné à Windows uniquement (étant JavaScript).

Le célèbre Doug a un ajouter à la balise script mais il n'a aucune capacité de détection. J'ai jeté un coup d'œil dans le code (par un clic droit > Afficher le contenu du paquet) et je n'arrive pas à comprendre comment modifier le script.

Quelqu'un connaît-il un script existant ou un moyen de modifier le script existant ?

0voto

Ce script fonctionne si le mot clé est entre parenthèses comme dans votre exemple, sinon la correspondance partielle posera problème. Exemple : " rapide " match " plus rapide "

property matchCase : true -- or false -- change according to your needs 

set myTitle to "Append to Comments Tag, if the keyword not exists"
set keywordSeparator to ";" -- keyword separator

tell application "iTunes"
    set sel to selection
    if sel is not {} then -- if tracks are selected...
        set s to "s"
        set x to (length of sel)
        if x is 1 then set s to ""
        set be to (display dialog "Enter keyword to append to the beginning or ending of each selected track's Comments tag:" & return & return & " If more than one keyword, use this character " & keywordSeparator & " as separator." default answer "" buttons {"Cancel", "Beginning", "Ending"} cancel button 1 with title myTitle)
        set appendage to text returned of be
        set buttonOpt to button returned of be is equal to "Ending"
        if appendage is "" then return
        set listOfAppendage to my makeListOfKeywords(keywordSeparator, appendage)
        set oldfi to fixed indexing
        set fixed indexing to true
        repeat with t from 1 to x
            tell contents of item t of sel
                try
                    set tresult to my checkExistKeywords(comment, listOfAppendage, buttonOpt)
                    if tresult is not false then set comment to tresult
                end try
            end tell
        end repeat
        set fixed indexing to oldfi
        activate
        display dialog "Done!" buttons {"OK"} default button 1 with icon 1 with title myTitle giving up after 4
    else
        activate
        display dialog "You must select some tracks first." buttons {"Cancel"} default button 1 with title myTitle
    end if
end tell

on checkExistKeywords(tagValue, tKeywords, tOpt)
    set isAdding to false
    repeat with tKey in tKeywords
        if matchCase then
            considering case
                contents of tKey is not in tagValue
            end considering
        else --Ignore Case
            contents of tKey is not in tagValue
        end if
        if the result then -- no match
            set isAdding to true
            if tOpt then
                set tagValue to tagValue & tKey
            else
                set tagValue to tKey & tagValue
            end if
        end if
    end repeat
    if isAdding then return tagValue
    return false -- nothing to add
end checkExistKeywords

on makeListOfKeywords(tofind, t)
    set ditd to text item delimiters
    set text item delimiters to tofind
    set t to text items of t
    set text item delimiters to ditd
    return t
end makeListOfKeywords

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X