myPlayerApi

This commit is contained in:
Yann Autissier 2022-12-27 18:35:43 +00:00
parent b64c8eff47
commit b1ee55d196
6 changed files with 139 additions and 65 deletions

View File

@ -11,13 +11,11 @@
################################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
. "${MY_PATH}/tools/my.sh"
PORT=12345
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs
YOU=$(myIpfsApi); ## API of $USER running ipfs
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3)

View File

@ -8,16 +8,13 @@
# This script scan Swarm API layer from official bootstraps
# Then publish map of json DApp data
#
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost"
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
. "${MY_PATH}/tools/my.sh"
PORT=12345
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs
YOU=$(myIpfsApi); ## API of $USER running ipfs
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
ncrunning=$(ps axf --sort=+utime | grep -w 'nc -l -p 12345' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 2)
@ -126,11 +123,11 @@ Content-Type: application/json; charset=UTF-8
{
\"created\" : \"${MOATS}\",
\"hostname\" : \"$(hostname)\",
\"hostname\" : \"$(myHostName)\",
\"myIP\" : \"${myIP}\",
\"ipfsnodeid\" : \"${IPFSNODEID}\",
\"url\" : \"http://${myIP}:8080/ipns/${IPFSNODEID}\",
\"myswarm\" : \"http://${myIP}:8080/ipns/${CHAN}\"
\"url\" : \"${myIPFS}/ipns/${IPFSNODEID}\",
\"myswarm\" : \"${myIPFS}/ipns/${CHAN}\"
}
"
######################################################################################

View File

