add ipfessay
23
install.sh
|
@ -35,14 +35,9 @@ MMMM0..0MMMMMX 'NMMMMMMMMMMX 'NMMMMMMMMMMM',WMMMMMMMMMMMMx OMMMMMMMMMMN dMM
|
||||||
o00000000000000x, O000: l000x c000x .lk0000Od; O000; ck0000Ox: o000x l000d .0000.
|
o00000000000000x, O000: l000x c000x .lk0000Od; O000; ck0000Ox: o000x l000d .0000.
|
||||||
|
|
||||||
ASTROPORT is a peer to peer friends of friends real life game based on IPFS.
|
ASTROPORT is a peer to peer friends of friends real life game based on IPFS.
|
||||||
Join the OASIS so we fix the world together.
|
Join the Astronaiuts Team. Learn and share how to live together on 'One Planet'
|
||||||
|
|
||||||
Oasis is a collective shared place where
|
NOW INSTALLING REQUIRED TOOLS & CRYPTO STUFF
|
||||||
Players are dreamers wanting to enhance their relation to the world
|
|
||||||
|
|
||||||
@@@@@@@@@@@@@@
|
|
||||||
INSTALL DEPENDENCIES
|
|
||||||
@@@@@@@@@@@@@@
|
|
||||||
"
|
"
|
||||||
|
|
||||||
[ $(id -u) -eq 0 ] && echo "LANCEMENT root INTERDIT. Utilisez un simple utilisateur du groupe \"sudo\" SVP" && exit 1
|
[ $(id -u) -eq 0 ] && echo "LANCEMENT root INTERDIT. Utilisez un simple utilisateur du groupe \"sudo\" SVP" && exit 1
|
||||||
|
@ -71,12 +66,12 @@ sudo pip3 install brother_ql
|
||||||
sudo cupsctl --remote-admin
|
sudo cupsctl --remote-admin
|
||||||
sudo usermod -aG lpadmin pi
|
sudo usermod -aG lpadmin pi
|
||||||
|
|
||||||
## CREATE GAME DIRECTORIES
|
## CREATING GAME DIRECTORIES
|
||||||
mkdir -p ~/.zen/tmp
|
mkdir -p ~/.zen/tmp
|
||||||
mkdir -p ~/.zen/game/players
|
mkdir -p ~/.zen/game/players
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
echo "CREATING OASIS ASTROPORT STATION IPFSNODEID"
|
echo "CREATING OASIS ASTROPORT STATION SPECIAL IPFSNODEID"
|
||||||
########################################################################
|
########################################################################
|
||||||
salt="$(${MY_PATH}/tools/diceware.sh 3 | xargs)"
|
salt="$(${MY_PATH}/tools/diceware.sh 3 | xargs)"
|
||||||
salto="$salt"
|
salto="$salt"
|
||||||
|
@ -84,9 +79,9 @@ salto="$salt"
|
||||||
pepper="$(${MY_PATH}/tools/diceware.sh 3 | xargs)"
|
pepper="$(${MY_PATH}/tools/diceware.sh 3 | xargs)"
|
||||||
XZUID=$(${MY_PATH}/tools/diceware.sh 1 | xargs)${RANDOM:0:2}$(${MY_PATH}/tools/diceware.sh 1 | xargs)
|
XZUID=$(${MY_PATH}/tools/diceware.sh 1 | xargs)${RANDOM:0:2}$(${MY_PATH}/tools/diceware.sh 1 | xargs)
|
||||||
|
|
||||||
[[ "$USER" != "xbian" ]] && echo "Gardez ou modifiez cet identifiant (passphrase 1)? $salt" && read salty && [[ $salty ]] && salt="$salty"
|
echo "Gardez ou modifiez cet identifiant (passphrase 1)? $salt" && read salty && [[ $salty ]] && salt="$salty"
|
||||||
[[ "$USER" != "xbian" ]] && echo "Gardez ou modifiez cet mot de passe (passphrase 2)? $pepper" && read peppery && [[ $peppery ]] && pepper="$peppery"
|
echo "Gardez ou modifiez cet mot de passe (passphrase 2)? $pepper" && read peppery && [[ $peppery ]] && pepper="$peppery"
|
||||||
[[ "$USER" != "xbian" && "$salt" != "$salto" ]] && echo "Gardez ou modifiez ce Pseudo? $XZUID" && read XZUIDy && [[ $XZUIDy ]] && XZUID="$XZUIDy"
|
[[ "$salt" != "$salto" ]] && echo "Gardez ou modifiez ce Pseudo? $XZUID" && read XZUIDy && [[ $XZUIDy ]] && XZUID="$XZUIDy"
|
||||||
|
|
||||||
g1_salt="$salt"
|
g1_salt="$salt"
|
||||||
g1_pepper="$pepper"
|
g1_pepper="$pepper"
|
||||||
|
@ -97,7 +92,7 @@ echo "$g1_pepper" >> /tmp/secret.june
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
########################################################################
|
########################################################################
|
||||||
echo "CREATING /tmp/secret.dunikey (https://cesium.app WALLET)"
|
echo "CREATING STATION secret.dunikey (https://cesium.app WALLET)"
|
||||||
########################################################################
|
########################################################################
|
||||||
python3 ${MY_PATH}/tools/key_create_dunikey.py "$g1_salt" "$g1_pepper"
|
python3 ${MY_PATH}/tools/key_create_dunikey.py "$g1_salt" "$g1_pepper"
|
||||||
g1pub=$(cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2)
|
g1pub=$(cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2)
|
||||||
|
@ -105,7 +100,7 @@ g1sec=$(cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2)
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
########################################################################
|
########################################################################
|
||||||
echo "CREATING /tmp/config.ipfs"
|
echo "CREATING config.ipfs"
|
||||||
########################################################################
|
########################################################################
|
||||||
ipfs_ID=$(python3 ${MY_PATH}/tools/create_ipfsnodeid_from_tmp_secret.dunikey.py)
|
ipfs_ID=$(python3 ${MY_PATH}/tools/create_ipfsnodeid_from_tmp_secret.dunikey.py)
|
||||||
echo $ipfs_ID > /tmp/secret.ipfs && source /tmp/secret.ipfs
|
echo $ipfs_ID > /tmp/secret.ipfs && source /tmp/secret.ipfs
|
||||||
|
|
|
@ -0,0 +1,531 @@
|
||||||
|
/** General **/
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-family: Helvetica, Geneva, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: hsla(182, 43%, 94%, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Helpers **/
|
||||||
|
|
||||||
|
.noscroll {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Structure **/
|
||||||
|
|
||||||
|
header {
|
||||||
|
text-align: left;
|
||||||
|
margin: 30px;
|
||||||
|
position: relative;
|
||||||
|
color: rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
header img {
|
||||||
|
float: left;
|
||||||
|
margin-right: 2em;
|
||||||
|
}
|
||||||
|
header h1 {
|
||||||
|
color: #333;
|
||||||
|
margin: 0 0 0.2em;
|
||||||
|
font-size: 3em;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
header h2 {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 1.5em;
|
||||||
|
font-weight: 500;
|
||||||
|
color: rgba(0, 0, 0, .35);
|
||||||
|
}
|
||||||
|
|
||||||
|
.attr {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate3d(0,-50%,0);
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
.attr a {
|
||||||
|
color: #7abbed;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.attr a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
font-family: Verdana, Geneva, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
position: sticky;
|
||||||
|
bottom: 0;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** MCE overrides **/
|
||||||
|
|
||||||
|
.editor-toolbar,
|
||||||
|
.CodeMirror {
|
||||||
|
border-left: none !important;
|
||||||
|
border-right: none !important;
|
||||||
|
border-radius: 0 !important;
|
||||||
|
}
|
||||||
|
.editor-toolbar {
|
||||||
|
background-color: #f9f9f9 !important;
|
||||||
|
}
|
||||||
|
.editor-statusbar {
|
||||||
|
padding: 8px 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Button **/
|
||||||
|
|
||||||
|
button {
|
||||||
|
overflow: visible;
|
||||||
|
text-transform: none;
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pure-button {
|
||||||
|
border: transparent;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
font-family: inherit;
|
||||||
|
line-height: normal;
|
||||||
|
padding: .5em 1em;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
white-space: nowrap;
|
||||||
|
zoom: 1;
|
||||||
|
-webkit-user-drag: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
color: rgba(0, 0, 0, .5);
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: rgb(122, 202, 206);
|
||||||
|
display: block;
|
||||||
|
transition: all .25s ease-in;
|
||||||
|
color: #fff;
|
||||||
|
border-color: rgb(82, 137, 132);
|
||||||
|
border-width: 1px 1px 3px;
|
||||||
|
border-style: solid;
|
||||||
|
font-family: Helvetica;
|
||||||
|
}
|
||||||
|
.pure-button:hover {
|
||||||
|
background-color: #93d4d7;
|
||||||
|
}
|
||||||
|
.pure-button:active {
|
||||||
|
border-width: 3px 1px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-publish {
|
||||||
|
margin: 0 auto;
|
||||||
|
font-size: 150%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Overlay **/
|
||||||
|
|
||||||
|
#overlay {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background: rgba(0,0,0,.75);
|
||||||
|
z-index: 2;
|
||||||
|
transform: perspective(600px);
|
||||||
|
display: none;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
#overlay section {
|
||||||
|
background: #fff;
|
||||||
|
margin: 0 auto;
|
||||||
|
transform: translate3d(-50%, -50%,0);
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
position: fixed;
|
||||||
|
padding: 0;
|
||||||
|
text-align: left;
|
||||||
|
width: 48em;
|
||||||
|
display: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
box-shadow: 0px 10px 12px -5px rgba(0,0,0,.25);
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
#overlay section div {
|
||||||
|
margin: 0 20px;
|
||||||
|
}
|
||||||
|
#overlay section div p,
|
||||||
|
#overlay section a.essayaddr,
|
||||||
|
#overlay section code {
|
||||||
|
margin: 0 0 1em;
|
||||||
|
}
|
||||||
|
#overlay section a.essayaddr {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
background: #f9f9f9;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 3px;
|
||||||
|
display: block;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
#overlay section code {
|
||||||
|
background: #000;
|
||||||
|
border-radius: 5px;
|
||||||
|
color: #999;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 5px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
#overlay section div.note {
|
||||||
|
padding: 10px;
|
||||||
|
background-color: rgb(255, 255, 209);
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
#overlay section div.note p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
#overlay section h3 {
|
||||||
|
margin: 0 0 20px;
|
||||||
|
padding: 10px;
|
||||||
|
background: hsla(182, 43%, 94%, 1);
|
||||||
|
border-top-left-radius: 10px;
|
||||||
|
border-top-right-radius: 10px;
|
||||||
|
border-bottom: 1px solid rgba(0,0,0,.15);
|
||||||
|
}
|
||||||
|
#overlay section a {
|
||||||
|
color: #7abbed;
|
||||||
|
}
|
||||||
|
#overlay .pure-button {
|
||||||
|
margin: 20px auto 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#overlay #essay-pin {
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
#overlay .loading {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
display: block;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
transform: translate3d(-50%, -50%, 0) rotate3d(0,1,1, -90deg) scale3d(1,1,1);
|
||||||
|
transform-style: preserve-3d;
|
||||||
|
animation: pulse 0.5s infinite alternate;
|
||||||
|
}
|
||||||
|
#overlay .loading:before,
|
||||||
|
#overlay .loading:after,
|
||||||
|
#overlay .loading em {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
background-color: #4a9ea1;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
text-indent: -9999999px;
|
||||||
|
box-shadow: inset 0 0 0px 4px rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
#overlay .loading:before {
|
||||||
|
transform: translate3d(50%,0%,0) rotateY(90deg);
|
||||||
|
background: rgb(110,183,187);
|
||||||
|
}
|
||||||
|
#overlay .loading em {
|
||||||
|
transform: translate3d(0,-100%,15px);
|
||||||
|
background: rgb(122,202,206);
|
||||||
|
}
|
||||||
|
#overlay .loading:after {
|
||||||
|
transform: translate3d(0%,-150%,0) rotateX( 90deg );
|
||||||
|
background: rgb(95,157,161);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
from {
|
||||||
|
transform: translate3d(-50%, -50%, 0) rotate3d(0,1,1, -90deg) scale3d(1,1,1);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(-50%, -50%, 0) rotate3d(0,1,1, -90deg) scale3d(1.5,1.5,1.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Overlay **/
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.overlay.open {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.overlay {
|
||||||
|
display: none;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
background: rgba(0,0,0,.6);
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body {
|
||||||
|
width: 600px;
|
||||||
|
background: #fff;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate3d(-50%, -50%, 0);
|
||||||
|
top: 50%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 0px;
|
||||||
|
box-shadow: 0 12px 30px 0 rgba(0,0,0,.5), inset 0 1px 0 0 hsla(0,0%,100%,.65);
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
.overlay .closeoverlay {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body .tabs {
|
||||||
|
white-space: nowrap;
|
||||||
|
background: rgb(122, 202, 206);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body .tab {
|
||||||
|
padding: 10px 0;
|
||||||
|
width: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body .tabs .active {
|
||||||
|
color: #000;
|
||||||
|
background: #fff;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body [data-tabcontent] {
|
||||||
|
display: none;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body [data-tabcontent].active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.overlay #upload,
|
||||||
|
.overlay form button {
|
||||||
|
margin: 0 0 20px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.overlay #upload.uploading {
|
||||||
|
color: #33759F;
|
||||||
|
background-color: transparent;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.overlay #upload.uploading:hover {
|
||||||
|
border-color: #33759F;
|
||||||
|
}
|
||||||
|
.overlay #background {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body h3 {
|
||||||
|
margin: 0 0 20px;
|
||||||
|
color: #33759F;
|
||||||
|
padding: 10px 10px 10px;
|
||||||
|
border-bottom: 2px solid #33759F;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.overlay .visit {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.overlay .fields {
|
||||||
|
text-align: left;
|
||||||
|
width: inherit;
|
||||||
|
}
|
||||||
|
.overlay .field {
|
||||||
|
margin-bottom: 35px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.overlay .field:after {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate3d(-50%, 0,0 );
|
||||||
|
padding: 2px 9px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.overlay .field.error:after {
|
||||||
|
content: attr(data-err);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.overlay label {
|
||||||
|
display: block;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.overlay input {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.overlay .pin-stats {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate3d(-50%, 100%, 0);
|
||||||
|
font-size: 15px;
|
||||||
|
font-style: normal;
|
||||||
|
bottom: -10px;
|
||||||
|
}
|
||||||
|
.overlay .pin-stats.open {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#form-messages p {
|
||||||
|
margin: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 5px 15px;
|
||||||
|
}
|
||||||
|
.overlay .field:after,
|
||||||
|
#form-messages p {
|
||||||
|
background: red;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 15px;
|
||||||
|
border-radius: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
outline: none;
|
||||||
|
margin: 0;
|
||||||
|
font-size: 20px;
|
||||||
|
display: inline;
|
||||||
|
border-radius: 30px;
|
||||||
|
padding: 8px 13px;
|
||||||
|
border: 2px solid #787C7F;
|
||||||
|
box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.25);
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
input::placeholder {
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Media queries **/
|
||||||
|
|
||||||
|
@media (max-width: 48em) {
|
||||||
|
header {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
header img {
|
||||||
|
float: none;
|
||||||
|
width: 70px;
|
||||||
|
margin: 0 0 1em 0;
|
||||||
|
}
|
||||||
|
header h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
header h2 {
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
.attr {
|
||||||
|
position: static;
|
||||||
|
transform: initial;
|
||||||
|
margin-top: 30px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.editor-statusbar {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
#overlay section {
|
||||||
|
border-radius: 0;
|
||||||
|
width: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transform: initial;
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
#overlay section h3 {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 650px) {
|
||||||
|
.overlay .overlay-body {
|
||||||
|
width: 100%;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
bottom: 0;
|
||||||
|
transform: none;
|
||||||
|
left: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
top: initial;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.overlay form button {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
.overlay .fields {
|
||||||
|
padding: 20px 20px 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.overlay .field {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.overlay .field:last-child {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.overlay .button.newpin {
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
.overlay .button.closeoverlay {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
border: none;
|
||||||
|
margin-top: 20px;
|
||||||
|
border-radius: 0;
|
||||||
|
padding: 10px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0;
|
||||||
|
color: #33759F;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 520px) {
|
||||||
|
.authenticated h1 {
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
.overlay .overlay-body h3 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.overlay .pin-details p.name input {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
.overlay .pin-details p.name .button {
|
||||||
|
padding: 7px 10px;
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/assets/icons/mstile-150x150.png"/>
|
||||||
|
<TileColor>#00aba9</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
After Width: | Height: | Size: 533 B |
After Width: | Height: | Size: 835 B |
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "IPFessay",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/assets/icons/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/assets/icons/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#5fcbcf",
|
||||||
|
"background_color": "#5fcbcf"
|
||||||
|
}
|
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1 @@
|
||||||
|
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="933.333" height="933.333" viewBox="0 0 700.000000 700.000000"><path d="M343.5 3.7c-3.3 2-8 4.7-10.5 6.1-6.9 3.9-9 5.1-31.4 18.1-11.5 6.6-21.1 12.1-21.3 12.1-.2 0-1.6.8-3.1 1.9-1.5 1-16.6 9.9-33.7 19.7-44.4 25.4-74.6 42.9-85 48.9-13.7 8-72.4 41.9-77.5 44.8-2.5 1.4-11 6.3-19 10.9l-14.5 8.4V525.3l24 13.9c13.2 7.7 26.3 15.2 29 16.8 2.8 1.5 16.3 9.3 30 17.2 13.8 8 26.4 15.3 28 16.2 1.7.9 4.4 2.5 6 3.5 1.7 1 5 2.9 7.5 4.3s12.3 7.1 21.9 12.7c9.5 5.5 17.5 10.1 17.7 10.1.2 0 4.4 2.5 9.5 5.5 5 3 9.5 5.5 10 5.5s.9.4.9 1c0 .5.5 1 1.1 1 .9 0 14.1 7.4 29.9 16.9 1.9 1.1 4.9 2.8 6.5 3.7 1.7.9 19 10.9 38.5 22.2 19.5 11.2 37 21.3 38.8 22.3l3.3 1.9 6.7-3.9c3.7-2.1 13.9-8 22.7-13.1 34.7-20.1 46.9-27 47.7-27 .4 0 .8-.5.8-1 0-.6.6-1 1.3-1 .7 0 2.8-1.1 4.7-2.3 1.9-1.3 5.5-3.5 8-4.9 2.5-1.4 6.2-3.5 8.3-4.7 2-1.1 5.4-3.1 7.5-4.2 2-1.2 7.5-4.4 12.2-7.2 4.7-2.7 10.1-5.9 12-7 17.8-10 35.6-20.2 36-20.7.3-.3 1.9-1.2 3.5-2.1 6.6-3.6 122.3-70.4 126.8-73.1l4.7-3V349.4c0-97.4-.4-175.4-.9-175.4-.4 0-12.9-7-27.6-15.5-14.7-8.5-27.1-15.5-27.6-15.5s-.9-.5-.9-1c0-.6-.4-1-1-1-.5 0-5.5-2.7-11.1-6-5.5-3.3-10.2-6-10.4-6-.2 0-3.6-1.9-7.7-4.3-4-2.4-9.3-5.5-11.8-6.9-2.5-1.4-8.5-4.9-13.5-7.8-4.9-2.9-10.6-6.2-12.5-7.2-3.5-2.1-19.4-11.2-71-41.1-15.7-9-30.1-17.3-32-18.4-1.9-1.1-19.6-11.3-39.3-22.7C366.1 9.3 349.9 0 349.7 0c-.1.1-2.9 1.7-6.2 3.7z"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zM5.999 12.458c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.262-4.35 7.616-4.4 7.8-4.4.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4zm23.002 2.125c-.305 0-.604-.138-.801-.4-2.592-3.457-6.961-2.627-7.004-2.62-.547.108-1.068-.243-1.177-.784-.108-.542.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.137-.389.201-.598.201zm-5.747 8.994c-.188-.11-.432-.087-.597.06-.01.008-1.013.863-4.657.863-3.641 0-4.646-.854-4.646-.854-.159-.16-.404-.19-.6-.082-.195.111-.293.339-.238.557.01.044 1.144 4.379 5.484 4.379s5.474-4.335 5.485-4.379c.053-.213-.044-.431-.231-.544z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,648 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html class="no-js" lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Astronaute - Astroport One - PROFIL MadeInZion - </title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/icons/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="assets/icons/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="assets/icons/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="assets/icons/manifest.json">
|
||||||
|
<link rel="mask-icon" href="assets/icons/safari-pinned-tab.svg" color="#5bbad5">
|
||||||
|
<link rel="shortcut icon" href="assets/icons/favicon.ico">
|
||||||
|
<meta name="msapplication-config" content="assets/icons/browserconfig.xml">
|
||||||
|
<meta name="theme-color" content="#5fcbcf">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="assets/css/main.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/simplemde.min.css">
|
||||||
|
|
||||||
|
<script src="assets/js/simplemde.min.js"></script>
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
var Utilities = {
|
||||||
|
|
||||||
|
isMobileOrTablet : function() {
|
||||||
|
var check = false;
|
||||||
|
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
|
||||||
|
return check;
|
||||||
|
},
|
||||||
|
|
||||||
|
hasClass : (el, className) => {
|
||||||
|
|
||||||
|
if(!el)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (el.classList)
|
||||||
|
return el.classList.contains(className)
|
||||||
|
else
|
||||||
|
return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'))
|
||||||
|
},
|
||||||
|
|
||||||
|
addClass : (el, className) => {
|
||||||
|
|
||||||
|
if(!el)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (el.classList)
|
||||||
|
el.classList.add(className)
|
||||||
|
else if (!hasClass(el, className))
|
||||||
|
el.className += " " + className
|
||||||
|
},
|
||||||
|
|
||||||
|
removeClass : (el, className) => {
|
||||||
|
|
||||||
|
if(!el)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (el.classList)
|
||||||
|
el.classList.remove(className)
|
||||||
|
else if (hasClass(el, className)) {
|
||||||
|
var reg = new RegExp('(\\s|^)' + className + '(\\s|$)')
|
||||||
|
el.className=el.className.replace(reg, ' ')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var FilesOverlay = {
|
||||||
|
|
||||||
|
isImage : false,
|
||||||
|
|
||||||
|
initialize : function() {
|
||||||
|
|
||||||
|
if(!document.querySelector('#image-overlay'))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
// Fixes the sticky hover effects in iOS
|
||||||
|
document.querySelector('#upload').addEventListener('click', () => {
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
|
||||||
|
this.className = '';
|
||||||
|
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelector('#background').addEventListener('change', (event) => {
|
||||||
|
|
||||||
|
if(!event.target)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var files = event.target.files;
|
||||||
|
|
||||||
|
if(files.count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var file = files[0];
|
||||||
|
|
||||||
|
if(!file)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Remove the extension from the file
|
||||||
|
var name = file.name.replace(/\.[^/.]+$/, "");
|
||||||
|
|
||||||
|
IPFessay.files[file.name.toLowerCase()] = file;
|
||||||
|
|
||||||
|
var md_text = (this.isImage ? '![](' + file.name + ')' : '[' + file.name + '](' + file.name + ')');
|
||||||
|
|
||||||
|
var pos = IPFessay.simplemde.codemirror.getCursor();
|
||||||
|
IPFessay.simplemde.codemirror.setSelection(pos, pos);
|
||||||
|
IPFessay.simplemde.codemirror.replaceSelection(md_text);
|
||||||
|
|
||||||
|
this.closeOverlay();
|
||||||
|
});
|
||||||
|
|
||||||
|
var tabs = document.querySelectorAll('#image-overlay .tab');
|
||||||
|
|
||||||
|
for(var i = 0; i < tabs.length; i++) {
|
||||||
|
|
||||||
|
tabs[i].addEventListener('click', function(event) {
|
||||||
|
|
||||||
|
var tab = this.dataset.tab;
|
||||||
|
|
||||||
|
if(Utilities.hasClass(this, 'active'))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var tabs = document.querySelectorAll('#image-overlay .tab');
|
||||||
|
|
||||||
|
for(var k = 0; k < tabs.length; k++) {
|
||||||
|
|
||||||
|
var localTab = tabs[k];
|
||||||
|
|
||||||
|
if(localTab.dataset.tab.localeCompare(tab) == 0)
|
||||||
|
Utilities.addClass(localTab, 'active');
|
||||||
|
else
|
||||||
|
Utilities.removeClass(localTab, 'active');
|
||||||
|
}
|
||||||
|
|
||||||
|
var tabContents = document.querySelectorAll('#image-overlay [data-tabcontent]');
|
||||||
|
|
||||||
|
for(var j = 0; j < tabContents.length; j++) {
|
||||||
|
|
||||||
|
var tabContent = tabContents[j];
|
||||||
|
|
||||||
|
if(tabContent.dataset.tabcontent.localeCompare(tab) == 0)
|
||||||
|
Utilities.addClass(tabContent, 'active');
|
||||||
|
else
|
||||||
|
Utilities.removeClass(tabContent, 'active');
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('#form-messages').innerHTML = '';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('#image-overlay form').addEventListener('submit', (event) => {
|
||||||
|
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
var imageURL = document.getElementById('image_url').value;
|
||||||
|
|
||||||
|
var md_text = (this.isImage ? '![](' + imageURL + ')' : '[' + imageURL + '](' + imageURL + ')');
|
||||||
|
|
||||||
|
var pos = IPFessay.simplemde.codemirror.getCursor();
|
||||||
|
IPFessay.simplemde.codemirror.setSelection(pos, pos);
|
||||||
|
IPFessay.simplemde.codemirror.replaceSelection(md_text);
|
||||||
|
|
||||||
|
this.closeOverlay();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelector('#image-overlay').addEventListener('click', function(event) {
|
||||||
|
|
||||||
|
if(event.target != this)
|
||||||
|
return;
|
||||||
|
|
||||||
|
self.closeOverlay();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelector('#image-overlay .new-hash').addEventListener('submit', (event) => {
|
||||||
|
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('keyup', (event) => {
|
||||||
|
|
||||||
|
if(this.isOverlayOpen && event.keyCode == 27)
|
||||||
|
this.closeOverlay();
|
||||||
|
});
|
||||||
|
|
||||||
|
var closeButtons = document.querySelectorAll('#image-overlay .closeoverlay');
|
||||||
|
|
||||||
|
for(i = 0; i < closeButtons.length; i++ )
|
||||||
|
closeButtons[i].addEventListener('click', () => { this.closeOverlay(); });
|
||||||
|
},
|
||||||
|
|
||||||
|
startUploading : function() {
|
||||||
|
|
||||||
|
document.querySelector('#background').disabled = 'disabled';
|
||||||
|
Utilities.addClass(document.querySelector('#upload'), 'uploading');
|
||||||
|
document.querySelector('#upload').innerHTML = 'Uploading...';
|
||||||
|
},
|
||||||
|
|
||||||
|
endUploading : function() {
|
||||||
|
|
||||||
|
document.querySelector('#background').disabled = '';
|
||||||
|
Utilities.removeClass(document.querySelector('#upload'), 'uploading');
|
||||||
|
document.querySelector('#upload').innerHTML = 'Upload';
|
||||||
|
},
|
||||||
|
|
||||||
|
openOverlay : function() {
|
||||||
|
|
||||||
|
document.getElementById('background').accept = (this.isImage ? 'image/*' : '');
|
||||||
|
|
||||||
|
Utilities.addClass(document.body, 'noscroll');
|
||||||
|
|
||||||
|
Utilities.addClass(document.querySelector('#image-overlay'), 'open');
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
|
||||||
|
if(!Utilities.isMobileOrTablet())
|
||||||
|
document.querySelector('#image_url').focus();
|
||||||
|
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
this.isOverlayOpen = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
closeOverlay : function() {
|
||||||
|
|
||||||
|
Utilities.removeClass(document.body, 'noscroll');
|
||||||
|
Utilities.removeClass(document.querySelector('#image-overlay'), 'open');
|
||||||
|
Utilities.removeClass(document.querySelector('.overlay .pin-stats'), 'open');
|
||||||
|
|
||||||
|
Utilities.removeClass(document.querySelector('.field[data-name="hash"]'), 'error');
|
||||||
|
Utilities.removeClass(document.querySelector('.field[data-name="name"]'), 'error');
|
||||||
|
|
||||||
|
document.querySelector('#form-messages').innerHTML = '';
|
||||||
|
document.querySelector('#image_url').value = '';
|
||||||
|
|
||||||
|
this.isOverlayOpen = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var IPFessay = {
|
||||||
|
|
||||||
|
files : {},
|
||||||
|
|
||||||
|
initialize : function() {
|
||||||
|
|
||||||
|
var textArea = document.querySelector('#text-input');
|
||||||
|
|
||||||
|
this.simplemde = new SimpleMDE({
|
||||||
|
autofocus: true,
|
||||||
|
element: textArea,
|
||||||
|
toolbar: [
|
||||||
|
"bold", "italic", "heading", "|",
|
||||||
|
"quote", "unordered-list", "ordered-list", "|",
|
||||||
|
"link", "image", "table", "code", "|",
|
||||||
|
"preview", "side-by-side", "fullscreen", "|",
|
||||||
|
"guide"
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
this.simplemde.codemirror.on("beforeChange", (event, change) => {
|
||||||
|
|
||||||
|
if(!change.text || change.text.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var changeText = change.text[0];
|
||||||
|
var isImageButton = (changeText.length > 0 && "![](http://)".localeCompare(changeText) == 0);
|
||||||
|
var isLinkButton = (changeText.length > 0 && "[](http://)".localeCompare(changeText) == 0);
|
||||||
|
|
||||||
|
if(isImageButton || isLinkButton) {
|
||||||
|
|
||||||
|
FilesOverlay.isImage = isImageButton;
|
||||||
|
FilesOverlay.openOverlay();
|
||||||
|
change.cancel();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('keydown', (event) => {
|
||||||
|
|
||||||
|
if ((event.ctrlKey || event.metaKey) &&
|
||||||
|
(event.keyCode == 13 || event.keyCode == 10))
|
||||||
|
this.publishEssay();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('keyup', (event) => {
|
||||||
|
|
||||||
|
if(!this.overlayLoading && event.keyCode == 27)
|
||||||
|
this.closeOverlay();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelector('#overlay button').addEventListener('click', () => {
|
||||||
|
|
||||||
|
this.closeOverlay();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelector('.button-publish').addEventListener('click', () => {
|
||||||
|
|
||||||
|
this.publishEssay();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
ipfsPUT : function(hash, data, filename, success) {
|
||||||
|
|
||||||
|
var req = new XMLHttpRequest();
|
||||||
|
|
||||||
|
req.onreadystatechange = () => {
|
||||||
|
|
||||||
|
if(req.readyState != XMLHttpRequest.DONE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(req.status >= 200 && req.status < 300) {
|
||||||
|
|
||||||
|
var hash = req.getResponseHeader("Ipfs-Hash");
|
||||||
|
|
||||||
|
success && success(hash);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
this.showError();
|
||||||
|
};
|
||||||
|
|
||||||
|
req.onerror = (error) => { this.showError(); };
|
||||||
|
|
||||||
|
req.open("PUT", "/ipfs/" + hash + "/" + filename, true);
|
||||||
|
req.setRequestHeader("Content-type", "text/html");
|
||||||
|
req.send(data);
|
||||||
|
},
|
||||||
|
|
||||||
|
uploadFiles : function(hash, files, callback) {
|
||||||
|
|
||||||
|
if(files.length == 0) {
|
||||||
|
|
||||||
|
callback && callback(hash);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the first file
|
||||||
|
var file = files[0];
|
||||||
|
var filename = undefined;
|
||||||
|
|
||||||
|
if(typeof file == 'string')
|
||||||
|
filename = 'index.html';
|
||||||
|
else
|
||||||
|
filename = file.name;
|
||||||
|
|
||||||
|
// Remove it from the files array
|
||||||
|
files.splice(files.indexOf(file),1);
|
||||||
|
|
||||||
|
this.ipfsPUT(hash, file, filename, (new_hash) => {
|
||||||
|
|
||||||
|
this.uploadFiles(new_hash, files, callback);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
publishEssay : function() {
|
||||||
|
|
||||||
|
this.openOverlay();
|
||||||
|
this.simplemde.codemirror.save();
|
||||||
|
|
||||||
|
var md = document.querySelector('#text-input').value;
|
||||||
|
|
||||||
|
// Get the generated HTML
|
||||||
|
var mdHTML = this.simplemde.options.previewRender(md);
|
||||||
|
|
||||||
|
// Create a temp element
|
||||||
|
var div = document.createElement('div');
|
||||||
|
div.innerHTML = mdHTML;
|
||||||
|
|
||||||
|
var title = undefined;
|
||||||
|
|
||||||
|
if(div.children.length > 0 && div.children[0].tagName.match("^[hH][123]$"))
|
||||||
|
title = div.children[0].innerText;
|
||||||
|
|
||||||
|
var renderedPage = this.renderPage(mdHTML, title);
|
||||||
|
|
||||||
|
var addedFiles = [];
|
||||||
|
|
||||||
|
addedFiles.push(renderedPage);
|
||||||
|
|
||||||
|
// Look for images and links in the markdown file
|
||||||
|
var re = /(\[.*?\]\()(.+?)(\))/g;
|
||||||
|
|
||||||
|
while ((matches = re.exec(md)) !== null) {
|
||||||
|
|
||||||
|
if(matches.length < 3)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var filename = matches[2].toLowerCase();
|
||||||
|
|
||||||
|
// Cross match them with the ones in the files dictionary
|
||||||
|
if(filename in this.files)
|
||||||
|
addedFiles.push(this.files[filename]);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.uploadFiles(
|
||||||
|
"QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn", // Empty folder hash
|
||||||
|
addedFiles,
|
||||||
|
(hash) => {
|
||||||
|
|
||||||
|
this.showLink(hash, title);
|
||||||
|
this.primeCaches(hash);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
showError : function() {
|
||||||
|
|
||||||
|
this.closeOverlay();
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
|
||||||
|
alert('There was an error communicating with the IPFS gateway API.\n\n' +
|
||||||
|
'Please ensure the daemon is running, ipfs daemon --writable');
|
||||||
|
|
||||||
|
}, 500);
|
||||||
|
},
|
||||||
|
|
||||||
|
openOverlay : function() {
|
||||||
|
|
||||||
|
document.body.className = 'noscroll';
|
||||||
|
|
||||||
|
document.querySelector('#overlay').style.display = 'block';
|
||||||
|
document.querySelector('#overlay .loading').style.display = 'block';
|
||||||
|
document.querySelector('#overlay section').style.display = 'none';
|
||||||
|
|
||||||
|
this.overlayLoading = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
closeOverlay : function() {
|
||||||
|
|
||||||
|
document.body.className = '';
|
||||||
|
|
||||||
|
document.querySelector('#overlay').style.display = 'none';
|
||||||
|
document.querySelector('#overlay section').style.display = 'none';
|
||||||
|
},
|
||||||
|
|
||||||
|
primeCaches : function(hash) {
|
||||||
|
// Make background GET requests to some public gateways just to
|
||||||
|
// add the file to their caches.
|
||||||
|
[
|
||||||
|
"gateway.ipfs.io",
|
||||||
|
// "hardbin.com",
|
||||||
|
"ipfs.eternum.io",
|
||||||
|
// "cloudflare-ipfs.com",
|
||||||
|
// "ipfs.infura.io",
|
||||||
|
"tube.copylaradio.com",
|
||||||
|
].forEach(function(gateway) {
|
||||||
|
var req = new XMLHttpRequest();
|
||||||
|
req.open("GET", "https://" + gateway + "/ipfs/" + hash);
|
||||||
|
req.send();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
showLink : function(hash, title) {
|
||||||
|
|
||||||
|
var pinName = 'MadeInZion';
|
||||||
|
|
||||||
|
if(title)
|
||||||
|
pinName = title;
|
||||||
|
|
||||||
|
this.overlayLoading = false;
|
||||||
|
|
||||||
|
document.querySelector('#overlay .loading').style.display = 'none';
|
||||||
|
document.querySelector('#overlay section').style.display = 'block';
|
||||||
|
|
||||||
|
document.querySelector('#overlay a#essay-link').href = "http://localhost:8080/ipfs/" + hash;
|
||||||
|
document.querySelector('#overlay a#essay-link').innerText = "http://localhost:8080/ipfs/" + hash;
|
||||||
|
|
||||||
|
document.querySelector('#overlay a#eternum-link').href = "https://tube.copylaradio.com/ipfs/" + hash;
|
||||||
|
document.querySelector('#overlay a#eternum-link').innerText = "https://tube.copylaradio.com/ipfs/" + hash;
|
||||||
|
|
||||||
|
document.querySelector('#overlay #essay-pin').innerHTML = '<a href="https://www.eternum.io/pin/' + hash + '/?name=' + pinName + '" target="_blank">https://www.eternum.io/pin/' + hash + '/</a>';
|
||||||
|
|
||||||
|
document.querySelector('#overlay #pin-link').innerText = "$ ipfs pin add " + hash;
|
||||||
|
},
|
||||||
|
|
||||||
|
renderPage: function(mdHTML, title) {
|
||||||
|
|
||||||
|
var pageTitle = 'Profil Astronaute';
|
||||||
|
|
||||||
|
if(title)
|
||||||
|
pageTitle = title;
|
||||||
|
|
||||||
|
return '<html>' +
|
||||||
|
'<head>' +
|
||||||
|
'<meta name="viewport" content="width=device-width, initial-scale=1">' +
|
||||||
|
'<link rel="stylesheet" href="/ipfs/QmSMwjABWVBsnS3Gha3xmjb5zKYndvFrS74iCAwykQCqcY/typesettings-1.2-min.css">' +
|
||||||
|
'<title>' + pageTitle + '</title>' +
|
||||||
|
'<style>' +
|
||||||
|
'footer {padding: 3em 0; text-align: center; font-size: 1.4em; border-top: 1px solid #e1e1e1;}' +
|
||||||
|
'a:hover { color: #222; border-bottom-color: #555; }' +
|
||||||
|
'@media only screen and (min-width: 1441px) { .typesettings { font-size: 2.4em; } }' +
|
||||||
|
'.typesettings { max-width: 33em; margin: 0 auto; }' +
|
||||||
|
'a { color: #aeaeae; border-bottom: 1px dotted #aeaeae; text-decoration: none; }' +
|
||||||
|
'</style>' +
|
||||||
|
'</head>' +
|
||||||
|
'<body>' +
|
||||||
|
'<article class="typesettings golden">' +
|
||||||
|
mdHTML +
|
||||||
|
'</article>' +
|
||||||
|
// '<footer><a href="https://ipfessay.stavros.io/">Publish your own essay with IPFessay</a>' +
|
||||||
|
// ' | <a href="https://gitlab.com/stavros/IPFessay">Gitlab</a></footer>' +
|
||||||
|
'</body>' +
|
||||||
|
'</html>';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.IPFessay = IPFessay;
|
||||||
|
window.FilesOverlay = FilesOverlay;
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
IPFessay.initialize();
|
||||||
|
FilesOverlay.initialize();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<img src="assets/images/logo.svg" width="100"/>
|
||||||
|
<h1>Astroport ONE</h1>
|
||||||
|
<h2>Identité Numérique Libre</h2>
|
||||||
|
|
||||||
|
<span class="attr">
|
||||||
|
<a href="https://oasis.astroport.com">Blog</a> |
|
||||||
|
<a href="https://www.youtube.com/channel/UCgbd28yps5uF3NWDq-FLE9A">Youtube</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
<article>
|
||||||
|
<textarea id="text-input" style="width: 100%;" oninput="this.editor.update()" rows="15" cols="60">
|
||||||
|
# _PLAYER_ / _PSEUDO_
|
||||||
|
Astronaute, décrivez-vous...
|
||||||
|
Qui. Quand. Quoi. Où. Pourquoi?
|
||||||
|
|
||||||
|
## Savoir-faire
|
||||||
|
|
||||||
|
exemple
|
||||||
|
* Bois (cousu, vis, emboitement
|
||||||
|
* Soudure
|
||||||
|
|
||||||
|
_VIDEOS_
|
||||||
|
|
||||||
|
## Matos
|
||||||
|
|
||||||
|
exemple
|
||||||
|
1. Van : RENAULT TRAFIC
|
||||||
|
2. Perçeuse Visseuse sans fil : HITACHI
|
||||||
|
|
||||||
|
_PHOTOS_
|
||||||
|
|
||||||
|
~~~
|
||||||
|
Astronaute de la communauté MadeInzion. Voyagez entre les stations Astroport.
|
||||||
|
Votre identité souveraine s'inscrit de façon inaliénable sur IPFS
|
||||||
|
~~~
|
||||||
|
</textarea>
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<button class="button-publish pure-button">Publier</button>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<div id="overlay">
|
||||||
|
<span class="loading"><em>Chargement...</em></span>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Astroport One - Astronaute</h3>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Voici votre lien permanent, infalsifiable enregsitré sur IPFS:
|
||||||
|
</p>
|
||||||
|
<a id="essay-link" class="essayaddr" href="" target="_blank"></a>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Vous pouvez le faire publier sur le bootstrap astrXbian :
|
||||||
|
</p>
|
||||||
|
<a id="eternum-link" class="essayaddr" href="" target="_blank"></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note">
|
||||||
|
<p>
|
||||||
|
<strong>NOTE: Ceci est un document numérique officiel MadeInZion.</strong>
|
||||||
|
<br>Bienvenue extraterrestre, bricoleur de génie, ingénieur, inventeur, rêveur...
|
||||||
|
Autonomie et mode de vie en Forêt Jardin, œuvre collective de terraformation.
|
||||||
|
Aucune carte d'identité requise. Participez au jeu... Rejoignez la communauté des créateurs.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>Vous pouvez épingler votre profil avec la commande :</p>
|
||||||
|
|
||||||
|
<code id="pin-link"></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Connectez-votre station et profitez du service <a href="https://tube.copylaradio.com/"
|
||||||
|
target="_blank">CopyLaRadio</a>.
|
||||||
|
</p>
|
||||||
|
<p id="essay-pin"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button class="pure-button">Fermer</button>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="overlay" id="image-overlay">
|
||||||
|
<div class="new-hash overlay-body">
|
||||||
|
<div class="tabs">
|
||||||
|
<a href="javascript:void(0);" data-tab="link" class="tab active">Lien</a>
|
||||||
|
<a href="javascript:void(0);" data-tab="upload" class="tab">Depuis votre ordinateur</a>
|
||||||
|
</div>
|
||||||
|
<div id="form-messages"></div>
|
||||||
|
<form data-tabcontent="link" class="active">
|
||||||
|
<div class="fields">
|
||||||
|
<div class="field" data-name="hash">
|
||||||
|
<label for="image_url">URL</label>
|
||||||
|
<input required type="text" id="image_url"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button class="pure-button prominent" type="submit">Attacher</button>
|
||||||
|
</div>
|
||||||
|
<span class="closeoverlay">Fermer</span>
|
||||||
|
</form>
|
||||||
|
<div data-tabcontent="upload">
|
||||||
|
<div>
|
||||||
|
<label for="background" id="upload" class="prominent pure-button">Envoyer et Attacher</label>
|
||||||
|
<input type="file" accept="image/*" id="background"/>
|
||||||
|
</div>
|
||||||
|
<span class="closeoverlay">Fermer</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -7,18 +7,23 @@
|
||||||
ts=$(date -u +%s%N | cut -b1-13)
|
ts=$(date -u +%s%N | cut -b1-13)
|
||||||
################################################################################
|
################################################################################
|
||||||
# Capture la photographie satellite de la France
|
# Capture la photographie satellite de la France
|
||||||
|
# https://fr.sat24.com/image?type=visual5HDComplete®ion=fr
|
||||||
|
# https://media.meteonews.net/sat/EURwest_1273x892_c1/sat_20220308_1500.jpg
|
||||||
|
|
||||||
mkdir -p ~/..zen/game/meteofrance
|
mkdir -p ~/..zen/game/meteofrance
|
||||||
rm -f ~/..zen/game/meteofrance/meteo.jpg
|
rm -f ~/..zen/game/meteofrance/meteo.jpg
|
||||||
curl -m 20 --output ~/..zen/game/meteofrance/meteo.jpg https://fr.sat24.com/image?type=visual5HDComplete®ion=fr
|
curl -m 20 --output ~/..zen/game/meteofrance/meteo.jpg https://media.meteonews.net/sat/EURwest_1273x892_c1/sat_20220308_1500.jpg
|
||||||
|
|
||||||
if [[ ! -f ~/..zen/game/meteofrance/meteo.jpg ]]; then
|
if [[ ! -f ~/..zen/game/meteofrance/meteo.jpg ]]; then
|
||||||
echo "Impossible de vous connecter à https://fr.sat24.com/"
|
echo "Impossible de vous connecter à https://fr.sat24.com/"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "MIse à jour blockchain meteo : $ts"
|
echo "MIse à jour de votre archive meteo : $ts"
|
||||||
echo $ts > ~/..zen/game/meteofrance/.ts
|
echo $ts > ~/..zen/game/meteofrance/.ts
|
||||||
|
|
||||||
ipfs add
|
|
||||||
|
IPFS=$(ipfs add -Rw ~/..zen/game/meteofrance/)
|
||||||
|
echo $IPFS > ~/..zen/game/meteofrance/.chain
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|