IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apple Discussion :

Gestion de dossiers en AppleScript : trucs et astuces


Sujet :

Apple

  1. #1
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 601
    Points : 1 237
    Points
    1 237
    Par défaut Gestion de dossiers en AppleScript : trucs et astuces
    Bonjour à tous,

    Les actions de dossier sur Mac permettent de réaliser automatiquement des tâches variées qui deviennent vite indispensables.
    Cependant, les créateurs de ces actions sont régulièrement confrontés à des problèmes, principalement du fait d'une connaissance partielle des mécanismes en jeu.

    Pour répondre aux multiples demandes d'aide dans ce domaine, j'ai réalisé mémo pour ceux qui veulent écrire des actions de dossier en AppleScript.
    Les nombreux exemples de scripts commentés devraient permettre d'utiliser toute la puissance des actions de dossier pour vos scripts.

    Voici le lien vers cet article :http://mac.developpez.com/cours/acti...erapplescript/

    Et vous, avez-vous rencontré des problèmes sur des actions de dossiers ? Comment les avez-vous résolus ?

    Bonne journée à tous.

  2. #2
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Merci à toi pour cet article.
    Il est vrai que les actions de dossier sous Mac OS X sont méconnus et donc très peu utilisés, mais ils peuvent être très pratiques.

    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  3. #3
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour PBELL,

    Merci pour cette article d'une grande aide et qui va m'enlever certaines épines du pieds

    J'espère pouvoir l'adapter pour du flux Indesign => PDF dont plusieurs Dossier IN (3) de réceptions de fichiers selon le type de PDF voulu avec redirection dans l'un des 3 dossiers Out

    Edit : concernant le "@" dans ton article pour les permissions des fichiers que l'on peut voir avec ls -l Fichier, voilà ce que j'ai trouvé :
    http://www.macpuissancedix.com/937.php
    Extrai : … Le résultat de la commande se trouve sur la dernière ligne de la figure 1. Le groupe de 9 caractères dont il a été question est précédé par un tiret, et terminé par un @ (qui indique qu'il y a des attributs étendus) ….
    et ceci aussi en complément :
    En faisant un test avec le ls -l je suis tombé avec un fichier vidéo dont il n' avait pas les attributs étendus, du coup je pense (donne moi ton avis),
    qu'il serait peut être judicieux de mettre le code sans prendre en compte l'@
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    repeat until (LS_Debut = "-rwx") and not (PosArobase = "@") and not (LS_Fin = "------")
    deviendrait :
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    repeat until (LS_Debut = "-rwx")  and not (LS_Fin = "------")

    à voir …

    je continue à travailler dessus car qq chose me titille dans le cas ou le script ne trouve pas le fichier provoquant une erreur "number 1",
    mais dans ce cas là on risque d'avoir une boucle infini.
    Et le problème pour l'instant de mon coté, je vois pas comment lui dire de sortir de la boucle avec un message au bout d'un certain temps

    PS : je suis reparti d'un code que tu as fais sur le forum
    En attendant j'ai fait cela en phase de tests (j'ai pris un fichier plus lourd, mais à la base se sera avec des fichiers InDesign to PDF) :
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    set A to POSIX file "/Users/UserName/Documents/Fichiers/Film/monfilm.mp4" 
    set Desti to "/Users/UserName/Desktop/Scripts/HOT FOLDER/Film HD_IN"
    set B to POSIX file Desti
     
    tell application "Finder"
    	ignoring application responses
    		duplicate A to B
    	end ignoring
    	--display dialog "Copie lancée"
    end tell
     
     
    activate
    if CopieTerminee(A, Desti) then
    	display dialog "copie terminée"
    else
    	display dialog "copie non terminée ou fichier non existant"
    end if
     
     
    on CopieTerminee(Source, Destination) -- retourne "true" quand la copie du fichier Source vers le directory Destination est terminée
    	tell application "Finder" to set Nom_Source to name of file Source
    	set Fichier to quoted form of (Destination & "/" & Nom_Source)
    	set Check_Droit to "xxx"
    	set Cpt to 0
    	repeat until Check_Droit contains "-rwxrwxrwx"
    		set Cpt to Cpt + 1
    		--display dialog Cpt
    		try
    			set Check_Droit to do shell script "ls -l " & Fichier
    		on error
    			set Check_Droit to "xxx"
    		end try
    		if Cpt = 10 then exit repeat
    	end repeat
    	if Cpt = 10 then
    		return false
    	else
    		return true
    	end if
    end CopieTerminee

    Edit 2 :
    l'autre version (PS : pour ma par je ne ferais pas de copie, mais je récupérerai le chemin des fichiers à traiter dans un fichier texte via la commande "sed")
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    set A to POSIX file "/Users/UserName/Documents/Fichiers/Film/monfilm.mp4"
    set B to POSIX file "/Users/UserName/Desktop/Scripts/HOT FOLDER/Film HD_IN"
    tell application "Finder"
    	ignoring application responses
    		duplicate A to B
    	end ignoring
    	--display dialog "Copie lancée"
    end tell
    activate
    if CopieTerminee(A, B) then
    	display dialog "copie terminée"
    else
    	display dialog "copie non terminée ou fichier non existant"
    end if
     
    on CopieTerminee(Source, Destination) -- retourne "true" quand la copie du fichier Source vers le directory Destination est terminée
    	set Lsize to -1
    	try
    		tell application "Finder" to set Nom_Source to name of file Source
    		log Nom_Source
    		set FichierCopie to (Destination as string) & ":" & Nom_Source
    		delay 0.1
    		set X to 0
    		repeat until Lsize = X
    			set Lsize to X
    			tell application "Finder" to set X to physical size of file FichierCopie
    			delay 0.3
    		end repeat
    		return true
    	on error
    		return false
    	end try
    end CopieTerminee
     
    --tell application "Finder" to set X to physical size of file POSIX file "/Users/kbelmehdi/Desktop/Scripts/HOT FOLDER/IN/668-669_FRG0919.indd"
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  4. #4
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 380
    Points : 858
    Points
    858
    Par défaut
    bonjour,

    je découvre l'apple script (on est en 2022).

    savez-vous s'il est encore possible en 2022 de parcourir un calendrier, d'analyser le titre d'un événement et de changer la couleur ?
    Avec les google app (app script), on peut le faire très simplement :
    j'aimerai bien savoir si ce script est "convertissable" en apple script ?


    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      var calendar = CalendarApp.getCalendarById('mon_mien@group.calendar.google.com');
      var beginDate = new Date(1970, 0, 1); 
    var endDate = new Date(2500, 0, 1);
     
    var events = calendar.getEvents(beginDate, endDate);
      for (var i=0; i<events.length; i++) { 
            var event = events[i];
            var title = event.getTitle();
                if (/Submission:/.test(title)) {
          event.setColor('3');
        } else if (/Test:/.test(title)) {
          event.setColor('5');
        } else if (/Subscription:/.test(title)) {
          event.setColor('9');
        } else {event.setColor('4'); //sinon couleur par défaut} 
     
         }

    le script est très simple :
    - on ouvre le calendrier par son id
    - on collecte les évenements dedans, bornées à 2 variables de date
    - on regarde le titre
    - si le titre contient tel mot, alors on attribut telle couleur à l'event

    ça fonctionne super bien dans Google Agenda/calendar, il doit forcément y avoir un moyen qu’Apple permette cela aussi, non ?




    merci de votre réponse, même si tardive.

Discussions similaires

  1. [Windows Phone 8] [TUTO] Trucs et astuces pour la gestion des langues pour Universal Apps (Windows Phone 8.1)
    Par ChickenJim dans le forum Windows Phone
    Réponses: 3
    Dernier message: 15/02/2015, 16h41
  2. Gestion de dossier
    Par ptit_seb dans le forum Linux
    Réponses: 1
    Dernier message: 15/04/2006, 21h52
  3. trucs et astuces XML
    Par grishka dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 09/09/2004, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo