2020-10-02 06:52:49 +00:00
|
|
|
/*
|
|
|
|
hush-hush: anonymous message board using the onionr network
|
|
|
|
Copyright (C) 2020 Kevin Froman
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU Affero General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2020-10-05 04:09:49 +00:00
|
|
|
self.addEventListener('message', async function(e) {
|
2020-10-02 06:52:49 +00:00
|
|
|
let lookupPeer = async function(peer){
|
2020-10-05 04:09:49 +00:00
|
|
|
let newList = await (await fetch('http://' + peer + '.onion/pex')).text()
|
|
|
|
|
2020-10-05 08:42:20 +00:00
|
|
|
newList = newList.replaceAll('.onion', '')
|
|
|
|
|
2020-10-05 04:09:49 +00:00
|
|
|
return newList.split(',')
|
2020-10-02 06:52:49 +00:00
|
|
|
}
|
|
|
|
var data = JSON.parse(e.data)
|
|
|
|
|
2020-10-05 04:09:49 +00:00
|
|
|
let peer = data['node']
|
|
|
|
let peerList = await lookupPeer(peer)
|
|
|
|
peerList.forEach(node => {
|
|
|
|
if (node){
|
2020-10-06 02:07:48 +00:00
|
|
|
//if (await (await fetch('http://' + node + '.onion/ping')).text() !== 'pong'){
|
|
|
|
// return
|
|
|
|
//}
|
2020-10-05 04:09:49 +00:00
|
|
|
postMessage(node)
|
|
|
|
}
|
|
|
|
})
|
2020-10-02 06:52:49 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
)
|