While you're in there :)

I was seeing a few more spam points than i liked, and a coupe of them were easy 
fixes:

   def mail_headers(self, group, params):
    from email import Utils
    subject = self.make_subject(group, params)
    try:
      subject.encode('ascii')
    except UnicodeError:
      from email.Header import Header
      subject = Header(subject, 'utf-8').encode()
    hdrs = 'From: %s\n'    \
           'To: %s\n'      \
           'Subject: %s\n' \
           'Date: %s\n' \
           'Message-ID: %s\n' \
           'MIME-Version: 1.0\n' \
           'Content-Type: text/plain; charset=UTF-8\n' \
           'Content-Transfer-Encoding: 8bit\n' \
           'X-Svn-Commit-Project: %s\n' \
           'X-Svn-Commit-Author: %s\n' \
           'X-Svn-Commit-Revision: %d\n' \
           'X-Svn-Commit-Repository: %s\n' \
           % (self.from_addr, ', '.join(self.to_addrs), subject, 
              Utils.formatdate(), Utils.make_msgid("r" + str(self.repos.rev)),
              group, self.repos.author or 'no_author', self.repos.rev,
              os.path.basename(self.repos.repos_dir))
    if self.reply_to:
      hdrs = '%sReply-To: %s\n' % (hdrs, self.reply_to)
    return hdrs + '\n'

Adds a Date header and a Message-ID with the revision property embedded at the 
end.  I also have a tweak with a new config line to allow you to ignore the 
directory inclusion on the subject line entirely (leaving only the revision 
(eg. r4939)), but unless you're interested, I'm willing to fight that battle 
another day.


-nick

--
Peelman, Nick
n...@peelman.us




On Feb 18, 2013, at 16:36, Daniel Shahaf <d...@daniel.shahaf.name> wrote:

> Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
> I'll commit your fix shortly.  Thanks!
> 
> Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
>> Using mailer.py fetched from: 
>> http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
>> 
>> Running:
>> 
>>> root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 
>>> ../conf/mailer.conf 
>>> Traceback (most recent call last):
>>>  File "./mailer.py", line 1444, in <module>
>>>    sys.argv[3:3+expected_args])
>>>  File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
>>>    return func(application_pool, *args, **kw)
>>>  File "./mailer.py", line 102, in main
>>>    {'author': author,
>>> UnboundLocalError: local variable 'author' referenced before assignment
>> 
>> 
>> Fix:
>> 
>> ~ Line 102:
>> 
>>>  if cmd == 'commit':
>>>    revision = int(cmd_args[0])
>>>    repos = Repository(repos_dir, revision, pool)
>>>    cfg = Config(config_fname, repos,
>>>                 {'author': repos.author,
>>>                  'repos_basename': os.path.basename(repos.repos_dir)
>>>                 })
>>>    messenger = Commit(pool, cfg, repos)   
>> 
>> Use repos.author instead of just 'author'.
>> 
>> -nick
>> 
>> --
>> Peelman, Nick
>> n...@peelman.us
>> 
>> 
>> 
>> 
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to