Wednesday, February 22, 2017

#1 2016-07-28 09:30:40 pm

kearney194
Member
Registered: 2012-03-10
Posts: 6

rename movie files

I created a script to rename my movie files to: Title (Year).extension

it takes out words not needed, replaces dots with spaces, puts brackets around the year, removes trailing spaces and removes color label

is there a way to make it faster?

Applescript:

set defDel to AppleScript's text item delimiters
set myList to {"720p",  "x264", "1080p"}
repeat with theItem in myList
   
    tell application "Finder" to set myFiles to (every file of folder "Time Machine Backups:Movies:" whose name contains theItem)
    repeat with thisItem in myFiles
        set thename to name of thisItem
        if thename contains theItem then
            set AppleScript's text item delimiters to theItem
            set newName to text items of thename
            set AppleScript's text item delimiters to ""
            set name of thisItem to (newName as string)
           
            set AppleScript's text item delimiters to defDel
        end if
    end repeat
    delay 10
end repeat
delay 10

set defDel to AppleScript's text item delimiters
set myList to {"    ", "   ", "  ", "  "}
repeat with theItem in myList
   
    tell application "Finder" to set myFiles to (every file of folder "Time Machine Backups:Movies:" whose name contains theItem)
    repeat with thisItem in myFiles
        set thename to name of thisItem
        if thename contains theItem then
            set AppleScript's text item delimiters to theItem
            set newName to text items of thename
            set AppleScript's text item delimiters to " "
            set name of thisItem to (newName as string)
            set AppleScript's text item delimiters to defDel
        end if
    end repeat
end repeat
set defDel to AppleScript's text item delimiters
set myList to {}
repeat with x from 1950 to 2016 by 1
    set end of myList to x as text
end repeat

repeat with theItem in myList
    tell application "Finder" to set myFiles to (every file of folder "Time Machine Backups:Movies:" whose name contains " " & theItem)
    repeat with thisItem in myFiles
        set thename to name of thisItem
        if thename contains " " & theItem then
            set AppleScript's text item delimiters to theItem
            set newName to text items of thename
            set AppleScript's text item delimiters to " (" & theItem & ")"
            set name of thisItem to (newName as string)
            set AppleScript's text item delimiters to defDel
        end if
    end repeat
   
end repeat

set defDel to AppleScript's text item delimiters
tell application "Finder" to set myFiles to every file of folder "Time Machine Backups:Movies:"
repeat with thisItem in myFiles
    set thename to name of thisItem
    if thename contains "((" then
        set AppleScript's text item delimiters to "(("
        set newName to text items of thename
        set AppleScript's text item delimiters to "("
        set name of thisItem to (newName as string)
        set AppleScript's text item delimiters to defDel
    end if
end repeat


set defDel to AppleScript's text item delimiters
tell application "Finder" to set myFiles to every file of folder "Time Machine Backups:Movies:"
repeat with thisItem in myFiles
    set thename to name of thisItem
    if thename contains "))" then
        set AppleScript's text item delimiters to "))"
        set newName to text items of thename
        set AppleScript's text item delimiters to ")"
        set name of thisItem to (newName as string)
        set AppleScript's text item delimiters to defDel
    end if
end repeat
set defDel to AppleScript's text item delimiters
set myList to {"    ", "   ", "  ", "  "}
repeat with theItem in myList
   
    tell application "Finder" to set myFiles to (every file of folder "Time Machine Backups:Movies:" whose name contains theItem)
    repeat with thisItem in myFiles
        set thename to name of thisItem
        if thename contains theItem then
            set AppleScript's text item delimiters to theItem
            set newName to text items of thename
            set AppleScript's text item delimiters to " "
            set name of thisItem to (newName as string)
            set AppleScript's text item delimiters to defDel
        end if
    end repeat
end repeat


set defDel to AppleScript's text item delimiters
tell application "Finder"
    set _filenames to name of every file of folder "Time Machine Backups:Movies:"
    set _extensions to name extension of every file of folder "Time Machine Backups:Movies:"
end tell

-- Collect names (filename - dot and extension)
set _names to {}

repeat with n from 1 to count of _filenames
   
    set _filename to item n of _filenames as text
    set _extension to item n of _extensions as text
   
    if _extension is not "" then
        set _length to (count of _filename) - (count of _extension) - 1
        set end of _names to text 1 thru _length of _filename
    else
        set end of _names to _filename
    end if
   
end repeat
delay 10
set myList to {}
repeat with i from 1 to count of _names
    set thisItem to item i of _names
    if thisItem contains "." then
        set end of myList to thisItem as text
    end if
end repeat
delay 10
repeat with theItem in myList
    tell application "Finder" to set myFiles to (every file of folder "Time Machine Backups:Movies:" whose name contains theItem)
    repeat with thisItem in myFiles
        set thename to name of thisItem
        set theextension to name extension of thisItem
        if thename contains "." then
           
            set AppleScript's text item delimiters to "."
            if number of text items of thename > 1 then
                set thename to text items 1 thru -2 of thename as text
                repeat while thename ends with space
                    set thename to thename's text 1 thru -2
                end repeat
            end if
           
            set newName to text items of thename
           
            set newName to text items of thename
            set AppleScript's text item delimiters to " "
            set name of thisItem to (newName as string) & "." & theextension
           
            set AppleScript's text item delimiters to defDel
        end if
    end repeat
end repeat
delay 10
tell application "Finder" to set label index of (every file of folder "Time Machine Backups:Movies:") to 0

--0 -> No Label
--1 -> Orange Label
--2 -> Red Label
--3 -> Yellow Label
--4 -> Blue Label
--5 -> Purple Label
--6 -> Green Label
--7 -> Gray Label

Offline

 

Board footer

Powered by FluxBB

[ Generated in 0.035 seconds, 8 queries executed ]

RSS (new topics) RSS (active topics)