mirror of
https://github.com/vitorpamplona/Nostryfied.git
synced 2025-06-06 18:31:07 +00:00
Fixing sub viz
This commit is contained in:
parent
7b6ae6b449
commit
4995c6b4be
@ -56,7 +56,7 @@ const downloadFile = (data, fileName) => {
|
|||||||
tempLink.click()
|
tempLink.click()
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateRelayStatus = (relay, status, addToCount, until, relayStatusAndCount) => {
|
const updateRelayStatus = (relay, status, addToCount, subscription, until, relayStatusAndCount) => {
|
||||||
if (relayStatusAndCount[relay] == undefined) {
|
if (relayStatusAndCount[relay] == undefined) {
|
||||||
relayStatusAndCount[relay] = {}
|
relayStatusAndCount[relay] = {}
|
||||||
}
|
}
|
||||||
@ -64,7 +64,12 @@ const updateRelayStatus = (relay, status, addToCount, until, relayStatusAndCount
|
|||||||
if (status)
|
if (status)
|
||||||
relayStatusAndCount[relay].status = status
|
relayStatusAndCount[relay].status = status
|
||||||
|
|
||||||
relayStatusAndCount[relay].until = until
|
if (!relayStatusAndCount[relay].until) {
|
||||||
|
relayStatusAndCount[relay].until = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (subscription)
|
||||||
|
relayStatusAndCount[relay].until[subscription] = until
|
||||||
|
|
||||||
if (relayStatusAndCount[relay].count != undefined)
|
if (relayStatusAndCount[relay].count != undefined)
|
||||||
relayStatusAndCount[relay].count = relayStatusAndCount[relay].count + addToCount
|
relayStatusAndCount[relay].count = relayStatusAndCount[relay].count + addToCount
|
||||||
@ -76,19 +81,30 @@ const updateRelayStatus = (relay, status, addToCount, until, relayStatusAndCount
|
|||||||
|
|
||||||
const displayRelayStatus = (relayStatusAndCount) => {
|
const displayRelayStatus = (relayStatusAndCount) => {
|
||||||
if (Object.keys(relayStatusAndCount).length > 0) {
|
if (Object.keys(relayStatusAndCount).length > 0) {
|
||||||
const newText = Object.keys(relayStatusAndCount).map(
|
Object.keys(relayStatusAndCount).forEach(
|
||||||
it => {
|
it => {
|
||||||
let untilStr = "";
|
let untilStr = "";
|
||||||
|
|
||||||
if (relayStatusAndCount[it].until)
|
if (relayStatusAndCount[it].until) {
|
||||||
untilStr = " <" + new Date(relayStatusAndCount[it].until * 1000).toLocaleDateString("en-US")
|
Object.keys(relayStatusAndCount[it].until).forEach(subId => {
|
||||||
|
untilStr += "<td> <" + new Date(relayStatusAndCount[it].until[subId] * 1000).toLocaleDateString("en-US") + "</td>"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const relayName = it.replace("wss://", "").replace("ws://", "")
|
const relayName = it.replace("wss://", "").replace("ws://", "")
|
||||||
const line = "<td>" + relayName + "</td><td>" + relayStatusAndCount[it].status + "</td><td>" + untilStr + "</td><td>" + relayStatusAndCount[it].count + "</td>"
|
const line = "<td>" + relayName + "</td><td>" + relayStatusAndCount[it].status + "</td><td>" + untilStr + "</td><td>" + relayStatusAndCount[it].count + "</td>"
|
||||||
return "<tr>" +line+ "</tr>"
|
|
||||||
|
const elemId = relayName.replaceAll(".", "-")
|
||||||
|
|
||||||
|
if ($('#' + elemId).length > 0) {
|
||||||
|
$('#' + elemId).html(line)
|
||||||
|
} else {
|
||||||
|
$('#checking-relays').append(
|
||||||
|
$("<tr>" +line+ "</tr>").attr('id', elemId)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
).join("<br />")
|
}
|
||||||
$('#checking-relays').html(newText)
|
)
|
||||||
} else {
|
} else {
|
||||||
$('#checking-relays-header').html("")
|
$('#checking-relays-header').html("")
|
||||||
$('#checking-relays').html("")
|
$('#checking-relays').html("")
|
||||||
@ -99,7 +115,7 @@ const displayRelayStatus = (relayStatusAndCount) => {
|
|||||||
const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
updateRelayStatus(relay, "Starting", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Starting", 0, undefined, undefined, relayStatus)
|
||||||
// open websocket
|
// open websocket
|
||||||
const ws = new WebSocket(relay)
|
const ws = new WebSocket(relay)
|
||||||
|
|
||||||
@ -133,7 +149,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
ws.close()
|
ws.close()
|
||||||
reject(relay)
|
reject(relay)
|
||||||
}, 10_000)
|
}, 10_000)
|
||||||
updateRelayStatus(relay, "Downloading", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Downloading", 0, undefined, undefined, relayStatus)
|
||||||
|
|
||||||
for (const [key, sub] of Object.entries(subscriptions)) {
|
for (const [key, sub] of Object.entries(subscriptions)) {
|
||||||
ws.send(JSON.stringify(['REQ', sub.id, sub.filter]))
|
ws.send(JSON.stringify(['REQ', sub.id, sub.filter]))
|
||||||
@ -174,7 +190,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
until = subscriptions[subscriptionId].lastEvent.created_at
|
until = subscriptions[subscriptionId].lastEvent.created_at
|
||||||
}
|
}
|
||||||
|
|
||||||
updateRelayStatus(relay, undefined, 1, until, relayStatus)
|
updateRelayStatus(relay, undefined, 1, subscriptionId, until, relayStatus)
|
||||||
|
|
||||||
// prevent duplicated events
|
// prevent duplicated events
|
||||||
if (events[id]) return
|
if (events[id]) return
|
||||||
@ -197,7 +213,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
|
|
||||||
let alldone = Object.values(subscriptions).every(filter => filter.done === true);
|
let alldone = Object.values(subscriptions).every(filter => filter.done === true);
|
||||||
if (alldone) {
|
if (alldone) {
|
||||||
updateRelayStatus(relay, "Done", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Done", 0, undefined, undefined, relayStatus)
|
||||||
ws.close()
|
ws.close()
|
||||||
resolve(relay)
|
resolve(relay)
|
||||||
}
|
}
|
||||||
@ -215,13 +231,13 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
if (event) {
|
if (event) {
|
||||||
ws.send(JSON.stringify(['AUTH', event]))
|
ws.send(JSON.stringify(['AUTH', event]))
|
||||||
} else {
|
} else {
|
||||||
updateRelayStatus(relay, "AUTH Req", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "AUTH Req", 0, undefined, undefined, relayStatus)
|
||||||
ws.close()
|
ws.close()
|
||||||
reject(relay)
|
reject(relay)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(reason) => {
|
(reason) => {
|
||||||
updateRelayStatus(relay, "AUTH Req", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "AUTH Req", 0, undefined, undefined, relayStatus)
|
||||||
ws.close()
|
ws.close()
|
||||||
reject(relay)
|
reject(relay)
|
||||||
},
|
},
|
||||||
@ -233,7 +249,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
|
|
||||||
let alldone = Object.values(subscriptions).every(filter => filter.done === true);
|
let alldone = Object.values(subscriptions).every(filter => filter.done === true);
|
||||||
if (alldone) {
|
if (alldone) {
|
||||||
updateRelayStatus(relay, "Done", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Done", 0, undefined, undefined, relayStatus)
|
||||||
ws.close()
|
ws.close()
|
||||||
resolve(relay)
|
resolve(relay)
|
||||||
}
|
}
|
||||||
@ -248,7 +264,7 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ws.onerror = (err) => {
|
ws.onerror = (err) => {
|
||||||
updateRelayStatus(relay, "Done", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Done", 0, undefined, undefined, relayStatus)
|
||||||
try {
|
try {
|
||||||
ws.close()
|
ws.close()
|
||||||
reject(relay)
|
reject(relay)
|
||||||
@ -257,12 +273,12 @@ const fetchFromRelay = async (relay, filters, pubkey, events, relayStatus) =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ws.onclose = (socket, event) => {
|
ws.onclose = (socket, event) => {
|
||||||
updateRelayStatus(relay, "Done", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Done", 0, undefined, undefined, relayStatus)
|
||||||
resolve(relay)
|
resolve(relay)
|
||||||
}
|
}
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
console.log(exception)
|
console.log(exception)
|
||||||
updateRelayStatus(relay, "Error", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Error", 0, undefined, undefined, relayStatus)
|
||||||
try {
|
try {
|
||||||
ws.close()
|
ws.close()
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
@ -332,7 +348,7 @@ const sendToRelay = async (relay, data, relayStatus) =>
|
|||||||
try {
|
try {
|
||||||
const ws = new WebSocket(relay)
|
const ws = new WebSocket(relay)
|
||||||
|
|
||||||
updateRelayStatus(relay, "Starting", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Starting", 0, undefined, undefined, relayStatus)
|
||||||
|
|
||||||
// prevent hanging forever
|
// prevent hanging forever
|
||||||
let myTimeout = setTimeout(() => {
|
let myTimeout = setTimeout(() => {
|
||||||
@ -342,7 +358,7 @@ const sendToRelay = async (relay, data, relayStatus) =>
|
|||||||
|
|
||||||
// fetch events from relay
|
// fetch events from relay
|
||||||
ws.onopen = () => {
|
ws.onopen = () => {
|
||||||
updateRelayStatus(relay, "Sending", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Sending", 0, undefined, undefined, relayStatus)
|
||||||
|
|
||||||
clearTimeout(myTimeout)
|
clearTimeout(myTimeout)
|
||||||
myTimeout = setTimeout(() => {
|
myTimeout = setTimeout(() => {
|
||||||
@ -365,7 +381,7 @@ const sendToRelay = async (relay, data, relayStatus) =>
|
|||||||
// end of subscription messages
|
// end of subscription messages
|
||||||
if (msgType === 'OK') {
|
if (msgType === 'OK') {
|
||||||
if (inserted == true) {
|
if (inserted == true) {
|
||||||
updateRelayStatus(relay, undefined, 1, undefined, relayStatus)
|
updateRelayStatus(relay, undefined, 1, undefined, undefined, relayStatus)
|
||||||
} else {
|
} else {
|
||||||
console.log(relay, event.data)
|
console.log(relay, event.data)
|
||||||
}
|
}
|
||||||
@ -374,19 +390,19 @@ const sendToRelay = async (relay, data, relayStatus) =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ws.onerror = (err) => {
|
ws.onerror = (err) => {
|
||||||
updateRelayStatus(relay, "Error", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Error", 0, undefined, undefined, relayStatus)
|
||||||
console.log("Error", err)
|
console.log("Error", err)
|
||||||
ws.close()
|
ws.close()
|
||||||
reject(err)
|
reject(err)
|
||||||
}
|
}
|
||||||
ws.onclose = (socket, event) => {
|
ws.onclose = (socket, event) => {
|
||||||
updateRelayStatus(relay, "Done", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Done", 0, undefined, undefined, relayStatus)
|
||||||
console.log("OnClose", relayStatus)
|
console.log("OnClose", relayStatus)
|
||||||
resolve()
|
resolve()
|
||||||
}
|
}
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
console.log(exception)
|
console.log(exception)
|
||||||
updateRelayStatus(relay, "Error", 0, undefined, relayStatus)
|
updateRelayStatus(relay, "Error", 0, undefined, undefined, relayStatus)
|
||||||
try {
|
try {
|
||||||
ws.close()
|
ws.close()
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user