Mercurial > mamba
changeset 574:e6344f57886e
Try add colours to the irker messages.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Thu, 22 Nov 2012 00:57:15 +0200 |
parents | c01e1e329b47 |
children | b94f3db7bc90 |
files | mamba/forest.py |
diffstat | 1 files changed, 47 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/forest.py Wed Nov 21 13:38:01 2012 +0200 +++ b/mamba/forest.py Thu Nov 22 00:57:15 2012 +0200 @@ -68,7 +68,6 @@ MAMBA_VERSION = "0.1" MAMBA_URL = "https://ctpug.org.za/hg/mamba" -IRKER_PORT = 6659 CIA_URL = "http://cia.navi.cx" CIA_MSG_TEMPLATE = """ <message @@ -123,20 +122,53 @@ srv.hub.deliver(msg) -def format_irker_message(project, filename, log, branch='uncurated'): - return "%(project)s: %(branch)s * %(filename)s: %(log)s" % { +def format_irker_message(msg_template, project, filename, log, + branch='uncurated', colours=None): + msg_params = { "project": project, "filename": filename, "log": log, "branch": branch, } + if colours: + msg_params.update(colours) + return msg_template % msg_params + + +def irker_colours(colour_style): + if colour_style == "mIRC": + return { + 'bold': '\x02', + 'green': '\x0303', + 'blue': '\x0302', + 'red': '\x0305', + 'yellow': '\x0307', + 'brown': '\x0305', + 'magenta': '\x0306', + 'cyan': '\x0310', + 'reset': '\x0F', + } + else: + return { + 'bold': '', + 'green': '', + 'blue': '', + 'red': '', + 'yellow': '', + 'brown': '', + 'magenta': '', + 'cyan': '', + 'reset': '', + } def inform_irker(filename, log, branch='uncurated'): if app.config.forest.irker is None: return irker = app.config.forest.irker - privmsg = format_irker_message(irker.project, filename, log, branch) + colours = irker_colours(irker.colour_style) + privmsg = format_irker_message(irker.msg_template, irker.project, + filename, log, branch, colours=colours) message = json.dumps({"to": irker.channels, "privmsg": privmsg}) try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -148,6 +180,14 @@ class ForestConfig(object): + IRKER_PORT = 6659 + IRKER_MSG_TEMPLATE = ( + "%(bold)s%(project)s:%(reset)s " + "%(magenta)s%(branch)s%(reset)s * " + "%(bold)s%(filename)s%(reset)s: " + "%(log)s" + ) + class SubConfig(object): """Holder for sub-config.""" @@ -178,8 +218,10 @@ irker = self.SubConfig() irker.project = conf['project'] irker.host = conf.get('host', 'localhost') - irker.port = int(conf.get('port', IRKER_PORT)) + irker.port = int(conf.get('port', self.IRKER_PORT)) irker.channels = conf['channels'] + irker.msg_template = conf.get('msg_template', self.IRKER_MSG_TEMPLATE) + irker.colour_style = conf.get('colour_style', 'mIRC') return irker def _parse_cia(self, conf):