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  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\

[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 \"Im