Re: [O] mac-message for Growl 2
Hi Iain, org-mac-message has just been replaced by org-mac-link. You you please re-evaluate if your problem still exists (probably yes - if so, please provide a new patch). Thank you! - Carsten On 4.8.2013, at 22:39, Iain Houston m...@iainhouston.me wrote: I encountered a few problems with org-mac-mail bundled with emacs 24.3.1; some errors interfacing with Growl (2.1) so the patch below works for me and I wondered whether it would be of use to anyone else. I adapted the insertion of flagged mail to look at all active mail accounts rather than having to name any particular one. This is how I use org-mac-message: and below is the patch. (require 'org) (load org-mac-message) (global-set-key [(shift f10)] (lambda() (interactive) (progn (find-file-noselect ~/Dropbox/org/refile.org) (org-mac-message-insert-flagged refile.org Flagged mail diff --git a/org-mac-message.el b/org-mac-message.el index 5df68f5..be2a654 100644 --- a/org-mac-message.el +++ b/org-mac-message.el @@ -95,86 +95,89 @@ This will use the command `open' with the message URL. return theLinkList as string\n end tell))) -(defun as-get-flagged-mail () - AppleScript to create links to flagged messages in Mail.app. - (do-applescript - (concat -;; Is Growl installed? -tell application \System Events\\n -set growlHelpers to the name of every process whose creator type contains \GRRR\\n -if (count of growlHelpers) 0 then\n -set growlHelperApp to item 1 of growlHelpers\n -else\n -set growlHelperApp to \\\n -end if\n -end tell\n - -;; Get links -tell application \Mail\\n -set theMailboxes to every mailbox of account \ org-mac-mail-account \\n -set theLinkList to {}\n -repeat with aMailbox in theMailboxes\n -set theSelection to (every message in aMailbox whose flagged status = true)\n -repeat with theMessage in theSelection\n -set theID to message id of theMessage\n -set theSubject to subject of theMessage\n -set theLink to \message://\ theID \::split::\ theSubject \\n\\n -copy theLink to end of theLinkList\n - -;; Report progress through Growl -;; This double tell idiom is described in detail at -;; http://macscripter.net/viewtopic.php?id=24570 The -;; script compiler needs static knowledge of the -;; growlHelperApp. Hmm, since we're compiling -;; on-the-fly here, this is likely to be way less -;; portable than I'd hoped. It'll work when the name -;; is still GrowlHelperApp, though. -if growlHelperApp is not \\ then\n -tell application \GrowlHelperApp\\n -tell application growlHelperApp\n -set the allNotificationsList to {\FlaggedMail\}\n -set the enabledNotificationsList to allNotificationsList\n -register as application \FlaggedMail\ all notifications allNotificationsList default notifications enabledNotificationsList icon of application \Mail\\n -notify with name \FlaggedMail\ title \Importing flagged message\ description theSubject application name \FlaggedMail\\n -end tell\n -end tell\n -end if\n -end repeat\n -end repeat\n -return theLinkList as string\n -end tell))) +(defun as-get-flagged-mail () + AppleScript to create links to flagged messages in all Mail.app accounts + ;; Revised use of Growl interface and no need for variable org-mac-mail-account + (do-applescript + (concat + ;; Is Growl running? Use API as recommended at http://growl.info/documentation/applescript-support.php + tell application \System Events\\n + set growlIsRunning to (count of (every process whose bundle identifier is \com.Growl.GrowlHelperApp\)) 0\n + end tell\n + + set theLinkList to {}\n + set isNotRegisteredToGrowl to true\n + tell application \Mail\\n + set theAccountList to the name of every account\n + repeat with theMailAccount in theAccountList\n + set theMailboxes to every mailbox of account theMailAccount\n + repeat with aMailbox in theMailboxes\n + set theSelection to (every message in aMailbox whose flagged status = true)\n + repeat with theMessage in theSelection\n + set theID to message id of theMessage\n + set theSubject to subject of theMessage\n + set theLink to \message://\ theID \::split::\ theSubject \\n\\n + copy theLink to end of theLinkList\n + + if growlIsRunning then\n + tell application id \com.Growl.GrowlHelperApp\\n + if isNotRegisteredToGrowl then\n + set the allNotificationsList to {\FlaggedMail\}\n + set the enabledNotificationsList to allNotificationsList\n + register as application \FlaggedMail\ all notifications allNotificationsList default
[O] mac-message for Growl 2
I encountered a few problems with org-mac-mail bundled with emacs 24.3.1; some errors interfacing with Growl (2.1) so the patch below works for me and I wondered whether it would be of use to anyone else. I adapted the insertion of flagged mail to look at all active mail accounts rather than having to name any particular one. This is how I use org-mac-message: and below is the patch. (require 'org) (load org-mac-message) (global-set-key [(shift f10)] (lambda() (interactive) (progn (find-file-noselect ~/Dropbox/org/refile.org) (org-mac-message-insert-flagged refile.org Flagged mail diff --git a/org-mac-message.el b/org-mac-message.el index 5df68f5..be2a654 100644 --- a/org-mac-message.el +++ b/org-mac-message.el @@ -95,86 +95,89 @@ This will use the command `open' with the message URL. return theLinkList as string\n end tell))) -(defun as-get-flagged-mail () - AppleScript to create links to flagged messages in Mail.app. - (do-applescript - (concat -;; Is Growl installed? -tell application \System Events\\n -set growlHelpers to the name of every process whose creator type contains \GRRR\\n -if (count of growlHelpers) 0 then\n -set growlHelperApp to item 1 of growlHelpers\n -else\n -set growlHelperApp to \\\n -end if\n -end tell\n - -;; Get links -tell application \Mail\\n -set theMailboxes to every mailbox of account \ org-mac-mail-account \\n -set theLinkList to {}\n -repeat with aMailbox in theMailboxes\n -set theSelection to (every message in aMailbox whose flagged status = true)\n -repeat with theMessage in theSelection\n -set theID to message id of theMessage\n -set theSubject to subject of theMessage\n -set theLink to \message://\ theID \::split::\ theSubject \\n\\n -copy theLink to end of theLinkList\n - -;; Report progress through Growl -;; This double tell idiom is described in detail at -;; http://macscripter.net/viewtopic.php?id=24570 The -;; script compiler needs static knowledge of the -;; growlHelperApp. Hmm, since we're compiling -;; on-the-fly here, this is likely to be way less -;; portable than I'd hoped. It'll work when the name -;; is still GrowlHelperApp, though. -if growlHelperApp is not \\ then\n -tell application \GrowlHelperApp\\n -tell application growlHelperApp\n -set the allNotificationsList to {\FlaggedMail\}\n -set the enabledNotificationsList to allNotificationsList\n -register as application \FlaggedMail\ all notifications allNotificationsList default notifications enabledNotificationsList icon of application \Mail\\n -notify with name \FlaggedMail\ title \Importing flagged message\ description theSubject application name \FlaggedMail\\n -end tell\n -end tell\n -end if\n -end repeat\n -end repeat\n -return theLinkList as string\n -end tell))) +(defun as-get-flagged-mail () + AppleScript to create links to flagged messages in all Mail.app accounts + ;; Revised use of Growl interface and no need for variable org-mac-mail-account + (do-applescript + (concat + ;; Is Growl running? Use API as recommended at http://growl.info/documentation/applescript-support.php + tell application \System Events\\n + set growlIsRunning to (count of (every process whose bundle identifier is \com.Growl.GrowlHelperApp\)) 0\n + end tell\n + + set theLinkList to {}\n + set isNotRegisteredToGrowl to true\n + tell application \Mail\\n + set theAccountList to the name of every account\n + repeat with theMailAccount in theAccountList\n + set theMailboxes to every mailbox of account theMailAccount\n + repeat with aMailbox in theMailboxes\n + set theSelection to (every message in aMailbox whose flagged status = true)\n + repeat with theMessage in theSelection\n + set theID to message id of theMessage\n + set theSubject to subject of theMessage\n + set theLink to \message://\ theID \::split::\ theSubject \\n\\n + copy theLink to end of theLinkList\n + + if growlIsRunning then\n + tell application id \com.Growl.GrowlHelperApp\\n + if isNotRegisteredToGrowl then\n + set the allNotificationsList to {\FlaggedMail\}\n + set the enabledNotificationsList to allNotificationsList\n + register as application \FlaggedMail\ all notifications allNotificationsList default notifications enabledNotificationsList icon of application \Mail\\n + set isNotRegisteredToGrowl to false\n + end if\n + notify with name \FlaggedMail\ title \Importing flagged message\ description theSubject application name \FlaggedMail\\n + end tell\n + end if\n + + end repeat\n + end repeat\n + end repeat\n +