Help w/AppleScript to Import Folder Contents Into DEVONthink

First, I'm new at AppleScript. Please be kind.
I feel like I've gone down a rabbit hole on this one. I can't figure out what the problem is. I have gone down several different paths with examining the contents of theFile.
The goal of this script is to identify if a new item in a Hazel folder is a file or a folder.
If theFile is a folder, the script should enumerate the files within the folder. For each file within the folder, it should import into DEVONthink Pro inside existing Groups based on the name of the folder. If the Group doesn't exist in DTP, it should create a new one.
If theFile is a file, it should just add the file to the existing Financial Records Group.
I believe the code works correctly to identify whether theFile is a file or a folder. The problem is that when it is a folder, I have been unable to enumerate the contents of the folder so that I can add each one to DTP.
Any help is appreciated!
Jon
I feel like I've gone down a rabbit hole on this one. I can't figure out what the problem is. I have gone down several different paths with examining the contents of theFile.
The goal of this script is to identify if a new item in a Hazel folder is a file or a folder.
If theFile is a folder, the script should enumerate the files within the folder. For each file within the folder, it should import into DEVONthink Pro inside existing Groups based on the name of the folder. If the Group doesn't exist in DTP, it should create a new one.
If theFile is a file, it should just add the file to the existing Financial Records Group.
I believe the code works correctly to identify whether theFile is a file or a folder. The problem is that when it is a folder, I have been unable to enumerate the contents of the folder so that I can add each one to DTP.
Any help is appreciated!
Jon
- Code: Select all
-- Grab the containing folder
set theFolder to item 3 of inputAttributes
-- Check to see if theFile is a file or folder
tell application "Finder"
tell application "System Events"
if theFile is package folder or kind of theFile is "Folder" or kind of theFile is "Volume" then
set isFolder to true
else
set isFolder to false
end if
end tell
end tell
-- Launch DEVONthink if it isn't already open.
tell application "System Events"
if not (exists process "DEVONthink Pro Office") then
tell application id "com.devon-technologies.thinkpro2" to activate
end if
end tell
-- Import the file
tell application id "com.devon-technologies.thinkpro2"
set theDatabase to open database "~/DEVONthink/Finances.dtBase2"
set thePath to POSIX path of ("Financial Statements:" & theFolder)
set theGroup to get record at thePath in theDatabase
if not (exists (theGroup)) then
set theGroup to create location thePath in theDatabase
end if
if isFolder then
set output to {} -- this will be a list of the output items
tell application "Finder"
if theFiles's kind is "Alias" then
set the end of output to POSIX path of (original item of theFile as alias)
else
set the end of output to POSIX path of theFile
end if
end tell
tell application "System Events"
set importFiles to the contents of output
end tell
set item_count to (get count of items in importFiles)
repeat with i from 1 to item_count
set {theFileName, theFileExtension} to {name, name extension} of anItem
-- Hide extension in Finder
set extension hidden of anItem to true
-- Remove extension for DEVONthink displays
set theFileName to texts 1 thru -((count theFileExtension) + 2) of theFileName
set theImport to import anItem name anItem to theGroup
end repeat
else
set {theFileName, theFileExtension} to {name, name extension} of theFile
-- Hide extension in Finder
set extension hidden of theFile to true
-- Remove extension for DEVONthink displays
set theFileName to texts 1 thru -((count theFileExtension) + 2) of theFileName
set theImport to import theFile name theFileName to theGroup
end if
end tell
return true