Compare commits

...

1 Commits

Author SHA1 Message Date
tecnovert 63a8b95893 debug: notifications 2 years ago
  1. 2
      basicswap/http_server.py
  2. 17
      basicswap/js_server.py
  3. 58
      basicswap/templates/header.html

2
basicswap/http_server.py

@ -47,6 +47,7 @@ from .js_server import (
js_rates,
js_rate,
js_index,
js_generatenotification,
)
from .ui.util import (
PAGE_LIMIT,
@ -680,6 +681,7 @@ class HttpHandler(BaseHTTPRequestHandler):
'rate': js_rate,
'rates': js_rates,
'rateslist': js_rates_list,
'generatenotification': js_generatenotification,
}.get(url_split[2], js_index)
return func(self, url_split, post_string, is_json)
except Exception as ex:

17
basicswap/js_server.py

@ -5,6 +5,7 @@
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
import json
import random
import urllib.parse
from .util import (
@ -13,6 +14,7 @@ from .util import (
from .basicswap_util import (
strBidState,
SwapTypes,
NotificationTypes as NT,
)
from .chainparams import (
Coins,
@ -389,3 +391,18 @@ def js_rate(self, url_split, post_string, is_json):
def js_index(self, url_split, post_string, is_json):
return bytes(json.dumps(self.server.swap_client.getSummary()), 'UTF-8')
def js_generatenotification(self, url_split, post_string, is_json):
swap_client = self.server.swap_client
r = random.randint(0, 3)
if r == 0:
swap_client.notify(NT.OFFER_RECEIVED, {'offer_id': random.randbytes(28).hex()})
elif r == 1:
swap_client.notify(NT.BID_RECEIVED, {'type': 'atomic', 'bid_id': random.randbytes(28).hex(), 'offer_id': random.randbytes(28).hex()})
elif r == 2:
swap_client.notify(NT.BID_ACCEPTED, {'bid_id': random.randbytes(28).hex()})
elif r == 3:
swap_client.notify(NT.BID_RECEIVED, {'type': 'xmr', 'bid_id': random.randbytes(28).hex(), 'offer_id': random.randbytes(28).hex()})
return bytes(json.dumps({'type': r}), 'UTF-8')

58
basicswap/templates/header.html

@ -19,34 +19,44 @@
{% if debug_ui_mode == true %}
<p>Debug UI mode: Active</p>
{% endif %}
<button id="test_btn" type="button">Add Notification</button>
{% if ws_url %}
<script>
var ws = new WebSocket("{{ ws_url }}"),
floating_div = document.createElement('div');
floating_div.classList.add('floatright');
messages = document.createElement('ul');
messages.setAttribute('id', 'ul_updates');
ws.onmessage = function (event) {
let json = JSON.parse(event.data);
var ws = new WebSocket("{{ ws_url }}"),
floating_div = document.createElement('div');
floating_div.classList.add('floatright');
messages = document.createElement('ul');
messages.setAttribute('id', 'ul_updates');
ws.onmessage = function (event) {
let json = JSON.parse(event.data);
let event_message = 'Unknown event';
if (json['event'] == 'new_offer') {
event_message = '<a href=/offer/' + json['offer_id'] + '>New offer</a>';
} else
if (json['event'] == 'new_bid') {
event_message = '<a href=/bid/' + json['bid_id'] + '>New bid</a> on offer <a href=/offer/' + json['offer_id'] + '>' + json['offer_id'] + '</a>';
} else
if (json['event'] == 'bid_accepted') {
event_message = '<a href=/bid/' + json['bid_id'] + '>Bid accepted</a>';
}
let event_message = 'Unknown event';
if (json['event'] == 'new_offer') {
event_message = '<a href=/offer/' + json['offer_id'] + '>New offer</a>';
} else
if (json['event'] == 'new_bid') {
event_message = '<a href=/bid/' + json['bid_id'] + '>New bid</a> on offer <a href=/offer/' + json['offer_id'] + '>' + json['offer_id'] + '</a>';
} else
if (json['event'] == 'bid_accepted') {
event_message = '<a href=/bid/' + json['bid_id'] + '>Bid accepted</a>';
}
let messages = document.getElementById('ul_updates'),
message = document.createElement('li');
message.innerHTML = event_message;
messages.appendChild(message);
};
floating_div.appendChild(messages);
document.body.appendChild(floating_div);
let messages = document.getElementById('ul_updates'),
message = document.createElement('li');
message.innerHTML = event_message;
messages.appendChild(message);
};
floating_div.appendChild(messages);
document.body.appendChild(floating_div);
const xhr_notification_debug = new XMLHttpRequest();
function test_notification() {
console.log('1');
xhr_notification_debug.open('GET', '/json/generatenotification');
xhr_notification_debug.send();
console.log('2');
}
document.getElementById("test_btn").addEventListener("click", test_notification);
</script>
{% endif %}

Loading…
Cancel
Save