aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkongr45gpen <electrovesta@gmail.com>2016-03-16 22:11:50 +0200
committerkongr45gpen <electrovesta@gmail.com>2016-03-16 22:11:50 +0200
commit9fdf9bac865da95aa38c62e3f308271e2e7fee50 (patch)
tree927de402e13ca933f3d486ee2b5b9768199e3336
parentaf26850bcd3b7d9438a929ca01f0abd59af5bce9 (diff)
downloadsupybot_github-9fdf9bac865da95aa38c62e3f308271e2e7fee50.tar.gz
supybot_github-9fdf9bac865da95aa38c62e3f308271e2e7fee50.tar.bz2
supybot_github-9fdf9bac865da95aa38c62e3f308271e2e7fee50.zip
Allow sending arbitrary messages
-rw-r--r--__init__.py2
-rw-r--r--config.py4
-rw-r--r--local/handler/GithubHandler.py10
-rw-r--r--local/handler/MessageHandler.py5
-rw-r--r--local/theme/DefaultTheme.py9
-rw-r--r--local/utility.py2
-rw-r--r--samples/message.json27
7 files changed, 55 insertions, 4 deletions
diff --git a/__init__.py b/__init__.py
index 1ec41a4..e6644b8 100644
--- a/__init__.py
+++ b/__init__.py
@@ -34,6 +34,7 @@ import local.handler.WikiHandler
import local.handler.IssueHandler
import local.handler.StatusHandler
import local.handler.TravisHandler
+import local.handler.MessageHandler
import local.handler.CreateDeleteHandler
import local.handler.IssueCommentHandler
import local.theme.Theme
@@ -47,6 +48,7 @@ reload(local.handler.WikiHandler)
reload(local.handler.IssueHandler)
reload(local.handler.StatusHandler)
reload(local.handler.TravisHandler)
+reload(local.handler.MessageHandler)
reload(local.handler.CreateDeleteHandler)
reload(local.handler.IssueCommentHandler)
reload(local.theme.Theme)
diff --git a/config.py b/config.py
index 0c3c510..c519702 100644
--- a/config.py
+++ b/config.py
@@ -63,4 +63,8 @@ conf.registerGlobalValue(Github, 'theme',
conf.registerGlobalValue(Github, 'brackets',
registry.String('( )', """The brackets to use to enclose URLs (space-separated)"""))
+conf.registerGlobalValue(Github, 'allowArbitraryMessages',
+ registry.Boolean(False,
+ """Whether to allow parsing and showing arbitrary messages sent by a client"""))
+
# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:
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
diff --git a/samples/message.json b/samples/message.json
new file mode 100644
index 0000000..7f8b9f0
--- /dev/null
+++ b/samples/message.json
@@ -0,0 +1,27 @@
+{
+ "message": "\u000307\u0002IMPORTANT:\u000f\u000f Attention is required on \u000311Server #11\u000f",
+ "repository": {
+ "id": 20000106,
+ "name": "public-repo",
+ "full_name": "baxterthehacker/public-repo",
+ "owner": {
+ "login": "baxterthehacker",
+ "id": 6752317,
+ "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/baxterthehacker",
+ "html_url": "https://github.com/baxterthehacker",
+ "followers_url": "https://api.github.com/users/baxterthehacker/followers",
+ "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
+ "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
+ "organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
+ "repos_url": "https://api.github.com/users/baxterthehacker/repos",
+ "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ }
+}

© 2014-2024 Faster IT GmbH | imprint | privacy policy