39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import json
|
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
from TikTokSigner.Signer import Signer
|
|
from os import getenv
|
|
|
|
signer = Signer()
|
|
|
|
class TikServer(BaseHTTPRequestHandler):
|
|
def do_POST(self):
|
|
if self.path == '/signature':
|
|
content_length = int(self.headers['Content-Length'])
|
|
post_data = self.rfile.read(content_length)
|
|
url = post_data.decode()
|
|
|
|
data = signer.sign(url)
|
|
nav = signer.navigator()
|
|
|
|
res = {
|
|
'status': 'ok',
|
|
'data': {
|
|
**data,
|
|
'navigator': nav
|
|
}
|
|
}
|
|
|
|
self.send_response(200)
|
|
self.send_header('Content-type', 'application/json')
|
|
self.end_headers()
|
|
self.wfile.write(json.dumps(res).encode())
|
|
|
|
if __name__ == '__main__':
|
|
PORT = getenv('PORT', 8080)
|
|
try:
|
|
print('Starting server')
|
|
httpd = HTTPServer(('0.0.0.0', PORT), TikServer)
|
|
httpd.serve_forever()
|
|
except KeyboardInterrupt:
|
|
httpd.shutdown()
|