property done_foldername : "Processed files"


-- since file types are optional in Mac OS X, 

-- check the name extension if there is no file type 

-- NOTE: do not use periods (.) with the items in the name extensions list 

-- eg: {"txt", "text", "jpg", "jpeg"}, NOT: {".txt", ".text", ".jpg", ".jpeg"} 

property extension_list : {"jpg", "jpeg", "png", "tiff"}





on adding folder items to this_folder after receiving these_items

-- CHECK FOR THE DESTINATION FOLDER WITHIN THE ATTACHED FOLDER

-- IF IT DOESN'T EXIST, THEN CREATE IT

tell application "Finder"

if not (exists folder done_foldername of this_folder) then

make new folder at this_folder with properties {name:done_foldername}

set current view of container window of this_folder to list view

end if

set the target_folder to folder done_foldername of this_folder

end tell

-- PROCESS EACH OF THE ITEMS ADDED TO THE ATTACHED FOLDER

try

repeat with i from 1 to number of items in these_items

set this_item to item i of these_items

set the item_info to the info for this_item

-- CHECK TO SEE IF THE ITEM IS AN IMAGE FILE OF THE ACCEPTED FILE TYPE

if (alias of the item_info is false and the name extension of the item_info is in the extension_list) then

tell application "Finder"

-- LOOK FOR EXISTING MATCHING ITEMS IN THE DESTINATION FOLDER

-- IF THERE ARE MATCHES, THEN RENAME THE CONFLICTING FILES INCREMENTALLY

my resolve_conflicts(this_item, target_folder)

-- MOVE THE ITEM TO THE DESTINATION FOLDER

set the target_file to (move this_item to the target_folder with replacing) as alias

end tell

-- PROCESS THE ITEM

process_item(target_file)

end if

end repeat

on error error_message number error_number

if the error_number is not -128 then

--tell application "Finder"

-- activate

-- display dialog error_message buttons {"Cancel"} default button 1 giving up after 120

--end tell

--NEED to record ERRORS

end if

end try

end adding folder items to


on resolve_conflicts(this_item, target_folder)

tell application "Finder"

set the file_name to the name of this_item

if (exists document file file_name of target_folder) then

set file_extension to the name extension of this_item

if the file_extension is "" then

set the trimmed_name to the file_name

else

set the trimmed_name to text 1 thru -((length of file_extension) + 2) of the file_name

end if

set the name_increment to 1

repeat

set the new_name to (the trimmed_name & "." & (name_increment as string) & "." & file_extension) as string

if not (exists document file new_name of the target_folder) then

-- rename to conflicting file

set the name of document file file_name of the target_folder to the new_name

exit repeat

else

set the name_increment to the name_increment + 1

end if

end repeat

end if

end tell

end resolve_conflicts


-- this sub-routine processes files 

on process_item(this_item)

-- NOTE that the variable this_item is a file reference in alias format 

-- FILE PROCESSING STATEMENTS GOES HERE 

try

set t to this_item as string

set uOriginalImage to POSIX path of this_item

set the tif_file to uOriginalImage & ".tif"

set convertScript to "/usr/local/Cellar/imagemagick/6.7.7-6/bin/convert -density 200 -units PixelsPerInch -type Grayscale +compress '" & uOriginalImage & "' '" & tif_file & "'"

do shell script convertScript

set ocrscript to "/usr/local/Cellar/tesseract/3.01/bin/tesseract '" & tif_file & "' '" & tif_file & "' -1 eng"

do shell script ocrscript

on error errMsg

display dialog "ERROR: " & errMsg

end try

end process_item