<DKIM> [PATCH] Pass relevant maildir filenames to newmail_hook
    Nicolas Sebrecht 
    nicolas.s-dev at laposte.net
       
    Fri Jul 19 00:18:27 BST 2019
    
    
  
On Thu, Jul 18, 2019 at 01:34:46PM +0300, gwn wrote:
> So that the hook can implement advanced features that acts on the
> newly synced mail content.
Here are my comments to make this patch go into the mainline.
> Also please note that this patch is not backwards compatible as it
> causes "newmail_hook" lambdas with no arguments trigger
> exceptions.
Please, update the documentation accordingly in offlineimap.conf.
> ---
>  offlineimap/folder/Base.py | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/offlineimap/folder/Base.py b/offlineimap/folder/Base.py
> index 5f287fa..f1376b7 100644
> --- a/offlineimap/folder/Base.py
> +++ b/offlineimap/folder/Base.py
> @@ -947,8 +947,18 @@ class BaseFolder(object):
>  
>          # Execute new mail hook if we have new mail.
>          if self.have_newmail:
> +            dstfolder_fullname = dstfolder.getfullname()
> +
> +            newmail_filenames = [
> +                os.path.join(
> +                    dstfolder_fullname,
> +                    dstfolder.messagelist[uid]['filename']
> +                )
> +                    for uid in copylist
> +            ]
> +
I think we should compute the list only when we need it, after the
'newmail_hook != None' check.
>              if self.newmail_hook != None:
BTW, this check should be merged with the 'have_newmail' check.
> -                self.newmail_hook()
> +                self.newmail_hook(newmail_filenames)
>  
>      def __syncmessagesto_delete(self, dstfolder, statusfolder):
>          """Pass 2: Remove locally deleted messages on dst.
Thanks!
-- 
Nicolas Sebrecht
    
    
More information about the OfflineIMAP-project
mailing list