From 9fdf9bac865da95aa38c62e3f308271e2e7fee50 Mon Sep 17 00:00:00 2001 From: kongr45gpen Date: Wed, 16 Mar 2016 22:11:50 +0200 Subject: Allow sending arbitrary messages --- local/handler/GithubHandler.py | 10 +++++++--- local/handler/MessageHandler.py | 5 +++++ local/theme/DefaultTheme.py | 9 +++++++++ local/utility.py | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 local/handler/MessageHandler.py (limited to 'local') diff --git a/local/handler/GithubHandler.py b/local/handler/GithubHandler.py index 53ea740..e1e6394 100644 --- a/local/handler/GithubHandler.py +++ b/local/handler/GithubHandler.py @@ -30,6 +30,7 @@ import WikiHandler import IssueHandler import StatusHandler import TravisHandler +import MessageHandler import CreateDeleteHandler import IssueCommentHandler @@ -133,9 +134,10 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler): repo = {} - repo['name'] = data.get('repository',{}).get('name') - repo['owner'] = data.get('repository',{}).get('owner',{}).get('login') - repo['fork'] = data.get('repository',{}).get('fork', False) + repo['unknown'] = 'repository' not in data + repo['name'] = data.get('repository',{}).get('name') + repo['owner'] = data.get('repository',{}).get('owner',{}).get('login') + repo['fork'] = data.get('repository',{}).get('fork', False) theme = klass(repo, brackets) # @@ -159,6 +161,8 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler): IssueHandler.handle(data, theme) elif 'ref_type' in data: CreateDeleteHandler.handle(data, theme) + elif 'message' in data: + MessageHandler.handle(data, theme) else: theme.unknown(eventType) diff --git a/local/handler/MessageHandler.py b/local/handler/MessageHandler.py new file mode 100644 index 0000000..c3433b4 --- /dev/null +++ b/local/handler/MessageHandler.py @@ -0,0 +1,5 @@ +from ..utility import * + +def handle(data, theme): + if configValue('allowArbitraryMessages'): + theme.message(data['message']) diff --git a/local/theme/DefaultTheme.py b/local/theme/DefaultTheme.py index a0e797c..2a17845 100644 --- a/local/theme/DefaultTheme.py +++ b/local/theme/DefaultTheme.py @@ -154,6 +154,15 @@ class DefaultTheme(Theme): self.enclose(url) )) + def message(self, message): + if self.repoInfo['unknown']: + self.msgs.append(message) + else: + self.msgs.append( "%s: %s" % ( + self.repo(), + message + )) + def unknown(self, eventType): self.msgs.append( "%s: %s happened" % ( self.repo(), diff --git a/local/utility.py b/local/utility.py index 8ad2a61..ef37c28 100644 --- a/local/utility.py +++ b/local/utility.py @@ -39,7 +39,7 @@ def addConfigOverride(name, value): name = name.strip().lower() - if name in [ 'passcode', 'disallowConfigOverride' ]: + if name in [ 'passcode', 'disallowConfigOverride', 'allowArbitraryMessages' ]: return globals.configOverrides[name] = value -- cgit v1.2.3