Update server.py

fix chinese encoding
This commit is contained in:
Dylan Wu 2022-05-06 20:18:28 -04:00
parent 3e2474c408
commit fad67dd857
1 changed files with 42 additions and 17 deletions

View File

@ -1,4 +1,5 @@
import socket import socket
import urllib.parse
HOST = '' HOST = ''
PORT = 8000 PORT = 8000
@ -7,7 +8,7 @@ content = b'''HTTP/1.x 200 OK
Content-Type: text/html Content-Type: text/html
<head> <head>
<meta http-equiv="refresh" content="1; url=http://chat.localhost.observer/fax/"> <meta http-equiv="refresh" content="1; url=http://chat.pedantries.com/fax/">
<title>WOW</title> <title>WOW</title>
</head> </head>
<html> <html>
@ -22,29 +23,53 @@ while True:
s.listen(3) s.listen(3)
conn, addr = s.accept() conn, addr = s.accept()
request = conn.recv(4096) request = conn.recv(4096)
print (request)
method = request.decode().split(' ')[0] method = request.decode().split(' ')[0]
ctype = request.decode().split('Content-Type: ')[1].split('\r\n')[0] if method == 'POST':
ctype = request.decode().split('Content-Type: ')[1].splitlines()[0]
# print (ctype)
# ctype = ctype[1].splitlines()[0]
# src = request.decode().split(' ')[1] # src = request.decode().split(' ')[1]
body = request.decode('utf-8').split('\r\n\r\n', 1)[1] body = request.decode().split('\r\n\r\n', 1)[1]
single = str(body.encode('utf-8')).split('&',1) single = body.split('&',1)
sender = single[0].split('=',1) sender = single[0].split('=',1)
print (request) # print (request)
print (request.decode())
print (request.decode('utf-8'))
print (single)
print (ctype)
print ("----------------------------------------------")
if method == 'POST' and ctype == 'application/x-www-form-urlencoded': if method == 'POST' and ctype == 'application/x-www-form-urlencoded':
message = single[1].split('=',1) message = single[1].split('=',1)
with open('/dev/usb/lp0', 'w') as printer: # print (message[1][:-1])
printer.write('\n'+str(addr)+'\n') # print (message[1][:-1], bytes)
printer.write(str(request.decode('utf-8'))+'\n') # print (message[1][:-1].encode())
# print ("&&&&&&&&&&&&&&&&&")
# m = message[1].replace("b", "").replace("'", "")
# print (m)
with open('/dev/usb/lp0', 'w', encoding='gb2312') as printer:
# printer.write('\n'+str(addr)+'\n')
printer.write(str(request.decode())+'\n')
# printer.write('\n'*2+str(body)+'\n') # printer.write('\n'*2+str(body)+'\n')
# printer.write(single[0]+'\n') # printer.write(single[0]+'\n')
# printer.write(single[1]+'\n') # printer.write(single[1]+'\n')
# printer.write(sender[0]+'\n') # printer.write(sender[0]+'\n')
printer.write(sender[1]+'\n') m = urllib.parse.unquote(message[1])
printer.write(message[1][:-1]+'\n') #o = str(m).encode('gb2312').decode('latin2')
print (sender) #p = str(m).encode()
print (message) printer.write(urllib.parse.unquote(sender[1])+'\n')
print (ctype) #printer.write(urllib.parse.unquote(message[1], encoding="utf-8")+'\n')
printer.write(m+'\n')
#printer.write(p+'\n')
#print (sender)
#print (message[1])
#print (ctype)
#print (urllib.parse.unquote(message[1])+'\n')
#print (urllib.parse.unquote(message[1], encoding="utf-8")+'\n')
conn.sendall(content) conn.sendall(content)
conn.close() conn.close()