diff --git a/server.py b/server.py index d0e1b7b..65f5f78 100644 --- a/server.py +++ b/server.py @@ -1,4 +1,4 @@ -import BaseHTTPServer +import http.server import os import time import base64 @@ -6,8 +6,8 @@ import re import supybot.utils as utils import sqlite3 import collections -import urllib -from StringIO import StringIO +import urllib.parse +from io import StringIO host = 'http://domain.tld' port = 80 @@ -19,8 +19,8 @@ filename = '/home/botaccount/data/networkname/ChanTracker.db' channels = [] # empty to allows view of all channels recorded, otherwise restrict the views to channels # usage python server.py - -base64string = base64.encodestring('%s:%s' % (username,password))[:-1] +auth = '%s:%s' % (username,password) +base64string = base64.b64encode(auth.encode('UTF-8')) def timeElapsed(elapsed, short=False, leadingZeroes=False, years=True, weeks=True, days=True, hours=True, minutes=True, seconds=True): @@ -59,13 +59,13 @@ def timeElapsed(elapsed, short=False, leadingZeroes=False, years=True, leadingZeroes = True Format('second', secs) if not ret: - raise ValueError, 'Time difference not great enough to be noted.' + raise ValueError('Time difference not great enough to be noted.') if short: return ' '.join(ret) else: return format('%L', ret) -class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): +class MyHandler( http.server.BaseHTTPRequestHandler ): server_version= "Ircd-Seven/1.1" if not standalone: def log_request(self, *args): @@ -93,17 +93,17 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): if aa[0] == 'password': p = aa[1] if u and p: - raw = base64.encodestring('%s:%s' % (u,p))[:-1] + raw = base64.encodebytes(bytes('%s:%s' % (u,p), 'UTF-8'))[:-1] if not raw == base64string: query = '' else: - query = '/?hash=%s' % base64string + query = '/?hash=%s' % base64string.decode('UTF-8') if not query.startswith('/?hash='): body.append('\n\nChanTracker\n') body.append('\n') body.append("\n\n") body.append('
\n' % h) - body.append('

Username:

\n') + body.append('

Username:

\n') body.append('

Password:

\n') body.append('\n') body.append("
\n") @@ -113,16 +113,16 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): full = ''.join(body) self.send_header("Content-length",str(len(full))) self.end_headers() - self.wfile.write(full) + self.wfile.write(full.encode('UTF-8')) return if query.startswith('/?hash='): a = query.split('&')[0] a = a.replace('/?hash=','') query = query.replace('%3D','=') - query = query.replace('/?hash=%s' % base64string,'/') - q = '?hash=%s' % base64string - query = urllib.unquote( query ) - print query + query = query.replace('/?hash=%s' % base64string.decode('UTF-8'),'/') + q = '?hash=%s' % base64string.decode('UTF-8') + query = urllib.parse.unquote( query ) + print(query) body.append('\n\nBanTracker - %s\n' % query) body.append('\n') body.append('\n') @@ -131,7 +131,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): body.append('
\n') body.append('
\n' % q) body.append('
') - body.append('' % base64string) + body.append('' % base64string.decode('UTF-8')) body.append('\n') body.append('\n') body.append('
\n') @@ -256,7 +256,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): elif query.startswith('/&search='): search = query.split('/&search=')[1] search = search.replace('+','*') - print search + print(search) if search: s = '*%s*' % search qu = '%'+search+'%' @@ -315,7 +315,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): else: body.append('

nothing found

\n') if len(ar): - print 'found %s results' % len(ar) + print('found %s results' % len(ar)) i = 0 body.append('

results %s

' % search) body.append('
\n') @@ -327,9 +327,9 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): body.append('\n') body.append('\n' % (h,q,id,id)) body.append('\n' % (h,q,channel.split('#')[1],channel)) - body.append('\n' % (h,q,urllib.urlencode({'oper':oper}),oper)) + body.append('\n' % (h,q,urllib.parse.urlencode({'oper':oper}),oper)) body.append('\n' % kind) - body.append('\n' % (h,q,urllib.urlencode({'mask':mask}),mask)) + body.append('\n' % (h,q,urllib.parse.urlencode({'mask':mask}),mask)) s = time.strftime('%Y-%m-%d %H:%M:%S GMT',time.gmtime(float(begin_at))) body.append('\n' % s) if end_at and end_at != begin_at: @@ -343,7 +343,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): else: body.append( '\n' ) if removed_by: - body.append( '\n' % (h,q,urllib.urlencode({'removed_by':removed_by}),removed_by)) + body.append( '\n' % (h,q,urllib.parse.urlencode({'removed_by':removed_by}),removed_by)) else: body.append( '\n') # affected = '' @@ -361,10 +361,10 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): self.send_response(200) self.send_header("Content-type","text/html") full = ''.join(body) - print 'html lines %s' % len(full) + print('html lines %s' % len(full)) self.send_header("Content-length",len(full)) self.end_headers() - self.wfile.write(full) + self.wfile.write(full.encode('UTF-8')) c.close() def _getbandb (self): @@ -402,7 +402,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ): return db def httpd(handler_class=MyHandler, server_address = ('', port), ): - srvr = BaseHTTPServer.HTTPServer(server_address, handler_class) + srvr = http.server.HTTPServer(server_address, handler_class) srvr.serve_forever() if __name__ == "__main__":
%s%s%s%s+%s%s%s%s%s%s