jump to navigation

septembre 1, 2008

Posted by Oldcola in Uncategorized.
add a comment

set toto to “”

repeat 99999 times

set a to ((random number (230))) + 20

set a to ASCII character a

set toto to toto & a

end repeat

get toto

Exemple

time & date septembre 28, 2006

Posted by Oldcola in date, simple.
add a comment

date string of (current date)
–”jeudi 28 septembre 2006″

time of (current date)
–45196

time string of (current date)
–”12:33:41″

(current date) as string
–”jeudi 28 septembre 2006 12:34:11″

(current date)
–date “jeudi 28 septembre 2006 12:34:28″

technorati tag septembre 24, 2006

Posted by Oldcola in simple, technorati tag.
add a comment

Ecrire le code pour un tag Technorati peut-être tellement fastidieux qu’on ne prenne pas le temps de le faire. Un mini-script à placer dans le menu scripts peut faciliter la vie :

set toto to the clipboard
set titi to every word of toto as list
set AppleScript’s text item delimiters to “+”
set thetag to “[a href=\"http://technorati.com/tag/" & (every item of titi as string) & "\" rel \"tag\"][font color=\"#390\"]” & toto & “[/font][/a]“
set the clipboard to thetag
beep

Voila, c’est tout… Abusez-en

Ah oui ! le mode d’emploi :

  1. copier ce qui sera le tag
  2. lancez le script
  3. collez le code où nécessaire

NNW subscriptions from list septembre 21, 2006

Posted by Oldcola in netnewswire, simple.
add a comment

Il est donc facile d’obtenir une liste des souscriptions de NNW. Et dans l’autre sens ?

Aussi simple

set toto to {“http://www.apple.com/downloads/macosx/internet_utilities/”, “http://www.apple.com/downloads/macosx/development_tools/”}
repeat with i from 1 to count of toto
set theurl to item i of toto
tell application “NetNewsWire”
subscribe to theurl
end tell
end repeat

Bien sûr pour construire la liste il est toujours plus simple de se servir de cet applescript

ul list par NNW septembre 21, 2006

Posted by Oldcola in netnewswire, simple.
1 comment so far

Certaines plate-formes de blogging, comme WordPress permettent de mettre à jour la blogroll à partir d’un fichier OPML, facile à obtenir à partir de NNW.
D’autres, comme Blogger, nécessitent de créer une liste à insérer dans le template du blog. Pour ces dernières ce petit script pourra être utile :

set ullist to “[ul]“
tell application “NetNewsWire”
set thefolder to selectedSubscription
set thetimes1 to number of children of thefolder
repeat with i from 1 to thetimes1
set thesubscription to subscription i of thefolder
set ullist to ullist & “[li][a href=\"" & home URL of thesubscription & "\" target=\"_blank\"]” & givenName of thesubscription & “[/a][/li]” & return
end repeat
end tell
set ullist to ullist & “[/ul]“
set the clipboard to ullist

Attention : les “[" et "]” doivent être remplacés par "<" et ">" respectivement.
Il faudra avoir choisi un dossier avec plusieurs suscriptions pour que le script fonctionne; le resultat attendu, une fois collé dans la page html que vous éditez sera du genre :

Liberation et nnw septembre 20, 2006

Posted by Oldcola in netnewswire, simple, textcommands, url access scripting.
add a comment

Je me sers de NetNewsWire (NNW pour les intimes) comme agrégateur de flux d’actualisation.

j’apprécie l’habitude de certains journaux de servir un premier paragraphe de l’article, le titre seul n’étant pas franchement informatif quant au contenu. Depuis la refonte de son site, Libération, ne donne qu’une phrase, souvent sibylline. Or je n’ai aucune envie de me taper leur pub pour savoir si l’article signalé par NNW est intéressant ou non. D’où ce petit script :

global theurl
tell application “NetNewsWire”
set theurl to URL of selectedHeadline
end tell
tell application “TextCommands” to set printerfriendly to search theurl for “http(.*?)php?.*” replacing with “http”& “\\1″& “php?mode=PRINTERFRIENDLY” with regex
tell application “Firefox” to Get URL printerfriendly
–tell application “URL Access Scripting” to set toto to download printerfriendly to (path to public folder as string) & “libe.html”

Simple : je commence par lire l’URL de l’article, je le transforme pour qu’il corresponde à la page destinée à être imprimée à l’aide de textcommands puis je demande à Frefox de l’ouvrir; il s’ouvre sous un onglet, ce qui correspond à mes réglages de Firefox. Chez moi la ligne commentée est active. Elle importe la page en question à l’aide de URL Access Scripting, dans le dossier Public (je suis partageur); le nom du fichier est libex.txt, ou x un numéro qui s’incrémente automatiquement, d’où le besoin de le ranger dans la variable toto, au cas ou d’autres traitements pourraient être demandés ;-) .

Le script est rangé dans le dossier Scripts de NNW et je lui ai associé une combinaison de touches pour éviter à être obligé d’aller le chercher au menu.

list from file septembre 19, 2006

Posted by Oldcola in simple.
add a comment

Il est toujours possible de définir le contenu d’une liste directement dans le script, mais je trouve plus simple de stocker les éléments dans un fichier texte et de la construire au début d’exécution d’un script.

J’ai pris l’habitude de garder ces fichiers dans le dossier Public pour qu’ils soient disponibles pour les copains, ils sont donc accessibles via le chemin (path to public folder)

Comme c’est une routine que je balade de script en script elle est rangée dans un handler :

on getdictionary(dname)
set tdictionary to (path to public folder as string) & dname
set tdictionary to read (tdictionary as alias)
set thedictionary to {}
repeat with i from 1 to count of paragraphs of tdictionary
set theitem to paragraph i of tdictionary
if thedictionary contains theitem is false and theitem is not “” then set thedictionary to thedictionary & theitem
end repeat
return thedictionary
end getdictionary

L’appel du handler est simple :

set thedictionary to my dictionnary(“dict.txt”)

Il faut bien sûr que le fichier “dict.txt” existe et soit dans le dossier “Public”.

Le script lit chaque paragraphe et l’ajoute dans la liste thedictionary s’il n’est pas présent (pour éviter les doublons). Le choix du paragraphe plutôt que des mots a été fait pour pouvoir avoir des entrées composées dans le dictionnaire, du genre : “vachement simple”, ou “compliqué en diable”.

choose from list septembre 17, 2006

Posted by Oldcola in simple.
add a comment

C’est une commande simple et assez utile, mais j’oublie tout le temps la syntaxe. Autant la ranger par ici.
L’idée est de pouvoir choisir un ou plusieurs éléments d’une liste.

set maliste to {“item 1″, “item 2″, “item 3″}
choose from list maliste with prompt “choisir un ou plusieurs éléments” with multiple selections allowed

Tant que rien n’est sélectionné uniquemennt le bouton “Annuler” est actif et si on l’utilise le Résultat est

false

. Si on choisi “item 1″ et on appuie sur OK, une liste contenant un élément est rendue

{“item 1″}

. Si on choisi deux éléments, la liste rendue les contiendra :

{“item 1″, “item 3″}

Bien sûr il est possible de stocker le résultat de choose from listdans une variable :

set maliste to {“item 1″, “item 2″, “item 3″}
set meschoix to choose from list maliste with prompt “ma liste”
with multiple selections allowed

date septembre 16, 2006

Posted by Oldcola in date, shell, simple.
add a comment

Il est simple d’obtenir la date actuelle

set ladate to current date

le résultat est une date

date “samedi 16 septembre 2006 8:56:26″

c’est dit explicitement.
Sous cette forme on peut changer la date en question, pour en caluler une nouvelle, par exemple une date de péremption pour un produit; si le produit est consommable/utilisable pour les 12 prochains jours on pourra construire la date limite d’utilisation.
Il faut ajouter des secondes à ladate. Donc 12 jours nous font : 12 jours par 24 heures par 60 min par 60 secondes : (((60 * 60) * 24) * 12)

set ladate to current date
set datelimite to ladate + (((60 * 60) * 24) * 12)
get {ladate, datelimite}

La commande get est utilisée ici pour afficher les éléments de la liste qui lui est affectée, la dateactuelle et la datelimite calculée.

{date “samedi 16 septembre 2006 9:03:59″, date “jeudi 28 septembre 2006 9:03:59″}

On peut utiliser ce genre d’informations pour marquer les pots de yaourt maison :

set ladate to current date
set datelimite to ladate + (((60 * 60) * 24) * 12)
set aimprimer to “produit le : ” & ladate & return & “à consommer de préférence avant le : ” & datelimite

qui donne :

“produit le : samedi 16 septembre 2006 9:08:02
à consommer de préférence avant le : jeudi 28 septembre 2006 9:08:02″

On admirera la précision à la seconde près de la recommandation :-)
Une autre application, est la date avant laquelle on ne doit pas consommer un produit, disons un vieux snaps à planquer derrière les fagots :

set ladate to (current date)
set datelimite to (ladate + ((((60 * 60) * 24) * 365) * 12))
set aimprimer to “laisser vieillir jusqu’au ” & datelimite

qui donne :

“laisser vieillir jusqu’au jeudi 13 septembre 2018 9:14:24″

On voit deux problèmes : on n’a pas tenu compte des années bissextiles et c’est un peu ridicule d’afficher les secondes pour un vieillissement de 12 ans !
En fait on peut extraire des parties de la date facilement :

set thedate to (current date)
set s to “on est le : ” & day of thedate
set s to s & ” ” & month of thedate
set s to s & ” ” & year of thedate
set datedematurite to “laisser vieillir derrière les fagots jusqu’en ” & month of thedate & ” ” & 12 + (year of thedate) as string

Le résultat est bien meilleur pour une étiquette de snaps :

“laisser vieillir derrière les fagots jusqu’en September 2018″

Pour isoler les éléments de date, surtout l’heure, je préfère les appels au shell, parce que c’est… plus simple :-) Voici mon pense bête, qui est contenu dans le fichier “date by shell” mentionné dans le post précèdent :

