Browse Source

Redirect back to / after /refreshorderbook and /rotateOb

master
Kristaps Kaupe 2 years ago
parent
commit
8798b8bc6e
No known key found for this signature in database
GPG Key ID: 33E472FE870C7E5D
  1. 25
      scripts/obwatch/ob-watcher.py

25
scripts/obwatch/ob-watcher.py

@ -702,6 +702,21 @@ class OrderbookPageRequestHeader(http.server.SimpleHTTPRequestHandler):
self.end_headers() self.end_headers()
self.wfile.write(orderbook_page.encode('utf-8')) self.wfile.write(orderbook_page.encode('utf-8'))
def get_url_base(self) -> str:
# This is to handle the case where the server is behind a reverse proxy
# and base path may not be /.
# First we get HTTP or HTTPS protocol from Origin header and then use
# Host header to get the base path.
# Will work with nginx config like this:
# location /ob-watcher {
# rewrite /ob-watcher/(.*) /$1 break;
# proxy_pass http://localhost:62601;
# proxy_set_header Host $host/ob-watcher;
# }
is_https = self.headers.get('Origin', '').startswith('https://')
host = self.headers.get('Host', '')
return 'https://' + host if is_https else 'http://' + host
def do_POST(self): def do_POST(self):
global filtered_offername_list global filtered_offername_list
pages = ['/refreshorderbook', '/rotateOb'] pages = ['/refreshorderbook', '/rotateOb']
@ -713,8 +728,9 @@ class OrderbookPageRequestHeader(http.server.SimpleHTTPRequestHandler):
self.taker.db.execute("DELETE FROM fidelitybonds;") self.taker.db.execute("DELETE FROM fidelitybonds;")
self.taker.msgchan.request_orderbook() self.taker.msgchan.request_orderbook()
time.sleep(5) time.sleep(5)
self.path = '/' self.send_response(302)
self.do_GET() self.send_header('Location', self.get_url_base() + '/')
self.end_headers()
elif self.path == '/rotateOb': elif self.path == '/rotateOb':
if filtered_offername_list == sw0offers: if filtered_offername_list == sw0offers:
log.debug('Showing nested segwit orderbook') log.debug('Showing nested segwit orderbook')
@ -722,8 +738,9 @@ class OrderbookPageRequestHeader(http.server.SimpleHTTPRequestHandler):
elif filtered_offername_list == swoffers: elif filtered_offername_list == swoffers:
log.debug('Showing native segwit orderbook') log.debug('Showing native segwit orderbook')
filtered_offername_list = sw0offers filtered_offername_list = sw0offers
self.path = '/' self.send_response(302)
self.do_GET() self.send_header('Location', self.get_url_base() + '/')
self.end_headers()
class HTTPDThread(threading.Thread): class HTTPDThread(threading.Thread):
def __init__(self, taker, hostport): def __init__(self, taker, hostport):

Loading…
Cancel
Save