mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +01:00
38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
import threading
|
|
|
|
from pywb.webapp.pywb_init import create_wb_router
|
|
from pywb.framework.wsgi_wrappers import init_app
|
|
|
|
# disable is_hop_by_hop restrictions
|
|
import wsgiref.handlers
|
|
wsgiref.handlers.is_hop_by_hop = lambda x: False
|
|
|
|
|
|
class ServerThreadRunner(object):
|
|
def __init__(self, make_httpd, config_file=None):
|
|
|
|
if config_file:
|
|
self.app = init_app(create_wb_router,
|
|
load_yaml=True,
|
|
config_file=config_file)
|
|
else:
|
|
self.app = None
|
|
|
|
self.httpd = make_httpd(self.app)
|
|
self.port = self.httpd.socket.getsockname()[1]
|
|
|
|
proxy_str = 'http://localhost:' + str(self.port)
|
|
self.proxy_str = proxy_str
|
|
self.proxy_dict = {'http': proxy_str,
|
|
'https': proxy_str}
|
|
|
|
def run():
|
|
self.httpd.serve_forever()
|
|
|
|
self.thread = threading.Thread(target=run)
|
|
self.thread.daemon = True
|
|
self.thread.start()
|
|
|
|
def stop_thread(self):
|
|
self.httpd.shutdown()
|