These forums are now read-only. Please visit our new forums to participate in discussion. A new account will be required to post in the new forums. For more info on the switch, see this post. Thank you!
|
|
FAQ | Members List | Calendar | Today's Posts | Search |
AppleScript that adds Waiting For emails from Mail.app (delegated tasks) to OmniFocus | Thread Tools | Search this Thread | Display Modes |
|
Member
2012-04-16, 06:07 PM
Post 1
|
Member
2012-04-16, 06:33 PM
whpalmer...I figured out Onyx. Rebuilt my LaunchServices. Script still not functioning.
Post 2
|
Member
2012-04-16, 06:39 PM
Hmm. Okay, my understanding of how the system associates apps might be incorrect. Lizard's suggestion should work, I was just hoping you could do it in a cleaner fashion.
Do you still have the old version of OmniFocus installed anywhere on your system? By the way, you need to replace things like this: Code:
-- Add waiting for context task to OmniFocus tell application "OmniFocus" Code:
tell application id "com.omnigroup.omnifocus.macappstore" Code:
tell application id "com.omnigroup.omnifocus" Code:
tell application "OmniFocus" Last edited by whpalmer4; 2012-04-16 at 06:44 PM..
Post 3
|
Member
2012-04-16, 06:53 PM
whpalmer4...I was hoping your way would work too!
No old versions of OF on my machine. Thanks for the 'simplification' of the script change. I'm not good with AppleScript at all, and my attempts at noodling around with it tend to be unsuccessful without some guidance. Brett Last edited by bpwhistler; 2012-04-16 at 07:22 PM..
Post 4
|
Member
2012-04-16, 07:23 PM
whpalmer...I updated my scripts. No success. Dang.
Post 5
|
Member
2012-04-18, 12:06 PM
I have been playing around with the script and MailTags outbox rules and it seems to be working fine when i send an e-mail from my iCloud account, the task gets added to my Inbox with the Waiting for context.
There seems to be a problem when i send from my Exchange accoutnt - my primary e-mail account. The task does not arrive in OF inbox or does the Growl notification show. Does anyone have a solution for the Exchange problem?
Post 6
|
Member
2012-04-18, 01:03 PM
That's interesting @bugvi. I didn't have an iCloud email account, so set one up just to test. I still get no Growl notification or task in my OF inbox when sending from my iCloud address in Mail. I wonder what the difference is in our setup.
Post 7
|
Member
2012-04-19, 02:53 AM
Thanks for your reply bpwhistler.
This is my Outbox rule set up If [Any] of the following conditions are met: [MailTags Keyword] [Is Equal to] [@Waiting] Run the AppleScript I use this script: (* Waiting For Mails to OmniFocus Script by simplicityisbliss.com, Sven Fechner MailTags project and due date compatibility added by Scott Morrison, Indev Software Based on an Outbox Rule (Mail Act-On) in Mail.app this script adds specific messages to the OmniFocus Inbox with the waiting for context MailTags is required to automatically set the project and the due date. Mail Act-On (www.indev.ca) is required to define the Outbox Rule to only create tasks for those outgoing emails that are to be tracked in OmniFocus A sample Outbox rule may be if MailTags Tickle Date is After 0 days today Run Apple Script: [ThisAppleScript] The script uses Growl from the App Store for feedback notification if it is installed and running *) --!! EDIT THE PROPERTIES BELOW TO MEET YOUR NEEDS !!-- -- Do you want the actualy mail body to be added to the notes section of the OmniFocus task? -- Set to 'true' is or 'false' if no property mailBody : true -- Text between mail recipient (the person you are waiting for to come back) and the email subject property MidFix : "to follow up re:" -- Name of your Waiting For context in OmniFocus property myWFContext : "Waiting for ..." -- Default start time property timeStart : "06:00:00" -- Default due time property timeDue : "16:00:00" -- Default start to due date interval, in days property dateInterval : "3" -- !! STOP EDITING HERE IF NOT FAMILAR WITH APPLESCRIPT !! -- --Configuration for Growl messages property GrowlRun : true property scriptName : "Waiting For Mails to OmniFocus" property notifySuccess : "Success Notification" property notifyFail : "Failed Notification" property titleSuccess : "Waiting For Mail added" property titleFail : "Waiting For Mail to OmniFocus FAILED" property txtSuccess : " added to OmniFocus successfully" property txtFail : " to OmniFocus to add successfully" property txtIcon : "OmniFocus" on perform_mail_action(theData) --Check if Growl is running tell application "System Events" to set GrowlRun to (count of (every process whose name is "Growl")) > 0 --Setup Growl if GrowlRun then tell application "Growl" to register as application scriptName all notifications {notifySuccess, notifyFail} default notifications {notifySuccess, notifyFail} icon of application txtIcon --Get going tell application "Mail" set theMessages to |SelectedMessages| of theData --Extract the messages from the rule repeat with theMessage in theMessages set theSubject to subject of theMessage set theRecipient to name of to recipient of theMessage set theMessageID to urlencode(the message id of theMessage) of me set theStartDate to "" set theDueDate to "" try using terms from application "MailTagsScriptingSupport" set theStartDate to (due date of theMessage) as date set theStartDate to my setStartDate(theStartDate) set theDueDate to theStartDate + dateInterval * days set theDueDate to my setDueDate(theDueDate) -- set myProject to project of theMessage end using terms from on error theError end try -- Check if there is one or more recipients try if (count of theRecipient) > 1 then set theRecipientName to (item 1 of theRecipient & (ASCII character 202) & "and" & (ASCII character 202) & ((count of theRecipient) - 1) as string) & (ASCII character 202) & "more" else set theRecipientName to item 1 of theRecipient end if set theTaskTitle to theRecipientName & (ASCII character 202) & MidFix & (ASCII character 202) & theSubject set messageURL to "Created from message://%3C" & (theMessageID) & "%3E" set theBody to messageURL if mailBody then set theBody to theBody & return & return & the content of theMessage -- Add waiting for context task to OmniFocus tell application "OmniFocus" tell default document set theContext to context myWFContext if theStartDate is not "" then set theTask to make new inbox task with properties {name:theTaskTitle, note:theBody, context:theContext, start date:theStartDate} else set theTask to make new inbox task with properties {name:theTaskTitle, note:theBody, context:theContext} end if if myProject is not null then set theProject to project myProject move theTask to end of tasks of theProject end if end tell end tell on error theError do shell script "logger -t outboxrule 'Error : " & theError & "' " end try my GrowlSuccess("Mail: " & theSubject) end repeat end tell end perform_mail_action on GrowlSuccess(theMessage) if GrowlRun then tell application "Growl" to notify with name notifySuccess title titleSuccess description theMessage & txtSuccess application name scriptName end GrowlSuccess on urlencode(theText) set theTextEnc to "" repeat with eachChar in characters of theText set useChar to eachChar set eachCharNum to ASCII number of eachChar if eachCharNum = 32 then set useChar to "+" else if (eachCharNum ≠ 42) and (eachCharNum ≠ 95) and (eachCharNum < 45 or eachCharNum > 46) and (eachCharNum < 48 or eachCharNum > 57) and (eachCharNum < 65 or eachCharNum > 90) and (eachCharNum < 97 or eachCharNum > 122) then set firstDig to round (eachCharNum / 16) rounding down set secondDig to eachCharNum mod 16 if firstDig > 9 then set aNum to firstDig + 55 set firstDig to ASCII character aNum end if if secondDig > 9 then set aNum to secondDig + 55 set secondDig to ASCII character aNum end if set numHex to ("%" & (firstDig as string) & (secondDig as string)) as string set useChar to numHex end if set theTextEnc to theTextEnc & useChar as string end repeat return theTextEnc end urlencode on setStartDate(theStartDate) set theDate to (date string of theStartDate) set newDate to the (date (theDate & " " & timeStart)) return newDate end setStartDate on setDueDate(theDueDate) set theDate to (date string of theDueDate) set newDate to the (date (theDate & " " & timeDue)) return newDate end setDueDate
Post 8
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to deal with delegated or "waiting for" actions | bisimpson | Applying OmniFocus | 20 | 2013-02-27 06:52 AM |
Delegated tasks? | mattw | OmniFocus 1 for Mac | 35 | 2011-10-07 02:10 PM |
Sync with Omnifocus on Mac adds completed tasks.. | ohla313 | OmniFocus for iPhone | 7 | 2011-06-13 08:50 AM |
Script to add delegated tasks from entourage to "Waiting" context in OmniFocus | tarun101 | OmniFocus Extras | 1 | 2010-05-21 08:09 AM |
Adding Tasks Via Send To OmniFocus Mail Rule, Mailtags, & Mail Act-On | reuben | OmniFocus 1 for Mac | 0 | 2007-11-18 06:07 PM |