X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;ds=sidebyside;f=irkerhook.py;h=a1323b04a92b750a72f7d33b46177dcb96195268;hb=9975175d60c3abc3b29e0b23ef80ce9703a6dda0;hp=4eecd2144eb2bdfa40567757112dd3e46db1a602;hpb=3c8a6326b1cc6664f2b10bdeffa44d1ecd71904d;p=bzrirker.git diff --git a/irkerhook.py b/irkerhook.py index 4eecd21..a1323b0 100644 --- a/irkerhook.py +++ b/irkerhook.py @@ -8,6 +8,8 @@ import socket import sys import json +IRKER_PORT = 6659 + class IrkerSender(object): """An irker message sender.""" @@ -99,25 +101,29 @@ class IrkerSender(object): """ self.branch.lock_read() self.branch.repository.lock_read() - # These should become configurable at some point - default_server = 'localhost' - IRKER_PORT = 6659 + server = self.config.get('irker_server') + if not server: + server = 'localhost' + port = int(self.config.get('irker_port')) + if not port: + port = IRKER_PORT try: # 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 + # If we're too long, we might not get any notification, so + # we truncate the msg to max 450 chars, and hope that's + # going to be within the 510 irc limit + msg = unicode(self._format())[:450] message = json.dumps({"to": channels, "privmsg": msg}) if channels: # We assume tcp, since I'm lazy, so we just grab that bit # of irker's code try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect((default_server, IRKER_PORT)) + sock.connect((server, port)) sock.sendall(message + "\n") except socket.error, e: sys.stderr.write("%s\n" % e) @@ -133,3 +139,7 @@ opt_irker_colours = Option('irker_colours', help='Colour option for irker.') opt_irker_project = Option('irker_project', help='Project name to use.') +opt_irker_server = Option('irker_server', + help='host for the irkerd server (default localhost).') +opt_irker_port = Option('irker_port', + help='port for the irkerd server (default %d)' % IRKER_PORT)