Re: [O] mac-message for Growl 2

2013-08-31 Thread Carsten Dominik
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

2013-08-04 Thread Iain Houston
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
+