Relay firehose browser tools: https://compare.hose.cam

Merge branch 'main' into gh-pages

Changed files
+44 -4
.github
src
+15
.github/FUNDING.yml
···
··· 1 + # These are supported funding model platforms 2 + 3 + github: uniphil 4 + patreon: # Replace with a single Patreon username 5 + open_collective: # Replace with a single Open Collective username 6 + ko_fi: # Replace with a single Ko-fi username 7 + tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 + community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 + liberapay: # Replace with a single Liberapay username 10 + issuehunt: # Replace with a single IssueHunt username 11 + lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 + polar: # Replace with a single Polar username 13 + buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 14 + thanks_dev: # Replace with a single thanks.dev username 15 + custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+11 -2
src/App.tsx
··· 129 } else { 130 url = new URL("https://" + customRelayHost); 131 } 132 - url.protocol = url.protocol === "https:" ? "wss:" : "ws:"; 133 - 134 return url.origin; 135 } catch (err) { 136 return ""; ··· 176 const oldURL = getCustomRelayURL(); 177 setRelays(relays => relays.includes(oldURL) ? relays.filter(u => u !== oldURL) : relays); 178 setCustomRelayHost(e.target.value); 179 }} 180 /> 181 {` `}
··· 129 } else { 130 url = new URL("https://" + customRelayHost); 131 } 132 + if (url.protocol === 'https:') { 133 + url.protocol = 'wss:'; 134 + } else if (url.protocol === 'http:') { 135 + url.protocol = 'ws:'; 136 + } 137 return url.origin; 138 } catch (err) { 139 return ""; ··· 179 const oldURL = getCustomRelayURL(); 180 setRelays(relays => relays.includes(oldURL) ? relays.filter(u => u !== oldURL) : relays); 181 setCustomRelayHost(e.target.value); 182 + }} 183 + onKeyDown={e => { 184 + if (e.key !== 'Enter') return; 185 + e.preventDefault(); 186 + const url = getCustomRelayURL(); 187 + if (url) showRelay(url, true); 188 }} 189 /> 190 {` `}
+18 -2
src/knownRelays.json
··· 5 }, 6 { 7 "url": "wss://bsky.network", 8 - "desc": "Bluesky Rainbow" 9 }, 10 { 11 - "url": "wss://relay2.fire.hose.cam", 12 "desc": "microcosm Montreal" 13 }, 14 { 15 "url": "wss://relay3.fr.hose.cam", 16 "desc": "microcosm France" 17 } 18 ]
··· 5 }, 6 { 7 "url": "wss://bsky.network", 8 + "desc": "Bluesky primary (+Rainbow)" 9 }, 10 { 11 + "url": "wss://relay1.us-east.bsky.network", 12 + "desc": "Bluesky sync1.1 east (+Rainbow)" 13 + }, 14 + { 15 + "url": "wss://relay1.us-west.bsky.network", 16 + "desc": "Bluesky sync1.1 west (+Rainbow)" 17 + }, 18 + { 19 + "url": "wss://relay.fire.hose.cam", 20 "desc": "microcosm Montreal" 21 }, 22 { 23 "url": "wss://relay3.fr.hose.cam", 24 "desc": "microcosm France" 25 + }, 26 + { 27 + "url": "wss://relay.hayescmd.net", 28 + "desc": "@edavis.dev's relay" 29 + }, 30 + { 31 + "url": "wss://relay.xero.systems", 32 + "desc": "@dane.is.extraordinarily.cool's relay" 33 } 34 ]