Compare commits

..

No commits in common. "main" and "master" have entirely different histories.
main ... master

322 changed files with 6866 additions and 5697 deletions

View File

@ -1,41 +0,0 @@
name: Build Docker
run-name: Build Docker Images
on:
push:
jobs:
BuildImage:
runs-on: [ubuntu-latest, amd]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Docker
run : |
apt-get install ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce-cli -y
- name: Build Docker image
run : |
echo "${{ secrets.DOCKERGIT_TOKEN }}" | docker login git.woodburn.au -u nathanwoodburn --password-stdin
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
tag=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
tag=${tag//\//-}
tag_num=${GITHUB_RUN_NUMBER}
echo "tag_num=$tag_num"
if [[ "$tag" == "main" ]]; then
tag="latest"
else
tag_num="${tag}-${tag_num}"
fi
docker build -t nathanwoodburn:$tag_num .
docker tag nathanwoodburn:$tag_num git.woodburn.au/nathanwoodburn/nathanwoodburn:$tag_num
docker push git.woodburn.au/nathanwoodburn/nathanwoodburn:$tag_num
docker tag nathanwoodburn:$tag_num git.woodburn.au/nathanwoodburn/nathanwoodburn:$tag
docker push git.woodburn.au/nathanwoodburn/nathanwoodburn:$tag

6
.gitignore vendored
View File

@ -1,6 +0,0 @@
__pycache__/
.env
.vs/
.venv/

Binary file not shown.

View File

@ -0,0 +1,6 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

View File

@ -1,6 +0,0 @@
I hereby confirm that I am the owner of the Bitcoin address bc1q60qy4s6gd7se8z6nc4wu49g4u5y8k2epd3djzc.
Nathan.Woodburn/
--------------------
H3oLoxLyax3gW6KkGfJiarseaktWWydyfS2TZ1zGoDlkIoMG/nIlNWNC5xc/uHCdPs+CIJgxNRq0GQI91qkalpg=
--------------------
You can verify this signature by pasting it into a signature verification tool such as https://www.verifybitcoinmessage.com/.

View File

@ -1,6 +0,0 @@
I hereby confirm that I am the owner of the EVM address 0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e.
Nathan.Woodburn/
--------------------
0x254919e1f2035a4f04614da9e1fbc1f45dab31b03b0baf1bb3325a9f9e437f1f787b99ebc6716b822fc190284c2c678054c91835492ff0df239ec60f6166587f1c
--------------------
You can verify this signature by pasting it into a signature verification tool such as https://etherscan.io/verifiedSignatures

View File

@ -1,13 +0,0 @@
I hereby confirm that I am the owner of the SOL address AJsPEEe6S7XSiVcdZKbeV8GRp1QuhFUsG8mLrqL4XgiU.
Nathan.Woodburn/
--------------------
[71,63,207,190,90,17,145,39,4,98,110,176,86,140,143,107,237,96,24,43,2,116,21,70,47,98,192,24,193,210,89,220,30,128,219,105,9,35,146,188,216,143,164,32,255,44,146,249,153,33,54,214,203,159,80,26,107,165,217,240,153,61,39,0]
--------------------
0x473fcfbe5a11912704626eb0568c8f6bed60182b027415462f62c018c1d259dc1e80db69092392bcd88fa420ff2c92f9992136d6cb9f501a6ba5d9f0993d2700
--------------------
2Rd2EkAUwC8u4DtCZ5BXTkJEvWxozrxmcEzn7VbJFFbL81YLQngH9V1bTu3vivaQz7ZGqs5YtpPWxomsYeE7Ws6F
--------------------
Rz/PvloRkScEYm6wVoyPa+1gGCsCdBVGL2LAGMHSWdwegNtpCSOSvNiPpCD/LJL5mSE21sufUBprpdnwmT0nAA==
--------------------
You can verify this signature by pasting it into a signature verification tool such as https://amacar.github.io/solana-tools/#verify-message
Please note I have included various formats for the signature to make it easier to verify.

View File

@ -1,32 +0,0 @@
{
"ADA": "Cardano (ADA)",
"ATOM": "Cosmos (ATOM)",
"AVAX": "Avalanche (AVAX)",
"BNB": "Binance (BNB)",
"BTC": "Bitcoin (BTC)",
"CRO": "Crypto.com (CRO)",
"DOT": "Polkadot (DOT)",
"ETH": "Ethereum (ETH)",
"HNS": "Handshake (HNS)",
"MATIC": "Polygon (MATIC)",
"SOL": "Solana (SOL)",
"XMR": "Monero (XMR)",
"XRP": "Ripple (XRP)",
"OSMO": "Osmosis (OSMO)",
"STARS": "Stargaze (STARS)",
"INJ": "Injective (INJ)",
"LIKE": "LikeCoin (LIKE)",
"SCRT": "Secret Network (SCRT)",
"LTC": "Litecoin (LTC)",
"DOGE": "Dogecoin (DOGE)",
"ALGO": "Algorand (ALGO)",
"TON": "Toncoin (TON)",
"OP": "Optimism (OP)",
"IAA": "IRIS (IAA)",
"NEAR": "NEAR Protocol (NEAR)",
"KAS": "Kasper (KAS)",
"XLM": "Stellar (XLM)",
"APT": "Aptos (APT)",
"TRX": "Tron (TRX)",
"BCH": "Bitcoin Cash (BCH)"
}

View File

@ -1,32 +0,0 @@
{
"ETH":"woodburn.au",
"HNS":"woodburn",
"SOL":"woodburn.sol",
"ADA": "$nathanwoodburn",
"MATIC": "woodburn.au",
"BNB": "woodburn.au",
"INJ": "woodburn.sol",
"ATOM": "woodburn_nathan.cosmos",
"OSMO": "woodburn_nathan.osmo",
"SCRT": "woodburn_nathan.secret",
"AKASH": "woodburn_nathan.akash",
"SIF": "woodburn_nathan.sif",
"SHENTU": "woodburn_nathan.shentu",
"IAA": "woodburn_nathan.iaa",
"REGEN": "woodburn_nathan.regen",
"PERSISTENCE": "woodburn_nathan.persistence",
"BOSTROM": "woodburn_nathan.bostrom",
"JUNO": "woodburn_nathan.juno",
"AXELAR": "woodburn_nathan.axelar",
"SOMM": "woodburn_nathan.somm",
"UMEE": "woodburn_nathan.umee",
"GRAVITY": "woodburn_nathan.gravity",
"STRIDE": "woodburn_nathan.stride",
"KAVA": "woodburn_nathan.kava",
"QUICK": "woodburn_nathan.quick",
"TERRA": "woodburn_nathan.terra",
"OMNIFLIX": "woodburn_nathan.omniflix",
"LIKE": "woodburn_nathan.like",
"CHIHUAHUA": "woodburn_nathan.chihuahua",
"NEAR": "woodburn.near"
}

View File

@ -1,73 +0,0 @@
[
{
"symbol": "USDT",
"name": "Tether",
"chain": "ETH"
},
{
"symbol": "USDT",
"name": "Tether",
"chain": "SOL"
},
{
"symbol": "USDC",
"name": "USDC",
"chain": "ETH"
},
{
"symbol": "USDC",
"name": "USDC",
"chain": "SOL"
},
{
"symbol": "USDC",
"name": "USDC",
"chain": "NOBLE"
},
{
"symbol": "WDBRN",
"name": "Woodburn",
"chain": "SOL"
},
{
"symbol": "DAI",
"name": "DAI Stablecoin",
"chain": "ETH"
},
{
"symbol": "RAY",
"name": "Raydium",
"chain": "SOL"
},
{
"symbol": "UNI",
"name": "Uniswap",
"chain": "ETH"
},
{
"symbol": "AAVE",
"name": "AAVE",
"chain": "ETH"
},
{
"symbol": "1INCH",
"name": "1INCH",
"chain": "ETH"
},
{
"symbol": "PSP",
"name": "ParaSwap",
"chain": "ETH"
},
{
"symbol": "CAKE",
"name": "PancakeSwap",
"chain": "BNB"
},
{
"symbol": "BTC",
"name": "Bitcoin Lightning",
"chain": "null",
"address": "thinbadger6@primal.net"
}
]

View File

@ -1 +0,0 @@
addr1qy5l7vmx9l2uexv44hzjak4zmwecee4hht0k6shtk5jh7cjzu99z8vx5n467fquzradx7p42grdylv3zq2cgfw0f32fs443hxs

View File

@ -1 +0,0 @@
akash1ugraczuyfmxy8k38nps4fu7e5derryzxpk2n77

View File

@ -1 +0,0 @@
OUWNGLRLAN56VTNI3F4EKISPDIFIF2HMCV3OYS3DER7WXF2LCFMEV2TWPI

View File

@ -1 +0,0 @@
0x372b3c513d149e5511912eba22e31f07d2b289e20ba84b2e0b7756e7a00295c3

View File

@ -1 +0,0 @@
cosmos1ugraczuyfmxy8k38nps4fu7e5derryzxvd858y

View File

@ -1 +0,0 @@
0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e

View File

@ -1 +0,0 @@
axelar1ugraczuyfmxy8k38nps4fu7e5derryzxgr3uv9

View File

@ -1 +0,0 @@
qpsgs9daa6e2mn4v0u02pfunsme68a5uayn7e8knug

View File

@ -1 +0,0 @@
0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e

View File

@ -1 +0,0 @@
bostrom1ugraczuyfmxy8k38nps4fu7e5derryzx07n8er

View File

@ -1 +1 @@
bc1q60qy4s6gd7se8z6nc4wu49g4u5y8k2epd3djzc
bc1qhs94zzcw64qnwq4hvk056rwxwvgrkd7tq7d4xw

View File

@ -1 +0,0 @@
chihuahua1ugraczuyfmxy8k38nps4fu7e5derryzx0c26xx

View File

@ -1 +0,0 @@
Xpr5auWs1waBmWT3XsWXwzu8Di32x8VfH2

View File

@ -1 +0,0 @@
DCrBQ3zoy3jBWwwT95tyjBVjYFXLgKS4MC

View File

@ -1 +0,0 @@
13KSjM7rxFu7SxAuqcNZ76wyjhfuV4Kx8pWfqpFAykSQeEn3

View File

@ -1 +0,0 @@
nwoodburn111

View File

@ -1 +0,0 @@
gravity1ugraczuyfmxy8k38nps4fu7e5derryzxga4vzv

View File

@ -1 +0,0 @@
iaa1ugraczuyfmxy8k38nps4fu7e5derryzxe08994

View File

@ -1 +0,0 @@
inj1dj6t8xlvyw5jrjdzp5rphutageqtp5u7wflgv9

View File

@ -1 +0,0 @@
juno1ugraczuyfmxy8k38nps4fu7e5derryzx6ly0qc

View File

@ -1 +0,0 @@
kaspa:qzl7av7gq5j594pcs2gn6zf2xadpmhdm90nygjstvte0n6gt9f4fgx0w2dhm8

View File

@ -1 +0,0 @@
kava1ugraczuyfmxy8k38nps4fu7e5derryzxscnf3r

View File

@ -1 +0,0 @@
like1ugraczuyfmxy8k38nps4fu7e5derryzxl3mkyl

View File

@ -1 +0,0 @@
ltc1qx79yxm2gwnsrch925343hg3zt3r085x725a0tw

View File

@ -1 +0,0 @@
3b06b5e91361739aed92707e888fbbd33f97b24a8a3f8fdd54a2c7e7fd7082a3

View File

@ -1 +0,0 @@
noble1ugraczuyfmxy8k38nps4fu7e5derryzxywjul2

View File

@ -1 +0,0 @@
omniflix1ugraczuyfmxy8k38nps4fu7e5derryzx3nkds6

View File

@ -1 +0,0 @@
0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e

View File

@ -1 +0,0 @@
osmo1ugraczuyfmxy8k38nps4fu7e5derryzxyk5y3k

View File

@ -1 +0,0 @@
persistence1ugraczuyfmxy8k38nps4fu7e5derryzxzpp8fq

View File

@ -1 +0,0 @@
quick1ugraczuyfmxy8k38nps4fu7e5derryzx8fhx7k

View File

@ -1 +0,0 @@
regen1ugraczuyfmxy8k38nps4fu7e5derryzxn0vg3q

View File

@ -1 +0,0 @@
secret1ugraczuyfmxy8k38nps4fu7e5derryzxwgna6c

View File

@ -1 +0,0 @@
sent1ugraczuyfmxy8k38nps4fu7e5derryzxhk3drt

View File

@ -1 +0,0 @@
shentu1ugraczuyfmxy8k38nps4fu7e5derryzxyerd4e

View File

@ -1 +0,0 @@
sif1ugraczuyfmxy8k38nps4fu7e5derryzxfsgzg0

View File

@ -1 +0,0 @@
somm1ugraczuyfmxy8k38nps4fu7e5derryzxq3gckw

View File

@ -1 +0,0 @@
stars1ugraczuyfmxy8k38nps4fu7e5derryzxc3sfv4

View File

@ -1 +0,0 @@
stride1ugraczuyfmxy8k38nps4fu7e5derryzx0x8gng

View File

@ -1 +0,0 @@
0x9e14ca8b9bf9661fd8a67c2c147bb1f7ea81eb38eb10938b6a9cecb54419e3b2

View File

@ -1 +0,0 @@
terra1ugraczuyfmxy8k38nps4fu7e5derryzx2fa59y

View File

@ -1 +0,0 @@
UQDqC1B0a3S9th8ncaQHYJ689dnu9c0zJXeV727UMak9WbBm

View File

@ -1 +0,0 @@
THjwavxGZahj1scVw75fhGP2HCAcjNxwsK

View File

@ -1 +0,0 @@
umee1ugraczuyfmxy8k38nps4fu7e5derryzx7m6trk

View File

@ -1 +0,0 @@
GCK4PA53V26MNP6U57EPK7EA42TBQMGJ4TUPMUPLLQNPZ64YX3XVLZGQ

View File

@ -1 +0,0 @@
rKzdnYvwDyeki5VCgMwjuofjBjAbg3DJnB

View File

@ -1,12 +0,0 @@
[METADATA]
modified = 2024-07-02T00:00:00.000Z
expires = 2050-07-02T00:00:00.000Z
[[ACCOUNTS]]
address = "rKzdnYvwDyeki5VCgMwjuofjBjAbg3DJnB"
desc = "Nathan.Woodburn/ (Twitter: @nathanwoodburn)"
[[PRINCIPALS]]
name = "Nathan Woodburn"
email = "xrp@nathan.woodburn.au"
social_1 = "https://nathan.woodburn.au"

93
403.css Normal file
View File

@ -0,0 +1,93 @@
html {
height: 100%;
}
body {
/* width: 100%; */
height: 99%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
family: "Poppins", sans-serif;
background-image: linear-gradient(45deg, #f6d200 25%, #181617 25%, #181617 50%, #f6d200 50%, #f6d200 75%, #181617 75%, #181617 100%);
}
h1 {
text-transform: uppercase;
background: repeating-linear-gradient(45deg, #f6d200, #f6d200 10px, #181617 10px, #181617 20px);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: move 5s ease infinite;
font-size: 384px;
margin: 0;
line-height: 0.7;
position: relative;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
h1:before, h1:after {
content: "Caution";
background-color: #f6d200;
color: #181617;
border-radius: 10px;
font-size: 35px;
position: absolute;
padding: 31px;
text-transform: uppercase;
font-weight: bold;
-webkit-text-fill-color: #181617;
left: 50%;
top: 50%;
transform: translate(-50%, -50%) rotate(20deg);
}
h1:before {
content: "";
padding: 70px 130px;
background: repeating-linear-gradient(45deg, #f6d200, #f6d200 10px, #181617 10px, #181617 20px);
box-shadow: 0px 0px 10px #181617;
}
h1 span:before, h1 span:after {
content: "";
width: 8px;
height: 8px;
background: #757575;
color: #757575;
border-radius: 50%;
position: absolute;
bottom: 0;
margin: auto;
top: 20%;
z-index: 3;
box-shadow: 0px 60px 0 0px;
}
h1 span:before {
left: 37%;
transform: rotate(22deg);
top: -44%;
}
h1 span:after {
right: 34%;
transform: rotate(22deg);
top: 3%;
}
input {
margin-top: 3em;
background: #f6d200;
color: #181617;
border: 0;
padding: 20px 40px;
font-size: 20px;
font-weight: bold;
text-transform: uppercase;
border-radius: 10px;
box-shadow: 0px 0px 10px #181617;
cursor: pointer;
transition: all 0.3s ease;
}

17
403.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>403 | Woodburn</title>
<link rel="stylesheet" href="403.css">
</head>
<body>
<h1 class="text"><span>403</span></h1>
<br>
<form action="https://id.woodburn.au/logout">
<input type="submit" value="Logout" />
</form>
</body>
</html>

24
404.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Nathan Woodburn</title>
<link rel="icon" type="image/png" href="../assets/img/NJW Icon 512.png"/>
<link rel="icon" type="image/png" href="https://nathan.woodburn.id.au/assets/img/NJW Icon 512.png"/>
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'><link rel="stylesheet" href="https://nathan.woodburn.id.au/404.css">
</head>
<body style="background-color:white;">
<!-- partial:index.partial.html -->
<p><br><br><br></p>
<h1 style="text-align:center">Space Invaders destroyed this page!</h1>
<t2 style="text-align:center">Take revenge on them!</t2>
<p class="mobile"><br><br><br><br><br><br></p>
<p class="center"><br><br><br>Use <span class="label label-danger">Space</span> to shoot and <span class="label label-danger"></span>&#160;<span class="label label-danger"></span> to move!&#160;&#160;&#160;<button class="btn btn-default btn-xs" id="restart">Restart</button> or <button class="btn btn-default btn-xs" onclick="location.href='javascript:history.back()'" type="button">
Retreat</button></p>
<canvas id="space-invaders">
<!-- partial -->
<script src="https://nathan.woodburn.id.au/404.js"></script>
</body>
</html>

293
404M.css Normal file
View File

@ -0,0 +1,293 @@
@import url(https://fonts.googleapis.com/css?family=Ubuntu);
html, body {
background: #28254C;
font-family: 'Ubuntu';
}
* {
box-sizing: border-box;
}
.box {
width: 350px;
height: 100%;
max-height: 600px;
min-height: 450px;
background: #332F63;
border-radius: 20px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: 30px 50px;
}
.box .box__ghost {
padding: 15px 25px 25px;
position: absolute;
left: 50%;
top: 30%;
transform: translate(-50%, -30%);
}
.box .box__ghost .symbol:nth-child(1) {
opacity: .2;
animation: shine 4s ease-in-out 3s infinite;
}
.box .box__ghost .symbol:nth-child(1):before, .box .box__ghost .symbol:nth-child(1):after {
content: '';
width: 12px;
height: 4px;
background: #fff;
position: absolute;
border-radius: 5px;
bottom: 65px;
left: 0;
}
.box .box__ghost .symbol:nth-child(1):before {
transform: rotate(45deg);
}
.box .box__ghost .symbol:nth-child(1):after {
transform: rotate(-45deg);
}
.box .box__ghost .symbol:nth-child(2) {
position: absolute;
left: -5px;
top: 30px;
height: 18px;
width: 18px;
border: 4px solid;
border-radius: 50%;
border-color: #fff;
opacity: .2;
animation: shine 4s ease-in-out 1.3s infinite;
}
.box .box__ghost .symbol:nth-child(3) {
opacity: .2;
animation: shine 3s ease-in-out .5s infinite;
}
.box .box__ghost .symbol:nth-child(3):before, .box .box__ghost .symbol:nth-child(3):after {
content: '';
width: 12px;
height: 4px;
background: #fff;
position: absolute;
border-radius: 5px;
top: 5px;
left: 40px;
}
.box .box__ghost .symbol:nth-child(3):before {
transform: rotate(90deg);
}
.box .box__ghost .symbol:nth-child(3):after {
transform: rotate(180deg);
}
.box .box__ghost .symbol:nth-child(4) {
opacity: .2;
animation: shine 6s ease-in-out 1.6s infinite;
}
.box .box__ghost .symbol:nth-child(4):before, .box .box__ghost .symbol:nth-child(4):after {
content: '';
width: 15px;
height: 4px;
background: #fff;
position: absolute;
border-radius: 5px;
top: 10px;
right: 30px;
}
.box .box__ghost .symbol:nth-child(4):before {
transform: rotate(45deg);
}
.box .box__ghost .symbol:nth-child(4):after {
transform: rotate(-45deg);
}
.box .box__ghost .symbol:nth-child(5) {
position: absolute;
right: 5px;
top: 40px;
height: 12px;
width: 12px;
border: 3px solid;
border-radius: 50%;
border-color: #fff;
opacity: .2;
animation: shine 1.7s ease-in-out 7s infinite;
}
.box .box__ghost .symbol:nth-child(6) {
opacity: .2;
animation: shine 2s ease-in-out 6s infinite;
}
.box .box__ghost .symbol:nth-child(6):before, .box .box__ghost .symbol:nth-child(6):after {
content: '';
width: 15px;
height: 4px;
background: #fff;
position: absolute;
border-radius: 5px;
bottom: 65px;
right: -5px;
}
.box .box__ghost .symbol:nth-child(6):before {
transform: rotate(90deg);
}
.box .box__ghost .symbol:nth-child(6):after {
transform: rotate(180deg);
}
.box .box__ghost .box__ghost-container {
background: #fff;
width: 100px;
height: 100px;
border-radius: 100px 100px 0 0;
position: relative;
margin: 0 auto;
animation: upndown 3s ease-in-out infinite;
}
.box .box__ghost .box__ghost-container .box__ghost-eyes {
position: absolute;
left: 50%;
top: 45%;
height: 12px;
width: 70px;
}
.box .box__ghost .box__ghost-container .box__ghost-eyes .box__eye-left {
width: 12px;
height: 12px;
background: #332F63;
border-radius: 50%;
margin: 0 10px;
position: absolute;
left: 0;
}
.box .box__ghost .box__ghost-container .box__ghost-eyes .box__eye-right {
width: 12px;
height: 12px;
background: #332F63;
border-radius: 50%;
margin: 0 10px;
position: absolute;
right: 0;
}
.box .box__ghost .box__ghost-container .box__ghost-bottom {
display: flex;
position: absolute;
top: 100%;
left: 0;
right: 0;
}
.box .box__ghost .box__ghost-container .box__ghost-bottom div {
flex-grow: 1;
position: relative;
top: -10px;
height: 20px;
border-radius: 100%;
background-color: #fff;
}
.box .box__ghost .box__ghost-container .box__ghost-bottom div:nth-child(2n) {
top: -12px;
margin: 0 -0px;
border-top: 15px solid #332F63;
background: transparent;
}
.box .box__ghost .box__ghost-shadow {
height: 20px;
box-shadow: 0 50px 15px 5px #3B3769;
border-radius: 50%;
margin: 0 auto;
animation: smallnbig 3s ease-in-out infinite;
}
.box .box__description {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
}
.box .box__description .box__description-container {
color: #fff;
text-align: center;
width: 200px;
font-size: 16px;
margin: 0 auto;
}
.box .box__description .box__description-container .box__description-title {
font-size: 24px;
letter-spacing: .5px;
}
.box .box__description .box__description-container .box__description-text {
color: #8C8AA7;
line-height: 20px;
margin-top: 20px;
}
.box .box__description .box__button {
display: block;
position: relative;
background: #FF5E65;
border: 1px solid transparent;
border-radius: 50px;
height: 50px;
text-align: center;
text-decoration: none;
color: #fff;
line-height: 50px;
font-size: 18px;
padding: 0 70px;
white-space: nowrap;
margin-top: 25px;
transition: background .5s ease;
overflow: hidden;
-webkit-mask-image: -webkit-radial-gradient(white, black);
}
.box .box__description .box__button:before {
content: '';
position: absolute;
width: 20px;
height: 100px;
background: #fff;
bottom: -25px;
left: 0;
border: 2px solid #fff;
transform: translateX(-50px) rotate(45deg);
transition: transform .5s ease;
}
.box .box__description .box__button:hover {
background: transparent;
border-color: #fff;
}
.box .box__description .box__button:hover:before {
transform: translateX(250px) rotate(45deg);
}
@keyframes upndown {
0% {
transform: translateY(5px);
}
50% {
transform: translateY(15px);
}
100% {
transform: translateY(5px);
}
}
@keyframes smallnbig {
0% {
width: 90px;
}
50% {
width: 100px;
}
100% {
width: 90px;
}
}
@keyframes shine {
0% {
opacity: .2;
}
25% {
opacity: .1;
}
50% {
opacity: .2;
}
100% {
opacity: .2;
}
}

53
404M.html Normal file
View File

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Nathan Woodburn</title>
<link rel="icon" type="image/png" href="../images/favicon.png"/>
<link rel="icon" type="image/png" href="https://www.nathanwoodburn.tk/images/favicon.png"/>
<link rel="stylesheet" href="./404M.css">
</head>
<body>
<!-- partial:index.partial.html -->
<div class="box">
<div class="box__ghost">
<div class="symbol"></div>
<div class="symbol"></div>
<div class="symbol"></div>
<div class="symbol"></div>
<div class="symbol"></div>
<div class="symbol"></div>
<div class="box__ghost-container">
<div class="box__ghost-eyes">
<div class="box__eye-left"></div>
<div class="box__eye-right"></div>
</div>
<div class="box__ghost-bottom">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
<div class="box__ghost-shadow"></div>
</div>
<div class="box__description">
<div class="box__description-container">
<div class="box__description-title">Whoops!</div>
<div class="box__description-text">It seems like we couldn't find the page you were looking for</div>
</div>
<a href="https://www.nathanwoodburn.tk" class="box__button">Go back</a>
</div>
</div>
<!-- partial -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script><script src="./404M.js"></script>
</body>
</html>

20
404M.js Normal file
View File

@ -0,0 +1,20 @@
//based on https://dribbble.com/shots/3913847-404-page
var pageX = $(document).width();
var pageY = $(document).height();
var mouseY=0;
var mouseX=0;
$(document).mousemove(function( event ) {
//verticalAxis
mouseY = event.pageY;
yAxis = (pageY/2-mouseY)/pageY*300;
//horizontalAxis
mouseX = event.pageX / -pageX;
xAxis = -mouseX * 100 - 100;
$('.box__ghost-eyes').css({ 'transform': 'translate('+ xAxis +'%,-'+ yAxis +'%)' });
//console.log('X: ' + xAxis);
});

1
CNAME Normal file
View File

@ -0,0 +1 @@
nathan.woodburn.au

View File

@ -1,17 +0,0 @@
FROM --platform=$BUILDPLATFORM python:3.10-alpine AS builder
WORKDIR /app
COPY requirements.txt /app
RUN --mount=type=cache,target=/root/.cache/pip \
python3 -m pip install -r requirements.txt
COPY . /app
# Add mount point for data volume
# VOLUME /data
ENTRYPOINT ["python3"]
CMD ["main.py"]
FROM builder as dev-envs

1
_config.yml Normal file
View File

@ -0,0 +1 @@
include: [".well-known"]

60
about.html Normal file
View File

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en-au" style="background: url(&quot;assets/img/intro-bg.webp&quot;) bottom / cover no-repeat, black;">
<head>
<meta charset="utf-8">
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NNXTCKW');</script>
<!-- End Google Tag Manager -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Nathan.Woodburn/</title>
<meta name="theme-color" content="#97009a">
<link rel="canonical" href="https://nathan.woodburn.au/about.html">
<meta property="og:url" content="https://nathan.woodburn.au/about.html">
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
<meta property="og:title" content="Nathan.Woodburn/">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
<meta property="og:type" content="website">
<meta name="twitter:title" content="Nathan.Woodburn/">
<meta property="og:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="assets/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="16x16" href="assets/img/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="assets/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="180x180" href="assets/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="192x192" href="assets/img/android-chrome-192x192.png">
<link rel="icon" type="image/png" sizes="512x512" href="assets/img/android-chrome-512x512.png">
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="manifest" href="manifest.json">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic&amp;display=swap">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cabin:700&amp;display=swap">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Anonymous+Pro&amp;display=swap">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
<link rel="stylesheet" href="assets/fonts/fontawesome-all.min.css">
<link rel="stylesheet" href="assets/fonts/ionicons.min.css">
<link rel="stylesheet" href="assets/css/styles.min.css">
<link rel="stylesheet" href="assets/css/fixes.min.css">
<link rel="stylesheet" href="assets/css/profile.min.css">
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
</head>
<body class="about-body" style="text-align: center;color: rgb(255,255,255);background: transparent;"><script src="https://nathan.woodburn/handshake.js" domain="nathan.woodburn"></script>
<script src="https://nathan.woodburn/https.js"></script>
<div class="profile-container" style="margin-bottom: 2em;margin-top: 5em;"><img class="profile background" src="assets/img/profile.jpg" style="border-radius: 50%;"><img class="profile foreground" src="assets/img/pfront.webp"></div>
<h1 class="nathanwoodburn" style="margin-bottom: 0.5em;">Nathan.Woodburn/</h1>
<div class="social-icons" style="background: rgba(255,255,255,0);color: rgb(255,255,255);padding: 0px;"><a href="https://www.facebook.com/nathanjwoodburn" target="_blank"><i class="icon ion-social-facebook facebook social-icons-hidden" style="border-color: #ffffff;color: rgb(255,255,255);font-size: 35px;margin-top: 0.5em;margin-bottom: 0.5em;"></i></a><a target="_blank" href="https://twitter.com/woodburn_nathan"><i class="icon ion-social-twitter twitter social-icons-hidden" style="border-color: #ffffff;color: rgb(255,255,255);font-size: 35px;margin-top: 0.5em;margin-bottom: 0.5em;"></i></a><a href="https://www.linkedin.com/in/nathanwoodburn/" target="_blank"><i class="icon ion-social-linkedin linkedin social-icons-hidden" style="border-color: #ffffff;color: rgb(255,255,255);font-size: 35px;margin-top: 0.5em;margin-bottom: 0.5em;"></i></a><a href="https://github.com/Nathanwoodburn" target="_blank"><i class="icon ion-social-github github social-icons-hidden" style="border-color: #ffffff;color: rgb(255,255,255);font-size: 35px;margin-top: 0.5em;margin-bottom: 0.5em;"></i></a><a href="mailto:contact@nathan.woodburn.au" target="_blank"><i class="icon ion-email email social-icons-hidden" style="border-color: #ffffff;color: rgb(255,255,255);font-size: 35px;margin-top: 0.5em;margin-bottom: 0.5em;"></i></a><a href="https://keybase.io/nathanwoodburn" target="_blank"><i class="fab fa-keybase keybase social-icons-hidden" style="border-color: #ffffff;color: rgb(255,255,255);font-size: 35px;margin-top: 0.5em;margin-bottom: 0.5em;"></i></a></div>
<p style="margin-top: 1em;">Hi, I am Nathan Woodburn and I live in Canberra<br>I am currently studying at the Australian National University<br>I enjoy 3D printing and CAD<br>I code stuff with C#, Linux Bash<br>I can code in a ton of other languages with Google's help<br>I'm a co-founder of <a href="https://hns.au" target="_blank">Handshake Australia</a><br>I currently work for <a href="https://learn.namebase.io" target="_blank">Namebase</a><br><br></p><i class="fas fa-arrow-down" style="font-size: 50px;" onclick="slideout()"></i>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/script.min.js"></script>
<script src="assets/js/about.min.js"></script>
<script src="assets/js/hacker.min.js"></script>
</body>
</html>

View File

@ -1,35 +0,0 @@
import os
import json
if not os.path.exists('.well-known/wallets'):
os.makedirs('.well-known/wallets')
def addCoin(token:str, name:str, address:str):
with open('.well-known/wallets/'+token.upper(),'w') as f:
f.write(address)
with open('.well-known/wallets/.coins','r') as f:
coins = json.load(f)
coins[token.upper()] = f'{name} ({token.upper()})'
with open('.well-known/wallets/.coins','w') as f:
f.write(json.dumps(coins, indent=4))
def addDomain(token:str, domain:str):
with open('.well-known/wallets/.domains','r') as f:
domains = json.load(f)
domains[token.upper()] = domain
with open('.well-known/wallets/.domains','w') as f:
f.write(json.dumps(domains, indent=4))
if __name__ == '__main__':
# Ask user for token
token = input('Enter token symbol: ')
name = input('Enter token name: ')
address = input('Enter wallet address: ')
addCoin(token, name, address)
if input('Do you want to add a domain? (y/n): ').lower() == 'y':
domain = input('Enter domain: ')
addDomain(token, domain)

55
ascii.html Normal file

File diff suppressed because one or more lines are too long

BIN
assets/WDBRN.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

BIN
assets/background.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

File diff suppressed because one or more lines are too long

6
assets/bootstrap/js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,57 @@
.bs-icon {
--bs-icon-size: .75rem;
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: center;
font-size: var(--bs-icon-size);
width: calc(var(--bs-icon-size) * 2);
height: calc(var(--bs-icon-size) * 2);
color: var(--bs-primary);
}
.bs-icon-xs {
--bs-icon-size: 1rem;
width: calc(var(--bs-icon-size) * 1.5);
height: calc(var(--bs-icon-size) * 1.5);
}
.bs-icon-sm {
--bs-icon-size: 1rem;
}
.bs-icon-md {
--bs-icon-size: 1.5rem;
}
.bs-icon-lg {
--bs-icon-size: 2rem;
}
.bs-icon-xl {
--bs-icon-size: 2.5rem;
}
.bs-icon.bs-icon-primary {
color: var(--bs-white);
background: var(--bs-primary);
}
.bs-icon.bs-icon-primary-light {
color: var(--bs-primary);
background: rgba(var(--bs-primary-rgb), .2);
}
.bs-icon.bs-icon-semi-white {
color: var(--bs-primary);
background: rgba(255, 255, 255, .5);
}
.bs-icon.bs-icon-rounded {
border-radius: .5rem;
}
.bs-icon.bs-icon-circle {
border-radius: 50%;
}

View File

@ -0,0 +1,43 @@
.text2-center {
text-align: center;
margin: 1.25rem 0;
border-top: 1px solid #dadada;
padding: 1.25rem 0;
}
.text-center1 {
text-align: center;
margin: 1.25rem 0;
border-bottom: 1px solid #dadada;
padding: 1.25rem 0;
}
.col-md-3 {
margin: 1.25rem 0;
}
.shadow {
box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
}
.rounded {
border-radius: .25rem !important;
}
.border {
border: 0px !important;
}
h1 {
color: #2c3134;
}
h2 {
color: #2c3134;
}
.btn:hover {
color: black !important;
background-color: white !important;
}

View File

@ -0,0 +1,38 @@
.social-icons {
color: #313437;
background-color: #fff;
padding: 70px 0;
}
@media (max-width:767px) {
.social-icons {
padding: 50px 0;
}
}
@media (max-width:500px) {
img.profile {
width: 200px;
margin-left: -100px;
}
}
@media (max-width:500px) {
.profile-container {
height: 200px;
margin-top: 2em !important;
}
}
.social-icons i {
color: #757980;
margin: 0 10px;
width: 60px;
height: 60px;
border: 1px solid #c8ced7;
text-align: center;
border-radius: 50%;
line-height: 60px;
display: inline-block;
}

1742
assets/css/animate.min.css vendored Normal file

File diff suppressed because it is too large Load Diff

11
assets/css/fixes.css Normal file
View File

@ -0,0 +1,11 @@
body.about-body {
position: absolute;
top: 0;
transition: 2s;
height: 101%;
}
::-webkit-scrollbar {
display: none;
}

13
assets/css/index.css Normal file
View File

@ -0,0 +1,13 @@
img.no-drag {
pointer-events: none;
}
img.fog {
pointer-events: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}

1
assets/css/index.min.css vendored Normal file
View File

@ -0,0 +1 @@
img.no-drag{pointer-events:none}img.fog{pointer-events:none;position:absolute;left:0;top:0;width:100%;height:100%}

1
assets/css/parallax.min.css vendored Normal file
View File

@ -0,0 +1 @@
.main{position:relative;height:100vh;width:99vw;overflow:hidden}.parallax{pointer-events:none;transition:none}.bg-img{position:absolute;width:194.44%;top:1.86%;left:50.69%;z-index:1}.fog-7{position:absolute;z-index:2;top:37.7%;left:70.8%;width:132%}.mountain-10{position:absolute;z-index:3;top:63.58%;width:71.52%;left:67.84%}.fog-6{position:absolute;z-index:4;top:62.09%;left:50.4%;width:129.3%}.mountain-9{position:absolute;z-index:5;top:63.95%;width:32.63%;left:18.3%}.mountain-8{position:absolute;z-index:6;top:60.6%;width:56.25%;left:36%}.fog-5{position:absolute;z-index:7;top:69.7%;left:51.3%;width:31.25%}.mountain-7{position:absolute;z-index:8;width:37.36%;top:65.18%;left:71.18%}.text{position:absolute;z-index:9;top:34%;left:50%;text-align:center;text-transform:uppercase;color:#fff;pointer-events:auto}.text .para1{font-weight:100;line-height:.88}.text .para2{font-weight:800}.mountain-6{position:absolute;z-index:10;top:57.4%;width:28.33%;left:90.97%}.fog-4{position:absolute;z-index:11;top:77.7%;left:45.84%;width:40.27%}.mountain-5{position:absolute;z-index:12;top:80.86%;width:43.4%;left:59%}.fog-3{position:absolute;z-index:13;top:63.58%;left:48.27%;width:107.63%}.mountain-4{position:absolute;z-index:14;top:74.19%;width:54.16%;left:23.55%}.mountain-3{position:absolute;z-index:15;top:61.35%;left:101.11%;width:32.22%}.fog-2{position:absolute;z-index:16;top:68.14%;left:48%;width:108.33%}.mountain-2{position:absolute;z-index:17;top:69.01%;left:78.61%;width:47.91%}.mountain-1{position:absolute;z-index:18;top:52%;left:8.27%;width:37.15%}.sun-rays{position:absolute;z-index:19;top:0;right:0;width:41.31%;pointer-events:none}.black-shadow{position:absolute;z-index:20;bottom:0;right:0;pointer-events:none;width:100%}.fog-1{position:absolute;z-index:21;top:59.26%;left:50.69%;width:111.8%}.vignette{position:absolute;z-index:100;width:100%;height:100%;top:0;left:0;background:radial-gradient(ellipse at center,rgba(0,0,0,0) 65%,rgba(0,0,0,.7));pointer-events:none}@media (max-width:1100px){.text h1{font-size:5.8rem}.text h2{display:none}}@media (max-width:725px){.bg-img{width:initial;height:208.1%}.fog-7{width:initial;height:146.17%}.mountain-10{width:initial;height:77.59%}.fog-6{width:initial;height:73.11%}.mountain-9{height:87.64%;width:initial}.mountain-8{height:84.33%;width:initial}.fog-5{width:initial;height:54.16%}.mountain-7{width:initial;height:72.26%}.mountain-6{width:initial;height:56.78%}.fog-4{width:initial;height:104.5%}.mountain-5{width:initial;height:60.64%}.fog-3{width:initial;height:90.78%}.mountain-4{width:initial;height:71.42%}.mountain-3{width:initial;height:96.86%}.fog-2{width:initial;height:84.73%}.mountain-2{display:none}.mountain-1{width:initial;height:100.03%}.fog-1{width:initial;height:89.86%}}@media (max-width:520px){.text h1{font-size:3.3rem}.text h2{font-size:2.6rem}}

28
assets/css/podcast.css Normal file
View File

@ -0,0 +1,28 @@
.hide_underline {
text-decoration: none;
}
.invert {
filter: invert(1);
}
@media screen and (max-width: 800px) {
.masthead {
padding-top: 0 !important;
}
}
/* For screen under 450 px set the nav icon width 100% */
@media screen and (max-width: 450px) {
img.navicon {
width: 100%;
}
}
@media screen and (max-width: 450px) {
#navbar {
padding-left: 0 !important;
}
}

24
assets/css/profile.css Normal file
View File

@ -0,0 +1,24 @@
.profile-container {
height: 300px;
}
img.profile {
width: 300px;
position: absolute;
left: 50%;
margin-left: -150px;
aspect-ratio: 1;
padding-top: calc(var(--s)/5);
transform: scale(1);
transition: .5s;
}
img.foreground {
border-radius: 50%;
pointer-events: none;
}
img.background:hover {
filter: blur(5px);
}

1
assets/css/profile.min.css vendored Normal file
View File

@ -0,0 +1 @@
.profile-container{height:300px}img.profile{width:300px;position:absolute;left:50%;margin-left:-150px;aspect-ratio:1;padding-top:calc(var(--s)/5);transform:scale(1);transition:.5s}img.foreground{border-radius:50%;pointer-events:none}img.background:hover{filter:blur(5px)}

104
assets/css/resume.css Normal file
View File

@ -0,0 +1,104 @@
.profile-container {
/*margin-left: calc(10% - 10px);*/
height: 170px;
width: 170px;
z-index: 2;
left: 10%;
}
.title {
position: absolute;
margin-left: calc(100px);
width: calc(100% - 100px);
padding: 1em;
margin-top: -225px;
z-index: 0;
}
.title > * {
width: 100%;
margin-bottom: 0px;
}
img.profile {
left: 10px;
width: 150px;
position: absolute;
aspect-ratio: 1;
transform: scale(1);
transition: .5s;
z-index: 2;
}
img.background2 {
left: 0px;
width: 170px !important;
margin-top: -10px;
pointer-events: none;
z-index: 1;
}
img.foreground {
border-radius: 50%;
pointer-events: none;
z-index: 3;
}
img.background:hover {
filter: blur(5px);
}
.spacer {
height: 100px;
}
/* For small screens */
img.profilesml {
width: 150px;
position: absolute;
left: 50%;
margin-left: -75px;
aspect-ratio: 1;
padding-top: calc(var(--s)/5);
transform: scale(1);
transition: .5s;
}
img.foregroundsml {
border-radius: 50%;
pointer-events: none;
}
img.backgroundsml:hover {
filter: blur(5px);
}
img.background2sml {
width: 170px !important;
left: calc(50% - 10px);
margin-top: -10px;
pointer-events: none;
z-index: 0;
}
/* For printing set colour to black */
@media print {
div {
color: black !important;
}
}
@media print {
.noprintbreak {
page-break-inside: avoid;
}
}
@media print {
.edu-main {
page-break-before: always;
}
}

1
assets/css/styles.min.css vendored Normal file
View File

@ -0,0 +1 @@
.social-icons{color:#313437;background-color:#fff;padding:70px 0}@media (max-width:767px){.social-icons{padding:50px 0}}@media (max-width:500px){img.profile{width:200px;margin-left:-100px}.profile-container{height:200px;margin-top:2em!important}}.social-icons i{color:#757980;margin:0 10px;width:60px;height:60px;border:1px solid #c8ced7;text-align:center;border-radius:50%;line-height:60px;display:inline-block}

View File

Before

Width:  |  Height:  |  Size: 692 KiB

After

Width:  |  Height:  |  Size: 692 KiB

Some files were not shown because too many files have changed in this diff Show More