on run -- get the list of selected ID's in front window set selectedItems to GetSelection() -- show about AboutScript() -- process each item set theCount to 0 tell application "iView MediaPro" repeat with theItem in selectedItems -- get exif date & original name set newName to "" set theName to the name of theItem set thePath to the path of theItem --display dialog thePath set theHeadline to the headline of theItem -- form new name by stripping all punctuation from the headline and -- replace all spaces with underscores set newName to my tidyString(theHeadline) -- set newName to theHeadline -- if the old name has an extension, append it to new name -- But change it to lower case set nc to the number of characters in theName if character (nc - 3) of theName = "." then set thefileextension to my change_case((get text (nc - 3) through nc of theName), 0) end if -- rename if theName ­ (newName & thefileextension) then --does a file already exist with this name? tell application "Finder" set filefolder to (folder of alias thePath) set filenumber to "" set counter to 1 set myloop to true repeat until myloop is false if exists file (newName & filenumber & thefileextension) of filefolder then if filenumber = "" then set filenumber to "_" & counter else set filenumber to "_" & counter + 1 set counter to counter + 1 end if else set myloop to false end if end repeat end tell set the name of theItem to (newName & filenumber & thefileextension) if the name of theItem = (newName & filenumber & thefileextension) then set theCount to theCount + 1 end if --end try end repeat end tell ShowResult(theCount) end run -- get the selected media items in an array --------------------------------------------- on GetSelection() set selectedItems to {} tell application "iView MediaPro" if catalog 1 exists then set selectedItems to the selection of catalog 1 end tell if number of items in selectedItems is 0 then display dialog  "You need to select at least one media item in the front catalog in order to use this script." buttons {"OK"} default button  "OK" with icon 1 giving up after 10 error number -128 end if return selectedItems end GetSelection -- Strip punctuation and replace spaces with underscore ------------ on tidyString(the_string) set the_delims to {"!", "@", "Û", "#", "£", "$", "%", "^", "&", "*", "(", ")", "=", "+", "[", "]", "{", "}", ";", ":", "\"", "'", "\\", "|", ",", "<", ".", ">", "/", "?", "`", "~", "_"} -- store the originals and set up the marker. set {OLD_delim, _marker_} to {AppleScript's text item delimiters, "¤"} -- process each of the delimiters in the_delims replacing each with the _marker_ repeat with this_delim in the_delims my atid(this_delim) -- see the handler that follows set the_string to text items of the_string my atid(_marker_) set the_string to text items of the_string as string end repeat my atid(_marker_) set the_string to text items of the_string my atid(OLD_delim) set the_string to the_string as string -- now replace spaces with "_" set the_words to words of the_string my atid("_") set the_string to the_words as string my atid("") return the_string end tidyString on atid(the_delim) set AppleScript's text item delimiters to the_delim end atid on replaceSpaces(the_text) set myWords to words of the_text my atid("_") set the_text to myWords as string my atid("") return the_text end replaceSpaces -- about this script --------------------------------------------- on AboutScript() display dialog  "This script will rename original files of all selected items using valid values in the \"Headline\" field. Resulting filenames will have all punctuation removed, and spaces replaced with \"_\". It will also change the file extension, if present, to lowercase." buttons {"Cancel", "Rename"} default button 2 with icon 1 set theAnswer to the button returned of the result return theAnswer end AboutScript -- show result --------------------------------------------- on ShowResult(theCount) if theCount = 0 then set theMsg to "Script completed." & return & "No items were renamed." else if theCount = 1 then set theMsg to "Script completed." & return & "1 item was renamed." else set theMsg to "Script completed." & return & theCount & " items were renamed." end if display dialog theMsg buttons {"OK"} default button "OK" with icon 1 giving up after 10 end ShowResult -- Change case -------------------------------------- -- Taken from http://www.apple.com/applescript/guidebook/sbrt/pgs/sbrt.07.htm on change_case(this_text, this_case) if this_case is 0 then set the comparison_string to "ABCDEFGHIJKLMNOPQRSTUVWXYZ" set the source_string to "abcdefghijklmnopqrstuvwxyz" else set the comparison_string to "abcdefghijklmnopqrstuvwxyz" set the source_string to "ABCDEFGHIJKLMNOPQRSTUVWXYZ" end if set the new_text to "" repeat with this_char in this_text set x to the offset of this_char in the comparison_string if x is not 0 then set the new_text to  (the new_text & character x of the source_string) as string else set the new_text to (the new_text & this_char) as string end if end repeat return the new_text end change_case