aboutsummaryrefslogtreecommitdiffstats
path: root/local/handler/GithubHandler.py
diff options
context:
space:
mode:
authoralezakos <electrovesta@gmail.com>2020-08-09 16:48:17 +0300
committerGitHub <noreply@github.com>2020-08-09 16:48:17 +0300
commit65c3752b38fa827f816c63a6f864c60f3ea71f86 (patch)
tree6f8b25d28688f885de1b0a788e77358fe1dc67d5 /local/handler/GithubHandler.py
parentb431c5476514784f97985419323cf4bec9a61500 (diff)
parent5a0215deac647f52da3e24dc47057af3b132654e (diff)
downloadsupybot_github-65c3752b38fa827f816c63a6f864c60f3ea71f86.tar.gz
supybot_github-65c3752b38fa827f816c63a6f864c60f3ea71f86.tar.bz2
supybot_github-65c3752b38fa827f816c63a6f864c60f3ea71f86.zip
Merge pull request #27 from blast007/python3
Python 3 support
Diffstat (limited to 'local/handler/GithubHandler.py')
-rw-r--r--local/handler/GithubHandler.py52
1 files changed, 26 insertions, 26 deletions
diff --git a/local/handler/GithubHandler.py b/local/handler/GithubHandler.py
index 0c3a0dc..99c5931 100644
--- a/local/handler/GithubHandler.py
+++ b/local/handler/GithubHandler.py
@@ -5,12 +5,12 @@ import json
import time
import random
import socket
-import urllib
-import urllib2
+import urllib.request, urllib.parse, urllib.error
+import urllib.request, urllib.error, urllib.parse
import hashlib
-import urlparse
+import urllib.parse
import threading
-import BaseHTTPServer
+import http.server
from time import strftime
import supybot.log as log
@@ -27,30 +27,30 @@ import supybot.callbacks as callbacks
from ..globals import *
from ..utility import *
-import PingHandler
-import PushHandler
-import WikiHandler
-import IssueHandler
-import StatusHandler
-import TravisHandler
-import MessageHandler
-import NetlifyHandler
-import ReleaseHandler
-import UnknownHandler
-import AppVeyorHandler
-import CreateDeleteHandler
-import IssueCommentHandler
+from . import PingHandler
+from . import PushHandler
+from . import WikiHandler
+from . import IssueHandler
+from . import StatusHandler
+from . import TravisHandler
+from . import MessageHandler
+from . import NetlifyHandler
+from . import ReleaseHandler
+from . import UnknownHandler
+from . import AppVeyorHandler
+from . import CreateDeleteHandler
+from . import IssueCommentHandler
from .. import theme as themes
#TODO: Use a better name and location for this
-class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler):
+class GithubHandler(http.server.BaseHTTPRequestHandler):
def do_POST(s):
"""Respond to a POST request."""
length = int(s.headers['Content-Length'])
payload = s.rfile.read(length).decode('utf-8')
if 'content-type' not in s.headers or s.headers['content-type'] == 'application/x-www-form-urlencoded':
- post_data = urlparse.parse_qs(payload)
+ post_data = urllib.parse.parse_qs(payload)
data = json.loads(post_data['payload'][0])
else:
data = json.loads(payload)
@@ -81,7 +81,7 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler):
# Analyse the URL
i = 0
for part in path:
- part = urllib.unquote(part)
+ part = urllib.parse.unquote(part)
if i == 1 and requireCode:
receivedcode = part
@@ -105,22 +105,22 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler):
s.send_response(200)
s.send_header('Content-type', 'text/plain')
s.end_headers()
- s.wfile.write("Thanks!\n")
- s.wfile.write(s.path.split('/'))
- s.wfile.write("\n")
+ s.wfile.write("Thanks!\n".encode())
+ s.wfile.write(repr(s.path.lstrip('/').split('/')).encode())
+ s.wfile.write("\n".encode())
except socket.error:
pass
if requireCode and receivedcode != configValue('passcode'):
# The password is wrong
- s.wfile.write("The password is wrong\n")
+ s.wfile.write("The password is wrong\n".encode())
return
# Handle Github secrets
secret = getChannelSecret(channel)
if secret is not None:
if not 'X-Hub-Signature' in s.headers:
- s.wfile.write("This channel requires a secret\n")
+ s.wfile.write("This channel requires a secret\n".encode())
return
digest = "sha1=%s" % (hmac.new(secret, payload, hashlib.sha1).hexdigest(),)
@@ -130,7 +130,7 @@ class GithubHandler(BaseHTTPServer.BaseHTTPRequestHandler):
log.debug("provided digest: %s", provided)
if not secureCompare(digest, provided):
- s.wfile.write("Invalid secret key\n")
+ s.wfile.write("Invalid secret key\n".encode())
return
brackets = parseBrackets(configValue('brackets'))

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