@ -20,7 +20,10 @@
########################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
. "${MY_PATH}/tools/my.sh"
[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1
start=`date +%s`
# REMOVE GtkDialog errors for zenity
shopt -s expand_aliases
@ -39,7 +42,7 @@ PLAYER="$2"
CHOICE="$3"
# Check who is .current PLAYER
[[ ${PLAYER} == "" ]] && PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
[[ ${PLAYER} == "" ]] && PLAYER=$(myPlayer)
[[ ${PLAYER} == "" ]] \
&& players=($(ls ~/.zen/game/players 2>/dev/null)) \
@ -53,28 +56,18 @@ CHOICE="$3"
&& xdg-open "https://qo-op.com" \
&& exit 1
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
PSEUDO=$(myPlayerPseudo)
espeak "Hello $PSEUDO"
( cd $MY_PATH && git pull ) &
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
G1PUB=$(myPlayerG1Pub)
[[ $G1PUB == "" ]] && espeak "ERROR NO G 1 PUBLIC KEY FOUND - EXIT" && exit 1
PLAYERNS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
PLAYERNS=$(myPlayerNs) || ( echo "noplayerns" && exit 1 )
ASTRONAUTENS=$(ipfs key list -l | grep -w "${PLAYER}" | cut -d ' ' -f 1)
ASTRONAUTENS=$(myAstronauteKey)
[[ $ASTRONAUTENS == "" ]] && echo "ASTRONAUTE manquant" && espeak "Astronaut Key Missing" && exit 1
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1
BROWSER=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1) ## GET cookies-from-browser
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost"
BROWSER=$(myPlayerBrowser) ## GET cookies-from-browser
if [ $URL ]; then
echo "URL: $URL"
@ -145,10 +138,9 @@ ISPUBLISHING=$(ps auxf --sort=+utime | grep -w 'ipfs name publish' | grep -v -E
########################################################################
espeak "restart I P F S daemon"
sudo systemctl restart ipfs
sleep 1
[[ "$isLAN" ]] && sudo systemctl restart ipfs && sleep 1
## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
YOU=$(myIpfsApi)
[[ ! $YOU ]] && espeak "I P F S not running - EXIT" && exit 1
########################################################################

View File

@ -6,12 +6,13 @@ HOST_ASTROPORT_SERVICE_NAME ?= astroport
HOST_ASTROPORT_SERVICE_1234_TAGS ?= $(call tagprefix,HOST_ASTROPORT,1234)
HOST_ASTROPORT_UFW_UPDATE := 1234/tcp 12245:12445/tcp 45720/tcp
MAKE_VARS += SSH_PORT User host
PLAYER_MAKE_VARS := COMPOSE_PROJECT_NAME MAIL IPFS_UFW_DOCKER IPFS_UFW_UPDATE USER_IPFS_SERVICE_PROXY_TCP USER_IPFS_SERVICE_5001_ENVS USER_RESU_HOST
PLAYER_MAKE_VARS := COMPOSE_PROJECT_NAME MAIL IPFS_UFW_DOCKER IPFS_UFW_UPDATE USER_IPFS_SERVICE_PROXY_TCP USER_IPFS_SERVICE_5001_ENVS RESU_HOME RESU_HOST
RESU_HOME := mail
RESU_HOST := true
SERVICE := astroport
SSH_PORT := 45720
SSH_PUBLIC_HOSTS := git.p2p.legal
STACK := host
USER_RESU_HOST := true
User := User/ipfs
host := host/ipfs
ifeq ($(PLAYER_API_ONLINE),true)

View File

@ -101,6 +101,14 @@ RUN set -x && buildDeps=' \
RUN npm install -g tiddlywiki sjcl-cli
ARG COMPOSE_REMOTE=https://github.com/docker/compose
ARG COMPOSE_VERSION=2.5.0
RUN OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \
ARCH="$(echo ${DOCKER_MACHINE})"; \
wget -qO /usr/bin/docker-compose ${COMPOSE_REMOTE}/releases/download/v${COMPOSE_VERSION}/docker-compose-${OS}-${ARCH} \
&& chmod +x /usr/bin/docker-compose
ARG IPFS_VERSION=0.16.0
RUN { OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \

View File

@ -1,29 +1,34 @@
#shellcheck shell=sh disable=SC2034
ipfsNodeId() {
ipfsNodeId=$(jq -r .Identity.PeerID ~/.ipfs/config)
[ -n "$ipfsNodeId" ] && echo "$ipfsNodeId"
}
isLan() {
isLan=$(ip route |awk '$1 == "default" {print $3}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|| route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|| true)
[ -n "$isLan" ] && echo "$isLan" ||:
[ -n "$isLan" ] && echo "$isLan" || true
} 2>/dev/null
isPlayerLegal() {
isPlayerLegal=$(cat "$(myPlayerPath)"/.legal 2>/dev/null || true)
[ -n "$isPlayerLegal" ] && echo "$isPlayerLegal" || true
}
myAstronauteKey() {
myAstronauteKey=$(ipfs --api "$(myIpfsApi)" key list -l | awk '$2 == "'"$(myPlayer)"'" {print $1}')
[ -n "$myAstronauteKey" ] && echo "$myAstronauteKey"
}
myDomainName() {
myDomainName=$(hostname -d 2>/dev/null) && [ -z "$myDomainName" ] && myDomainName=$(domainname 2>/dev/null) && [ "$myDomainName" = "(none)" ] && myDomainName="localhost"
[ -n "$myDomainName" ] && echo "$myDomainName"
}
myHash() {
[ -f ~/.zen/game/players/localhost/latest ] \
&& myHash=$(cat ~/.zen/game/players/localhost/latest) \
|| myHash=$(myTmpl |ipfs add -q)
[ ! -f ~/.zen/game/players/localhost/latest ] \
&& echo "$myHash" > ~/.zen/game/players/localhost/latest
[ -n "$myHash" ] && echo "$myHash"
myIpfsHash() {
[ -f "$(myPath)"/localhost/latest ] \
&& myIpfsHash=$(cat "$(myPath)"/localhost/latest) \
|| myIpfsHash=$(myTmpl |ipfs add -q)
[ ! -f "$(myPath)"/localhost/latest ] \
&& echo "$myIpfsHash" > "$(myPath)"/localhost/latest
[ -n "$myIpfsHash" ] && echo "$myIpfsHash"
}
myHttp() {
@ -38,25 +43,30 @@ myHttp() {
}
myHttpContent() {
[ -n "$(myHash)" ] \
[ -n "$(myIpfsHash)" ] \
&& myHttpContent="<html><head><title>302 Found</title></head><body><h1>Found</h1>
<p>The document is <a href=\"ipfs/$(myHash)\">here</a> in IPFS.</p></body></html>" \
<p>The document is <a href=\"ipfs/$(myIpfsHash)\">here</a> in IPFS.</p></body></html>" \
&& echo "$myHttpContent"
}
myHttpHeader() {
[ -n "$(myHash)" ] \
[ -n "$(myIpfsHash)" ] \
&& myHttpHeader="HTTP/1.0 302 Found
Content-Type: text/html; charset=UTF-8
Content-Length: $(myHttpContent |wc -c)
Date: $(date -R)
Location: ipfs/$(myHash)
Location: ipfs/$(myIpfsHash)
Server: and"
[ -n "$(myKey)" ] && myHttpHeader="${myHttpHeader}
set-cookie: AND=$(myKey); expires=$(date -R -d "+1 month"); path=/; domain=.$(myDomainName); Secure; SameSite=lax"
[ -n "$(myIpfsKey)" ] && myHttpHeader="${myHttpHeader}
set-cookie: AND=$(myIpfsKey); expires=$(date -R -d "+1 month"); path=/; domain=.$(myDomainName); Secure; SameSite=lax"
[ -n "$myHttpHeader" ] && echo "$myHttpHeader"
}
myHome() {
myHome=$(cd ~ && pwd -P)
[ -n "$myHome" ] && echo "$myHome"
}
myHostName() {
myHostName=$(hostname |sed 's/\.'"$(myDomainName)"'$//')
[ -n "$(myDomainName)" ] && myHostName="${myHostName}.$(myDomainName)" || myDomainName=${myHostName#*.}
@ -69,25 +79,93 @@ myIp() {
}
myIpfs() {
[ -n "$(myHash)" ] \
&& myIpfs="${myIPFS}/ipfs/$(myHash)" \
[ -n "$(myIpfsHash)" ] \
&& myIpfs="${myIPFS}/ipfs/$(myIpfsHash)" \
&& echo "$myIpfs"
}
myIpfsApi() {
ipfs --api "$(cat "$(myHome)"/.ipfs/api)" swarm peers >/dev/null 2>&1 \
&& myIpfsApi=$(cat "$(myHome)"/.ipfs/api) \
&& echo "$myIpfsApi"
}
myIpfsKey() {
myIpfsKey=$(ipfs --api "$(myIpfsApi)" key list -l | awk '$2 == "self" {print $1}')
[ -n "$myIpfsKey" ] && echo "$myIpfsKey"
}
myIpfsKeystore() {
myIpfsKeystore=$(cd "$(myHome)"/.ipfs/keystore && pwd -P)
[ -n "$myIpfsKeystore" ] && echo "$myIpfsKeystore"
}
myIpfsPeerId() {
myIpfsPeerId=$(jq -r .Identity.PeerID "$(myHome)"/.ipfs/config)
[ -n "$myIpfsPeerId" ] && echo "$myIpfsPeerId"
}
myIpns() {
[ -n "$(myKey)" ] \
&& myIpns="${myIPFS}/ipns/$(myKey)" \
[ -n "$(myIpfsKey)" ] \
&& myIpns="${myIPFS}/ipns/$(myIpfsKey)" \
&& echo "$myIpns"
}
myKey() {
myKey=$(ipfs key list -l | awk '$2 == "self" {print $1}')
[ -n "$myKey" ] && echo "$myKey"
myPath() {
myPath=$(cd ~/.zen/game/players/ && pwd -P)
[ -n "$myPath" ] && echo "$myPath"
}
myPath() {
myPath=$(cd "$(dirname "$0")" 2>/dev/null && pwd -P)
[ -n "$myPath" ] && echo "$myPath"
myPlayer() {
myPlayer=$(cat "$(myPath)"/.current/.player 2>/dev/null)
[ -n "$myPlayer" ] && echo "$myPlayer"
}
myPlayerApi() {
ipfs --api "$(cat "$(myPlayerPath)"/.ipfs/api )" swarm peers >/dev/null 2>&1 \
&& myPlayerApi=$(cat "$(myPlayerPath)"/.ipfs/api) \
&& echo "$myPlayerApi"
}
myPlayerBrowser() {
myPlayerBrowser=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1)
[ -n "$myPlayerBrowser" ] && echo "$myPlayerBrowser"
}
myPlayerFeedKey() {
myPlayerFeedKey=$(ipfs --api "$(myPlayerApi)" key list -l | awk '$2 == "'"$(myPlayer)"'_feed" {print $1}')
[ -n "$myPlayerFeedKey" ] && echo "$myPlayerFeedKey"
}
myPlayerG1Pub() {
myPlayerG1Pub=$(cat "$(myPlayerPath)"/.g1pub 2>/dev/null)
[ -n "$myPlayerG1Pub" ] && echo "$myPlayerG1Pub"
}
myPlayerKey() {
myPlayerKey=$(ipfs --api "$(myPlayerApi)" key list -l | awk '$2 == "'"$(myPlayer)"'" {print $1}')
[ -n "$myPlayerKey" ] && echo "$myPlayerKey"
}
myPlayerKeystore() {
myPlayerKeystore=$(cd "$(myPlayerPath)"/.ipfs/keystore && pwd -P)
[ -n "$myPlayerKeystore" ] && echo "$myPlayerKeystore"
}
myPlayerNs() {
myPlayerNs=$(cat "$(myPlayerPath)"/.playerns 2>/dev/null)
[ -n "$myPlayerNs" ] && echo "$myPlayerNs"
}
myPlayerPath() {
[ -n "$myPlayer" ] \
&& myPlayerPath=$(cd "$(myPath)"/"$(myPlayer)" && pwd -P) \
&& echo "$myPlayerPath"
}
myPlayerPseudo() {
myPlayerPseudo=$(cat "$(myPlayerPath)"/.pseudo 2>/dev/null)
[ -n "$myPlayerPseudo" ] && echo "$myPseudo"
}
myTmpl() {
@ -113,7 +191,7 @@ myTs() {
}
MOATS="$(myTs)"
IPFSNODEID="$(ipfsNodeId)"
IPFSNODEID="$(myIpfsPeerId)"
myIP="$(myIp)"
isLAN="$(isLan)"
myHOST="astroport.$(myDomainName)" \