Pages

29 oct. 2011

Script To Markup Code

Crée le code des liens  de ce blog qui permettent d'ouvrir le script sur le Mac de l'utilisateur.

-- ASCII character (34) -- %22 -- quote
-- ASCII character (32) -- %20 -- espace
-- ASCII character (9) -- %09 -- tabulation
-- ASCII character (10) -- %0A --  retour chariot
-- ASCII character (58) -- %3A -- colon 
-- ASCII character (60) --  "%3C" -- <
-- ASCII character (62) --  %3E -- >

set charList to {ASCII character (32), ASCII character (34), ASCII character (9), ASCII character (58), ASCII character (62), ASCII character (60)}
set temp to the clipboard as text
set newText to ""

-- Codage des quote, espace, tabulation, colon, < et >
repeat with theChar in temp
if theChar is in charList then
set newText to newText & encodeChar(theChar)
else
set newText to newText & theChar
end if
end repeat

-- Codage des retour chariot
set theParagraphs to every paragraph of newText
set newContents to ""
repeat with thisParagraph in theParagraphs
set thisParagraph to thisParagraph & "%0A" as string
set newContents to newContents & thisParagraph as string
end repeat

-- Ecriture du lien HTML cliquable dans le presse-papiers

on encodeChar(this_char)
set the ASCII_num to (the ASCII number this_char)
set the hex_list to {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"}
set x to item ((ASCII_num div 16) + 1) of the hex_list
set y to item ((ASCII_num mod 16) + 1) of the hex_list
return ("%" & x & y) as string
end encodeChar

iTunes Tag Concatenate

property separator : "+" -- Séparateur des Tags concaténés

tell application "iTunes"
activate
set theseTracks to selection of browser window 1 -- Liste des pistes selectionnées
end tell

-- Vérification sélection non vide
if theseTracks is {} then
beep
display dialog "Sélectionnez les pistes à modifier." buttons {"Annuler"} default button 1 with icon 0
return
end if

-- Sélection des Tags à concatener
set theChoice to choose from list
"1 | TITRE + ARTISTE | | Artiste de l'album | Album ", ¬
"2 | | TITRE + ARTISTE | Artiste de l'album | Album ", ¬
"3 | Titre | ARTISTE + ARTISTE DE L'ALBUM | |  Album", ¬
"4 | Titre | | ARTISTE + ARTISTE DE L'ALBUM | Album", ¬
"5 | Titre | Artiste | ARTISTE dE L'ALBUM + ALBUM ||", ¬
"6 | Titre | Artiste | | ARTISTE dE L'ALBUM + ALBUM", ¬
"7 | TITRE + ARTISTE DE L'ALBUM | Artiste | | Album", ¬
"8 | | Artiste | TITRE + ARTISTE DE L'ALBUM | Album", ¬
"9 | TITRE + ALBUM | Artiste | Artiste de l'album | |", ¬
"10 | | Artiste | Artiste de l'album | TITRE + ALBUM |", ¬
"11 | Titre | ARTISTE + ALBUM | Artiste de l'album | |", ¬
"12 | Titre | | Artiste de l'album | ARTISTE + ALBUM |"} with prompt "Sélectionner les Tags à concaténer :" & return & " | Titre | Artiste | Artiste de l'album | Album |"
if theChoice is false then error "Annulation Utilisateur" number -128

-- numéro de la ligne selectionnée dans la liste
set num to (first word of (theChoice as string)) as number

-- choix du séparateur de Tags
set separator to text returned of (display dialog "Choisisez un séparateur de Tags" default answer separator)

-- concaténation des Tags sélectionnés
tell application "iTunes"
set ofi to fixed indexing
set fixed indexing to true
with timeout of 9999 seconds
repeat with theTrack in theseTracks
if num = 1 then
tell theTrack to set name to (get name) & separator & (get artist)
tell theTrack to set artist to ""
else if num = 2 then
tell theTrack to set artist to (get name) & separator & (get artist)
tell theTrack to set name to ""
else if num = 3 then
tell theTrack to set artist to (get artist) & separator & (get album artist)
tell theTrack to set album artist to ""
else if num = 4 then
tell theTrack to set album artist to (get artist) & separator & (get album artist)
tell theTrack to set artist to ""
else if num = 5 then
tell theTrack to set album artist to (get album artist) & separator & (get album)
tell theTrack to set album to ""
else if num = 6 then
tell theTrack to set album to (get album artist) & separator & (get album)
tell theTrack to set album artist to ""
else if num = 7 then
tell theTrack to set name to (get name) & separator & (get album artist)
tell theTrack to set album artist to ""
else if num = 8 then
tell theTrack to set album artist to (get name) & separator & (get album artist)
tell theTrack to set name to ""
else if num = 9 then
tell theTrack to set name to (get name) & separator & (get album)
tell theTrack to set album to ""
else if num = 10 then
tell theTrack to set album to (get name) & separator & (get album)
tell theTrack to set name to ""
else if num = 11 then
tell theTrack to set artist to (get artist) & separator & (get album)
tell theTrack to set album to ""
else if num = 12 then
tell theTrack to set album to (get artist) & separator & (get album)
tell theTrack to set artist to ""
end if
end repeat
end timeout
set fixed indexing to ofi
end tell
display dialog "Opération terminée." buttons {"OK"} default button 1 with icon note giving up after 5