set the clipboard to (do shell script “date +%a”) –”Thu”
set the clipboard to (do shell script “date +%b”) –”May”
set the clipboard to (do shell script “date +%c”) –”Thu May 18 16:27:27 2006″
set the clipboard to (do shell script “date +%d”) –”18″
set the clipboard to (do shell script “date +%g”) –”06″
set the clipboard to (do shell script “date +%h”) –”May”
set the clipboard to (do shell script “date +%m”) –”05″
set the clipboard to (do shell script “date +%p”) –”PM”
set the clipboard to (do shell script “date +%r”) –”04:30:53 PM”
set the clipboard to (do shell script “date +%s”) –”1147962671″
set the clipboard to (do shell script “date +%u”) –”4″
set the clipboard to (do shell script “date +%v”) –”18-May-2006″
set the clipboard to (do shell script “date +%x”) –”05/18/06″
set the clipboard to (do shell script “date +%y”) –”06″
set the clipboard to (do shell script “date +%z”) –”+0200″
set the clipboard to (do shell script “date +%A”) –”Thursday”
set the clipboard to (do shell script “date +%C”) –”20″
set the clipboard to (do shell script “date +%D”) –”05/18/06″
set the clipboard to (do shell script “date +%F”) –”2006-05-18″
set the clipboard to (do shell script “date +%G”) –”2006″
set the clipboard to (do shell script “date +%H”) –16
set the clipboard to (do shell script “date +%I”) –04
set the clipboard to (do shell script “date +%M”) –42
set the clipboard to (do shell script “date +%R”) –16:42
set the clipboard to (do shell script “date +%S”) –13
set the clipboard to (do shell script “date +%T”) –16:43:38
set the clipboard to (do shell script “date +%U”) –20
set the clipboard to (do shell script “date +%X”) –16:44:54
set the clipboard to (do shell script “date +%Y”) –2006
set the clipboard to (do shell script “date +%Z”) –CEST

