parent
5351a37dda
commit
2e4d98c3ac
28 changed files with 3922 additions and 29943 deletions
|
@ -1,12 +1,13 @@
|
|||
on: []
|
||||
on: [push]
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: docker
|
||||
container: python
|
||||
container: node
|
||||
steps:
|
||||
- run: git clone https://git.m724.eu/Minecon724/dn42-info .
|
||||
- run: pip install -r requirements.txt
|
||||
- run: python deploy.py
|
||||
- run: npm i
|
||||
- run: npx parcel build src/index.html
|
||||
- run: chmod +x deploy.sh && ./deploy.sh
|
||||
env:
|
||||
FTP_SERVER: ${{ secrets.FTP_SERVER }}
|
||||
FTP_USER: ${{ secrets.FTP_USER }}
|
||||
|
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
node_modules
|
||||
dist
|
||||
.parcel-cache
|
18
deploy.py
18
deploy.py
|
@ -1,6 +1,5 @@
|
|||
from ftplib import FTP
|
||||
import requests
|
||||
import minify_html
|
||||
from os import listdir, getenv, chdir
|
||||
from io import BytesIO
|
||||
|
||||
|
@ -9,22 +8,15 @@ from io import BytesIO
|
|||
ftp = FTP(getenv('FTP_SERVER'))
|
||||
ftp.login(getenv('FTP_USER'), getenv('FTP_PASSWORD'))
|
||||
|
||||
chdir('html')
|
||||
for f in [i for i in listdir('dist') if i.endswith('.html')]:
|
||||
content = open(f, 'r').read()
|
||||
ftp.storbinary('STOR ' + f, BytesIO(content.encode()))
|
||||
|
||||
for f in [i for i in listdir() if i.endswith('.html')]:
|
||||
|
||||
# 1. Minify the index.html file using minify-html
|
||||
minified_content = minify_html.minify(open(f, 'r').read(), minify_css=True, do_not_minify_doctype=True)
|
||||
|
||||
# 2. Upload the file to an FTP server
|
||||
|
||||
ftp.storbinary('STOR ' + f, BytesIO(minified_content.encode()))
|
||||
|
||||
ftp.storbinary('STOR geofeed.csv', BytesIO(open('../geofeed.csv', 'r').read().encode()))
|
||||
ftp.storbinary('STOR geofeed.csv', BytesIO(open('geofeed.csv', 'r').read().encode()))
|
||||
|
||||
# refresh cache
|
||||
|
||||
url = 'https://api.bunny.net/purge?url=https%3A%2F%2Fdn42.724.rocks&async=false' # replace with your URL
|
||||
url = 'https://api.bunny.net/purge?url=https%3A%2F%2Fdn42.m724.eu&async=false' # replace with your URL
|
||||
headers = {
|
||||
'AccessKey': getenv("ACCESS_KEY")
|
||||
}
|
||||
|
|
25
deploy.sh
Normal file
25
deploy.sh
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Change to the directory containing the files (assuming it's named 'dist')
|
||||
cd dist
|
||||
|
||||
# Initialize FTP connection
|
||||
ftp -n << EOF
|
||||
open $FTP_SERVER
|
||||
user $FTP_USER $FTP_PASSWORD
|
||||
|
||||
# Upload HTML files
|
||||
for file in *.html; do
|
||||
put "$file"
|
||||
done
|
||||
|
||||
# Upload geofeed.csv (assuming it's in the parent directory)
|
||||
cd ..
|
||||
put geofeed.csv
|
||||
|
||||
# Close FTP connection
|
||||
bye
|
||||
EOF
|
||||
|
||||
# Refresh cache
|
||||
curl -H "AccessKey: $ACCESS_KEY" "https://api.bunny.net/purge?url=https%3A%2F%2Fdn42.m724.eu&async=false"
|
|
@ -1,8 +1,4 @@
|
|||
172.20.183.89,DE,,Frankfurt,
|
||||
172.20.183.90,DE,,Nuremberg,
|
||||
172.20.183.91,PL,,Warsaw,
|
||||
172.20.183.93,NL,,Amsterdam,
|
||||
fdfe:8d0:7450:100::/56,DE,,Frankfurt,
|
||||
fdfe:8d0:7450:100::/56,NL,,Amsterdam,
|
||||
fdfe:8d0:7450:200::/56,DE,,Nuremberg,
|
||||
fdfe:8d0:7450:300::/56,PL,,Warsaw,
|
||||
fdfe:8d0:7450:500::/56,NL,,Amsterdam,
|
||||
fdfe:8d0:7450:400::/56,IT,,Rome,
|
|
|
@ -1,196 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>dn724</title>
|
||||
|
||||
<style>
|
||||
html {
|
||||
padding-top: 1.5vh;
|
||||
}
|
||||
body {
|
||||
background: #111;
|
||||
color: #fff;
|
||||
font: 1.5em/1.48em Arial, Helvetica, sans-serif;
|
||||
}
|
||||
h1, p {
|
||||
font-weight: 700;
|
||||
}
|
||||
p {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
a {
|
||||
color: #f0e0ff;
|
||||
text-decoration: none;
|
||||
border-radius: 20%;
|
||||
transition: all 20ms ease-out;
|
||||
}
|
||||
a:hover {
|
||||
border-bottom: 1px solid #f0e0ff;
|
||||
border-radius: 0;
|
||||
}
|
||||
#m {
|
||||
width: min-content;
|
||||
min-width: 20vw;
|
||||
max-width: 93vw;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
small {
|
||||
font-weight: 500;
|
||||
font-size: 0.8em;
|
||||
margin: 0;
|
||||
}
|
||||
li {
|
||||
padding: 2px 15px;
|
||||
border-radius: 15px;
|
||||
transition: background-color .05s ease-out;
|
||||
}
|
||||
li[data-nid] {
|
||||
margin-bottom: 3px;
|
||||
padding: 5px 13px;
|
||||
}
|
||||
li[data-nid]:hover {
|
||||
background-color: rgb(30,30,30);
|
||||
}
|
||||
|
||||
.big {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
display: block;
|
||||
}
|
||||
.sep {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: rgba(255,255,255,0.1);
|
||||
margin-top: 15px;
|
||||
}
|
||||
.dark {
|
||||
color: rgba(255,255,255,0.1);
|
||||
}
|
||||
li[data-nid]:hover > .hidden > div {
|
||||
margin-top: 5px;
|
||||
border-radius: 15px;
|
||||
opacity: 1;
|
||||
}
|
||||
.hidden {
|
||||
overflow: hidden;
|
||||
}
|
||||
.hidden > div {
|
||||
border-radius: 0 0 15px 15px;
|
||||
margin-top: -35%;
|
||||
margin-bottom: 10px;
|
||||
transition: margin .17s ease, opacity .05s ease-out;
|
||||
padding: 5px 13px;
|
||||
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.4rem;
|
||||
background-color: rgb(40,40,40);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="m">
|
||||
<h1>
|
||||
<span style="color: #ebebeb;">AS424242</span><span>0129</span>
|
||||
</h1>
|
||||
open for peering!
|
||||
|
||||
<div class="sep"></div>
|
||||
|
||||
<p class="big">nodes</p>
|
||||
<ul>
|
||||
<li data-nid="de-fra">
|
||||
Frankfurt, Germany
|
||||
<br>
|
||||
<strong>de-fra.420129.xyz</strong>
|
||||
<br>
|
||||
dual, 1 Gbps
|
||||
<div class="hidden">
|
||||
<div>
|
||||
<a href="https://bgp.tools/as/213250">AS213250 (Combahton)</a>
|
||||
<br>
|
||||
fe80::129:93a8
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-nid="de-nue">
|
||||
Nuremberg, Germany
|
||||
<br>
|
||||
<strong>de-nue.420129.xyz</strong>
|
||||
<br>
|
||||
dual, 10 Gbps
|
||||
<div class="hidden">
|
||||
<div>
|
||||
<a href="https://bgp.tools/as/206216">AS206216 (Cogent)</a>
|
||||
<br>
|
||||
fe80::129:c550
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-nid="nl-ams">
|
||||
Amsterdam, Netherlands
|
||||
<br>
|
||||
<strong>nl-ams.420129.xyz</strong>
|
||||
<br>
|
||||
dual, ½ Gbps
|
||||
<div class="hidden">
|
||||
<div>
|
||||
<a href="https://bgp.tools/as/31898">AS31898 (Oracle)</a>
|
||||
<br>
|
||||
fe80::129:c9db
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-nid="nl-ams">
|
||||
Warsaw, Poland
|
||||
<br>
|
||||
<strong>pl-waw.420129.xyz</strong>
|
||||
<br>
|
||||
dual, 1 Gbps
|
||||
<div class="hidden">
|
||||
<div>
|
||||
<a href="https://bgp.tools/as/215467">AS215467</a>
|
||||
<br>
|
||||
fe80::129:669a
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="sep"></div>
|
||||
|
||||
<p class="big">peering</p>
|
||||
|
||||
Requirements:
|
||||
|
||||
<ul>
|
||||
<li>same continent</li>
|
||||
<li>WireGuard</li>
|
||||
<li>one peering per region</li>
|
||||
</ul>
|
||||
|
||||
Also:
|
||||
<ul>
|
||||
<li>if you require a psk, ask</li>
|
||||
<li>dig TXT for public keys</li>
|
||||
<li><a href="https://mxroutedocs.com/troubleshooting/microsoftnoreceive/">if you use outlook, stop</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="sep"></div>
|
||||
|
||||
<p class="big">contact</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="mailto:dn42@724.rocks">dn42@724.rocks</a> (<a href="/dn724%20dn42%40724.rocks-(0xCF4D2C93D80C10AC)-public.asc">PGP</a>)</li>
|
||||
<li>Telegram: <a href="https://t.me/minecon724">@minecon724</a></li>
|
||||
</ul>
|
||||
|
||||
<span class="big"><a href="https://status.inferior.network">Status</a> | <a href="/services.html">Services</a></span>
|
||||
|
||||
<small class="big dark">newtork is fast my man</small>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>dn724</title>
|
||||
|
||||
<style>
|
||||
html {
|
||||
font-size: large;
|
||||
}
|
||||
body {
|
||||
margin: 0 auto;
|
||||
width: fit-content;
|
||||
}
|
||||
ul {
|
||||
margin-bottom: 1.4em;
|
||||
}
|
||||
p {
|
||||
line-height: 0.6em;
|
||||
}
|
||||
.hostname {
|
||||
font-weight: bold;
|
||||
user-select: all;
|
||||
}
|
||||
.meta {
|
||||
color: darkslategray;
|
||||
user-select: all;
|
||||
max-width: 200px;
|
||||
overflow:scroll;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
|
||||
<h2>AS4242420129</h2>
|
||||
|
||||
<p>Open for peering in:</p>
|
||||
<ul>
|
||||
<li>Warsaw, Poland</li>
|
||||
<li>Frankfurt, Germany </li>
|
||||
<li>Nuremberg, Germany</li>
|
||||
<li>Netherlands, Amsterdam</li>
|
||||
<li><a href="https://git.724.rocks/Minecon724/dn42-info/src/branch/master/nodes.md">Details</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Requirements</p>
|
||||
<ul>
|
||||
<li>same continent</li>
|
||||
<li>one peering per node</li>
|
||||
<li>WireGuard</li>
|
||||
</ul>
|
||||
|
||||
<p>Other</p>
|
||||
<ul>
|
||||
<li>Port is last 5 digits of your ASN</li>
|
||||
<li>If your ASN is not 424242xxxx, <a href="/port-calc.html">use this</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Contact</p>
|
||||
<ul>
|
||||
<li><a href="mailto:dn42@724.rocks">dn42@724.rocks</a> <a href="/dn724%20dn42%40724.rocks-(0xCF4D2C93D80C10AC)-public.asc">(PGP)</a></li>
|
||||
<li>Telegram: <a href="https://t.me/minecon724">@minecon724</a></li>
|
||||
</ul>
|
||||
|
||||
</html>
|
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 696 B |
Binary file not shown.
Before Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 618 B |
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
@ -1,661 +0,0 @@
|
|||
/* required styles */
|
||||
|
||||
.leaflet-pane,
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-tile-container,
|
||||
.leaflet-pane > svg,
|
||||
.leaflet-pane > canvas,
|
||||
.leaflet-zoom-box,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-layer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
/* Prevents IE11 from highlighting tiles in blue */
|
||||
.leaflet-tile::selection {
|
||||
background: transparent;
|
||||
}
|
||||
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
||||
.leaflet-safari .leaflet-tile {
|
||||
image-rendering: -webkit-optimize-contrast;
|
||||
}
|
||||
/* hack that prevents hw layers "stretching" when loading new tiles */
|
||||
.leaflet-safari .leaflet-tile-container {
|
||||
width: 1600px;
|
||||
height: 1600px;
|
||||
-webkit-transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
display: block;
|
||||
}
|
||||
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
|
||||
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
|
||||
.leaflet-container .leaflet-overlay-pane svg {
|
||||
max-width: none !important;
|
||||
max-height: none !important;
|
||||
}
|
||||
.leaflet-container .leaflet-marker-pane img,
|
||||
.leaflet-container .leaflet-shadow-pane img,
|
||||
.leaflet-container .leaflet-tile-pane img,
|
||||
.leaflet-container img.leaflet-image-layer,
|
||||
.leaflet-container .leaflet-tile {
|
||||
max-width: none !important;
|
||||
max-height: none !important;
|
||||
width: auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.leaflet-container img.leaflet-tile {
|
||||
/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
|
||||
mix-blend-mode: plus-lighter;
|
||||
}
|
||||
|
||||
.leaflet-container.leaflet-touch-zoom {
|
||||
-ms-touch-action: pan-x pan-y;
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag {
|
||||
-ms-touch-action: pinch-zoom;
|
||||
/* Fallback for FF which doesn't support pinch-zoom */
|
||||
touch-action: none;
|
||||
touch-action: pinch-zoom;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.leaflet-container {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
.leaflet-container a {
|
||||
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
|
||||
}
|
||||
.leaflet-tile {
|
||||
filter: inherit;
|
||||
visibility: hidden;
|
||||
}
|
||||
.leaflet-tile-loaded {
|
||||
visibility: inherit;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
width: 0;
|
||||
height: 0;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
z-index: 800;
|
||||
}
|
||||
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
|
||||
.leaflet-overlay-pane svg {
|
||||
-moz-user-select: none;
|
||||
}
|
||||
|
||||
.leaflet-pane { z-index: 400; }
|
||||
|
||||
.leaflet-tile-pane { z-index: 200; }
|
||||
.leaflet-overlay-pane { z-index: 400; }
|
||||
.leaflet-shadow-pane { z-index: 500; }
|
||||
.leaflet-marker-pane { z-index: 600; }
|
||||
.leaflet-tooltip-pane { z-index: 650; }
|
||||
.leaflet-popup-pane { z-index: 700; }
|
||||
|
||||
.leaflet-map-pane canvas { z-index: 100; }
|
||||
.leaflet-map-pane svg { z-index: 200; }
|
||||
|
||||
.leaflet-vml-shape {
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
}
|
||||
.lvml {
|
||||
behavior: url(#default#VML);
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
/* control positioning */
|
||||
|
||||
.leaflet-control {
|
||||
position: relative;
|
||||
z-index: 800;
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-top,
|
||||
.leaflet-bottom {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-top {
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-right {
|
||||
right: 0;
|
||||
}
|
||||
.leaflet-bottom {
|
||||
bottom: 0;
|
||||
}
|
||||
.leaflet-left {
|
||||
left: 0;
|
||||
}
|
||||
.leaflet-control {
|
||||
float: left;
|
||||
clear: both;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
float: right;
|
||||
}
|
||||
.leaflet-top .leaflet-control {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.leaflet-left .leaflet-control {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* zoom and fade animations */
|
||||
|
||||
.leaflet-fade-anim .leaflet-popup {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
||||
opacity: 1;
|
||||
}
|
||||
.leaflet-zoom-animated {
|
||||
-webkit-transform-origin: 0 0;
|
||||
-ms-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
svg.leaflet-zoom-animated {
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-tile,
|
||||
.leaflet-pan-anim .leaflet-tile {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.leaflet-zoom-anim .leaflet-zoom-hide {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
/* cursors */
|
||||
|
||||
.leaflet-interactive {
|
||||
cursor: pointer;
|
||||
}
|
||||
.leaflet-grab {
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: grab;
|
||||
}
|
||||
.leaflet-crosshair,
|
||||
.leaflet-crosshair .leaflet-interactive {
|
||||
cursor: crosshair;
|
||||
}
|
||||
.leaflet-popup-pane,
|
||||
.leaflet-control {
|
||||
cursor: auto;
|
||||
}
|
||||
.leaflet-dragging .leaflet-grab,
|
||||
.leaflet-dragging .leaflet-grab .leaflet-interactive,
|
||||
.leaflet-dragging .leaflet-marker-draggable {
|
||||
cursor: move;
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
/* marker & overlays interactivity */
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-pane > svg path,
|
||||
.leaflet-tile-container {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.leaflet-marker-icon.leaflet-interactive,
|
||||
.leaflet-image-layer.leaflet-interactive,
|
||||
.leaflet-pane > svg path.leaflet-interactive,
|
||||
svg.leaflet-image-layer.leaflet-interactive path {
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
/* visual tweaks */
|
||||
|
||||
.leaflet-container {
|
||||
background: #ddd;
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.leaflet-container a {
|
||||
color: #0078A8;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
border: 2px dotted #38f;
|
||||
background: rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
|
||||
/* general typography */
|
||||
.leaflet-container {
|
||||
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
font-size: 0.75rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
|
||||
/* general toolbar styles */
|
||||
|
||||
.leaflet-bar {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #ccc;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-control-layers-toggle {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
}
|
||||
.leaflet-bar a:hover,
|
||||
.leaflet-bar a:focus {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
.leaflet-bar a:first-child {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom: none;
|
||||
}
|
||||
.leaflet-bar a.leaflet-disabled {
|
||||
cursor: default;
|
||||
background-color: #f4f4f4;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.leaflet-touch .leaflet-bar a:first-child {
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
}
|
||||
.leaflet-touch .leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
|
||||
/* zoom control */
|
||||
|
||||
.leaflet-control-zoom-in,
|
||||
.leaflet-control-zoom-out {
|
||||
font: bold 18px 'Lucida Console', Monaco, monospace;
|
||||
text-indent: 1px;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
|
||||
/* layers control */
|
||||
|
||||
.leaflet-control-layers {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.leaflet-control-layers-toggle {
|
||||
background-image: url(images/layers.png);
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
.leaflet-retina .leaflet-control-layers-toggle {
|
||||
background-image: url(images/layers-2x.png);
|
||||
background-size: 26px 26px;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers-toggle {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
.leaflet-control-layers .leaflet-control-layers-list,
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
|
||||
display: none;
|
||||
}
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.leaflet-control-layers-expanded {
|
||||
padding: 6px 10px 6px 6px;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
}
|
||||
.leaflet-control-layers-scrollbar {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.leaflet-control-layers-selector {
|
||||
margin-top: 2px;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.leaflet-control-layers label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
font-size: 1.08333em;
|
||||
}
|
||||
.leaflet-control-layers-separator {
|
||||
height: 0;
|
||||
border-top: 1px solid #ddd;
|
||||
margin: 5px -10px 5px -6px;
|
||||
}
|
||||
|
||||
/* Default icon URLs */
|
||||
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
|
||||
background-image: url(images/marker-icon.png);
|
||||
}
|
||||
|
||||
|
||||
/* attribution and scale controls */
|
||||
|
||||
.leaflet-container .leaflet-control-attribution {
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
margin: 0;
|
||||
}
|
||||
.leaflet-control-attribution,
|
||||
.leaflet-control-scale-line {
|
||||
padding: 0 5px;
|
||||
color: #333;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.leaflet-control-attribution a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.leaflet-control-attribution a:hover,
|
||||
.leaflet-control-attribution a:focus {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.leaflet-attribution-flag {
|
||||
display: inline !important;
|
||||
vertical-align: baseline !important;
|
||||
width: 1em;
|
||||
height: 0.6669em;
|
||||
}
|
||||
.leaflet-left .leaflet-control-scale {
|
||||
margin-left: 5px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control-scale {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.leaflet-control-scale-line {
|
||||
border: 2px solid #777;
|
||||
border-top: none;
|
||||
line-height: 1.1;
|
||||
padding: 2px 5px 1px;
|
||||
white-space: nowrap;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
text-shadow: 1px 1px #fff;
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child) {
|
||||
border-top: 2px solid #777;
|
||||
border-bottom: none;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
|
||||
border-bottom: 2px solid #777;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-attribution,
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
box-shadow: none;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
border: 2px solid rgba(0,0,0,0.2);
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
|
||||
/* popup */
|
||||
|
||||
.leaflet-popup {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.leaflet-popup-content-wrapper {
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.leaflet-popup-content {
|
||||
margin: 13px 24px 13px 20px;
|
||||
line-height: 1.3;
|
||||
font-size: 13px;
|
||||
font-size: 1.08333em;
|
||||
min-height: 1px;
|
||||
}
|
||||
.leaflet-popup-content p {
|
||||
margin: 17px 0;
|
||||
margin: 1.3em 0;
|
||||
}
|
||||
.leaflet-popup-tip-container {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-top: -1px;
|
||||
margin-left: -20px;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-popup-tip {
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
padding: 1px;
|
||||
|
||||
margin: -10px auto 0;
|
||||
pointer-events: auto;
|
||||
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.leaflet-popup-content-wrapper,
|
||||
.leaflet-popup-tip {
|
||||
background: white;
|
||||
color: #333;
|
||||
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
border: none;
|
||||
text-align: center;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
font: 16px/24px Tahoma, Verdana, sans-serif;
|
||||
color: #757575;
|
||||
text-decoration: none;
|
||||
background: transparent;
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button:hover,
|
||||
.leaflet-container a.leaflet-popup-close-button:focus {
|
||||
color: #585858;
|
||||
}
|
||||
.leaflet-popup-scrolled {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper {
|
||||
-ms-zoom: 1;
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
width: 24px;
|
||||
margin: 0 auto;
|
||||
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
|
||||
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-control-zoom,
|
||||
.leaflet-oldie .leaflet-control-layers,
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper,
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
|
||||
/* div icon */
|
||||
|
||||
.leaflet-div-icon {
|
||||
background: #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
|
||||
|
||||
/* Tooltip */
|
||||
/* Base styles for the element that has a tooltip */
|
||||
.leaflet-tooltip {
|
||||
position: absolute;
|
||||
padding: 6px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 3px;
|
||||
color: #222;
|
||||
white-space: nowrap;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-tooltip.leaflet-interactive {
|
||||
cursor: pointer;
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-tooltip-top:before,
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border: 6px solid transparent;
|
||||
background: transparent;
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* Directions */
|
||||
|
||||
.leaflet-tooltip-bottom {
|
||||
margin-top: 6px;
|
||||
}
|
||||
.leaflet-tooltip-top {
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-top:before {
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-top:before {
|
||||
bottom: 0;
|
||||
margin-bottom: -12px;
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before {
|
||||
top: 0;
|
||||
margin-top: -12px;
|
||||
margin-left: -6px;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-left {
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-right {
|
||||
margin-left: 6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
top: 50%;
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before {
|
||||
right: 0;
|
||||
margin-right: -12px;
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-right:before {
|
||||
left: 0;
|
||||
margin-left: -12px;
|
||||
border-right-color: #fff;
|
||||
}
|
||||
|
||||
/* Printing */
|
||||
|
||||
@media print {
|
||||
/* Prevent printers from removing background-images of controls. */
|
||||
.leaflet-control {
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
64
nodes.md
64
nodes.md
|
@ -1,39 +1,33 @@
|
|||
Port is last 5 digits of your ASN\
|
||||
If your ASN is not 424242xxxx, [use this](https://dn42.724.rocks/port-calc.html)
|
||||
|
||||
### Warsaw, Poland
|
||||
- `pl-waw.420129.xyz` 1 Gbps
|
||||
- Pingables:
|
||||
- `172.20.183.91`
|
||||
- `fdfe:8d0:7450:300::`
|
||||
- `v854+5m4Diqh8oGo6/sGVS7LELsreIjMujkWqwc6bWo=`
|
||||
- `fe80::129:669a`
|
||||
- Hosting: [Skhron](https://skhron.com.ua/aff.php?aff=20)
|
||||
|
||||
### Frankfurt, Germany
|
||||
- `de-fra.420129.xyz` 1 Gbps
|
||||
- ⚠️ High latency over IPv6
|
||||
- Pingables:
|
||||
- `172.20.183.89`
|
||||
- `fdfe:8d0:7450:100::`
|
||||
- `u7Pes8qR8m+/4kc4sNTYani90M2MEbaxRsnXKujqik4=`
|
||||
- `fe80::129:93a8`
|
||||
- Hosting: [Datalix](https://datalix.de/a/inff)
|
||||
Port is last 5 digits of your ASN \
|
||||
If your ASN is not 424242xxxx, [use this](https://dn42.m724.eu/port-calc.html) \
|
||||
Peering via link local only, addresses are only for pinging \
|
||||
All nodes are IPv6 only if not specified
|
||||
|
||||
### Amsterdam, Netherlands
|
||||
- `nl-ams.420129.xyz` ½ Gbps
|
||||
- Pingables:
|
||||
- `172.20.183.93`
|
||||
- `fdfe:8d0:7450:500::`
|
||||
- `5iGqF1Cs0r7dvHV6Juarb5ZkFDu7Mc2ke1mgQGVbEXU=`
|
||||
- `fe80::129:c9db`
|
||||
- Hosting: Oracle
|
||||
- `nl-ams.420129.xyz` 100 Mbps
|
||||
- Public key: `iZfLBtF6BiQvdKXx4Yl02u+OL6ls35gSpWCRmB9q4lU=`
|
||||
- Link local: `fe80::129:1`
|
||||
- Pingable: `fdfe:8d0:7450:100::`
|
||||
- Hosting: [Scaleway](https://www.scaleway.com/en/)
|
||||
|
||||
### Nuremberg, Germany
|
||||
- `de-nue.420129.xyz` 10 Gbps
|
||||
- Pingables:
|
||||
- `172.20.183.90`
|
||||
- `fdfe:8d0:7450:200::`
|
||||
- `lBYpESYKv+3u/d4Van4EzgOngfPLiCTilAatIFT2gXk=`
|
||||
- `fe80::129:c550`
|
||||
- Hosting: [Advin](https://clients.advinservers.com/aff.php?aff=323)
|
||||
- `de1.420129.xyz` 1 Gbps + v4
|
||||
- Tunnelled to Frankfurt, +4ms
|
||||
- Public key: `N9rGceoiFcc/obnHrqMAmVlrb/E2Br55+doekTKwNF8=`
|
||||
- Link local: `fe80::129:2`
|
||||
- Pingable: `fdfe:8d0:7450:200::`
|
||||
- Hosting: [Advin](https://clients.advinservers.com/aff.php?aff=323) (US)
|
||||
|
||||
### Warsaw, Poland
|
||||
- `pl1.420129.xyz` 1 Gbps + v4
|
||||
- Public key: `v854+5m4Diqh8oGo6/sGVS7LELsreIjMujkWqwc6bWo=`
|
||||
- Link local: `fe80::129:3`
|
||||
- Pingable: `fdfe:8d0:7450:300::`
|
||||
- Hosting: [Skhron](https://skhron.com.ua/aff.php?aff=23)
|
||||
|
||||
### Rome, Italy
|
||||
- `it1.420129.xyz` 500 Mbps
|
||||
- Public key: `WiHsWwq0TKphHD3PSf8MD9evRiaTRVvldiqvPhKmsVA=`
|
||||
- Link local: `fe80::129:4`
|
||||
- Pingable: `fdfe:8d0:7450:400::`
|
||||
- Hosting: [C1V Hosting](https://www.c1vhosting.it/)
|
3740
package-lock.json
generated
Normal file
3740
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
8
package.json
Normal file
8
package.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"devDependencies": {
|
||||
"parcel": "^2.12.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"leaflet": "^1.9.4"
|
||||
}
|
||||
}
|
74
src/index.html
Normal file
74
src/index.html
Normal file
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>dn724</title>
|
||||
|
||||
<style>
|
||||
html {
|
||||
font-size: large;
|
||||
}
|
||||
body {
|
||||
margin: 0 auto;
|
||||
max-width: calc(100vw - 40px);
|
||||
word-wrap: break-word;
|
||||
width: fit-content;
|
||||
}
|
||||
ul {
|
||||
margin-bottom: 1.4em;
|
||||
}
|
||||
p {
|
||||
line-height: 0.6em;
|
||||
}
|
||||
.hostname {
|
||||
font-weight: bold;
|
||||
user-select: all;
|
||||
}
|
||||
.meta {
|
||||
color: darkslategray;
|
||||
user-select: all;
|
||||
max-width: 200px;
|
||||
overflow: scroll;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.sel {
|
||||
user-select: all;
|
||||
}
|
||||
</style>
|
||||
|
||||
<h2>AS4242420129</h2>
|
||||
|
||||
<p>Open for peering in:</p>
|
||||
<ul>
|
||||
<li>Warsaw, Poland</li>
|
||||
<li>Rome. Italy</li>
|
||||
<li>Nuremberg, Germany</li>
|
||||
<li>Netherlands, Amsterdam</li>
|
||||
<li><a href="./map/index.html">Network map</a> (uses thunderforest.com API)</li>
|
||||
</ul>
|
||||
|
||||
<p>Peering requirements</p>
|
||||
<ul>
|
||||
<li>sane latency</li>
|
||||
<li>one peering per one node</li>
|
||||
<li>WireGuard, link local peering</li>
|
||||
<li>If your node is not in the same country and you plan on getting one in that country, please don't peer</li>
|
||||
<li>I can make an exception for you in most cases</li>
|
||||
</ul>
|
||||
|
||||
<p>Other</p>
|
||||
<ul>
|
||||
<li><a href="https://git.m724.eu/Minecon724/dn42-info/src/branch/master/nodes.md">Nodes with details</a></li>
|
||||
<li>Port is last 5 digits of your ASN (2xxx), unless</li>
|
||||
<li>your ASN is not 424242xxxx, then <a href="port-calc.html">use this</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Contact</p>
|
||||
<ul>
|
||||
<li><a class=sel href="mailto:dn42@m724.eu">dn42@m724.eu</a>, <a href="https://lfs.m724.eu/dn724_0x2A78FF14_public.asc">GPG</a></li>
|
||||
<li>Telegram: <a class=sel href="https://t.me/minecon724">@minecon724</a></li>
|
||||
<li>Discord: <span class=sel>minecon724</span></li>
|
||||
<li>Session: <span class=sel>05293535c0f0b5ae76a663f3f875582590edd77abd72ab9b12f3acbe4bb078aa49</span></li>
|
||||
</ul>
|
||||
|
||||
</html>
|
|
@ -2,10 +2,10 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="stylesheet" href="leaflet/leaflet.css" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
<script src="leaflet/leaflet.js"></script>
|
||||
<script src="map.js" defer></script>
|
||||
<script type=module src="./map.js"></script>
|
||||
<link rel="stylesheet" href="./style.css" />
|
||||
|
||||
<title>dn724 map</title>
|
||||
</head>
|
||||
|
||||
<body>
|
|
@ -1,3 +1,14 @@
|
|||
import L from 'leaflet';
|
||||
import 'leaflet/dist/leaflet.css';
|
||||
|
||||
delete L.Icon.Default.prototype._getIconUrl;
|
||||
|
||||
L.Icon.Default.mergeOptions({
|
||||
iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
|
||||
iconUrl: require('leaflet/dist/images/marker-icon.png'),
|
||||
shadowUrl: require('leaflet/dist/images/marker-shadow.png'),
|
||||
});
|
||||
|
||||
var map = L.map('map', {
|
||||
minZoom: 5,
|
||||
maxZoom: 10
|
||||
|
@ -28,7 +39,7 @@ var nodes = {
|
|||
city: "Nuremberg, Germany",
|
||||
hostname: "de1.420129.xyz",
|
||||
datacenter: "hetzner nbg",
|
||||
description: `Tunneled to Frankfurt. If you have a node here at hetzner nuremberg, it will go nbg -> fra -> nbg.`,
|
||||
description: `Tunneled to Frankfurt.\nIf you have a node here at hetzner nuremberg, it will go nbg -> fra -> nbg.`,
|
||||
publicKey: "N9rGceoiFcc/obnHrqMAmVlrb/E2Br55+doekTKwNF8=",
|
||||
linkLocal: "fe80::129:2"
|
||||
},
|
||||
|
@ -64,7 +75,7 @@ var opened = null;
|
|||
const sidebarContent = document.getElementById("sidebarContent");
|
||||
const nodesElement = document.getElementById("nodes");
|
||||
|
||||
sidebarContent.onclick = (ev) => {
|
||||
function dismissPopup(hideMarker) {
|
||||
if (opened == null) return;
|
||||
const popup = opened[0];
|
||||
|
||||
|
@ -79,22 +90,24 @@ sidebarContent.onclick = (ev) => {
|
|||
sidebarContent.style.backgroundColor = null;
|
||||
|
||||
opened = null;
|
||||
map.closePopup();
|
||||
if (hideMarker) map.closePopup();
|
||||
|
||||
setTimeout(() => {
|
||||
sidebarContent.removeChild(popup);
|
||||
}, 300);
|
||||
};
|
||||
|
||||
sidebarContent.onclick = dismissPopup;
|
||||
|
||||
function onNodeClick(ev, node, elem) {
|
||||
console.log('b')
|
||||
if (opened != null) return;
|
||||
const rect = elem.getBoundingClientRect();
|
||||
|
||||
nodesElement.style.opacity = 0;
|
||||
nodesElement.style.opacity = 1;
|
||||
|
||||
ele = elem.cloneNode(true);
|
||||
ele.innerHTML += `<br><br>Datacenter: <span class="code">${node.datacenter}</span><br>${node.description.split('\n').slice(1).join('<br>')}`;
|
||||
ele.innerHTML += `<br><br>Datacenter: <span class="code">${node.datacenter}</span><br><br><small>${node.description.split('\n').slice(1).join('<br>')}</small>`;
|
||||
ele.onclick = (ev) => {ev.stopPropagation()};
|
||||
|
||||
ele.classList.add('selectedNode');
|
||||
|
@ -136,4 +149,8 @@ for (let node of Object.values(nodes)) {
|
|||
line(nodes.de1.location, de1t, "Tunnel (already included in other labels)<br><strong>4ms</strong>");
|
||||
line(de1t, nodes.pl1.location, "de1 - pl1<br><strong>24ms</strong>");
|
||||
line(de1t, nodes.nl1.location, "de1 - nl1<br><strong>10ms</strong>");
|
||||
line(nodes.nl1.location, nodes.it1.location, "it1 - nl1<br><strong>25ms</strong>");
|
||||
line(nodes.nl1.location, nodes.it1.location, "it1 - nl1<br><strong>25ms</strong>");
|
||||
|
||||
map.on("dragstart", function () {
|
||||
dismissPopup(false);
|
||||
});
|
|
@ -68,16 +68,6 @@ html, body {
|
|||
|
||||
}
|
||||
|
||||
#blurThing {
|
||||
position: absolute;
|
||||
left: 300px;
|
||||
width: 20px;
|
||||
height: 100%;
|
||||
z-index: 9999;
|
||||
background: linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -100,6 +90,10 @@ html, body {
|
|||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
||||
.leaflet-control-zoom {
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
||||
.leaflet-control {
|
||||
background: none !important;
|
||||
color: white;
|
||||
|
@ -109,10 +103,6 @@ html, body {
|
|||
}
|
||||
}
|
||||
|
||||
.leaflet-control-zoom {
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
||||
.leaflet-control-zoom-in, .leaflet-control-zoom-out {
|
||||
background: none !important;
|
||||
}
|
Loading…
Reference in a new issue