diff options
author | alezakos <electrovesta@gmail.com> | 2020-08-09 16:48:17 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-09 16:48:17 +0300 |
commit | 65c3752b38fa827f816c63a6f864c60f3ea71f86 (patch) | |
tree | 6f8b25d28688f885de1b0a788e77358fe1dc67d5 /local/handler/GithubHandler.py | |
parent | b431c5476514784f97985419323cf4bec9a61500 (diff) | |
parent | 5a0215deac647f52da3e24dc47057af3b132654e (diff) | |
download | supybot_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.py | 52 |
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')) |