aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkongr45gpen <electrovesta@gmail.com>2017-01-04 17:30:03 +0200
committerkongr45gpen <electrovesta@gmail.com>2017-01-04 17:30:03 +0200
commit5e10087299609505d723bf3c51aa0913a13f2f3f (patch)
tree8ec6184d5f1a1b08d1cf8665f34e78b6392ac521
parente9f066d9bcd62bba23439011037d74f75dbb1062 (diff)
downloadsupybot_github-5e10087299609505d723bf3c51aa0913a13f2f3f.tar.gz
supybot_github-5e10087299609505d723bf3c51aa0913a13f2f3f.tar.bz2
supybot_github-5e10087299609505d723bf3c51aa0913a13f2f3f.zip
Smarter handling of unknown events
-rw-r--r--__init__.py2
-rw-r--r--local/handler/GithubHandler.py4
-rw-r--r--local/handler/UnknownHandler.py22
-rw-r--r--local/theme/DefaultTheme.py38
4 files changed, 61 insertions, 5 deletions
diff --git a/__init__.py b/__init__.py
index 92c68a6..e035536 100644
--- a/__init__.py
+++ b/__init__.py
@@ -39,6 +39,7 @@ import local.handler.StatusHandler
import local.handler.TravisHandler
import local.handler.MessageHandler
import local.handler.ReleaseHandler
+import local.handler.UnknownHandler
import local.handler.AppVeyorHandler
import local.handler.CreateDeleteHandler
import local.handler.IssueCommentHandler
@@ -56,6 +57,7 @@ reload(local.handler.StatusHandler)
reload(local.handler.TravisHandler)
reload(local.handler.MessageHandler)
reload(local.handler.ReleaseHandler)
+reload(local.handler.UnknownHandler)
reload(local.handler.AppVeyorHandler)
reload(local.handler.CreateDeleteHandler)
reload(local.handler.IssueCommentHandler)
diff --git a/local/handler/GithubHandler.py b/local/handler/GithubHandler.py
index e767e49..362917f 100644
--- a/local/handler/GithubHandler.py
+++ b/local/handler/GithubHandler.py
@@ -35,6 +35,7 @@ import StatusHandler
import TravisHandler
import MessageHandler
import ReleaseHandler
+import UnknownHandler
import AppVeyorHandler
import CreateDeleteHandler
import IssueCommentHandler
@@ -185,7 +186,8 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler):
elif 'eventName' in data:
AppVeyorHandler.handle(data, theme)
else:
- theme.unknown(eventType)
+ data['eventType'] = eventType
+ UnknownHandler.handle(data, theme)
theme.finalize()
diff --git a/local/handler/UnknownHandler.py b/local/handler/UnknownHandler.py
new file mode 100644
index 0000000..e158512
--- /dev/null
+++ b/local/handler/UnknownHandler.py
@@ -0,0 +1,22 @@
+from ..utility import *
+
+def handle(data, theme):
+ actor = data['sender']['login'] \
+ if 'sender' in data and 'login' in data['sender'] \
+ else None
+ action = data['action'] if 'action' in data else None
+
+ url = None
+ for key in data:
+ if key not in ['repository', 'sender'] \
+ and isinstance(data[key], dict)\
+ and 'html_url' in data[key]:
+ url = data[key]['html_url']
+ break
+
+ theme.unknown(
+ eventType = data['eventType'],
+ action = action,
+ actor = actor,
+ url = url
+ )
diff --git a/local/theme/DefaultTheme.py b/local/theme/DefaultTheme.py
index 96259d0..e6269d7 100644
--- a/local/theme/DefaultTheme.py
+++ b/local/theme/DefaultTheme.py
@@ -128,7 +128,7 @@ class DefaultTheme(Theme):
))
def wikiPages(self, actor, pages, url):
- urlShown = False;
+ urlShown = False
for page in pages:
if configValue("hidePush") and urlShown is False:
@@ -184,10 +184,40 @@ class DefaultTheme(Theme):
ircutils.mircColor(message, "light blue")
))
- def unknown(self, eventType):
- self.msgs.append( "%s: %s happened" % (
+ def unknown(self, eventType, action, actor, url):
+ if action is not None:
+ if eventType is None:
+ event = colorAction(action)
+ else:
+ event = "%s a%s %s" % (
+ colorAction(action),
+ 'n' if eventType[0:1] in ['a','e','i','o','u'] else '',
+ eventType
+ )
+ if actor:
+ event = "%s %s" % (
+ ircutils.mircColor(actor, "green"),
+ event
+ )
+ else:
+ if eventType is None:
+ event = "Something happened"
+ else:
+ event = "A%s %s happened" % (
+ 'n' if eventType[0:1] in ['a', 'e', 'i', 'o', 'u'] else '',
+ colorAction(eventType)
+
+ )
+ if actor:
+ event = "%s by %s" % (
+ event,
+ ircutils.mircColor(actor, "green")
+ )
+
+ self.msgs.append( "%s: %s %s" % (
self.repo(),
- "A %s" % (ircutils.bold(eventType)) if eventType else "Something"
+ event,
+ self.enclose(url)
))
def repo(self, branch = None):

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