informations septembre 16, 2006

Posted by Oldcola in simple.
add a comment

Obtenir et ou changer les informations d’un fichier peut-être intéressant si on automatise une tâche.

set toto to choose file
set proprtoto to info for toto

Ces deux lignes sont un commencement. Le résultat rendu est une liste.

{name:”date by shell.scpt”, creation date:date “jeudi 18 mai 2006 16:35:56″, modification date:date “jeudi 18 mai 2006 16:45:35″, icon position:{0, 0}, size:9732.0, folder:false, alias:false, package folder:false, visible:true, extension hidden:true, name extension:”scpt”, displayed name:”date by shell”, default application:alias “pythia:Applications:AppleScript:Script Editor.app:”, kind:”script”, file type:”osas”, file creator:”ToyS”, type identifier:”com.apple.applescript.script”, locked:false, busy status:false, short version:”", long version:”"}

Pour l’exemple j’ai choisi un applescript, dont voici les 21 éléments d’information étalés :

  1. name:”date by shell.scpt”
    le nom du fichier, tell qu’il apparaît dans le Finder
  2. creation date:date “jeudi 18 mai 2006 16:35:56″
    la date de création
  3. modification date:date “jeudi 18 mai 2006 16:45:35″
    et la date de la dernière modification
  4. icon position:{0, 0}
    la position de l’icône, pour laquelle je n’ai pas encore trouvé d’utilité
  5. size:9732.0
    la taille
  6. folder:false
    la réponse à la question : est-ce un dossier ? qui peut être très utile si on cherche des dossiers; c’est assez fréquent quand on parcours le contenu d’un dossier et qu’on souhaite ne traiter que les fichiers qui n’en sont pas
  7. alias:false
    OK, ce n’est pas un alias
  8. package folder:false
    ni un paquet :-)
  9. visible:true
    il est visible
  10. extension hidden:true
    on ne voit pas son extension dans le Finder (mais elle existe bel et bien
  11. name extension:”scpt”
    et la voici
  12. displayed name:”date by shell”
    par contre on ne voit que ce nom
  13. default application:alias “pythia:Applications:AppleScript:Script Editor.app:”
    si on double-clic dessus, il s’ouvrira avec Script Editor, alias Editeur de scripts
  14. kind:”script”
    c’est un script
  15. file type:”osas”
    dont le type est osas
  16. file creator:”ToyS”
    créé par ToyS, aka Script Editor, aka Editeur de scripts
  17. type identifier:”com.apple.applescript.script”
    si on n’avait pas encore compris c’est un applescript ! je ne sais pas qui utilise cette information…
  18. locked:false
    Ce n’est pas vérouillé
  19. busy status:false
    il est au repos
  20. short version:”"
    ?
  21. long version:”"
    ?

Il y a une information que je ne vois pas ici, les commentaires Spotlight.

Maintenant, il est possible d’extraire les éléments, par exemple le nom du fichier, pour le stocker dans une variable :

set toto to choose file
set proprtoto to info for toto
set thename to name of proprtoto
display dialog thename giving up after 2