Drop url from message
[bzrirker.git] / irkerhook.py
index 0f694c8f15e910cfe87ecfead10ca58337a4b488..2d6df23f13e8aa02d127800e718f26d04f794531 100644 (file)
@@ -3,16 +3,7 @@
 # Copyright 2012 Neil Muller
 # GPL 2+ - see COPYING for details
 
-from bzrlib import (
-    errors,
-    revision as _mod_revision,
-    )
-from bzrlib.config import (
-    ListOption,
-    Option,
-    bool_from_store,
-    int_from_store,
-    )
+from bzrlib.config import Option
 import socket
 import sys
 import json
@@ -21,40 +12,40 @@ import json
 class IrkerSender(object):
     """An irker message sender."""
 
-    def __init__(self, branch, revision_id, config, local_branch=None,
-        op='commit'):
+    def __init__(self, branch, revision_id, config):
         self.config = config
         self.branch = branch
         self.repository = branch.repository
-        if (local_branch is not None and
-            local_branch.repository.has_revision(revision_id)):
-            self.repository = local_branch.repository
         self._revision_id = revision_id
         self.revision = None
         self.revno = None
-        self.op = op
 
     def _setup_revision_and_revno(self):
         self.revision = self.repository.get_revision(self._revision_id)
         self.revno = self.branch.revision_id_to_revno(self._revision_id)
 
     def _format(self):
+        delta = self.branch.repository.get_revision_delta(self._revision_id)
+        files = []
+        [files.append(f) for (f,_,_) in delta.added]
+        [files.append(f) for (f,_,_) in delta.removed]
+        [files.append(f) for (_,f,_,_,_,_) in delta.renamed]
+        [files.append(f) for (f,_,_,_,_) in delta.modified]
+
         fields = {
             'project': self.project(),
             'committer': self.revision.committer,
-            'repo': '',
+            'repo': self.branch.nick,
             'rev': '%d' % self.revno,
-            'files': '',
+            'files': ' '.join(files),
             'logmsg': self.revision.get_summary(),
-            'url': self.url(),
         }
         for name, value in self.colours():
             fields[name] = value
         text = ('%(bold)s%(project)s:%(reset)s '
                 '%(green)s%(committer)s%(reset)s '
                 '%(repo)s * %(bold)s%(rev)s%(reset)s / '
-                ' %(bold)s%(files)s%(reset)s: %(logmsg)s '
-                '%(brown)s%(url)s%(reset)s' % fields)
+                ' %(bold)s%(files)s%(reset)s: %(logmsg)s ' % fields)
         return text
 
     def url(self):
@@ -67,7 +58,7 @@ class IrkerSender(object):
         return url
 
     def colours(self):
-        colour_style = self.config.get('irker_colors')
+        colour_style = self.config.get('irker_colours')
         colours = {
                 'bold': '',
                 'green': '',
@@ -104,7 +95,7 @@ class IrkerSender(object):
                     'cyan': '\x0310',
                     'reset': '\x0F',
                     }
-        return colours
+        return colours.iteritems()
 
     def project(self):
         project = self.config.get('irker_project')
@@ -124,6 +115,8 @@ class IrkerSender(object):
             # Do this after we have locked, to make things faster.
             self._setup_revision_and_revno()
             channels = self.config.get('irker_channels')
+            if channels:
+                channels = channels.split(',')
             msg = unicode(self._format())
             # We rely on the server truncating, rather than trying to be
             # too fancy here