Saturday, January 16, 2021

#1 2021-01-12 07:52:04 am

TheBlackBinLiner
Member
Registered: 2019-12-05
Posts: 21

Drop Parent folder to action script

Hi all,

I have the below script which works really well - I would like to modify this to make the manual actions simpler.
The folder structure has a main (parent) folder (which is not referenced in my script) that the below referenced "theDroppedItems" (child folder) resides. Currently I have to manually open the parent folder and drag and drop the "theDroppedItems" onto the below script for it to action.

What I want to do is drag the enclosing Parent folder itself and have the script action as below, keeping in mind the "theDroppedItems" is the child folder the script is essentially working on throughout and the Parent folder would not essentially need to be referenced again. I'm not sure how to do this. There is only ever one Adobe Illustrator file within the theDroppedItems folder.
Any help greatly received.

---------------------------------------

on open theDroppedItems
    tell application "Finder"
        set theAi to first item of ((files of (item 1 of theDroppedItems) whose name extension is "ai") as alias list)
    end tell -- finds the Illustrator file within the sub child Artwork folder
   
    tell application "Adobe Illustrator"
        activate
        open theAi -- opens the Illustrator file from the sub child Artwork folder
       
        tell document 1
            do script "APPROVED RELEASE FILE" from "Dave's" -- runs the specific Illustrator Action (preps for release, outlines, changes approval layer, etc)
        end tell
       
    end tell
   
   
    tell application "Finder"
        repeat
            try
                alias "Dave's Mac:Users:uk:PDF's:Not Distilled:" -- does the distilled file exists? This section checks to see if the new approved PDF has been created and is in the "Not Distilled" folder (where the Illusutrator Action ultimately saves the PDF)
               
                tell application "Finder"
                    set a to "Dave's Mac:Users:uk:Desktop:PDF's:Not Distilled:" as alias
                    delay 0.1
                    duplicate files of entire contents of a to theDroppedItems with replacing
                end tell
               
               
                tell application "MakeZipOnly"
                    activate
                    open theDroppedItems
                end tell
                exit repeat
            end try
            delay 0.1
            delete files of entire contents of a -- this removes the Approved PDF from the Not Distilled folder after it has been "moved" ("move" doesnt seem to move but "copies")
           
        end repeat
       
        -- the above block activates an Automator application to zip file (need to figure out how to do this in Applescript to make this self contained - although all references point to this being incredibly complex - Automator makes this section easy
       
        tell application "Finder"
            set a to "Dave's Mac:Users:uk:Desktop:PDF's:Not Distilled:" as alias
            set b to "Dave's Mac:Volumes:MacRAID:TEMPORARY FILE TRANSFERS:RELEASES:PDF's:" as alias
            move files of entire contents of a to b with replacing
        end tell
       
        delay 0.1
        delete files of entire contents of a -- this removes the Approved PDF from the Not Distilled folder after it has been "moved" ("move" doesnt seem to move but "copies")
       
       
    end tell
   
   
   
    tell application "Finder"
        set NameOfFile to (name of (info for theDroppedItems))
        set NameOfFile to text 1 thru ((offset of "." in NameOfFile) - 1) of NameOfFile
        set myFile to theDroppedItems as alias
        --display dialog NameOfFile
    end tell
   
   
    tell application "Microsoft Outlook"
        set mySubject to NameOfFile & " APPROVED FILE RELEASE" as text
        set myContent to "<p style=font-family:Calibri>Hi</p><p style=font-family:Calibri>Attached is the Approved Release File for " & NameOfFile & "<p style=font-family:Calibri>Thanks</p>"
        set myAttachment to theDroppedItems
        set myMsg to make new outgoing message with properties {subject:mySubject, content:myContent}
        tell myMsg
            make new attachment with properties {file:myFile}
            make new recipient with properties {email address:{name:"Dave Leicester", address:"name.name@name.co.uk"}}
           
        end tell
        open myMsg
       
    end tell
   
end open

end open
end open

Last edited by TheBlackBinLiner (2021-01-12 07:53:17 am)

Offline

 

#2 2021-01-12 08:15:10 am

KniazidisR
Member
From:: Greece
Registered: 2019-03-03
Posts: 1537

Re: Drop Parent folder to action script

Applescript:


on open theDroppedItems -- drop here parent folder
   
   set parentFolder to item 1 of theDroppedItems -- result: alias
   tell application "Finder"
       tell parentFolder to set childFolder to item 1 of its folders -- result: Finder reference
       tell childFolder to set theAi to (first file whose name extension is "ai") as alias -- result: alias
   end tell -- finds the Illustrator file within the sub child Artwork folder
   
   -- the rest stuff
   
end open -- 1 end open instead of 3 end open


Model: MacBook Pro
OS X: Catalina 10.15.4
Web Browser: Safari 13.1
Ram: 4 GB

Offline

 

#3 2021-01-12 09:49:44 am

TheBlackBinLiner
Member
Registered: 2019-12-05
Posts: 21

Re: Drop Parent folder to action script

Thanks for this - I keep getting this error though?

Can’t get every «class cfol» of alias "Dave's Mac:Users:uk:Desktop:test file 76477 - Tube  Moisture Deep Conditioning Treatment - Mibelle:". (-1728)

The filename "test file 76477 - Tube  Moisture Deep Conditioning Treatment - Mibelle" is the Parent folder.


Here's the script with your block replacing my on open etc.
Any clues on what I'm doing wrong?


--------------------
on open theDroppedItems -- drop here parent folder
   
    set parentFolder to item 1 of theDroppedItems -- result: alias
    tell application "Finder"
        tell parentFolder to set childFolder to item 1 of its folders -- result: Finder reference
        tell childFolder to set theAi to (first file whose name extension is "ai") as alias -- result: alias
    end tell -- finds the Illustrator file within the sub child Artwork folder
   
    -- the rest stuff
   
   
    tell application "Adobe Illustrator"
        activate
        open theAi -- opens the Illustrator file from the sub child Artwork folder
       
        tell document 1
            do script "APPROVED RELEASE FILE" from "Dave's" -- runs the specific Illustrator Action (preps for release, outlines, changes approval layer, etc)
        end tell
       
    end tell
   
   
   
   
   
    tell application "Finder"
        repeat
            try
                alias "Dave's Mac:Users:uk:Desktop:PDF's:Not Distilled:"
               
                tell application "Finder"
                    set a to "Dave's Mac:Users:uk:Desktop:PDF's:Not Distilled:" as alias
                    delay 0.1
                    duplicate files of entire contents of a to theDroppedItems with replacing
                end tell
               
               
                tell application "MakeZipOnly"
                    activate
                    open theDroppedItems
                end tell
                exit repeat
            end try
            delay 0.1
            delete files of entire contents of a
           
        end repeat
       
       
        tell application "Finder"
            set a to "Dave's Mac:Users:uk:Desktop:PDF's:Not Distilled:" as alias
            set b to "Dave's Mac:Volumes:TamworthMacRAID:TEMPORARY FILE TRANSFERS:RELEASES:PDF's:" as alias
            move files of entire contents of a to b with replacing
        end tell
       
        delay 0.1
        delete files of entire contents of a
       
    end tell
   
   
    tell application "Finder"
        set NameOfFile to (name of (info for theDroppedItems))
        set NameOfFile to text 1 thru ((offset of "." in NameOfFile) - 1) of NameOfFile
        set myFile to theDroppedItems as alias
    end tell
   
   
    tell application "Microsoft Outlook"
        set mySubject to NameOfFile & " APPROVED FILE RELEASE" as text
        set myContent to "<p style=font-family:Calibri>Hi</p><p style=font-family:Calibri>Attached is the Approved Release File for " & NameOfFile & "<p style=font-family:Calibri>Thanks</p>"
        set myAttachment to theDroppedItems
        set myMsg to make new outgoing message with properties {subject:mySubject, content:myContent}
        tell myMsg
            make new attachment with properties {file:myFile}
            make new recipient with properties {email address:{name:"name", address:"name@name.co.uk"}}
           
        end tell
        open myMsg
       
    end tell
   
end open


   
   
   
   
   
    tell application "Finder"
        repeat
            try
                alias "Dave's Mac:Users:g-uk-tam1-retail-2:Desktop:PDF's:Not Distilled:"
               
                tell application "Finder"
                    set a to "Dave's Mac:Users:g-uk-tam1-retail-2:Desktop:PDF's:Not Distilled:" as alias
                    delay 0.1
                    duplicate files of entire contents of a to theDroppedItems with replacing
                end tell
               
               
                tell application "MakeZipOnly"
                    activate
                    open theDroppedItems
                end tell
                exit repeat
            end try
            delay 0.1
            delete files of entire contents of a
           
        end repeat
       
       
        tell application "Finder"
            set a to "Dave's Mac:Users:g-uk-tam1-retail-2:Desktop:PDF's:Not Distilled:" as alias
            set b to "Dave's Mac:Volumes:TamworthMacRAID:TEMPORARY FILE TRANSFERS:RELEASES:PDF's:" as alias
            move files of entire contents of a to b with replacing
        end tell
       
        delay 0.1
        delete files of entire contents of a
       
    end tell
   
   
    tell application "Finder"
        set NameOfFile to (name of (info for theDroppedItems))
        set NameOfFile to text 1 thru ((offset of "." in NameOfFile) - 1) of NameOfFile
        set myFile to theDroppedItems as alias
    end tell
   
   
    tell application "Microsoft Outlook"
        set mySubject to NameOfFile & " APPROVED FILE RELEASE" as text
        set myContent to "<p style=font-family:Calibri>Hi</p><p style=font-family:Calibri>Attached is the Approved Release File for " & NameOfFile & "<p style=font-family:Calibri>Thanks</p>"
        set myAttachment to theDroppedItems
        set myMsg to make new outgoing message with properties {subject:mySubject, content:myContent}
        tell myMsg
            make new attachment with properties {file:myFile}
            make new recipient with properties {email address:{name:"name", address:"name@name.co.uk"}}
           
        end tell
        open myMsg
       
    end tell
   
end open

Offline

 

#4 2021-01-12 10:09:01 am

KniazidisR
Member
From:: Greece
Registered: 2019-03-03
Posts: 1537

Re: Drop Parent folder to action script

It was my mistake. 1 more coercion is needed:

Applescript:


on open theDroppedItems -- drop here parent folder
   
   set parentFolder to item 1 of theDroppedItems -- result: alias
   tell application "Finder"
       set parentFolder to folder (parentFolder as text) -- result: Finder reference, ADDED
       tell parentFolder to set childFolder to folder 1 -- result: Finder reference, EDITED
       tell childFolder to set theAi to (first file whose name extension is "ai") as alias -- result: alias
   end tell -- finds the Illustrator file within the sub child Artwork folder
   
   -- the rest stuff
   
end open -- 1 end open instead of 3 end open

Last edited by KniazidisR (2021-01-12 10:26:23 am)


Model: MacBook Pro
OS X: Catalina 10.15.4
Web Browser: Safari 13.1
Ram: 4 GB

Offline

 

#5 2021-01-12 11:02:23 am

TheBlackBinLiner
Member
Registered: 2019-12-05
Posts: 21

Re: Drop Parent folder to action script

Perfect thank you!!

Offline

 

Board footer

Powered by FluxBB

RSS (new topics) RSS (active topics)