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

3 juin 2011

Histoire d'Héritage

script pomme
property couleur : "ROUGE"
on afficherCouleur()
display alert "Script pomme" message "Cette pomme est " & couleur buttons {"OK"} default button 1
display alert "Script pomme" message "Cette pomme est " & couleur of me buttons {"OK"} default button 1
end afficherCouleur
end script

script banane
property parent : pomme
property couleur : "JAUNE"
on afficherCouleur()
display alert "Script banane" message "Cette banane est " & couleur buttons {"OK"} default button 1
continue afficherCouleur()
end afficherCouleur
end script

script poire
property parent : banane
property couleur : "VERTE"
end script

tell pomme to afficherCouleur()
--  affiche sa propriété : "Cette pomme est ROUGE"
--  affiche sa propriété : "Cette pomme est ROUGE"
tell banane to afficherCouleur()
--  affiche sa propriété : "Cette banane est JAUNE"
--  puis transmet au parent qui affiche sa propriété  : "Cette pomme est ROUGE"
--  et  affiche la propriété du fils : "Cette pomme est JAUNE"
tell poire to afficherCouleur()
--  transmet au parent qui affiche sa propriété  : "Cette banane est JAUNE"
--  qui transmet au grand-parent qui affiche sa propriété : "Cette pomme est ROUGE"
--  et  affiche la propriété du petit-fils : "Cette pomme est VERTE"

>> Ouvrir le script dans l'éditeur

3 mai 2011

AppleScript et Revolution

Pour executer du code AppleScript dans une pile Revolution, utiliser la commande "do as applescript".


on mouseUp
  do ("choose folder") as applescript
end mouseUp

Si la commande est complexe la stocker dans un champ caché ou dans une custom property (dans les exemples suivants le code Applescript est stocké dans la custom property du bouton) puis l'exécuter comme précédemment.


on mouseUp
  put the myCustomProperty of me into AScode
  -- ou en utilisant un champ caché :
  -- put field "myField" into AScode
  do AScode as applescript
end mouseUp

Si la commande contient des paramètres utiliser la commande "replace with in"


display dialog "##param##"


on mouseUp
  put the myCustomProperty of me into AScode
  replace "##param##" with "Hello World" in AScode
  do AScode as applescript
end mouseUp