Created
November 6, 2013 22:01
-
-
Save ohmygodwin/7344886 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* | |
Print image to Pogo printer | |
This Folder Action handler is triggered whenever items are added to the attached folder. | |
The script will send an image to a Pogo printer. | |
Hacked together by Brendan Dawes www.brendandawes.com. | |
*) | |
-- the address of your pogo device | |
property pogo_address : "00-04-48-12-16-60" | |
property done_foldername : "Printed Images" | |
-- the list of file types which will be processed | |
-- eg: {"PICT", "JPEG", "TIFF", "GIFf"} | |
property type_list : {"JPEG"} | |
-- 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"} | |
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 file type of the item_info is in the type_list) or (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 | |
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 | |
-- convert alias reference to string | |
set this_item to this_item as string | |
with timeout of 900 seconds | |
tell application "Bluetooth File Exchange" | |
-- change the address of your Pogo printer to match below | |
send file POSIX path of this_item to device pogo_address | |
end tell | |
end timeout | |
on error error_message | |
tell application "Finder" | |
activate | |
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120 | |
end tell | |
end try | |
end process_item |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment