mirror of
https://github.com/ncoevoet/ChanTracker.git
synced 2025-04-26 13:01:06 -05:00
switch server.py to python3 thanks to Unit193
This commit is contained in:
parent
2407d05aa7
commit
762163f44a
46
server.py
46
server.py
@ -1,4 +1,4 @@
|
|||||||
import BaseHTTPServer
|
import http.server
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import base64
|
import base64
|
||||||
@ -6,8 +6,8 @@ import re
|
|||||||
import supybot.utils as utils
|
import supybot.utils as utils
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import collections
|
import collections
|
||||||
import urllib
|
import urllib.parse
|
||||||
from StringIO import StringIO
|
from io import StringIO
|
||||||
|
|
||||||
host = 'http://domain.tld'
|
host = 'http://domain.tld'
|
||||||
port = 80
|
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
|
channels = [] # empty to allows view of all channels recorded, otherwise restrict the views to channels
|
||||||
|
|
||||||
# usage python server.py
|
# usage python server.py
|
||||||
|
auth = '%s:%s' % (username,password)
|
||||||
base64string = base64.encodestring('%s:%s' % (username,password))[:-1]
|
base64string = base64.b64encode(auth.encode('UTF-8'))
|
||||||
|
|
||||||
def timeElapsed(elapsed, short=False, leadingZeroes=False, years=True,
|
def timeElapsed(elapsed, short=False, leadingZeroes=False, years=True,
|
||||||
weeks=True, days=True, hours=True, minutes=True, seconds=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
|
leadingZeroes = True
|
||||||
Format('second', secs)
|
Format('second', secs)
|
||||||
if not ret:
|
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:
|
if short:
|
||||||
return ' '.join(ret)
|
return ' '.join(ret)
|
||||||
else:
|
else:
|
||||||
return format('%L', ret)
|
return format('%L', ret)
|
||||||
|
|
||||||
class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
class MyHandler( http.server.BaseHTTPRequestHandler ):
|
||||||
server_version= "Ircd-Seven/1.1"
|
server_version= "Ircd-Seven/1.1"
|
||||||
if not standalone:
|
if not standalone:
|
||||||
def log_request(self, *args):
|
def log_request(self, *args):
|
||||||
@ -93,11 +93,11 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
if aa[0] == 'password':
|
if aa[0] == 'password':
|
||||||
p = aa[1]
|
p = aa[1]
|
||||||
if u and p:
|
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:
|
if not raw == base64string:
|
||||||
query = ''
|
query = ''
|
||||||
else:
|
else:
|
||||||
query = '/?hash=%s' % base64string
|
query = '/?hash=%s' % base64string.decode('UTF-8')
|
||||||
if not query.startswith('/?hash='):
|
if not query.startswith('/?hash='):
|
||||||
body.append('<html>\n<head>\n<title>ChanTracker</title>\n')
|
body.append('<html>\n<head>\n<title>ChanTracker</title>\n')
|
||||||
body.append('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n')
|
body.append('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n')
|
||||||
@ -113,16 +113,16 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
full = ''.join(body)
|
full = ''.join(body)
|
||||||
self.send_header("Content-length",str(len(full)))
|
self.send_header("Content-length",str(len(full)))
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
self.wfile.write(full)
|
self.wfile.write(full.encode('UTF-8'))
|
||||||
return
|
return
|
||||||
if query.startswith('/?hash='):
|
if query.startswith('/?hash='):
|
||||||
a = query.split('&')[0]
|
a = query.split('&')[0]
|
||||||
a = a.replace('/?hash=','')
|
a = a.replace('/?hash=','')
|
||||||
query = query.replace('%3D','=')
|
query = query.replace('%3D','=')
|
||||||
query = query.replace('/?hash=%s' % base64string,'/')
|
query = query.replace('/?hash=%s' % base64string.decode('UTF-8'),'/')
|
||||||
q = '?hash=%s' % base64string
|
q = '?hash=%s' % base64string.decode('UTF-8')
|
||||||
query = urllib.unquote( query )
|
query = urllib.parse.unquote( query )
|
||||||
print query
|
print(query)
|
||||||
body.append('<html style="text-align:center;font-size:1.2em;">\n<head>\n<title>BanTracker - %s</title>\n' % query)
|
body.append('<html style="text-align:center;font-size:1.2em;">\n<head>\n<title>BanTracker - %s</title>\n' % query)
|
||||||
body.append('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n')
|
body.append('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n')
|
||||||
body.append('<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"></link>\n')
|
body.append('<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"></link>\n')
|
||||||
@ -131,7 +131,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
body.append('<div class="row"><div class="col-xs-6">\n')
|
body.append('<div class="row"><div class="col-xs-6">\n')
|
||||||
body.append('<form action="%s" class="form">\n' % q)
|
body.append('<form action="%s" class="form">\n' % q)
|
||||||
body.append('<div class="input-group">')
|
body.append('<div class="input-group">')
|
||||||
body.append('<input type="hidden" name="hash" value="%s">' % base64string)
|
body.append('<input type="hidden" name="hash" value="%s">' % base64string.decode('UTF-8'))
|
||||||
body.append('<input name="search" class="form-control" />\n')
|
body.append('<input name="search" class="form-control" />\n')
|
||||||
body.append('<span class="input-group-btn"><button type="submit" class="btn btn-default">Search</button></span>\n')
|
body.append('<span class="input-group-btn"><button type="submit" class="btn btn-default">Search</button></span>\n')
|
||||||
body.append('</div></form></div></div>\n')
|
body.append('</div></form></div></div>\n')
|
||||||
@ -256,7 +256,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
elif query.startswith('/&search='):
|
elif query.startswith('/&search='):
|
||||||
search = query.split('/&search=')[1]
|
search = query.split('/&search=')[1]
|
||||||
search = search.replace('+','*')
|
search = search.replace('+','*')
|
||||||
print search
|
print(search)
|
||||||
if search:
|
if search:
|
||||||
s = '*%s*' % search
|
s = '*%s*' % search
|
||||||
qu = '%'+search+'%'
|
qu = '%'+search+'%'
|
||||||
@ -315,7 +315,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
else:
|
else:
|
||||||
body.append('<p>nothing found</p>\n')
|
body.append('<p>nothing found</p>\n')
|
||||||
if len(ar):
|
if len(ar):
|
||||||
print 'found %s results' % len(ar)
|
print('found %s results' % len(ar))
|
||||||
i = 0
|
i = 0
|
||||||
body.append('<h3>results <small>%s</small></h3>' % search)
|
body.append('<h3>results <small>%s</small></h3>' % search)
|
||||||
body.append('<div class="row"><div class="col-xs-12"><table class="table table-bordered sortable">\n')
|
body.append('<div class="row"><div class="col-xs-12"><table class="table table-bordered sortable">\n')
|
||||||
@ -327,9 +327,9 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
body.append('<tr>\n')
|
body.append('<tr>\n')
|
||||||
body.append('<td><a href="%s%s&id=%s">%s</a></td>\n' % (h,q,id,id))
|
body.append('<td><a href="%s%s&id=%s">%s</a></td>\n' % (h,q,id,id))
|
||||||
body.append('<td><a href="%s%s&channel=%s">%s</a></td>\n' % (h,q,channel.split('#')[1],channel))
|
body.append('<td><a href="%s%s&channel=%s">%s</a></td>\n' % (h,q,channel.split('#')[1],channel))
|
||||||
body.append('<td><a href="%s%s&%s">%s</a></td>\n' % (h,q,urllib.urlencode({'oper':oper}),oper))
|
body.append('<td><a href="%s%s&%s">%s</a></td>\n' % (h,q,urllib.parse.urlencode({'oper':oper}),oper))
|
||||||
body.append('<td>+%s</td>\n' % kind)
|
body.append('<td>+%s</td>\n' % kind)
|
||||||
body.append('<td><a href="%s%s&%s">%s</a></td>\n' % (h,q,urllib.urlencode({'mask':mask}),mask))
|
body.append('<td><a href="%s%s&%s">%s</a></td>\n' % (h,q,urllib.parse.urlencode({'mask':mask}),mask))
|
||||||
s = time.strftime('%Y-%m-%d %H:%M:%S GMT',time.gmtime(float(begin_at)))
|
s = time.strftime('%Y-%m-%d %H:%M:%S GMT',time.gmtime(float(begin_at)))
|
||||||
body.append('<td>%s</td>\n' % s)
|
body.append('<td>%s</td>\n' % s)
|
||||||
if end_at and end_at != begin_at:
|
if end_at and end_at != begin_at:
|
||||||
@ -343,7 +343,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
else:
|
else:
|
||||||
body.append( '<td></td>\n' )
|
body.append( '<td></td>\n' )
|
||||||
if removed_by:
|
if removed_by:
|
||||||
body.append( '<td><a href="%s%s&%s">%s</a></td>\n' % (h,q,urllib.urlencode({'removed_by':removed_by}),removed_by))
|
body.append( '<td><a href="%s%s&%s">%s</a></td>\n' % (h,q,urllib.parse.urlencode({'removed_by':removed_by}),removed_by))
|
||||||
else:
|
else:
|
||||||
body.append( '<td></td>\n')
|
body.append( '<td></td>\n')
|
||||||
# affected = ''
|
# affected = ''
|
||||||
@ -361,10 +361,10 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
self.send_response(200)
|
self.send_response(200)
|
||||||
self.send_header("Content-type","text/html")
|
self.send_header("Content-type","text/html")
|
||||||
full = ''.join(body)
|
full = ''.join(body)
|
||||||
print 'html lines %s' % len(full)
|
print('html lines %s' % len(full))
|
||||||
self.send_header("Content-length",len(full))
|
self.send_header("Content-length",len(full))
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
self.wfile.write(full)
|
self.wfile.write(full.encode('UTF-8'))
|
||||||
c.close()
|
c.close()
|
||||||
|
|
||||||
def _getbandb (self):
|
def _getbandb (self):
|
||||||
@ -402,7 +402,7 @@ class MyHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
|
|||||||
return db
|
return db
|
||||||
|
|
||||||
def httpd(handler_class=MyHandler, server_address = ('', port), ):
|
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()
|
srvr.serve_forever()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user