forked from axiom-team/astrXbian
[STY] Add "barry" (white) theme #1
|
@ -31,7 +31,7 @@ SITE_IDENTIFIER = 'astroport'
|
|||
SITE_NAME = 'ASTROPORT _PROFIL_ (_LOGIN_) (_MDP_)'
|
||||
SITE_DESC = 'Partage ~/astroport/films (animes, series) avec ses amis https://gchange.fr (https://cesium.app ) via IPFS'
|
||||
|
||||
URL_MAIN = 'http://127.0.0.1:8181/ipns/_IPFSNODEID_/._IPFSNODEID_/'
|
||||
URL_MAIN = 'http://127.0.0.1:8080/ipns/_IPFSNODEID_/._IPFSNODEID_/'
|
||||
|
||||
KEY_PASTE_ID = 'PASTE_ID'
|
||||
SETTING_PASTE_ID = SITE_IDENTIFIER + '_id_'
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
swp_token=1605043494:0cb63ecc71f6d029418e827aed3e7c9f:c8201b8ffdb3703b1d01884bce4f7584
|
|
@ -1 +0,0 @@
|
|||
swp_token=1603922533:31aac141fc8c1f57a856ac4be928d2c0:067e0bd7719ed36e424bd1d672ebecdb
|
|
@ -226,7 +226,7 @@
|
|||
<setting id="services.useairplaypassword" default="true">false</setting>
|
||||
<setting id="services.webserver">true</setting>
|
||||
<setting id="services.webserverpassword" default="true"></setting>
|
||||
<setting id="services.webserverport">8181</setting>
|
||||
<setting id="services.webserverport">8081</setting>
|
||||
<setting id="services.webserverssl" default="true">false</setting>
|
||||
<setting id="services.webserverusername">xbmc</setting>
|
||||
<setting id="services.webskin" default="true">webinterface.default</setting>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Name=Astroport/Kodi
|
||||
Name=Astroport
|
||||
Exec=/home/_USER_/.zen/astrXbian/ajouter_video.sh
|
||||
Icon=/home/_USER_/.zen/astrXbian/logo96.png
|
||||
Type=Application
|
||||
|
|
|
@ -25,14 +25,11 @@ err() {
|
|||
if [[ $(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) ]]; then
|
||||
ipfs id && echo "ipfs swarm peers: " && ipfs swarm peers
|
||||
echo "ipfs bootstrap list: " && ipfs bootstrap list
|
||||
echo "ipfs daemon already running...! Must STOP ipfs AND remove ~/.ipfs to install again !!"
|
||||
echo "Please RUN : sudo service ipfs stop"
|
||||
exit 1
|
||||
echo "ipfs daemon already running...!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
[[ -d ~/.ipfs ]] && echo "IPFS install exist! Please remove or backup before executing this script" && exit 1
|
||||
|
||||
echo -e "Astroport IPFS Layer installation..."
|
||||
echo -e "Astroport activate IPFS Layer installation..."
|
||||
|
||||
# CHECK node IP isLAN?
|
||||
myIP=$(hostname -I | awk '{print $1}')
|
||||
|
@ -40,39 +37,6 @@ isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(
|
|||
|
||||
MACHINE_TYPE=`uname -m`
|
||||
|
||||
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
|
||||
curl -s https://dist.ipfs.io/go-ipfs/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz -o /tmp/go_ipfs.tar.gz # BIN
|
||||
curl -s https://dist.ipfs.io/ipfs-update/v1.6.0/ipfs-update_v1.6.0_linux-amd64.tar.gz -o $MY_PATH/ipfs-update.tar.gz # UPDATER
|
||||
elif [ ${MACHINE_TYPE:0:3} == 'arm' ]; then
|
||||
curl -s https://dist.ipfs.io/go-ipfs/v0.9.1/go-ipfs_v0.9.1_linux-arm.tar.gz -o /tmp/go_ipfs.tar.gz # BIN
|
||||
curl -s https://dist.ipfs.io/ipfs-update/v1.6.0/ipfs-update_v1.6.0_linux-arm.tar.gz -o $MY_PATH/ipfs-update.tar.gz # UPDATER
|
||||
elif [ ${MACHINE_TYPE} == 'aarch64' ]; then
|
||||
curl -s https://dist.ipfs.io/go-ipfs/v0.9.1/go-ipfs_v0.9.1_linux-arm64.tar.gz -o /tmp/go_ipfs.tar.gz # BIN
|
||||
else
|
||||
echo "Your $MACHINE_TYPE is not supported yet... Please add an issue." && exit 1
|
||||
fi
|
||||
|
||||
# UPDATER
|
||||
if [ -f $MY_PATH/ipfs-update.tar.gz ]; then
|
||||
echo "INSTALL ipfs-update >>>>>>>>>>>>>>>>>>>>>>>>>>"
|
||||
sudo tar -xvzf $MY_PATH/ipfs-update.tar.gz -C /usr/src/ || err "Untar ipfs-update"
|
||||
rm $MY_PATH/ipfs-update.tar.gz
|
||||
cd /usr/src/ipfs-update/
|
||||
sudo ./install.sh || err "Install ipfs-update"
|
||||
cd $MY_PATH
|
||||
|
||||
echo "INSTALL ipfs 0.9.1 >>>>>>>>>>>>>>>>>>>>>>>>>>"
|
||||
sudo ipfs-update install 0.9.1 || err "Install IPFS"
|
||||
fi
|
||||
if [ -f /tmp/go_ipfs.tar.gz ]; then
|
||||
## TERRAPI4 aarch64 install ipfs_aarch64_v0.9.1
|
||||
sudo tar -xvzf /tmp/go_ipfs.tar.gz -C /usr/src/ || err "Error Untar go_ipfs binaries"
|
||||
rm /tmp/go_ipfs.tar.gz
|
||||
cd /usr/src/go-ipfs/
|
||||
sudo ./install.sh || err "Install ipfs_aarch64"
|
||||
cd $MY_PATH
|
||||
fi
|
||||
|
||||
# INIT ipfs
|
||||
[[ $isLAN ]] && ipfs init -p lowpower \
|
||||
|| ipfs init -p server
|
||||
|
@ -126,13 +90,20 @@ ipfs config --json Experimental.Libp2pStreamMounting true
|
|||
ipfs config --json Experimental.P2pHttpProxy true
|
||||
ipfs config --json Swarm.ConnMgr.LowWater 0
|
||||
ipfs config --json Swarm.ConnMgr.HighWater 0
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://127.0.0.1:8080", "http://astroport", "https://astroport.com", "https://qo-op.com", "https://tube.copylaradio.com" ]'
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
|
||||
|
||||
ipfs config Addresses.API "/ip4/0.0.0.0/tcp/5001"
|
||||
ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080"
|
||||
|
||||
######### CLEAN DEFAULT BOOTSTRAP TO STAY INVISIBLE ###########
|
||||
ipfs bootstrap rm --all
|
||||
###########################################
|
||||
# BOOTSTRAP NODES ARE ADDED LATER
|
||||
###########################################
|
||||
# AVOID CONFLICT WITH KODI REMOTE
|
||||
# ipfs config Addresses.Gateway "/ip4/127.0.0.1/tcp/8181"
|
||||
# AVOID CONFLICT WITH KODI ./.install/.kodi/userdata/guisettings.xml
|
||||
ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080"
|
||||
|
||||
[[ "$USER" != "xbian" ]] && sudo systemctl restart ipfs
|
||||
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
######## YOUTUBE-DL ##########
|
||||
## NOW INSTALL yt-dlp AND LINK TO youtube-dl
|
||||
# _ _ _
|
||||
#| | _____ __| (_)
|
||||
#| |/ / _ \ / _` | |
|
||||
#| < (_) | (_| | |
|
||||
#|_|\_\___/ \__,_|_|
|
||||
# COPY UQLOAD LINKS DETECTED IN KODI LOG
|
||||
##############################################
|
||||
### TODO INSTALL FROM START and AUTO SCRAPE KODI LOG
|
||||
##############################################
|
||||
if [[ ! -f $HOME/.local/bin/uqload_downloader ]]; then
|
||||
cd /tmp
|
||||
git clone https://github.com/papiche/uqload_downloader.git
|
||||
cd uqload_downloader/cli
|
||||
./download_from_kodi_log.sh
|
||||
[[ -f $HOME/.local/bin/uqload_downloader ]] && zenity --warning --width ${large} --text "INSTALLATION download_from_kodi_log.sh OK"
|
||||
cp download_from_kodi_log.sh $HOME/.local/bin/
|
||||
else
|
||||
## UTILISEZ $HOME/.local/bin/download_from_kodi_log.sh
|
||||
zenity --warning --width ${large} --text "UTILISEZ download_from_kodi_log.sh en ligne de commande..."
|
||||
exit 0
|
||||
fi
|
|
@ -18,13 +18,13 @@ server {
|
|||
}
|
||||
|
||||
location /ipfs {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
||||
location /ipns {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
|
|
@ -28,13 +28,13 @@ server {
|
|||
}
|
||||
|
||||
location /ipfs {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
||||
location /ipns {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
|
|
@ -9,13 +9,13 @@ server {
|
|||
|
||||
# IPFS GATEWAY PROXY
|
||||
location /ipfs {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
||||
location /ipns {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
|
|
@ -28,13 +28,13 @@ server {
|
|||
|
||||
# IPFS GATEWAY PROXY
|
||||
location /ipfs {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
||||
location /ipns {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -14247,9 +14247,9 @@ https://astroport.com
|
|||
</pre>
|
||||
</div>
|
||||
<div created="20210224201642486" modified="20210825002046412" tags="moa" title="Moa" type="">
|
||||
<pre>''[[Ouvrez mon WIKI|http://127.0.0.1:8181/ipns/_IPFSNODEID_/._IPFSNODEID_]]''
|
||||
<pre>''[[Ouvrez mon WIKI|http://127.0.0.1:8080/ipns/_IPFSNODEID_/._IPFSNODEID_]]''
|
||||
|
||||
''[[Découvrez mes amis|http://127.0.0.1:8181/ipns/_IPFSNODEID_/._IPFSNODEID_/FRIENDS]]'' dans ma toile de confiance distribuée.
|
||||
''[[Découvrez mes amis|http://127.0.0.1:8080/ipns/_IPFSNODEID_/._IPFSNODEID_/FRIENDS]]'' dans ma toile de confiance distribuée.
|
||||
|
||||
Répondez à mes ''[[petites annonces sur Gchange|https://www.gchange.fr/#/app/user/_G1PUB_/]]''
|
||||
|
||||
|
@ -14265,7 +14265,7 @@ Chaque Station [[Astroport|Astroport]] possède le sien. Il est publié sur le r
|
|||
|
||||
```
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
xdg-open http://127.0.0.1:8181/ipns/$IPFSNODEID/.$IPFSNODEID/
|
||||
xdg-open http://127.0.0.1:8080/ipns/$IPFSNODEID/.$IPFSNODEID/
|
||||
```
|
||||
|
||||
Vous pouvez le modifier et enregistrer vos modification dans
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
########################################################################
|
||||
# update_bashrc.sh
|
||||
# Add $YOU $IPFSNODEID $G1PUB to ~/.bashrc
|
||||
## TODO REMOVE... Not so good idea since Astroport.One switch identities between captains
|
||||
|
||||
XZUID="$1"
|
||||
source ~/.bashrc
|
||||
|
||||
|
@ -17,10 +19,10 @@ newIPFSNODEID=$(ipfs id -f='<id>\n') || er+=" ipfs id problem"
|
|||
|
||||
if [[ $YOU != "" && $IPFSNODEID != "" && $G1PUB != "" ]]; then
|
||||
# UPDATE
|
||||
sed -i "s/YOU=$YOU/YOU=$newYOU/g" ~/.bashrc
|
||||
sed -i "s/$G1PUB/$newG1PUB/g" ~/.bashrc
|
||||
sed -i "s/$IPFSNODEID/$newIPFSNODEID/g" ~/.bashrc
|
||||
|
||||
sed -i "s/YOU=$YOU/YOU=$newYOU/g" ~/.bashrc
|
||||
sed -i "s/$G1PUB/$newG1PUB/g" ~/.bashrc
|
||||
sed -i "s/$IPFSNODEID/$newIPFSNODEID/g" ~/.bashrc
|
||||
|
||||
if [[ $IPNSKEY == "_IPNSKEY_" ]]; then
|
||||
ipfs key rm xbian
|
||||
IPNSKEY=$(ipfs key gen xbian)
|
||||
|
@ -28,12 +30,12 @@ if [[ $YOU != "" && $IPFSNODEID != "" && $G1PUB != "" ]]; then
|
|||
fi
|
||||
else
|
||||
# CREATE
|
||||
echo "### ASTROPORT IDENTITY ###" >> ~/.bashrc
|
||||
echo "export YOU=$newYOU" >> ~/.bashrc
|
||||
echo "export G1PUB=$newG1PUB" >> ~/.bashrc
|
||||
echo "export IPFSNODEID=$newIPFSNODEID" >> ~/.bashrc
|
||||
echo "export IPNSKEY=_IPNSKEY_" >> ~/.bashrc
|
||||
[[ "$XZUID" != "" ]] && echo "export XZUID=$XZUID" >> ~/.bashrc
|
||||
echo "### ASTROPORT IDENTITY ###" >> ~/.bashrc
|
||||
echo "export YOU=$newYOU" >> ~/.bashrc
|
||||
echo "export G1PUB=$newG1PUB" >> ~/.bashrc
|
||||
echo "export IPFSNODEID=$newIPFSNODEID" >> ~/.bashrc
|
||||
echo "export IPNSKEY=_IPNSKEY_" >> ~/.bashrc
|
||||
[[ "$XZUID" != "" ]] && echo "export XZUID=$XZUID" >> ~/.bashrc
|
||||
fi
|
||||
source ~/.bashrc
|
||||
|
||||
|
|
|
@ -4,11 +4,19 @@ MY_PATH="`dirname \"$0\"`" # relative
|
|||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
######## YOUTUBE-DL ##########
|
||||
if [[ $(which youtube-dl) ]]; then
|
||||
sudo apt-get remove youtube-dl
|
||||
fi
|
||||
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl || sudo cp $MY_PATH/youtube-dl /usr/local/bin/ || (echo "error installing youtube-dl" && exit 1)
|
||||
sudo chmod a+rx /usr/local/bin/youtube-dl
|
||||
sudo chown $USER /usr/local/bin/youtube-dl
|
||||
youtube-dl -U
|
||||
## NOW INSTALL yt-dlp AND LINK TO youtube-dl
|
||||
|
||||
if [[ ! -f /usr/local/bin/yt-dlp ]]; then
|
||||
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && \
|
||||
sudo chmod a+rx /usr/local/bin/yt-dlp && sudo chown $USER /usr/local/bin/yt-dlp
|
||||
|
||||
ytdl=$(which youtube-dl) # modify old
|
||||
[[ -f ${ytdl} && ! -f ${ytdl}.old ]] &&\
|
||||
sudo cp ${ytdl} ${ytdl}.old && \
|
||||
sudo rm ${ytdl}
|
||||
|
||||
sudo ln -s /usr/local/bin/yt-dlp /usr/local/bin/youtube-dl ## NOW youtube-dl is linked to yt-dlp (COMMANDS ARE THE SAME ?)
|
||||
fi
|
||||
|
||||
## UPGRADE TO LATEST
|
||||
ls -al /usr/local/bin/youtube-dl
|
||||
|
|
|
@ -3,3 +3,5 @@
|
|||
/ip4/51.15.166.54/tcp/4001/p2p/12D3KooWBYme2BsNUrtx4mEdNX6Yioa9AV7opWzQp6nrPs6ZKabN
|
||||
# aries.copylaradio.com (thuya83pk) = HbBJDXDrN8swxvMohMxmegYRyZ7m99jqgxwwN1gwxck2
|
||||
/ip4/37.187.127.175/tcp/4001/p2p/12D3KooWSQYTxeoZZ39SNosEKxi7RUdGTtAQAqpKeZJxjzqqrZTx
|
||||
# cancer.copylaradio.com (yan14tricot75) = GmUD53TFfEfb6NiVqYXwxMGbxpP9nKgHPgF4jex6FBvj
|
||||
/ip4/185.202.238.69/udp/4001/quic/p2p/12D3KooWRaqNpB2xr8w5WGDvU9HHj9MST9Rnp1kmMGc67e6z98ef
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN
|
||||
/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa
|
||||
/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb
|
||||
/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt
|
||||
/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
|
30
ISOconfig.sh
30
ISOconfig.sh
|
@ -9,7 +9,7 @@ IPFSNODEID=$(ipfs id -f='<id>\n')
|
|||
isIPFSRunning=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d ' ' -f 1)
|
||||
[[ ! ${IPFSNODEID} ]] && echo "IPFS MUST BE INSTALLED" && exit 1
|
||||
########################################################################
|
||||
# Create secret key files
|
||||
# Create STATION IPFS/G1 IDENTITY & secret key files
|
||||
# ~/.zen/secret.june
|
||||
# ~/.zen/secret.dunikey
|
||||
# ~/.zen/secret.ipfs & /tmp/config.ipfs
|
||||
|
@ -25,14 +25,14 @@ ping -q -w 1 -c 1 `ip r | grep default | cut -d ' ' -f 3` 2>&1>/dev/null && echo
|
|||
IPTEST=$(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#" | cut -d '/' -f 3 | shuf | head -n 1)
|
||||
ping -q -w 1 -c 1 $IPTEST 2>&1>/dev/null && echo "CONNEXION BOOTSTRAP OK" || (echo "VERIFIER CONNEXION INTERNET" && exit 1)
|
||||
|
||||
# GIT PULL astrXbian code
|
||||
mkdir -p ~/.zen/astrXbian && cd ~/.zen/astrXbian && git pull || exit 1
|
||||
# MAJ astrXbian code
|
||||
[[ -d ~/.zen/astrXbian ]] && cd ~/.zen/astrXbian && git pull || ( echo "astrXbian ERROR" && exit 1 )
|
||||
|
||||
# CHECK IF CONFIG ALREADY DONE !!
|
||||
# ~/.zen/ipfs ~/.zen/secret ~/.zen/ipfs.sync
|
||||
if [[ -f ~/.zen/ipfs.sync ]]; then
|
||||
echo "CONFIG ALREADY DONE.... logging init in /tmp/A_booting_log.txt"
|
||||
source ~/.zen/ipfs.sync
|
||||
source ~/.zen/ipfs.sync; echo "CAPTAIN is $CAPTAIN"
|
||||
# Wait for IPFS to connect SWARM
|
||||
sleep 20
|
||||
~/.zen/astrXbian/zen/gchange_INIT.sh >> /tmp/A_booting_log.txt
|
||||
|
@ -120,18 +120,18 @@ mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/G1SSB
|
|||
# Give $XZUID to your (gchange friends)
|
||||
########################################################################
|
||||
echo "SETTING ASTRXBIAN PROFILE NAME = $XZUID"
|
||||
echo "$XZUID" > ~/.zen/ipfs/.${IPFSNODEID}/_xbian.zuid
|
||||
echo "$XZUID" > ~/.zen/ipfs/.${IPFSNODEID}/.player
|
||||
|
||||
########################################################################
|
||||
echo "CREATING GCHANGE+ PROFILE"
|
||||
########################################################################
|
||||
~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" set --name "$XZUID" --avatar "/home/$USER/.zen/astrXbian/logo.png" #GCHANGE+
|
||||
~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" set --name "Station $XZUID" --avatar "/home/$USER/.zen/astrXbian/logo.png" #GCHANGE+
|
||||
[[ ! $? == 0 ]] && echo "GCHANGE PROFILE CREATION FAILED" && exit 1
|
||||
########################################################################
|
||||
echo "CREATING CESIUM+ PROFILE"
|
||||
echo "CREATING CESIUM+ PROFILE : TOO MUCH TIMEOUT"
|
||||
########################################################################
|
||||
~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://g1.data.e-is.pro" set --name "$XZUID" --avatar "/home/$USER/.zen/astrXbian/logo.png" #CESIUM+
|
||||
[[ ! $? == 0 ]] && echo "CESIUM PROFILE CREATION FAILED" && exit 1
|
||||
# ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://g1.data.presles.fr" set --name "Station $XZUID" --avatar "/home/$USER/.zen/astrXbian/logo.png" #CESIUM+
|
||||
# [[ ! $? == 0 ]] && echo "CESIUM PROFILE CREATION FAILED" && exit 1
|
||||
########################################################################
|
||||
### DELETE (see uninstall.sh)
|
||||
# ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://g1.data.e-is.pro" erase
|
||||
|
@ -165,9 +165,9 @@ echo ".... ACTUAL SWARM PEERS ..."
|
|||
ipfs swarm peers
|
||||
|
||||
########################################################################
|
||||
echo 'UPDATING ~/.bashrc'
|
||||
# echo 'UPDATING ~/.bashrc'
|
||||
########################################################################
|
||||
~/.zen/astrXbian/.install/update_bashrc.sh "$XZUID"
|
||||
# ~/.zen/astrXbian/.install/update_bashrc.sh "$XZUID"
|
||||
|
||||
## CREATE RAMDISK permanent
|
||||
#sudo mkdir /mnt/ramdisk
|
||||
|
@ -223,7 +223,7 @@ echo 'Installing Astroport cron_MINUTE'
|
|||
|
||||
########################################################################
|
||||
#echo "CHANGE hostname"
|
||||
#myname=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid)
|
||||
#myname=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)
|
||||
#echo "$(hostname). Changez votre HOSTNAME ($myname)?" && read mynamey && [[ $mynamey ]] && myname="$mynamey"
|
||||
########################################################################
|
||||
#sudo sed -i "s/$(hostname)/$myname/g" /etc/hostname
|
||||
|
@ -281,7 +281,7 @@ do
|
|||
done
|
||||
|
||||
# AVOID CONFLICT WITH KODI REMOTE
|
||||
ipfs config Addresses.Gateway "/ip4/127.0.0.1/tcp/8181"
|
||||
ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080"
|
||||
|
||||
########################################################################
|
||||
# SUDO permissions
|
||||
|
@ -297,8 +297,12 @@ echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/apt" | (sudo su -c 'EDITOR="tee" visudo
|
|||
## USED FOR "systemctl restart ipfs"
|
||||
echo "$USER ALL=(ALL) NOPASSWD:/bin/systemctl" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/systemctl')
|
||||
|
||||
## brother_ql_print
|
||||
echo "$USER ALL=(ALL) NOPASSWD:/usr/local/bin/brother_ql_print" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/brother_ql_print')
|
||||
|
||||
## INSTALL TiddlyWiki
|
||||
[[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/index.html ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID} && cp ~/.zen/astrXbian/.install/templates/tiddlywiki/index.html ~/.zen/ipfs/.${IPFSNODEID}/index.html
|
||||
[[ -f ~/.zen/Astroport.ONE/templates/moawiki.html ]] && cp ~/.zen/Astroport.ONE/templates/moawiki.html ~/.zen/ipfs/.${IPFSNODEID}/index.html
|
||||
|
||||
|
||||
########################################################################
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
MYOS ?= ../myos
|
||||
-include $(MYOS)/make/include.mk
|
||||
.PHONY: all default install shellcheck shellcheck-% shellspec shellspec-% tests uninstall
|
||||
|
||||
SHELL_FILES ?= $(wildcard .*/*.sh */*.sh */*/*.sh)
|
||||
|
||||
$(MYOS):
|
||||
git clone https://git.p2p.legal/aya/myos $(MYOS)
|
||||
|
||||
default: tests
|
||||
|
||||
all: install tests
|
||||
|
||||
install:
|
||||
./install.sh
|
||||
|
||||
tests: shellcheck shellspec
|
||||
|
||||
shellcheck:
|
||||
shellcheck $(SHELL_FILES) ||:
|
||||
|
||||
shellcheck-%:
|
||||
shellcheck $*/*.sh
|
||||
|
||||
shellspec: shellspec-specs
|
||||
|
||||
shellspec-%:
|
||||
shellspec -f tap $*
|
||||
|
||||
uninstall:
|
24
README.md
24
README.md
|
@ -98,7 +98,7 @@ Ces "stargate" permettent de créer des espaces numériques public ou privés to
|
|||
|
||||
```bash <(wget -qO- https://git.p2p.legal/axiom-team/astrXbian/raw/branch/master/install.sh)```
|
||||
|
||||
### **IMPORTANT** Restez en contact avec l'équipe de développement!! [Inscrivez vous à notre mailing list](https://oasis.astroport.com/appel-aux-anarchitectes/)
|
||||
### **IMPORTANT** Restez en contact avec l'équipe de développement!! [Groupe Framagenda en cours de création](https://framagenda.org/apps/contacts/circle/vUAH4ggf7DyfznqN9bJDHu3nitjL7K6)
|
||||
|
||||
|
||||
---
|
||||
|
@ -185,27 +185,27 @@ NB: Les films placés dans ~/astroport/film/$TMDBID/ sont automatiquement transf
|
|||
|
||||
> Astroport/KODI vous permet de partager les vidéos que vous aimez avec les gens que vous aimez.
|
||||
|
||||
Le répertoire ~/astroport sert de sas de transfert de vos fichiers dans IPFS.
|
||||
Le répertoire ~/astroport sert de sas de transfert de vos fichiers dans IPFS (vous pouvez en effacer les fichiers une fois importés).
|
||||
Votre essaim de pairs connectés se dessine selon les "étoiles" échangées sur https://gchange.fr
|
||||
|
||||
Chaque noeud astXbian possède une identité (paire de clef ed25519) qui correspond à son identité sur https://gchange.fr et un portefeuille sur https://cesium.app
|
||||
|
||||
Lorsqu'une identité "like/étoile" un autre compte sur Gchange, elle lui expédie le message "ipfstryme" ```~/.zen/ipfs/.${IPFSNODEID}/tryme.addr``` qui contient les adresses IP/IPFS connues (amis d'ami).
|
||||
|
||||
Chaque fichier placé dans ```~/.zen/ipfs``` est partagé sur la clef IPNS "self" de chacun puis collecté dans ```~/.zen/ipfs_swarm``` régulièrement.
|
||||
Chaque fichier placé dans ```~/.zen/ipfs``` est partagé sur la clef IPNS "self" de chacun puis collecté dans ```~/.zen/ipfs_swarm``` régulièrement (c'est la Balise de votre Station)
|
||||
|
||||
Chaque noeud conserve la mémoire de sa bibliothèque au travers du fichier ```~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN```
|
||||
|
||||
et transmet à Kodi l'ensemble de des "film" de son swarm dans ```~/.zen/ipfs/.$IPFSNODEID/FASTRXBIAN``` (PREFIX = F), selon le format
|
||||
et transmet à Kodi l'ensemble de des "film" dans ```~/.zen/ipfs/.$IPFSNODEID/FASTRXBIAN``` (PREFIX = F), selon le format
|
||||
```
|
||||
CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS
|
||||
film;$TMDB;2013;Frequencies;;["Science fiction","Romance","Mystere"];$XZUID;480p;http://127.0.0.1:8181/ipfs/QmcXMAHbFH3gDwmxJRX7uh753oCbXAEajwQsAWFkvqbRY3/Frequencies.mp4
|
||||
film;$TMDB;2013;Frequencies;;["Science fiction","Romance","Mystere"];$XZUID;480p;http://127.0.0.1:8080/ipfs/QmcXMAHbFH3gDwmxJRX7uh753oCbXAEajwQsAWFkvqbRY3/Frequencies.mp4
|
||||
# FORMAT DU FICHIER : https://github.com/Kodi-vStream/venom-xbmc-addons/wiki/Voir-et-partager-sa-biblioth%C3%A8que-priv%C3%A9e#d%C3%A9clarer-des-films
|
||||
|
||||
```
|
||||
* ```~/.zen/PIN``` memorise l'état des PIN du réseau
|
||||
* ```~/.zen/ipfs/.${IPFSNODEID}/KEY``` attribue une clef MEDIAKEY IPNS à chaque SOURCE_ID et applique un contrat fixe ou dynamique (selon le chiffrage appliqué au Thunder Network)
|
||||
* ```~/.zen/ipfs/.${IPFSNODEID}/index.html``` l'application par défaut de votre clef self est un TiddlyWiki
|
||||
* ```~/.zen/ipfs/.${IPFSNODEID}/KEY``` attribue une clef MEDIAKEY IPNS à chaque SOURCE_ID et applique un contrat fixe ou dynamique (selon le chiffrage appliqué à votre Thunder Network)
|
||||
* ```~/.zen/ipfs/.${IPFSNODEID}/index.html``` l'application par défaut de votre Station est [TiddlyWiki](https://tiddlywiki.com/languages/fr-FR/index.html)
|
||||
|
||||
L'essaim se restructure toutes les minutes (code: ```cron_MINUTE.sh```) et active l'automate Astroport/BLOB.
|
||||
|
||||
|
@ -229,10 +229,10 @@ En cas de conflit (quand le swarm est trop grand ou désynchronisé), une procé
|
|||
~/.zen/astrXbian/zen/ssh_forward2onelove.sh
|
||||
|
||||
# Obtenir la liste de tous ses amis (gchange+)
|
||||
cat ~/.zen/ipfs_swarm/.12D*/G1SSB/_g1.gchange_title
|
||||
cat ~/.zen/ipfs_swarm/.12D*/.player
|
||||
|
||||
# Scan des stations IPFS de son swarm
|
||||
for peer in $(ipfs swarm peers); do ipfsnodeid=${peer##*/}; echo $ipfsnodeid; echo "$(ipfs --timeout=2s cat /ipns/$ipfsnodeid/.$ipfsnodeid/G1SSB/_g1.gchange_title) => $(ipfs --timeout=1s cat /ipns/$ipfsnodeid/.$ipfsnodeid/_xbian.zuid)"; ipfs --timeout=1s ls /ipns/$ipfsnodeid/; done
|
||||
for peer in $(ipfs swarm peers); do ipfsnodeid=${peer##*/}; echo $ipfsnodeid; echo "$(ipfs --timeout=2s cat /ipns/$ipfsnodeid/.$ipfsnodeid/G1SSB/_g1.gchange_title) => $(ipfs --timeout=1s cat /ipns/$ipfsnodeid/.$ipfsnodeid/.player)"; ipfs --timeout=1s ls /ipns/$ipfsnodeid/; done
|
||||
|
||||
# Obtenir le nom des fichiers contenus dans PIN IPFS
|
||||
for ID in $( ls ~/.zen/PIN/ | cut -d '/' -f 6); do ipfs ls $ID; done
|
||||
|
@ -254,8 +254,8 @@ do
|
|||
ipfsnodeid=$(echo $CODE | cut -d '.' -f 3 | cut -d '/' -f 1 );
|
||||
code=$(cat $CODE);
|
||||
IPNSCODE=$(ipfs cat /ipns/$ipfsnodeid/.$ipfsnodeid/.mycode)
|
||||
zuid=$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid);
|
||||
# zuid=$(ipfs cat /ipns/$ipfsnodeid/.$ipfsnodeid/_xbian.zuid)
|
||||
zuid=$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/.player);
|
||||
# zuid=$(ipfs cat /ipns/$ipfsnodeid/.$ipfsnodeid/.player)
|
||||
g1name=$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/G1SSB/_g1.gchange_title)
|
||||
# g1name=$(ipfs cat /ipns/$ipfsnodeid/.$ipfsnodeid/G1SSB/_g1.gchange_title)
|
||||
echo "---> $zuid / $g1name : $IPNSCODE"
|
||||
|
@ -265,7 +265,7 @@ do
|
|||
done;
|
||||
|
||||
# Get your ipfs swarm peers station names (XZUID)
|
||||
for ipfsnodeid in $(ipfs swarm peers | grep -o '[^/]*$'); do ipfs cat /ipns/$ipfsnodeid/.$ipfsnodeid/_xbian.zuid; done
|
||||
for ipfsnodeid in $(ipfs swarm peers | grep -o '[^/]*$'); do ipfs cat /ipns/$ipfsnodeid/.$ipfsnodeid/.player; done
|
||||
|
||||
```
|
||||
|
||||
|
|
|
@ -15,6 +15,15 @@ G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PU
|
|||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n' 2>/dev/null) && [[ "$IPFSNODEID" == "" ]] && echo 'NO IPFS RUNNING. EXIT' && exit 1
|
||||
[ ! -d ~/.zen/ipfs/.$IPFSNODEID/astroport ] && echo 'ASTROPORT NOT READY' && exit 1
|
||||
|
||||
|
||||
###### MOVE MAP FROM SELF IPNS INDEX
|
||||
if [ ! -d ~/.zen/ipfs/map ]; then
|
||||
mv ~/.zen/ipfs/.$IPFSNODEID/astroport/map ~/.zen/
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
## TODO CREATE SPECIAL IPNS KEY FOR SHARING
|
||||
|
||||
##############################################################"
|
||||
## DO NOT RECORD output.pdf, bu convert to jpg and link throug index.html REDIRECT
|
||||
##############################################################"
|
||||
|
@ -32,7 +41,7 @@ IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n' 2>/dev/null) && [[ "$IPFSNODEID"
|
|||
echo "<html><head><meta http-equiv=\"Refresh\" content=\"0; URL=/ipfs/$IPFSREPFILEID/$lid.jpg\"></head></html>" > ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/index.html
|
||||
# mv ./output.pdf ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/bulle.pdf
|
||||
rm ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/bulle.pdf 2>/dev/null
|
||||
echo "NOW LIEU redirect to http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$lid.jpg"
|
||||
echo "NOW LIEU redirect to http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$lid.jpg"
|
||||
cat ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/index.html
|
||||
|
||||
done
|
||||
|
|
|
@ -150,7 +150,7 @@ echo "SUB-SCRAPING lieu FROM $geodata"
|
|||
echo "<html><head><meta http-equiv=\"Refresh\" content=\"0; URL=/ipfs/$IPFSREPFILEID/$lid.jpg\"></head></html>" > ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/index.html
|
||||
# mv ./output.pdf ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/bulle.pdf
|
||||
rm ~/.zen/ipfs/.$IPFSNODEID/astroport/map/p4n/lieu/$lid/bulle.pdf 2>/dev/null
|
||||
echo "NOW LIEU redirect to http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$lid.jpg"
|
||||
echo "NOW LIEU redirect to http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$lid.jpg"
|
||||
rm ./$lid.jpg
|
||||
rm ./bulle.jpg
|
||||
fi
|
||||
|
|
239
ajouter_video.sh
239
ajouter_video.sh
|
@ -29,16 +29,26 @@ G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
|||
[[ $(which ffmpeg) == "" ]] && echo "ERREUR! Installez ffmpeg" && echo "sudo apt install ffmpeg" && exit 1
|
||||
[[ $(which xdpyinfo) == "" ]] && echo "ERREUR! Installez x11-utils" && echo "sudo apt install x11-utils" && exit 1
|
||||
|
||||
# Check who is .current PLAYER
|
||||
PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) || ( echo "noplayer" && exit 1 )
|
||||
PSEUDO=$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null) || ( echo "nopseudo" && exit 1 )
|
||||
G1PUB=$(cat ~/.zen/game/players/.current/.g1pub 2>/dev/null) || ( echo "nog1pub" && exit 1 )
|
||||
IPFSNODEID=$(cat ~/.zen/game/players/.current/.ipfsnodeid 2>/dev/null) || ( echo "noipfsnodeid" && exit 1 )
|
||||
PLAYERNS=$(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
|
||||
MOANS=$(cat ~/.zen/game/players/.current/.moans 2>/dev/null) || ( echo "noplayermoans" && exit 1 )
|
||||
QOOPNS=$(cat ~/.zen/game/players/.current/.qoopns 2>/dev/null) || ( echo "noplayerqoopns" && exit 1 )
|
||||
|
||||
|
||||
URL="$1"
|
||||
if [ $URL ]; then
|
||||
echo "URL: $URL"
|
||||
REVSOURCE="$(echo "$URL" | awk -F/ '{print $3}' | rev)_"
|
||||
[ ! $2 ] && IMPORT=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Choisissez comment copier cette source" --entry-text="Video" MP3 Web) || IMPORT="Youtube"
|
||||
[ ! $2 ] && IMPORT=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Que copier depuis cette source ?" --entry-text="Video" MP3 Web) || IMPORT="Youtube"
|
||||
[[ $IMPORT == "Video" ]] && IMPORT="Youtube"
|
||||
CHOICE="$IMPORT"
|
||||
fi
|
||||
|
||||
[[ $CHOICE == "Web" ]] && CHOICE=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Cette source WEB est à enregistrer comme " --entry-text="Page" WebSite)
|
||||
[[ $CHOICE == "Web" ]] && CHOICE="Page" #&& CHOICE=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Cette source Web est à enregistrer comme " --entry-text="Page" WebSite)
|
||||
|
||||
# REMOVE GtkDialog errors for zenity
|
||||
shopt -s expand_aliases
|
||||
|
@ -52,17 +62,14 @@ large=$((width-300))
|
|||
haut=$((height-200))
|
||||
|
||||
########################################################################
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XGUID="$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title)" || XGUID="$(cat /etc/hostname)"
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid)
|
||||
|
||||
# zenity --warning --width 300 --text "Ajoutez un MEDIA dans ASTROPORT"
|
||||
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/.player ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)
|
||||
|
||||
########################################################################
|
||||
## CADRE EXCEPTION COPIE PRIVE
|
||||
# https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006278917/2008-12-11/
|
||||
if [[ ! -f ~/.zen/legal ]]; then
|
||||
if [[ ! -f ~/.zen/game/players/.current/legal ]]; then
|
||||
zenity --width ${large} --height=${haut} --text-info \
|
||||
--title="Action conforme avec le Code de la propriété intellectuelle" \
|
||||
--html \
|
||||
|
@ -72,12 +79,12 @@ zenity --width ${large} --height=${haut} --text-info \
|
|||
case $? in
|
||||
0)
|
||||
echo "AUTORISATION COPIE PRIVE ASTROPORT OK !"
|
||||
echo "$G1PUB" > ~/.zen/legal
|
||||
echo "$G1PUB" > ~/.zen/game/players/.current/legal
|
||||
# next step
|
||||
;;
|
||||
1)
|
||||
echo "Refus conditions"
|
||||
rm -f ~/.zen/legal
|
||||
rm -f ~/.zen/game/players/.current/legal
|
||||
exit 1
|
||||
;;
|
||||
-1)
|
||||
|
@ -87,9 +94,25 @@ case $? in
|
|||
esac
|
||||
fi
|
||||
|
||||
## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
||||
[[ ! $YOU ]] && RUN=$(zenity --entry --width 300 --title="Astroport IPFS OFF" --text="Activer Astroport ?" --entry-text="OUI" NON) && [[ $RUN == "" || $RUN == "NON" ]] && exit 1
|
||||
[[ $YOU && ! $1 ]] && RUN=$(zenity --entry --width 300 --title="Astroport IPFS ON" --text="Désactiver Astroport ? Non, vous voulez ajouter un Media?" --entry-text="OUI" NON)
|
||||
## DES/ACTIVATION ASTROPORT
|
||||
if [[ $RUN == "OUI" ]]; then
|
||||
STRAP=$(ipfs bootstrap)
|
||||
BOOT=$(zenity --entry --width 300 --title="Catégorie" --text="$STRAP Changez de Bootstrap" --entry-text="Aucun" astrXbian Public)
|
||||
[[ $BOOT == "Aucun" ]] && ipfs bootstrap rm --all
|
||||
[[ $BOOT == "astrXbian" ]] && for bootnode in $(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#"); do ipfs bootstrap add $bootnode; done
|
||||
[[ $BOOT == "Public" ]] && for bootnode in $(cat ~/.zen/astrXbian/A_boostrap_public.txt | grep -Ev "#"); do ipfs bootstrap add $bootnode; done
|
||||
REP=$(~/.zen/astrXbian/zen/cron_VRFY.sh) && zenity --warning --width 600 --text "$REP"
|
||||
fi
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
||||
[[ $YOU == "" ]] && echo "IPFS not running" && exit 1
|
||||
|
||||
########################################################################
|
||||
# CHOOSE CATEGORY (remove anime, not working!)
|
||||
[[ $CHOICE == "" ]] && CHOICE=$(zenity --entry --width 300 --title="Catégorie" --text="Choisissez la catégorie de votre media" --entry-text="Film" Serie Youtube Video)
|
||||
[[ $CHOICE == "" ]] && CHOICE=$(zenity --entry --width 300 --title="Catégorie" --text="Choisissez la catégorie de votre ajout" --entry-text="AstroBlog" Film Serie Youtube Video)
|
||||
[[ $CHOICE == "" ]] && exit 1
|
||||
|
||||
# LOWER CARACTERS
|
||||
|
@ -104,6 +127,29 @@ PREFIX=$(echo "${CAT}" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, S, A
|
|||
########################################################################
|
||||
case ${CAT} in
|
||||
########################################################################
|
||||
# CASE ## ASTRONAUTE
|
||||
# _ _
|
||||
# __ _ ___| |_ _ __ ___ _ __ __ _ _ _| |_ ___
|
||||
# / _` / __| __| '__/ _ \| '_ \ / _` | | | | __/ _ \
|
||||
# | (_| \__ \ |_| | | (_) | | | | (_| | |_| | || __/
|
||||
# \__,_|___/\__|_| \___/|_| |_|\__,_|\__,_|\__\___|
|
||||
#
|
||||
#
|
||||
########################################################################
|
||||
astroblog)
|
||||
|
||||
# INSTASCAN G1PUB CAPTURE
|
||||
~/.zen/Astroport.ONE/tools/instascan_login.sh "ONE"
|
||||
|
||||
zenity --warning --width 300 --text "$PLAYER. Prêt à enregistrer votre video ?"
|
||||
|
||||
## RECORD WEBCAM VIDEO
|
||||
~/.zen/Astroport.ONE/tools/vlc_webcam.sh
|
||||
|
||||
|
||||
exit 0
|
||||
;;
|
||||
########################################################################
|
||||
# CASE ## YOUTUBE
|
||||
# _ _
|
||||
# _ _ ___ _ _| |_ _ _| |__ ___
|
||||
|
@ -121,13 +167,17 @@ YTURL="$URL"
|
|||
REVSOURCE="$(echo "$YTURL" | awk -F/ '{print $3}' | rev)_"
|
||||
|
||||
# Create TEMP directory to copy $YID_$TITLE.$FILE_EXT
|
||||
YTEMP="/tmp/$(date -u +%s%N | cut -b1-13)"
|
||||
YTEMP="$HOME/astroport/tmp/$(date -u +%s%N | cut -b1-13)"
|
||||
mkdir -p ${YTEMP}
|
||||
|
||||
# youtube-dl $YTURL
|
||||
echo "VIDEO $YTURL"
|
||||
/usr/local/bin/youtube-dl -f '[height=720]/best' \
|
||||
--no-playlist --write-info-json --write-annotations \
|
||||
if [[ ! -f /usr/local/bin/youtube-dl ]]; then
|
||||
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
|
||||
sudo chmod a+rx /usr/local/bin/youtube-dl
|
||||
fi
|
||||
/usr/local/bin/youtube-dl -f '[height=360]/best' \
|
||||
--no-playlist --write-info-json \
|
||||
--no-mtime -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" $YTURL
|
||||
|
||||
# Get filename, extract ID, make destination dir and move copy.
|
||||
|
@ -191,21 +241,22 @@ rm -Rf ${YTEMP}
|
|||
# CASE ## WEB
|
||||
web)
|
||||
|
||||
zenity --warning --width 600 --text 'DEVELOPPEMENT . ZONE . Please Participate https://git.p2p.legal'
|
||||
|
||||
## wget current URL -> index.html ## TEST ## TEST httrack ??
|
||||
[[ ! $(which httrack) ]] && zenity --warning --width ${large} --text "Utilitaire de copie de site web absent.. Lancez la commande 'sudo apt install httrack'" && exit 1
|
||||
echo "httrack --mirror $URL"
|
||||
FILE_NAME="index.html"
|
||||
REVSOURCE="$(echo "$URL" | rev | sha256sum | cut -d ' ' -f 1)_"; echo $REVSOURCE # URL="https://discuss.ipfs.io/t/limit-ipfs-get-command/3573/6"
|
||||
MEDIAID="$REVSOURCE" # MEDIAID=1252ff59950395070a0cc56bb058cbb1ccfd2f8d8a32476acaf472f62b14d97d_
|
||||
MEDIAKEY="PAGE_${MEDIAID}" # MEDIAKEY=PAGE_1252ff59950395070a0cc56bb058cbb1ccfd2f8d8a32476acaf472f62b14d97d_
|
||||
MEDIAKEY="WWW_${MEDIAID}" # MEDIAKEY=PAGE_1252ff59950395070a0cc56bb058cbb1ccfd2f8d8a32476acaf472f62b14d97d_
|
||||
FILE_PATH="$HOME/astroport/web/$MEDIAID";
|
||||
mkdir -p $FILE_PATH
|
||||
wget -mpck --user-agent="" -e robots=off --wait 1 "$URL" > ${FILE_PATH}/${FILE_NAME}
|
||||
|
||||
wget -mpck --user-agent="" -e robots=off --wait 1 "$URL" > ${FILE_PATH}/
|
||||
|
||||
echo "web;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
|
||||
|
||||
zenity --warning --width ${large} --text "Vérifiez que la copie de votre site se trouve bien dans ${FILE_PATH}/"
|
||||
|
||||
;;
|
||||
|
||||
|
||||
|
@ -213,21 +264,19 @@ rm -Rf ${YTEMP}
|
|||
# CASE ## PAGE
|
||||
page)
|
||||
|
||||
zenity --warning --width 600 --text 'DEVELOPPEMENT . ZONE . Please Participate https://git.p2p.legal'
|
||||
|
||||
## record one page to PDF
|
||||
[[ ! $(which chromium) ]] && zenity --warning --width ${large} --text "Utilitaire de copie de page web absent.. Lancez la commande 'sudo apt install chromium'" && exit 1
|
||||
cd /tmp/ && rm output.pdf && chromium --headless --no-sandbox --print-to-pdf $URL
|
||||
cd /tmp/ && rm -f output.pdf
|
||||
chromium --headless --no-sandbox --print-to-pdf $URL
|
||||
|
||||
TITLE=$(zenity --entry --width 480 --title "Titre" --text "Indiquez le titre de cette page " --entry-text="${URL}")
|
||||
TITLE=$(zenity --entry --width 480 --title "Titre" --text "Quel nom de fichier à donner à cette page ? " --entry-text="${URL}")
|
||||
[[ $TITLE == "" ]] && exit 1
|
||||
FILE_NAME="$(echo "${TITLE}" | detox --inline).pdf" ## TODO make it better
|
||||
|
||||
MEDIAID="$REVSOURCE$(echo "${TITLE}" | detox --inline)"
|
||||
MEDIAKEY="PAGE_${MEDIAID}"
|
||||
FILE_PATH="$HOME/astroport/page/$MEDIAID"
|
||||
mkdir -p ${FILE_PATH} && mv -f output.pdf ${FILE_PATH}/${FILE_NAME}
|
||||
|
||||
mkdir -p ${FILE_PATH} && mv output.pdf ${FILE_PATH}/${FILE_NAME}
|
||||
|
||||
echo "page;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
|
||||
|
||||
|
@ -244,10 +293,10 @@ rm -Rf ${YTEMP}
|
|||
########################################################################
|
||||
mp3)
|
||||
|
||||
zenity --warning --width 600 --text 'DEVELOPPEMENT . ZONE . Please Participate https://git.p2p.legal'
|
||||
zenity --warning --width 600 --text 'DEV ZONE . Please Participate https://git.p2p.legal'
|
||||
|
||||
# Create TEMP directory
|
||||
YTEMP="/tmp/$(date -u +%s%N | cut -b1-13)"
|
||||
YTEMP="$HOME/astroport/tmp/$(date -u +%s%N | cut -b1-13)"
|
||||
mkdir -p ${YTEMP}
|
||||
|
||||
artist=$(zenity --entry --width 400 --title "Extraction MP3 depuis Youtube" --text "Artiste recherché ou Lien Youtube" --entry-text="")
|
||||
|
@ -331,12 +380,16 @@ FILE_TITLE="${FILE_NAME%.*}"
|
|||
zenity --question --width 300 --text "Ouvrir https://www.themoviedb.org pou récupérer le numéro d'identification de $(echo ${FILE_TITLE} | sed 's/_/%20/g') ?"
|
||||
[ $? == 0 ] && xdg-open "https://www.themoviedb.org/search?query=$(echo ${FILE_TITLE} | sed 's/_/%20/g')"
|
||||
|
||||
MEDIAID=$(zenity --entry --title="Identification TMDB" --text="Indiquez le numéro de la fiche du film. Ex: 301528 pour une adresse https://www.themoviedb.org/movie/301528-toy-story-4)" --entry-text="")
|
||||
MEDIAID=$(zenity --entry --title="Identification TMDB" --text="Copiez le nom de la page du film. Ex: 301528-toy-story-4 pour une adresse https://www.themoviedb.org/movie/301528-toy-story-4)" --entry-text="")
|
||||
[[ $MEDIAID == "" ]] && exit 1
|
||||
if ! [[ "$MEDIAID" =~ ^[0-9]+$ ]]
|
||||
CMED=$(echo $MEDIAID | cut -d '-' -f 1)
|
||||
TMTL=$(echo $MEDIAID | cut -d '-' -f 2-) # contient la fin du nom de fichier tmdb (peut servir?)
|
||||
|
||||
if ! [[ "$CMED" =~ ^[0-9]+$ ]]
|
||||
then
|
||||
zenity --warning --width ${large} --text "Vous devez renseigner un numéro! Merci de recommencer... Seules les vidéos référencées sur The Movie Database sont acceptées." && exit 1
|
||||
fi
|
||||
MEDIAID=$CMED
|
||||
MEDIAKEY="TMDB_$MEDIAID"
|
||||
|
||||
# VIDEO TITLE
|
||||
|
@ -410,19 +463,32 @@ GENRES="[\"$(echo ${FILM_GENRES} | sed s/\|/\",\"/g)\"]"
|
|||
# --text "${FILE_NAME} (${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};${GROUPES};${RES})"
|
||||
# [ $? == 1 ] && echo "ANNULATION." && exit 1
|
||||
|
||||
########################################################################
|
||||
# Screen capture is used as thumbnail
|
||||
########################################################################
|
||||
if [[ $(echo $DISPLAY | cut -d ':' -f 1) == "" ]]; then
|
||||
zenity --warning --width 300 --text "Cliquez nous capturons votre écran comme vignette MEDIA"
|
||||
sleep 1
|
||||
import -window root /tmp/screen.png
|
||||
fi
|
||||
|
||||
###################################
|
||||
### MOVING FILE TO ~/astroport ####
|
||||
###################################
|
||||
mkdir -p ~/astroport/${CAT}/${MEDIAID}/
|
||||
mv /tmp/screen.png ~/astroport/${CAT}/${MEDIAID}/screen.png
|
||||
|
||||
mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT}"
|
||||
|
||||
if [ $? == 0 ]; then
|
||||
zenity --warning --width ${large} --text "Votre fichier ~/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} est prêt à embarquer. Cliquez sur OK puis patientez quelques minutes..."
|
||||
zenity --warning --width ${large} --text "Votre fichier ~/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} est prêt à embarquer. Cliquez sur OK, nous allons préparer son script d'ajout à Astroport..."
|
||||
else
|
||||
zenity --warning --width ${large} --text "Impossible de déplacer votre fichier ${FILE_PATH}/${FILE_NAME} vers ~/astroport - EXIT -"
|
||||
exit 1
|
||||
fi
|
||||
FILE_NAME="${TITLE}.${FILE_EXT}"
|
||||
|
||||
|
||||
## CREATE "~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt"
|
||||
URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
|
||||
echo "${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
|
||||
|
@ -475,31 +541,6 @@ echo "${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/i
|
|||
|
||||
;;
|
||||
|
||||
# _ _ _
|
||||
#| | _____ __| (_)
|
||||
#| |/ / _ \ / _` | |
|
||||
#| < (_) | (_| | |
|
||||
#|_|\_\___/ \__,_|_|
|
||||
# COPY UQLOAD LINKS DETECTED IN KODI LOG
|
||||
##############################################
|
||||
### TODO INSTALL FROM START and AUTO SCRAPE KODI LOG
|
||||
##############################################
|
||||
kodi)
|
||||
# OPTION REMOVED
|
||||
if [[ ! -f $HOME/.local/bin/uqload_downloader ]]; then
|
||||
cd /tmp
|
||||
git clone https://github.com/papiche/uqload_downloader.git
|
||||
cd uqload_downloader/cli
|
||||
./download_from_kodi_log.sh
|
||||
[[ -f $HOME/.local/bin/uqload_downloader ]] && zenity --warning --width ${large} --text "INSTALLATION download_from_kodi_log.sh OK"
|
||||
cp download_from_kodi_log.sh $HOME/.local/bin/
|
||||
else
|
||||
## UTILISEZ $HOME/.local/bin/download_from_kodi_log.sh
|
||||
zenity --warning --width ${large} --text "UTILISEZ download_from_kodi_log.sh en ligne de commande..."
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
|
||||
########################################################################
|
||||
# CASE ## DEFAULT
|
||||
########################################################################
|
||||
|
@ -512,9 +553,15 @@ echo "${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/i
|
|||
|
||||
esac
|
||||
|
||||
## Extract thumbnail
|
||||
MIME=$(file --mime-type $HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} | cut -d ' ' -f 2)
|
||||
|
||||
[[ $(echo $MIME | grep video) ]] && ffmpeg -i $HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} -r 1/300 -vf scale=-1:120 -vcodec png $HOME/astroport/${CAT}/${MEDIAID}/${CAT}.png
|
||||
[[ ! -f /astroport/${CAT}/${MEDIAID}/${CAT}.png ]] && echo "DEFAULT THUMBNAIL NEEDED"
|
||||
|
||||
########################################################################
|
||||
# ADD $FILE to IPFS / ASTROPORT / KODI
|
||||
echo "new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\""
|
||||
echo "new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\"" $3
|
||||
[[ -f ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt ]] && cat ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
|
||||
# LOG NOISE # [[ -f ~/astroport/${CAT}/${MEDIAID}/video.json ]] && cat ~/astroport/${CAT}/${MEDIAID}/video.json
|
||||
########################################################################
|
||||
|
@ -526,8 +573,37 @@ echo "new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_N
|
|||
########################################################################
|
||||
[[ "$CAT" == "film" || "$CAT" == "serie" ]] && CHOICE="TMDB"
|
||||
|
||||
~/.zen/astrXbian/zen/new_file_in_astroport.sh "$HOME/astroport/${CAT}/${MEDIAID}/" "${FILE_NAME}" > /tmp/${MEDIAKEY}.log 2>&1
|
||||
[ ! $? == 0 ] && zenity --warning --width 300 --text "Désolé une erreur est survenue... Signalez ce log /tmp/${MEDIAKEY}.log sur https://git.p2p.legal/axiom-team/astrXbian" && exit 1
|
||||
timestamp=$(date -u +%s%N | cut -b1-13)
|
||||
|
||||
|
||||
## AUTO DESTRUCTIVE LATER ADD TO ASTROPORT SCRIPT
|
||||
echo "MEDIAKEY=${MEDIAKEY}" > ~/astroport/Add_${MEDIAKEY}_script.sh
|
||||
#[[ $CHOICE == "TMDB" ]] && echo "echo \"Encoder ${FILE_NAME} en h265 avant import ? Tapez sur ENTER.. Sinon saisissez qqch avant...\"
|
||||
#reponse=\$1
|
||||
#[[ ! \$reponse ]] && read reponse
|
||||
#if [[ ! \$reponse ]]; then
|
||||
# ffmpeg -i \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}\" -vcodec libx265 -crf 28 $HOME/astroport/${MEDIAID}.mp4
|
||||
# mv \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}\" \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}.old\"
|
||||
# mv $HOME/astroport/${MEDIAID}.mp4 \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}.mp4\"
|
||||
# ~/.zen/astrXbian/zen/new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}.mp4\"
|
||||
#else" >> ~/astroport/Add_${MEDIAKEY}_script.sh
|
||||
|
||||
# $3 is the G1PUB of the PLAYER (search in code to find where)
|
||||
echo "~/.zen/astrXbian/zen/new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\" \"$3\"" >> ~/astroport/Add_${MEDIAKEY}_script.sh
|
||||
|
||||
#[[ $CHOICE == "TMDB" ]] && echo "fi" >> ~/astroport/Add_${MEDIAKEY}_script.sh
|
||||
|
||||
echo "rm -f /tmp/\${MEDIAKEY}.pass
|
||||
rm -f /tmp/\${MEDIAKEY}.dunikey ## REMOVE KEYS
|
||||
mv ~/astroport/Add_${MEDIAKEY}_script.sh ~/astroport/Done_${FILE_NAME}.sh
|
||||
" >> ~/astroport/Add_${MEDIAKEY}_script.sh
|
||||
|
||||
chmod +x ~/astroport/Add_${MEDIAKEY}_script.sh
|
||||
|
||||
## DELAYED IPFS ADD TO ASTROPORT ... COULD BE MANAGED BY CRON
|
||||
|
||||
# ~/.zen/astrXbian/zen/new_file_in_astroport.sh "$HOME/astroport/${CAT}/${MEDIAID}/" "${FILE_NAME}" > /tmp/${MEDIAKEY}.log 2>&1
|
||||
# [ ! $? == 0 ] && zenity --warning --width 300 --text "Désolé une erreur est survenue... Signalez ce log /tmp/${MEDIAKEY}.log sur https://git.p2p.legal/axiom-team/astrXbian" && exit 1
|
||||
########################################################################
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
@ -535,36 +611,39 @@ echo "new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_N
|
|||
########################################################################
|
||||
MEDIAPUBKEY=$(cat $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/MEDIAPUBKEY)
|
||||
|
||||
[ ! $2 ] && zenity --width=500 --height=500 --text-info \
|
||||
--title="QR CODE MEDIA ${MEDIAKEY} (PASS=$(cat /tmp/${MEDIAKEY}.pass))" \
|
||||
--html \
|
||||
--url="http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png" \
|
||||
--checkbox="Je m'engage à respecter les auteurs et promet d'offrir la Monnaie Libre collectée à qui de droit."
|
||||
#[ ! $2 ] && zenity --width=500 --height=500 --text-info \
|
||||
# --title="QR CODE MEDIA ${MEDIAKEY} (PASS=$(cat /tmp/${MEDIAKEY}.pass))" \
|
||||
# --html \
|
||||
# --url="http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png" \
|
||||
# --checkbox="Je m'engage à respecter les auteurs et promet d'offrir la Monnaie Libre collectée à qui de droit."
|
||||
|
||||
########################################################################
|
||||
echo "# ZENBALANCE for ${MEDIAKEY} , WALLET $MEDIAPUBKEY"
|
||||
########################################################################
|
||||
FILE_SIZE=$(cat $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.filesize)
|
||||
FILE_SIZE=$(echo "${FILE_SIZE}" | awk '{ split( "B KB MB GB TB PB" , v ); s=1; while( $1>1024 ){ $1/=1024; s++ } printf "%.2f %s", $1, v[s] }')
|
||||
FILE_BSIZE=$(du -b "$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}" | awk '{print $1}')
|
||||
FILE_SIZE=$(echo "${FILE_BSIZE}" | awk '{ split( "B KB MB GB TB PB" , v ); s=1; while( $1>1024 ){ $1/=1024; s++ } printf "%.2f %s", $1, v[s] }')
|
||||
|
||||
G1BALANCE=$(~/.zen/astrXbian/zen/jaklis/jaklis.py balance -p $G1PUB) && [[ "$G1BALANCE" == "null" ]] && G1BALANCE=0 || G1BALANCE=$(echo "$G1BALANCE" | cut -d '.' -f 1)
|
||||
if [[ $G1BALANCE -gt 0 ]]; then
|
||||
[ ! $2 ] && G1AMOUNT=$(zenity --entry --width 400 --title "VIRER DE LA MONNAIE LIBRE AU MEDIAKEY (MAX $G1BALANCE)" --text "Combien de JUNE (G1) souhaitez-vous offrir à ce MEDIA ($FILE_SIZE)" --entry-text="")
|
||||
[[ ! "$G1AMOUNT" =~ ^[0-9]+$ ]] && G1AMOUNT=0
|
||||
~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey pay -p ${MEDIAPUBKEY} -a $G1AMOUNT -c "#ASTROPORT:${MEDIAKEY} DON"
|
||||
ZENBALANCE=$(echo "100 * $G1AMOUNT" | bc -l | cut -d '.' -f 1)
|
||||
else
|
||||
#G1BALANCE=$(~/.zen/astrXbian/zen/jaklis/jaklis.py balance -p $G1PUB) && [[ "$G1BALANCE" == "null" ]] && G1BALANCE=0 || G1BALANCE=$(echo "$G1BALANCE" | cut -d '.' -f 1)
|
||||
#if [[ $G1BALANCE -gt 0 ]]; then
|
||||
# [ ! $2 ] && G1AMOUNT=$(zenity --entry --width 400 --title "VIRER DE LA MONNAIE LIBRE AU MEDIAKEY (MAX $G1BALANCE)" --text "Combien de JUNE (G1) souhaitez-vous offrir à ce MEDIA ($FILE_SIZE)" --entry-text="")
|
||||
# [[ ! "$G1AMOUNT" =~ ^[0-9]+$ ]] && G1AMOUNT=0
|
||||
# ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey pay -p ${MEDIAPUBKEY} -a $G1AMOUNT -c "#ASTROPORT:${MEDIAKEY} DON"
|
||||
# ZENBALANCE=$(echo "100 * $G1AMOUNT" | bc -l | cut -d '.' -f 1)
|
||||
#else
|
||||
ZENBALANCE=0
|
||||
fi
|
||||
#fi
|
||||
########################################################################
|
||||
########################################################################
|
||||
echo "${MEDIAKEY} = RECORDED TO IPFS."
|
||||
cat /tmp/${MEDIAKEY}.log
|
||||
if [ $1 ]; then
|
||||
bash ~/astroport/Add_${MEDIAKEY}_script.sh "noh265"
|
||||
[ $? == 0 ] && echo "${MEDIAKEY} is RECORDED in ASTROPORT. GOOD." && exit 0
|
||||
|
||||
rm -f /tmp/${MEDIAKEY}.pass
|
||||
rm -f /tmp/${MEDIAKEY}.dunikey ## REMOVE KEYS
|
||||
|
||||
if [ ! $2 ]; then
|
||||
[ $? == 0 ] && zenity --warning --width 300 --text "OK! MEDIA transféré ($ZENBALANCE ZEN). URL LOCALHOST prête à coller (/tmp/${MEDIAKEY}.log)" && exit 0 \
|
||||
|| zenity --warning --width 300 --text "Désolé une erreur est survenue... LOG: cat /tmp/${MEDIAKEY}.log" && exit 1
|
||||
else
|
||||
zenity --question --width 300 --text "OK! ~/astroport/Add_${MEDIAKEY}_script.sh ($FILE_SIZE). Voulez-vous lancer immédiatement l'ajout dans Astroport ?"; \
|
||||
[ $? == 0 ] && bash ~/astroport/Add_${MEDIAKEY}_script.sh "noh265" \
|
||||
&& zenity --warning --width 300 --text "Ajoutez ce media dans vos journaux public 'qo-op' ou administratif 'moa'" \
|
||||
&& [[ $(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) ]] \
|
||||
&& xdg-open "http://127.0.0.1:8080/ipns/$(cat ~/.zen/game/players/.current/.playerns)" \
|
||||
|| ( zenity --warning --width 300 --text "Désolé une erreur est survenue... cat /tmp/${MEDIAKEY}.log" && exit 1 )\
|
||||
fi
|
||||
exit 0
|
||||
|
|
|
@ -20,7 +20,7 @@ source $HOME/.profile
|
|||
|
||||
#### CONTROL STATION IPFS DAEMON
|
||||
## timeout is fixing ipfs minimum response time, before considering stuck process
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
IPFSNODEID=$(ipfs id --timeout=1s | jq -r .ID)
|
||||
howmany=$(cat /tmp/ipfs.timeout)
|
||||
if [[ ! $IPFSNODEID ]]; then
|
||||
## wait a howmany timeout before restarting ipfs
|
||||
|
@ -36,20 +36,33 @@ fi
|
|||
## CONTROL IPFS IS RUNNING OR RESTART
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
||||
if [[ ! ${YOU} ]]; then
|
||||
|
||||
# Refresh Peering.Peers
|
||||
ipfs config --json Peering.Peers '[]'
|
||||
# DHT PUBSUB mode
|
||||
ipfs config Pubsub.Router gossipsub
|
||||
# MAXSTORAGE = 1/2 available
|
||||
availableDiskSize=$(df -P ~/ | awk 'NR>1{sum+=$4}END{print sum}')
|
||||
diskSize="$((availableDiskSize / 2))"
|
||||
ipfs config Datastore.StorageMax $diskSize
|
||||
## Activate Rapid "ipfs p2p"
|
||||
ipfs config --json Experimental.Libp2pStreamMounting true
|
||||
ipfs config --json Experimental.P2pHttpProxy true
|
||||
# control water levels for swarm
|
||||
ipfs config --json Swarm.ConnMgr.LowWater 50
|
||||
ipfs config --json Swarm.ConnMgr.HighWater 100
|
||||
|
||||
[ $howmany -gt 3 ] && [[ "${USER}" == "xbian" ]] && sudo service ipfs restart || sudo systemctl restart ipfs
|
||||
echo "ERROR! ipfs daemon was not running. RELAUNCHING."
|
||||
exit 1
|
||||
fi
|
||||
########################################################################
|
||||
# CORRECT VSTREAM ASTROPORT SITE/ART REMOVED AFTER PLUGIN UPDATE
|
||||
# CORRECT VSTREAM ASTROPORT SITE/ART REMOVED AFTER PLUGIN UPDATE : TODO DEBUG KODI PLUGIN !!! TODO MAKE PLAYER ROTATION
|
||||
[[ ! -f ~/.kodi/addons/plugin.video.vstream/resources/sites/astroport.py ]] && [[ -f ~/.zen/astroport.py ]] && cp -f ~/.zen/astroport.py ~/.kodi/addons/plugin.video.vstream/resources/sites/
|
||||
[[ ! -f ~/.kodi/addons/plugin.video.vstream/resources/art/astroport.png ]] && cp ~/.zen/astrXbian/.install/.kodi/addons/plugin.video.vstream/resources/art/astroport.png ~/.kodi/addons/plugin.video.vstream/resources/art/ 2>/dev/null
|
||||
########################################################################
|
||||
|
||||
### NO IP GATEWAY : EXIT
|
||||
### NO IP GATEWAY : EXIT (COULD BE Astroport.ONE Ambassy Alone !!)
|
||||
ping -q -w 1 -c 1 `ip r | grep default | cut -d ' ' -f 3` 2>&1>/dev/null && echo "LAN OK" || exit 1
|
||||
|
||||
########################################################################
|
||||
|
@ -116,7 +129,7 @@ if [[ $(($runtime % 4)) == 0 ]]; then
|
|||
[[ $g1pub ]] && latency=$(ipfs ping --timeout=1s -n 1 /p2p/$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1pub 2>/dev/null) 2>/dev/null | grep "Average" | cut -d ':' -f 2);
|
||||
[[ $latency ]] && echo $latency > ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/$g1pub/ping.average.txt
|
||||
## AVERAGE PING cat ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/*/ping.average.txt
|
||||
# for line in $(ls ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/*/ping.average.txt); do g1friend=$(echo $line | cut -d '/' -f 8); ipfsnodeid=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1friend); cat ~/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid; cat $line; done
|
||||
# for line in $(ls ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/*/ping.average.txt); do g1friend=$(echo $line | cut -d '/' -f 8); ipfsnodeid=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1friend); cat ~/.zen/ipfs_swarm/.$ipfsnodeid/.player; cat $line; done
|
||||
done
|
||||
fi
|
||||
########################################################################
|
||||
|
@ -151,8 +164,19 @@ fi
|
|||
if [[ $(($runtime % 15)) == 0 ]]; then
|
||||
|
||||
########## DESYNCH SWARM NODE REQUESTS #################
|
||||
[[ ! -d ~/.zen/Astroport.ONE ]] && cd ~/.zen && git clone https://git.p2p.legal/qo-op/Astroport.ONE.git
|
||||
[[ -d ~/.zen/Astroport.ONE ]] && cd ~/.zen/Astroport.ONE && sleep $((1 + RANDOM % 12)) && git pull
|
||||
|
||||
########################################################################
|
||||
# RE/LAUNCHING INSTASCAN API
|
||||
instascan=$(ps auxf --sort=+utime | grep -w nc | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
||||
[[ $instascan ]] && killall instascan_login.sh && killall nc # && ~/.zen/Astroport.ONE/tools/instascan_login.sh &
|
||||
# [[ ! $instascan ]] && ~/.zen/Astroport.ONE/tools/instascan_login.sh &
|
||||
|
||||
# git reset --hard
|
||||
git pull
|
||||
cd $MY_PATH
|
||||
sleep $((1 + RANDOM % 3)) && git pull
|
||||
|
||||
[[ ! $? == 0 ]] && echo "GIT.P2P.LEGAL IS UNREACHABLE"
|
||||
# if [[ $(diff ~/.zen/astrXbian/.install/.kodi/userdata/addon_data/plugin.video.vstream/settings.xml ~/.kodi/userdata/addon_data/plugin.video.vstream/settings.xml) ]]; then
|
||||
# cp ~/.zen/astrXbian/.install/.kodi/userdata/addon_data/plugin.video.vstream/settings.xml ~/.kodi/userdata/addon_data/plugin.video.vstream/settings.xml
|
||||
|
@ -162,7 +186,7 @@ if [[ $(($runtime % 15)) == 0 ]]; then
|
|||
## IN CASE OF jaklis UPGRADE ACTIVATE AND REMOVE
|
||||
## cd ~/.zen/astrXbian/zen/jaklis; ./setup.sh; cd -
|
||||
|
||||
# CLEAN AND REMOVE BAD DIRECTORIES
|
||||
# CLEAN AND REMOVE BAD DIRECTORIES should be in .$IPFSNODEID to avoid Station collision.
|
||||
## BYPASS index.html DELETION
|
||||
[[ -f ~/.zen/ipfs/index.html ]] && cp ~/.zen/ipfs/index.html /tmp/ipfsindex.html
|
||||
|
||||
|
@ -183,16 +207,6 @@ if [[ $(($runtime % 15)) == 0 ]]; then
|
|||
|
||||
fi
|
||||
|
||||
if [[ $(($minute % 30)) == 0 ]]; then
|
||||
########## NextCloud.SMS GUILDE STATION ##############
|
||||
if [[ -e ~/.zen/SMS/ ]];then
|
||||
# DONE at 20h01 in taurus crontab
|
||||
# [[ "$timebar" == "18:30" ]] && /home/${YOU}/.zen/SMSAPP/sms/_SEND2GUILDE.sh "BIODYN" ## PREPARE BIODYN GUILDE SMS => 20h30 in France
|
||||
/home/${YOU}/.zen/SMSAPP/sms_send_tosend.sh
|
||||
fi
|
||||
########## SMS GUILDE STATION ##############
|
||||
fi
|
||||
|
||||
# __ __ _____ ____
|
||||
# __/ // /_/ ___/ ______ __________ ___ / __ \
|
||||
# /_ _ __/\__ \ | /| / / __ `/ ___/ __ `__ \/ / / /
|
||||
|
@ -204,7 +218,9 @@ fi
|
|||
## SYNC GCHANGE EVERY 12 hours runtime
|
||||
if [[ $(($runtime % 725)) == 0 || "$runtime" == "5" ]]; then
|
||||
kill -9 $(ps auxf --sort=+utime | grep -w gchange_INIT.sh | grep -v -E 'color=auto|grep' | tail -n 1 | awk '{print $2}') && echo "KILLING gchange_INIT.sh"
|
||||
$MY_PATH/zen/gchange_INIT.sh 2>&1 > /home/${YOU}/.zen/ipfs/.${IPFSNODEID}/.log.gchange_INIT.txt
|
||||
# $MY_PATH/zen/gchange_INIT.sh 2>&1 > /home/${YOU}/.zen/ipfs/.${IPFSNODEID}/.log.gchange_INIT.txt
|
||||
# ~/.zen/Astroport.ONE/tools/Connect_PLAYER_To_Gchange.sh > /home/${YOU}/.zen/ipfs/.${IPFSNODEID}/.log.gchange_INIT.tx
|
||||
# TODO REWRITE GCHANGE SYNC.
|
||||
fi
|
||||
# If NEW ~/.ipfs/config.new => restarting IPFS daemon (not too often as 6h)
|
||||
if [[ -f ~/.ipfs/config.new && $(diff ~/.ipfs/config.new ~/.ipfs/config) && $runtime -gt 360 ]]; then
|
||||
|
@ -220,12 +236,12 @@ if [[ $(($runtime % 370)) == 0 || "$runtime" == "10" ]]; then
|
|||
$MY_PATH/zen/gchange_IPFS_swarm.sh 2>&1 > /home/${YOU}/.zen/ipfs/.${IPFSNODEID}/.log.gchange_IPFS_swarm.txt
|
||||
fi
|
||||
# SYNC IPFS FRIENDS SWARM
|
||||
if [[ $(($runtime % 25)) == 0 ]]; then
|
||||
kill -9 $(ps auxf --sort=+utime | grep -w p4n.swarmscraper.sh | grep -v -E 'color=auto|grep' | tail -n 1 | awk '{print $2}') && echo "KILLING p4n.swarmscraper.sh"
|
||||
if [[ $(($runtime % 26)) == 0 ]]; then
|
||||
kill -9 $(ps auxf --sort=+utime | grep -w ipfs_SWARM_refresh.sh | grep -v -E 'color=auto|grep' | tail -n 1 | awk '{print $2}') && echo "KILLING ipfs_SWARM_refresh.sh"
|
||||
killall chromium
|
||||
$MY_PATH/zen/ipfs_SWARM_refresh.sh 2>&1 > /home/${YOU}/.zen/ipfs/.${IPFSNODEID}/.log.ipfs_SWARM_refresh.txt
|
||||
$MY_PATH/zen/tools/autoPINfriends.sh 2>&1 > /home/${YOU}/.zen/ipfs/.${IPFSNODEID}/.log.autoPINfriends.txt
|
||||
fi
|
||||
|
||||
##################################################################
|
||||
#
|
||||
# _________ ______
|
||||
|
@ -235,6 +251,8 @@ fi
|
|||
# /___/\___/_/ /_/ /_/ /_/ |_\____/
|
||||
#
|
||||
# REFRESHing MEDIAKEY / ZenTAG nano DHTs => Zen File ECONOMY wallet cycle
|
||||
### IMPORTANT !!!!!!! IMPORTANT !!!!!! Maintains MEDIAKEY alive
|
||||
################################################
|
||||
if [[ $(($runtime % 7)) == 0 ]]; then
|
||||
|
||||
#### Refresh & publish MEDIAKEYs
|
||||
|
@ -257,6 +275,7 @@ fi
|
|||
#
|
||||
# ON Rpi/xbian files added in ~/astroport are monitored to activate "new_file_in_astroport.sh"
|
||||
# Transfert ~/astroport/*/files to IPFS and make Astroport/KODI indexes in IPNS
|
||||
## TEST AUTOMATIC NEW FILE IMPORT. xbian only.
|
||||
if [[ "$USER" == "xbian" ]]; then
|
||||
[[ ! -e $HOME/astroport ]] && mkdir -p $HOME/astroport
|
||||
# VERIFY LAUNCH inotifywait ?!
|
||||
|
@ -292,12 +311,12 @@ echo '
|
|||
# GOOD BYE GOOGLE, AMAZON, FACEBOOK, APPLE, MICROSOFT. LIBRE WE ARE.
|
||||
####################################################################
|
||||
# REFRESH & UPGRADE youtube-dl
|
||||
$MY_PATH/.install/youtube-dl.sh ## LET IT A WHILE FOR ALL SWARM EXECUTE ACTION... AND REMOVE.
|
||||
youtube-dl --rm-cache-dir
|
||||
youtube-dl -U
|
||||
|
||||
|
||||
### INDEX DATA MIGRATION SCRIPTS
|
||||
$MY_PATH/actions/p4n.data_evolution.sh &
|
||||
# $MY_PATH/actions/p4n.data_evolution.sh &
|
||||
## LET IT A WHILE FOR ALL SWARM EXECUTE ACTION... AND REMOVE.
|
||||
|
||||
##################################################################
|
||||
|
@ -319,6 +338,7 @@ echo '
|
|||
|
||||
# New full test review in gchange_INIT.sh
|
||||
rm -f ~/.ipfs/test.disk
|
||||
rm -f /tmp/instascan.log
|
||||
|
||||
# LOG ROTATE WEEKLY
|
||||
[[ -f /tmp/astroport.log ]] && [[ ! -f ~/.zen/astroport.$weeknumber.log.tgz ]] && tar cvzf ~/.zen/astroport.$weeknumber.log.tgz /tmp/astroport.log && echo "" > /tmp/astroport.log
|
||||
|
|
|
@ -0,0 +1,128 @@
|
|||
#!/bin/bash
|
||||
[ "${DEBUG}" ] && set -x
|
||||
|
||||
i_am() {
|
||||
echo 'v0.5.0'
|
||||
}
|
||||
|
||||
i_am_root() {
|
||||
[ $(id -u) -eq 0 ]
|
||||
}
|
||||
|
||||
i_am_xbian() {
|
||||
[[ "$USER" == "xbian" ]]
|
||||
}
|
||||
|
||||
i_should_install() {
|
||||
[[ ! -f ~/.zen/secret.dunikey ]]
|
||||
}
|
||||
|
||||
import_astrXbian() {
|
||||
echo "=== Clonage git CODE 'astrXbian' + 'Astroport.ONE' depuis https://git.p2p.legal"
|
||||
mkdir -p ~/.zen
|
||||
cd ~/.zen
|
||||
# TODO INSTALL FROM IPFS / IPNS
|
||||
[ ! -d astrXbian ] \
|
||||
&& git clone https://git.p2p.legal/axiom-team/astrXbian.git \
|
||||
|| GIT_DIR=astrXbian/.git git pull
|
||||
[ ! -d Astroport.ONE ] \
|
||||
&& git clone https://git.p2p.legal/qo-op/Astroport.ONE.git \
|
||||
|| GIT_DIR=Astroport.ONE git pull
|
||||
}
|
||||
|
||||
import_astroport() {
|
||||
echo "INITIALISATIOn Astroport/KODI"
|
||||
echo "Appuyez sur la touche ENTREE pour démarrer le mode Aventure"
|
||||
echo "sinon interrompez ici l'installation, et activez votre Ambassade ~/.zen/Astroport.ONE/start.sh"
|
||||
read
|
||||
~/.zen/Astroport.ONE/adventure.sh
|
||||
# ~/.zen/astrXbian/ISOconfig.sh
|
||||
}
|
||||
|
||||
import_ipfs() {
|
||||
## Scripts pour systemd ou InitV (xbian)
|
||||
echo "=== Activation SYSTEM IPFS"
|
||||
~/.zen/astrXbian/.install/ipfs_alone.sh
|
||||
}
|
||||
|
||||
import_jaklis() {
|
||||
echo "=== Configuration jaklis: Centre de communication CESIUM+ GCHANGE+"
|
||||
cd ~/.zen/astrXbian/zen/jaklis
|
||||
./setup.sh
|
||||
}
|
||||
|
||||
import_kodi() {
|
||||
[[ ! $(which kodi) && "$user" != "xbian" ]] &&\
|
||||
echo ">>> installation kodi + vstream = votre videotheque ! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" \
|
||||
&& sudo apt-get install kodi -y \
|
||||
&& ~/.zen/astrXbian/.install/kodi_uqload_downloader.sh
|
||||
|
||||
echo "=== IMPORT configuration ASTROPORT dans ~/.kodi"
|
||||
cp -Rf ~/.zen/astrXbian/.install/.kodi ~/
|
||||
}
|
||||
|
||||
install_requirements() {
|
||||
echo "mise à jour des dépots de votre distribution..."
|
||||
sudo apt-get update
|
||||
|
||||
PACKAGES=""
|
||||
INSTALL_PACKAGES=""
|
||||
[[ "$user" != "xbian" ]] && PACKAGES="x11-utils xclip zenity handbrake*"
|
||||
PACKAGES="${PACKAGES} git fail2ban netcat-traditional inotify-tools curl net-tools libsodium* python3-dev python3-pip python3-setuptools python3-wheel python3-dotenv swig libgpgme-dev mpack libssl-dev libffi-dev"
|
||||
PACKAGES="${PACKAGES} build-essential qrencode jq bc file gawk yt-dlp ffmpeg sqlite dnsutils v4l-utils vlc mp3info musl-dev openssl* cargo detox nmap httrack html2text ssmtp imagemagick libcurl4-openssl-dev"
|
||||
# python pip install dependencies
|
||||
PACKAGES="${PACKAGES} libcairo2-dev libgirepository1.0-dev pkg-config"
|
||||
# AstroGEEK OpenCV = 'Intelligence Amie'
|
||||
PACKAGES="${PACKAGES} python3-opencv"
|
||||
for package in ${PACKAGES}; do\
|
||||
[ $(dpkg-query -W -f='${status}' ${package} 2>/dev/null | grep -c "ok installed") -eq 0 ] \
|
||||
&& apt-cache show ${package} > /dev/null 2>&1 \
|
||||
&& INSTALL_PACKAGES="${INSTALL_PACKAGES} ${package}"
|
||||
done
|
||||
|
||||
[ -n "${INSTALL_PACKAGES# *}" ] \
|
||||
&& echo ">>> installation ${INSTALL_PACKAGES} <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" \
|
||||
&& sudo apt install -y ${INSTALL_PACKAGES}
|
||||
|
||||
## Correct PDF restrictions for imagemagick
|
||||
echo "# Correction des droits export PDF imagemagick"
|
||||
if [[ $(cat /etc/ImageMagick-6/policy.xml | grep PDF) ]]; then
|
||||
cat /etc/ImageMagick-6/policy.xml | grep -Ev PDF > /tmp/policy.xml
|
||||
sudo cp /tmp/policy.xml /etc/ImageMagick-6/policy.xml
|
||||
fi
|
||||
|
||||
echo "###########################"
|
||||
echo "## INSTALL PYTHON CRYPTO LAYER "
|
||||
echo "###########################"
|
||||
echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.bashrc && source ~/.bashrc; echo ">>> PATH=$PATH"
|
||||
python3 -m pip install -U pip
|
||||
python3 -m pip install setuptools wheel
|
||||
python3 -m pip install cryptography Ed25519 base58 google duniterpy pynacl pgpy gpg
|
||||
python3 -m pip install pycairo
|
||||
python3 -m pip install nicotine-plus silkaj
|
||||
python3 -m pip install protobuf==3.19.0
|
||||
|
||||
if [[ "$USER" == "pi" ]]; then ## PROPOSE QR_CODE PRINTER SUR RPI
|
||||
echo "Ambassade? Souhaitez vous ajouter imprimante 'brother_ql'? Saisissez OUI, sinon laissez vide et tapez sur ENTRER"
|
||||
read saisie
|
||||
if [[ $saisie != "" ]]; then
|
||||
sudo apt install printer-driver-all cups -y
|
||||
sudo pip3 install brother_ql
|
||||
sudo cupsctl --remote-admin
|
||||
sudo usermod -aG lpadmin pi
|
||||
sudo usermod -a -G gammu pi
|
||||
fi
|
||||
fi
|
||||
|
||||
# python3 -m pip install -U silkaj
|
||||
## python -> python3 link
|
||||
sudo ln -f -s /usr/bin/python3 /usr/bin/python
|
||||
}
|
||||
|
||||
prepare_next_boot() {
|
||||
cat /etc/rc.local | grep -Ev "exit 0" > /tmp/new.rc.local ## REMOVE "exit 0"
|
||||
# PREPARE NEXT BOOT - Network config - NEXTBOOT - ISOConfig - NEXTBOOT - OK
|
||||
echo "su - xbian -c '~/.zen/astrXbian/FirstBOOT.sh'" >> /tmp/new.rc.local
|
||||
echo "exit 0" >> /tmp/new.rc.local
|
||||
sudo cp -f /tmp/new.rc.local /etc/rc.local
|
||||
}
|
172
install.sh
172
install.sh
|
@ -1,107 +1,63 @@
|
|||
#!/bin/bash
|
||||
|
||||
########################################################################
|
||||
# Version: 0.3
|
||||
# Version: 0.5.0
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
########################################################################
|
||||
{
|
||||
[ $(id -u) -eq 0 ] && echo "LANCEMENT root INTERDIT. Utilisez un simple utilisateur du groupe \"sudo\" SVP" && exit 1
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
|
||||
# MAIN #
|
||||
if [[ ! -f ~/.zen/secret.june ]];
|
||||
# INSTALLATION section of README does wget file install.sh and run it with bash
|
||||
if [ -f ${MY_PATH}/include.sh ]; then
|
||||
. ${MY_PATH}/include.sh
|
||||
else
|
||||
. <(wget -T3 -qO- https://git.p2p.legal/axiom-team/astrXbian/raw/branch/master/include.sh)
|
||||
fi
|
||||
|
||||
! type i_should_install >/dev/null 2>&1 && echo 'ERROR: Unable to load include.sh' && exit 1
|
||||
|
||||
i_am_root && echo "LANCEMENT root INTERDIT. Utilisez un simple utilisateur du groupe \"sudo\" SVP" && exit 1
|
||||
|
||||
# MAIN # SI AUCUNE CLEF DE STATION...
|
||||
if i_should_install;
|
||||
then
|
||||
|
||||
# Check requirements
|
||||
echo "AstrXbian installateur pour XBIAN (https://xbian.org) distributions DEBIAN et dérivées (https://www.linuxmint.com/)"
|
||||
sudo apt-get update
|
||||
#sudo apt-get install git fail2ban inotify-tools curl net-tools libsodium* python3-dev python3-pip python3-setuptools python3-wheel python3-dotenv mpack libssl-dev libffi-dev -y
|
||||
for i in git fail2ban inotify-tools curl net-tools libsodium* python3-dev python3-pip python3-setuptools python3-wheel python3-dotenv mpack libssl-dev libffi-dev; do
|
||||
if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
sudo apt install -y $i
|
||||
fi
|
||||
done
|
||||
[[ ! $(which ipfs) ]] && echo "=== installez ipfs !!" && echo "https://docs.ipfs.io/install/command-line/#official-distributions" && exit 1
|
||||
echo "astrxbian installateur pour distributions debian et dérivées : linuxmint (https://www.linuxmint.com/) ou xbian (https://xbian.org) recommandées"
|
||||
echo "appuyez sur entrer pour commencer."; read test; [[ "$test" != "" ]] && echo "sortie" && exit 0 ## ajouter confirmation à chaque nouvelle étape (+explications)
|
||||
echo
|
||||
|
||||
#sudo apt-get install build-essential qrencode jq bc gawk ffmpeg sqlite dnsutils v4l-utils vlc mp3info musl-dev openssl* cargo detox httrack html2text ssmtp sudo -y
|
||||
for i in build-essential qrencode jq bc gawk ffmpeg sqlite dnsutils v4l-utils vlc mp3info musl-dev openssl* cargo detox nmap httrack html2text ssmtp imagemagick ttf-mscorefonts-installer libcurl4-openssl-dev; do
|
||||
if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
sudo apt install -y $i
|
||||
fi
|
||||
done
|
||||
# Install requirements
|
||||
install_requirements
|
||||
|
||||
## Correct PDF restrictions for imagemagick
|
||||
if [[ $(cat /etc/ImageMagick-6/policy.xml | grep PDF) ]]; then
|
||||
cat /etc/ImageMagick-6/policy.xml | grep -Ev PDF > /tmp/policy.xml
|
||||
sudo cp /tmp/policy.xml /etc/ImageMagick-6/policy.xml
|
||||
fi
|
||||
# Clone astrXbian and Astroport.One
|
||||
import_astrXbian
|
||||
|
||||
[[ ! $(which kodi) && "$USER" != "xbian" ]] && sudo apt-get install kodi -y
|
||||
sudo apt-get install python3-opencv -y ## INSTALLATION IA par reconnaissance d'images
|
||||
[[ "$USER" != "xbian" ]] && sudo apt-get install x11-utils xclip zenity handbrake* -y
|
||||
if [[ ! $(which apache2) ]]; then
|
||||
########################################################################
|
||||
## INSTALL nginx + php + mariadb + ...
|
||||
# sudo apt-get install mariadb-server nginx python3-certbot-nginx certbot ssl-cert php-imap php-cli php-curl php-sqlite3 php-gd php-json php-xml php-mbstring php-gettext php-mysql php-fpm -y
|
||||
for i in mariadb-server nginx python3-certbot-nginx certbot ssl-cert php-imap php-cli php-curl php-sqlite3 php-gd php-json php-xml php-mbstring php-gettext php-mysql php-fpm; do
|
||||
if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
sudo apt install -y $i
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# Init ipfs
|
||||
# import_ipfs
|
||||
|
||||
## INSTALL PYTHON CRYPTO LAYER
|
||||
echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.bashrc && source ~/.bashrc
|
||||
python3 -m pip install -U pip
|
||||
python3 -m pip install -U setuptools wheel
|
||||
python3 -m pip install -U cryptography Ed25519 base58 google protobuf duniterpy
|
||||
if [[ "$USER" == "pi" ]]; then ## PROPOSE QR_CODE PRINTER
|
||||
echo "SOUHAITEZ VOUS AJOUTER UNE IMPRIMANTE A QR CODE? saisissez OUI, sinon tapez sur ENTREE"
|
||||
read saisie
|
||||
if [[ $saisie != "" ]]; then
|
||||
sudo apt install printer-driver-all cups -y
|
||||
sudo pip3 install brother_ql
|
||||
sudo cupsctl --remote-admin
|
||||
sudo usermod -aG lpadmin pi
|
||||
sudo usermod -a -G gammu pi
|
||||
fi
|
||||
fi
|
||||
# python3 -m pip install -U silkaj
|
||||
## python -> python3 link
|
||||
sudo ln -f -s /usr/bin/python3 /usr/bin/python
|
||||
## GIVE ACCESS TO www-data group
|
||||
sudo usermod -aG www-data $USER
|
||||
# Copy astroport config in kodi
|
||||
# import_kodi
|
||||
|
||||
# Jaklis setup
|
||||
import_jaklis
|
||||
|
||||
########################################################################
|
||||
echo "Clonage git astrXbian depuis https://git.p2p.legal"
|
||||
mkdir -p ~/.zen
|
||||
cd ~/.zen
|
||||
git clone https://git.p2p.legal/axiom-team/astrXbian.git
|
||||
|
||||
########################################################################
|
||||
echo "IMPORT configuration ASTROPORT dans ~/.kodi"
|
||||
cp -Rf ~/.zen/astrXbian/.install/.kodi ~/
|
||||
|
||||
########################################################################
|
||||
echo "Installation de IPFS https://ipfs.io"
|
||||
~/.zen/astrXbian/.install/ipfs_alone.sh
|
||||
|
||||
########################################################################
|
||||
echo "Configuration jaklis: Centre de communication CESIUM+ GCHANGE+ & MONNAIE LIBRE (gva protocole)"
|
||||
cd ~/.zen/astrXbian/zen/jaklis
|
||||
./setup.sh
|
||||
|
||||
########################################################################
|
||||
echo "Sécurisation DEFCON SUDOERS FAIL2BAN"
|
||||
echo "=== Sécurisation DEFCON SUDOERS FAIL2BAN"
|
||||
## XBIAN fail2ban ERROR correction ##
|
||||
#[....] Starting authentication failure monitor: fail2ban No file(s) found for glob /var/log/auth.log
|
||||
[[ "$USER" == "xbian" ]] && sudo sed -i "s/auth.log/faillog/g" /etc/fail2ban/paths-common.conf
|
||||
i_am_xbian && sudo sed -i "s/auth.log/faillog/g" /etc/fail2ban/paths-common.conf
|
||||
# NODE activates fail2ban IN zen/ipfs_SWARM_refresh.sh
|
||||
|
||||
### MODIFIYING /etc/sudoers ###
|
||||
[[ "$USER" == "xbian" ]] && echo "xbian ALL=(ALL) NOPASSWD:ALL" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/astroport')
|
||||
i_am_xbian && echo "xbian ALL=(ALL) NOPASSWD:ALL" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/astroport')
|
||||
|
||||
# PERSONNAL DEFCON LEVEL
|
||||
# cp ~/.zen/astrXbian/DEFCON ~/.zen/
|
||||
|
||||
if [[ "$USER" == "xbian" ]]
|
||||
if i_am_xbian
|
||||
then
|
||||
echo "enabling ipfs initV service autostart"
|
||||
cd /etc/rc2.d && sudo ln -s ../init.d/ipfs S02ipfs
|
||||
|
@ -123,50 +79,36 @@ fi
|
|||
mkdir -p ~/astroport/film
|
||||
mkdir -p ~/astroport/serie
|
||||
mkdir -p ~/astroport/anime
|
||||
echo '${TYPE};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};${GROUPES};${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME' > ~/astroport/ajouter_video.modele.txt
|
||||
## PREPARE www EXCHANGE ZONE ~/astroport/www
|
||||
wwwuser=$(ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1) || wwuser="www-data"
|
||||
sudo chown -R $USER:$wwwuser ~/astroport/www
|
||||
sudo chmod -R g+rw ~/astroport/www
|
||||
echo '${TYPE};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME' > ~/astroport/ajouter_video.modele.txt
|
||||
|
||||
|
||||
#######################################################################
|
||||
## CREATE symlinks for ~/.zen/www/swarm & me
|
||||
sudo chown -R $USER:www-data ~/.zen/astrXbian/www/boris
|
||||
sudo chmod -R g+rw ~/.zen/astrXbian/www/boris
|
||||
ln -s /home/$USER/.zen/ipfs_swarm ~/.zen/astrXbian/www/boris/swarm
|
||||
ln -s /home/$USER/.zen/ipfs ~/.zen/astrXbian/www/boris/me
|
||||
|
||||
## INSTALL open_with_linux.py
|
||||
## https://darktrojan.github.io/openwith/webextension.html
|
||||
# https://addons.mozilla.org/firefox/addon/open-with/
|
||||
# https://chrome.google.com/webstore/detail/open-with/cogjlncmljjnjpbgppagklanlcbchlno
|
||||
echo "## INSTALL open_with_linux.py ##
|
||||
## https://darktrojan.github.io/openwith/webextension.html"
|
||||
~/.zen/astrXbian/open_with_linux.py install
|
||||
|
||||
if [[ "$USER" != "xbian" ]]
|
||||
then
|
||||
## Desktop install
|
||||
echo "INITIALISATIOn Astroport/KODI"
|
||||
echo "Appuyez sur la touche ENTREE pour créer une nouvelle identité"
|
||||
echo "sinon interrompez ici l'installation pour copier la restauration d'une sauvegarde (~/.zen & ~/.ipfs)"
|
||||
read
|
||||
~/.zen/astrXbian/ISOconfig.sh
|
||||
else
|
||||
## Rpi Xbian install.
|
||||
cat /etc/rc.local | grep -Ev "exit 0" > /tmp/new.rc.local ## REMOVE "exit 0"
|
||||
# PREPARE NEXT BOOT - Network config - NEXTBOOT - ISOConfig - NEXTBOOT - OK
|
||||
echo "su - xbian -c '~/.zen/astrXbian/FirstBOOT.sh'" >> /tmp/new.rc.local
|
||||
echo "exit 0" >> /tmp/new.rc.local
|
||||
sudo cp -f /tmp/new.rc.local /etc/rc.local
|
||||
echo ">>> INFO : Ajoutez l'extension 'OpenWith' à votre navigateur !!
|
||||
# https://addons.mozilla.org/firefox/addon/open-with/
|
||||
# https://chrome.google.com/webstore/detail/open-with/cogjlncmljjnjpbgppagklanlcbchlno"
|
||||
|
||||
echo "STOP!! Redémarrer Xbian pour continuer la configuration de votre station Astroport/KODI"
|
||||
echo "Faites une ISO : sudo xbian-config"
|
||||
exit 0
|
||||
if ! i_am_xbian
|
||||
then
|
||||
## Desktop install
|
||||
import_astroport
|
||||
else
|
||||
## Rpi Xbian install.
|
||||
prepare_next_boot
|
||||
|
||||
echo "STOP!! Redémarrer Xbian pour continuer la configuration de votre station Astroport/KODI"
|
||||
echo "Faites une ISO : sudo xbian-config"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# MAIN # -f ~/.zen/secret.june (ISOConfig déjà lancé) ##
|
||||
else
|
||||
|
||||
echo "Installation déjà faite !!
|
||||
echo "Installation existante !!
|
||||
========================
|
||||
Astroport/KODI (Gchange)
|
||||
========================
|
||||
|
@ -180,3 +122,5 @@ https://astroport.com
|
|||
# MAIN #
|
||||
fi
|
||||
}
|
||||
|
||||
~/.zen/astrXbian/zen/cron_VRFY.sh
|
||||
|
|
|
@ -9,7 +9,7 @@ fi
|
|||
sudo usermod -a -G "$USER" www-data
|
||||
sudo chmod g+rw /var/www/html
|
||||
|
||||
## TODO ## INSTALLER SITE PROXY NGINX QUI REDIRIGE VERS https://127.0.0.1:8181/ipns/$IPFSNODEID/.$IPFSNODEID
|
||||
## TODO ## INSTALLER SITE PROXY NGINX QUI REDIRIGE VERS https://127.0.0.1:8080/ipns/$IPFSNODEID/.$IPFSNODEID
|
||||
# STRUCTURE DE DONNEE SITUE DANS ~/.zen/ipfs/ PUBLIEE PAR IPNS SELF
|
||||
|
||||
## AJOUT ADDONS NAVIGATEUR https://askubuntu.com/questions/73474/how-to-install-firefox-addon-from-command-line-in-scripts
|
||||
|
|
|
@ -176,9 +176,9 @@ mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/G1SSB
|
|||
# Give $XZUID to your (gchange friends)
|
||||
########################################################################
|
||||
XZUID="$(hostname)-$RANDOM$RANDOM"
|
||||
echo "SETTING _xbian.zuid PROFILE NAME = $XZUID"
|
||||
echo "$XZUID" > ~/.zen/ipfs/.${IPFSNODEID}/_xbian.zuid
|
||||
echo 'balise /ipns/$IPFSNODEID/.$IPFSNODEID/_xbian.zuid'
|
||||
echo "SETTING .player PROFILE NAME = $XZUID"
|
||||
echo "$XZUID" > ~/.zen/ipfs/.${IPFSNODEID}/.player
|
||||
echo 'balise /ipns/$IPFSNODEID/.$IPFSNODEID/.player'
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
|
|
@ -25,13 +25,13 @@ server {
|
|||
|
||||
|
||||
location /ipfs {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
||||
location /ipns {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
#shellcheck shell=sh
|
||||
|
||||
Describe 'AstrXbian'
|
||||
Describe 'install.sh'
|
||||
Include ./include.sh
|
||||
It 'should check it applies to me'
|
||||
When call i_am
|
||||
The output should eq 'v0.5.0'
|
||||
End
|
||||
It 'should check I am not superuser'
|
||||
When call i_am_root
|
||||
The status should not be success
|
||||
End
|
||||
It 'should check I need to install'
|
||||
When call i_should_install
|
||||
The status should be success
|
||||
End
|
||||
It 'should check requirements, but not tested'
|
||||
Skip "You should implement check_requirements tests"
|
||||
When run check_requirements
|
||||
The status should be success
|
||||
End
|
||||
It 'should import astrXbian, but not tested'
|
||||
Skip "You should implement import_astrXbian tests"
|
||||
When run import_astrXbian
|
||||
The status should be success
|
||||
End
|
||||
It 'should import astroport, but not tested'
|
||||
Skip "You should implement import_astroport tests"
|
||||
When run import_astroport
|
||||
The status should be success
|
||||
End
|
||||
It 'should import IPFS, but not tested'
|
||||
Skip "You should implement import_ipfs tests"
|
||||
When run import_ipfs
|
||||
The status should be success
|
||||
End
|
||||
It 'should import Jaklis, but not tested'
|
||||
Skip "You should implement import_jaklis tests"
|
||||
When run import_jaklis
|
||||
The status should be success
|
||||
End
|
||||
It 'should import Kodi, but not tested'
|
||||
Skip "You should implement import_kodi tests"
|
||||
When run import_kodi
|
||||
The status should be success
|
||||
End
|
||||
It 'should prepare astrXbian for first boot, but not tested'
|
||||
Skip "You should implement prepare_next_boot tests"
|
||||
When run prepare_next_boot
|
||||
The status should be success
|
||||
End
|
||||
End
|
||||
End
|
|
@ -4,7 +4,7 @@ if (!ini_get('display_errors')) {
|
|||
ini_set('display_errors', '1');
|
||||
}
|
||||
|
||||
define('STATION_NAME', exec('cat ../../../ipfs/.12D*/_xbian.zuid'));
|
||||
define('STATION_NAME', exec('cat ../../../ipfs/.12D*/.player'));
|
||||
define('HOST', 'astroport');
|
||||
define('THEME', 'astroport');
|
||||
define('SITENAME', 'Astroport "' . STATION_NAME . '"');
|
||||
|
@ -12,7 +12,7 @@ define('SITENAME', 'Astroport "' . STATION_NAME . '"');
|
|||
exec("/bin/bash -c './get_xzuid.sh'", $xzuid);
|
||||
define('XZUID', $xzuid[0]);
|
||||
|
||||
exec("/bin/bash -c './get_ipfs_node_id.sh'", $output);
|
||||
exec("/bin/bash -c './get_ipfs_node_id.sh' 2>/dev/null", $output);
|
||||
if (isset($output)) {
|
||||
|
||||
define('IPFS_NODE_ID', $output[0]);
|
||||
|
@ -42,7 +42,7 @@ define('YOUTUBE_THUMB', 'https://i.ytimg.com/vi/%s/mqdefault.jpg');
|
|||
define ('MEDIAQR','https://'.$_SERVER['SERVER_NAME'].'/ipns/%s/QR.png');
|
||||
|
||||
|
||||
// TODO : dynamic finding FRIENDS xzuid with "cat /home/$YOU/.zen/ipfs_swarm/.*/_xbian.zuid"
|
||||
// TODO : dynamic finding FRIENDS xzuid with "cat /home/$YOU/.zen/ipfs_swarm/.*/.player"
|
||||
$stations = [
|
||||
'virgo',
|
||||
'onelove',
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
|
||||
cat /home/$YOU/.zen/ipfs/.12D*/_xbian.zuid
|
||||
cat /home/$YOU/.zen/ipfs/.12D*/.player
|
||||
|
||||
|
|
|
@ -9,5 +9,13 @@
|
|||
<span><a href="https://git.p2p.legal/axiom-team/astrXbian/src/branch/master/www/boris">~/.zen/AstXbian/www/boris</a></span> × <span><a href="/ipfs/QmbmjSBWVNSSjJsMmCeFuFtQiuWyGg6iUGLRyvK7TUkFN8">Voir le code de la page</a></span>
|
||||
</p>
|
||||
</footer>
|
||||
<!-- Matomo Tag Manager -->
|
||||
<script>
|
||||
var _mtm = window._mtm = window._mtm || [];
|
||||
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.async=true; g.src='https://piwik.p2p.legal/js/container_XDhfGZPj.js'; s.parentNode.insertBefore(g,s);
|
||||
</script>
|
||||
<!-- End Matomo Tag Manager -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -63,13 +63,13 @@ printf ";
|
|||
}
|
||||
|
||||
location /ipfs {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
||||
location /ipns {
|
||||
proxy_pass http://127.0.0.1:8181;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
# Author:
|
||||
# Author:
|
||||
# Version: 0.1
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
########################################################################
|
||||
|
@ -9,8 +9,8 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
ME="${0##*/}"
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid);
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/.player ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player);
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title)
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
ME="${0##*/}"
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
|
||||
########################################################################
|
||||
# SCAN AND MANAGE KEYS BETWEEN MOVIES & FRIENDS
|
||||
|
|
|
@ -34,6 +34,8 @@ if [[ ! $crontest ]]; then
|
|||
# ADD cron_MINUTE.sh line
|
||||
echo "* * * * * /bin/bash $MY_PATH/../cron_MINUTE.sh 2>&1>/dev/null" >> /tmp/newcron
|
||||
crontab /tmp/newcron
|
||||
sudo systemctl enable ipfs
|
||||
sudo systemctl start ipfs
|
||||
echo "ASTROPORT is ON"
|
||||
else
|
||||
## HEADER
|
||||
|
@ -42,6 +44,8 @@ else
|
|||
## REMOVE cron_MINUTE.sh line
|
||||
cat /tmp/mycron | grep -Ev 'cron_MINUTE.sh' >> /tmp/newcron
|
||||
crontab /tmp/newcron
|
||||
sudo systemctl stop ipfs
|
||||
sudo systemctl disable ipfs
|
||||
echo "ASTROPORT is OFF"
|
||||
fi
|
||||
|
||||
|
|
|
@ -19,14 +19,14 @@ start=`date +%s`
|
|||
# INITIALISATION & CONTROL
|
||||
########################################################################
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not installed !?' && exit 1
|
||||
|
||||
########################################################################
|
||||
[[ ! -f ~/.zen/secret.dunikey ]] && echo "Missing ~/.zen/secret.dunikey. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
||||
[[ $G1PUB == "" ]] && echo "ERROR G1PUB empty !! EXIT" && exit 1
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid) || hostname -s > ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/.player ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player) || hostname -s > ~/.zen/ipfs/.$IPFSNODEID/.player
|
||||
|
||||
########################################################################
|
||||
# CREATNG IPFS LOCAL REPOSITORY for Node G1 Identity : G1SSB
|
||||
|
@ -41,12 +41,12 @@ cat ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|||
# ADD GCHANGE+ informations
|
||||
########################################################################
|
||||
GCHANGE="https://data.gchange.fr"
|
||||
echo"## GET LATEST GCHANGE PROFILE"
|
||||
echo "## GET LATEST GCHANGE PROFILE"
|
||||
curl -s ${GCHANGE}/user/profile/${G1PUB} > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange.json
|
||||
|
||||
Gtitle=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange.json | jq -r '._source.title')
|
||||
[[ $Gtitle ]] && echo "$Gtitle" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title
|
||||
echo"# ACTUAL _g1.gchange_title=$Gtitle"
|
||||
echo "# ACTUAL _g1.gchange_title=$Gtitle"
|
||||
|
||||
# UPDATE _g1.astroport_title with city
|
||||
Atitle="Station $YOU@$XZUID"
|
||||
|
@ -106,7 +106,7 @@ Customisation TiddlyWiki"
|
|||
[[ ! $(cat ~/.zen/ipfs/.${IPFSNODEID}/index.html | grep ${IPFSNODEID}) ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID} && cp ~/.zen/astrXbian/.install/templates/tiddlyone/index.html ~/.zen/ipfs/.${IPFSNODEID}/index.html
|
||||
# cp -f ~/.zen/astrXbian/.install/templates/tiddlyone/index.html ~/.zen/ipfs/.${IPFSNODEID}/index.html
|
||||
|
||||
zuid="$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid)"
|
||||
zuid="$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)"
|
||||
wiki="/home/$YOU/.zen/ipfs/.$IPFSNODEID/index.html"
|
||||
updated="$(date +"%m-%d-%Y_%H:%M")"
|
||||
|
||||
|
@ -120,7 +120,7 @@ sed -i "s/_UPDATED_/$updated/g" $wiki
|
|||
|
||||
## CREATE IPFSNODEID G1PUB QR CODE
|
||||
[[ ! -f /home/$YOU/.zen/ipfs/.$IPFSNODEID/QR.png ]] && qrencode -s 6 -o "/home/$YOU/.zen/ipfs/.$IPFSNODEID/QR.png" "$G1PUB"
|
||||
# sed -i "s/Personnalisez/<a href=\"http:\/\/127.0.0.1:8181\/ipns\/$IPFSNODEID\/.$IPFSNODEID\/FRIENDS\">Amis de/g" $wiki
|
||||
# sed -i "s/Personnalisez/<a href=\"http:\/\/127.0.0.1:8080\/ipns\/$IPFSNODEID\/.$IPFSNODEID\/FRIENDS\">Amis de/g" $wiki
|
||||
|
||||
# https:\/\/www.gchange.fr\/#\/app\/records\/wallet?q=$G1PUB
|
||||
########################################################################
|
||||
|
@ -156,7 +156,7 @@ ipfsnodeid=${IamINBOOTSTRAP##*/}
|
|||
################## SEND ipfstryme MESSAGES to FRIENDS
|
||||
rm -f /tmp/friend_of_mine
|
||||
## Getting Gchange liking_me list
|
||||
~/.zen/astrXbian/zen/tools/timeout.sh -t 20 ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" stars | jq -r '.likes[].issuer' > ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/liking_me
|
||||
~/.zen/astrXbian/zen/tools/timeout.sh -t 20 ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" stars | jq -r '.likes[].issuer' | uniq > ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/liking_me
|
||||
## Adding random bootstrap to liking_me list
|
||||
~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#" | rev | cut -d '/' -f 1 | rev | shuf | head -n 1) >> ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/liking_me
|
||||
|
||||
|
@ -182,8 +182,8 @@ do
|
|||
|
||||
ipfsnodeid=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $liking_me)
|
||||
echo "Reading stars.level from Stations IPNS Capsules."
|
||||
starsin=$(ipfs --timeout=10s cat /ipns/$ipfsnodeid/.$ipfsnodeid/FRIENDS/$G1PUB/stars.level)
|
||||
starsout=$(ipfs --timeout=10s cat /ipns/$IPFSNODEID/.$IPFSNODEID/FRIENDS/$liking_me/stars.level)
|
||||
starsin=$(ipfs --timeout=20s cat /ipns/$ipfsnodeid/.$ipfsnodeid/FRIENDS/$G1PUB/stars.level)
|
||||
starsout=$(ipfs --timeout=20s cat /ipns/$IPFSNODEID/.$IPFSNODEID/FRIENDS/$liking_me/stars.level)
|
||||
echo "I received $starsin stars while I sent $starsout stars."
|
||||
|
||||
##### CHECKING IF WE LIKE EACH OTHER (AVOID LIKING MYSELF)
|
||||
|
@ -214,7 +214,7 @@ do
|
|||
ipfsnodeid=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $liking_me)
|
||||
echo ${ipfsnodeid} > ~/.zen/ipfs/.${IPFSNODEID}/FRIENDS/$liking_me/ipfsnodeid
|
||||
## TIMEOUT... uncomment in DEFCON3 only
|
||||
# zuid=$(ipfs --timeout=10s cat /ipns/${ipfsnodeid}/.${ipfsnodeid}/_xbian.zuid)
|
||||
# zuid=$(ipfs --timeout=10s cat /ipns/${ipfsnodeid}/.${ipfsnodeid}/.player)
|
||||
# [[ ${zuid} ]] && touch ~/.zen/ipfs/.${IPFSNODEID}/FRIENDS/$liking_me/${zuid}
|
||||
|
||||
## NOT USEFULL TRYING
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
# Author: Fred (support@qo-op.com)
|
||||
# Author: Fred (support@qo-op.com) - Rewriter - Anonymous
|
||||
# Version: 2020.12.03
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
########################################################################
|
||||
|
@ -13,7 +13,7 @@ start=`date +%s`
|
|||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not installed !?' && exit 1
|
||||
|
||||
# CLEAN "A_my_swarm.txt" and "A_swarm_map.txt"
|
||||
|
@ -35,6 +35,18 @@ echo $(date)
|
|||
########################################################################
|
||||
rm -f /tmp/liking_me ## FILE WILL BE REFRESHED
|
||||
|
||||
## REFRESH IPFS SWARM FROM AVAILABLE FRIENDS
|
||||
for g1friend in $(find ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/ -type d | rev | cut -d '/' -f 1 | rev);
|
||||
do
|
||||
ipfsnodeid=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1friend)
|
||||
echo "### $g1friend ipfs reading XID"
|
||||
XID=$(ipfs --timeout=20s cat /ipns/$ipfsnodeid/.$ipfsnodeid/.player)
|
||||
if [[ $XID ]]; then
|
||||
echo "### REFRESH ipfs_swarm $ipfsnodeid ($XID)"
|
||||
ipfs --timeout=360s get --output=/home/$YOU/.zen/ipfs_swarm/ /ipns/$ipfsnodeid
|
||||
fi
|
||||
done
|
||||
|
||||
# Check liking_me station in my swarm FRIENDS
|
||||
for swarm_frof in $(ls ~/.zen/ipfs_swarm/.*/FRIENDS/$G1PUB/stars.level | cut -d '/' -f 6 | cut -d '.' -f 2); ## FROM IPFS
|
||||
do
|
||||
|
|
|
@ -13,7 +13,7 @@ start=`date +%s`
|
|||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not installed !?' && exit 1
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
@ -43,7 +43,7 @@ do
|
|||
|
||||
#echo "REFRESHING Friend /ipns/$ipfsnodeid INTO ~/.zen/ipfs_swarm/"
|
||||
#ipfs --timeout=90s get --output=/home/$YOU/.zen/ipfs_swarm/ /ipns/$ipfsnodeid
|
||||
#[[ -f /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid ]] && cat /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid || echo "NO ZUID"
|
||||
#[[ -f /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/.player ]] && cat /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/.player || echo "NO ZUID"
|
||||
|
||||
echo "This is the list of your friend $g1id friends liking you"
|
||||
ls -d ~/.zen/ipfs_swarm/.$ipfsnodeid/FRIENDS/*/ 2>/dev/null | rev | cut -d '/' -f 2 | rev
|
||||
|
|
|
@ -9,7 +9,7 @@ MY_PATH="`dirname \"$0\"`" # relative
|
|||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
########################################################################
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || er+=" ipfs daemon not running"
|
||||
IPFSNODEID=$(ipfs --timeout=5s id -f='<id>\n') || er+=" ipfs id problem"
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID) || er+=" ipfs id problem"
|
||||
[[ "$YOU" == "" || "$IPFSNODEID" == "" ]] && echo "ERROR : $er " && exit 1
|
||||
########################################################################
|
||||
# TODO ESTABLISH A PORT FORWARD STRATEGY (depending on Node Flavour)
|
||||
|
@ -53,7 +53,7 @@ if [[ "$IPFSNODEID" == "12D3KooWBYme2BsNUrtx4mEdNX6Yioa9AV7opWzQp6nrPs6ZKabN" ]]
|
|||
fi
|
||||
|
||||
# Every Station publish SSH port "/x/ssh-$zuid"
|
||||
zuid="$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid)"
|
||||
zuid="$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)"
|
||||
if [[ $zuid ]]
|
||||
then
|
||||
if [[ ! $(cat ~/.ssh/authorized_keys | grep "fred@ONELOVE") ]]
|
||||
|
|
|
@ -13,7 +13,7 @@ start=`date +%s`
|
|||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not installed !?' && exit 1
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
@ -61,11 +61,13 @@ rm ~/.zen/A_peering_peers.txt
|
|||
cp ~/.ipfs/config ~/.ipfs/config.new ## Prepare Peering.Peers changes
|
||||
|
||||
# for ipfsnodeid in $( (cat /tmp/ipfs_swarm_peers | grep -o '[^/]*$' && cat /tmp/A_swarm | grep -o '[^/]*$' ) | sort | uniq); ## TODO ACTIVATE IN DEFCON 4
|
||||
for ipfsnodeid in $(cat ~/.zen/ipfs_swarm/.*/tryme.addr | grep -o '[^/]*$' | sort | uniq);
|
||||
for ipfsnodeid in $(cat ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/*/tryme.addr | grep -o '[^/]*$' | sort | uniq);
|
||||
#for g1friend in $(find ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/ -type d | rev | cut -d '/' -f 1 | rev);
|
||||
do
|
||||
# ipfsnodeid=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1friend)
|
||||
## $ipfsnodeid already Treated ?
|
||||
[[ "$ipfsnodeid" == "$IPFSNODEID" ]] && continue
|
||||
[[ -f ~/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid ]] && XID=$(ipfs --timeout=20s cat /ipns/$ipfsnodeid/.$ipfsnodeid/_xbian.zuid) || XID=''
|
||||
[[ -f ~/.zen/ipfs_swarm/.$ipfsnodeid/.player ]] && XID=$(ipfs --timeout=20s cat /ipns/$ipfsnodeid/.$ipfsnodeid/.player) || XID=''
|
||||
[[ -f ~/.zen/ipfs_swarm/.$ipfsnodeid/G1SSB/_g1.gchange_title ]] && GZUID=$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/G1SSB/_g1.gchange_title) || GZUID=''
|
||||
# [[ "$XID" == "" ]] && ipfs swarm disconnect /ipfs/$ipfsnodeid ## NOT COMPLIANT FRIEND STATION
|
||||
# [[ $(cat /tmp/treated.ipfs.swarm | grep "$ipfsnodeid") ]] && continue ## TODO ACTIVATE IN DEFCON 4
|
||||
|
@ -144,7 +146,8 @@ do
|
|||
if [[ ! $IsAlreadythere ]]; then
|
||||
echo '{ "ID": "'$ipfsnodeid'", "Addrs": [] }' >> ~/.zen/A_peering_peers.txt
|
||||
#jq '.Peering.Peers? += { "Addrs": [], "ID": "'$ipfsnodeid'" }' ~/.ipfs/config.new > ~/.ipfs/config.wew && cp ~/.ipfs/config.wew ~/.ipfs/config.new
|
||||
jq '.Peering.Peers[.Peering.Peers| length] |= . + { "Addrs": [], "ID": "'$ipfsnodeid'" }' ~/.ipfs/config.new > ~/.ipfs/config.wew && cp ~/.ipfs/config.wew ~/.ipfs/config.new
|
||||
jq '.Peering.Peers[.Peering.Peers| length] |= . + { "Addrs": [], "ID": "'$ipfsnodeid'" }' ~/.ipfs/config.new > ~/.ipfs/config.wew &&\
|
||||
cp ~/.ipfs/config.wew ~/.ipfs/config.new
|
||||
fi
|
||||
################################################################
|
||||
echo "## REFRESH stargates keys from my friend"
|
||||
|
@ -252,7 +255,7 @@ then ## DEFCON 3
|
|||
echo "BLOB-Brain Friend RENEW /ipns/$ipfsnodeid TO ~/.zen/ipfs_swarm/"
|
||||
rm - Rf /home/$YOU/.zen/ipfs_swarm/$ipfsnodeid
|
||||
ipfs --timeout=60s get --output=/home/$YOU/.zen/ipfs_swarm/ /ipns/$ipfsnodeid
|
||||
[[ -f /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid ]] && zuid=$(cat /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid) || continue
|
||||
[[ -f /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/.player ]] && zuid=$(cat /home/$YOU/.zen/ipfs_swarm/.$ipfsnodeid/.player) || continue
|
||||
|
||||
stars=$(cat ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/$g1id/stars.level);
|
||||
G1BALANCE=$(~/.zen/astrXbian/zen/jaklis/jaklis.py balance -p $g1pub) && [[ "$G1BALANCE" == "null" ]] && G1BALANCE=0 || G1BALANCE=$(echo "$G1BALANCE" | cut -d '.' -f 1)
|
||||
|
@ -276,11 +279,11 @@ fi
|
|||
echo "******************************************************************"
|
||||
echo "### REFRESH Film Serie Anime Youtube ${PREFIX}ASTRXBIAN ###"
|
||||
[[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/
|
||||
AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid);
|
||||
AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player);
|
||||
|
||||
for PREFIX in F S A Y
|
||||
do
|
||||
echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8181" > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
|
||||
echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8080" > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
|
||||
cat ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN | sed "s/anime;/film;/g" | sed '/^[[:space:]]*$/d' | grep -Ev "CAT;TMDB" | sort | uniq >> ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
|
||||
done
|
||||
|
||||
|
@ -301,7 +304,7 @@ chmod 644 /home/$YOU/.zen/{ipfs_swarm}/.*/astroport/kodi/vstream/*ASTRXBIAN
|
|||
########################################################################
|
||||
# REFRESH tiddlywiki WALL OF FRIENDS /ipns/${IPFSNODEID}/.${IPFSNODEID}/FRIENDS/index.html
|
||||
########################################################################
|
||||
zuid="$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid)"
|
||||
zuid="$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)"
|
||||
updated="$(date +"%Y-%m-%d_%H:%M")"
|
||||
|
||||
echo "******************************************************************"
|
||||
|
@ -325,7 +328,7 @@ for wiki in $(ls ~/.zen/ipfs_swarm/.12D*/index.html | grep -Ev "${IPFSNODEID}" 2
|
|||
whoisg1=$(~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $ipfsnodeid)
|
||||
echo "<li>
|
||||
<a target=\"gchange\" href=\"https://www.gchange.fr/#/app/user/$whoisg1/\">
|
||||
<img src=\"https://tube.copylaradio.com/ipns/$ipfsnodeid/.$ipfsnodeid/QR.png\" alt=\"$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid 2>dev/null)\" />
|
||||
<img src=\"https://tube.copylaradio.com/ipns/$ipfsnodeid/.$ipfsnodeid/QR.png\" alt=\"$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/.player 2>dev/null)\" />
|
||||
</a>
|
||||
<p class='video-title'>
|
||||
<a href=\"https://tube.copylaradio.com/ipns/$ipfsnodeid/.$ipfsnodeid/FRIENDS/index.html\">
|
||||
|
@ -340,7 +343,7 @@ echo "<li>
|
|||
<iframe id=\"$ipfsnodeid\"
|
||||
title='tiddlywiki $whoisg1'
|
||||
width='600'
|
||||
src=\"http://127.0.0.1:8181/ipns/$ipfsnodeid/.$ipfsnodeid/index.html\">
|
||||
src=\"http://127.0.0.1:8080/ipns/$ipfsnodeid/.$ipfsnodeid/index.html\">
|
||||
</iframe>
|
||||
</li>" >> ~/.zen/ipfs/.${IPFSNODEID}/FRIENDS/index.html
|
||||
done
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
|
||||
[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
|
||||
########################################################################
|
||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||
|
||||
PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) || ( echo "noplayer" && exit 1 )
|
||||
PSEUDO=$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null) || ( echo "nopseudo" && exit 1 )
|
||||
G1PUB=$(cat ~/.zen/game/players/.current/.g1pub 2>/dev/null) || ( echo "nog1pub" && exit 1 )
|
||||
IPFSNODEID=$(cat ~/.zen/game/players/.current/.ipfsnodeid 2>/dev/null) || ( echo "noipfsnodeid" && exit 1 )
|
||||
PLAYERNS=$(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
|
||||
MOANS=$(cat ~/.zen/game/players/.current/.moans 2>/dev/null) || ( echo "noplayermoans" && exit 1 )
|
||||
QOOPNS=$(cat ~/.zen/game/players/.current/.qoopns 2>/dev/null) || ( echo "noplayerqoopns" && exit 1 )
|
||||
|
||||
|
||||
ipfs --timeout=3s ls /ipns/$MOANS
|
||||
if [ $? != 0 ]; then
|
||||
#echo "## PUBLISHING moa_${PLAYER} /ipns/$MOANS"
|
||||
ls ~/.zen/game/players/$PLAYER/moa/*
|
||||
IPUSH=$(ipfs add -rwHq ~/.zen/game/players/$PLAYER/moa/* | tail -n 1)
|
||||
echo $IPUSH > ~/.zen/game/players/$PLAYER/moa/$PLAYER.moa.chain
|
||||
echo $MOATS > ~/.zen/game/players/$PLAYER/moa/$PLAYER.moa.ts
|
||||
echo 1 > ~/.zen/game/players/$PLAYER/moa/$PLAYER.moa.n
|
||||
ipfs name publish --key=moa_${PLAYER} /ipfs/$IPUSH 2>/dev/null
|
||||
else
|
||||
## MISE A JOUR CACHE
|
||||
ipfs get -o ~/.zen/game/players/$PLAYER/moa/ /ipns/$MOANS
|
||||
fi
|
||||
echo "PUBLISHED ~/.zen/ipfs TO http://127.0.0.1:8080/ipns/$QOOPNS"
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
|
||||
[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
|
||||
########################################################################
|
||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||
|
||||
PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) || ( echo "noplayer" && exit 1 )
|
||||
PSEUDO=$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null) || ( echo "nopseudo" && exit 1 )
|
||||
G1PUB=$(cat ~/.zen/game/players/.current/.g1pub 2>/dev/null) || ( echo "nog1pub" && exit 1 )
|
||||
IPFSNODEID=$(cat ~/.zen/game/players/.current/.ipfsnodeid 2>/dev/null) || ( echo "noipfsnodeid" && exit 1 )
|
||||
PLAYERNS=$(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
|
||||
MOANS=$(cat ~/.zen/game/players/.current/.moans 2>/dev/null) || ( echo "noplayermoans" && exit 1 )
|
||||
QOOPNS=$(cat ~/.zen/game/players/.current/.qoopns 2>/dev/null) || ( echo "noplayerqoopns" && exit 1 )
|
||||
|
||||
|
||||
ipfs --timeout=3s ls /ipns/$PLAYERNS
|
||||
if [ $? != 0 ]; then
|
||||
IPUSH=$(ipfs add -Hq ~/.zen/game/players/$PLAYER/index.html | tail -n 1)
|
||||
echo $IPUSH > ~/.zen/game/players/$PLAYER/$PLAYER.chain
|
||||
echo $MOATS > ~/.zen/game/players/$PLAYER/$PLAYER.ts
|
||||
echo 1 > ~/.zen/game/players/$PLAYER/$PLAYER.n
|
||||
ipfs name publish --key=${PLAYER} /ipfs/$IPUSH 2>/dev/null
|
||||
else
|
||||
## MISE A JOUR CACHE (TODO : ADD CHAIN TO BE ABLE TO REVERSE TIME) - "Activate archive.org"
|
||||
ipfs get -o ~/.zen/game/players/$PLAYER/index.html /ipns/$PLAYERNS
|
||||
fi
|
||||
echo "PUBLISHED ~/.zen/ipfs TO http://127.0.0.1:8080/ipns/$PLAYERNS"
|
|
@ -20,7 +20,7 @@ countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|gr
|
|||
|
||||
########################################################################
|
||||
########################################################################
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not installed !?' && exit 1
|
||||
########################################################################
|
||||
[[ ! -f ~/.zen/secret.dunikey ]] && exit 1
|
||||
|
@ -29,7 +29,7 @@ G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
|||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
||||
[[ ! $YOU ]] && echo "IPFS NOT RUNNING. EXIT" && exit 1
|
||||
########################################################################
|
||||
XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid)
|
||||
XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)
|
||||
# echo "## FRIENDS IPFS PINGing"
|
||||
# for g1pub in $(ls -t ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/); do [[ $g1pub ]] && ipfs ping --timeout=3s -n 3 /ipfs/$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1pub 2>/dev/null) 2>/dev/null; done
|
||||
|
||||
|
@ -59,7 +59,7 @@ do
|
|||
# [[ ! $(echo "${mediakey}" | grep "TMDB_") ]] && continue ## REFRESH ONLY TMDB (level 1), youtube is level 0
|
||||
IPNSLINK=$(ipfs key list -l | grep ${mediakey} | cut -d ' ' -f 1)
|
||||
[[ "${IPNSLINK}" == "" ]] && continue ## prevent empty IPNSLINK
|
||||
echo "We are refreshing http://127.0.0.1:8181/ipns/${IPNSLINK}"
|
||||
echo "We are refreshing http://127.0.0.1:8080/ipns/${IPNSLINK}"
|
||||
count=$((count+1)) && echo "$count) "
|
||||
FILE_NAME=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filename)
|
||||
TITLE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.title)
|
||||
|
@ -99,7 +99,7 @@ do
|
|||
ZENBALANCE=$(echo "100 * $BALANCE" | bc -l | cut -d '.' -f 1)
|
||||
|
||||
TUBELINK="https://tube.copylaradio.com$(cat /tmp/${mediakey}_filelink.txt)"
|
||||
LOCALTUBELINK="http://127.0.0.1:8181$(cat /tmp/${mediakey}_filelink.txt)"
|
||||
LOCALTUBELINK="http://127.0.0.1:8080$(cat /tmp/${mediakey}_filelink.txt)"
|
||||
|
||||
### IPNS LINK CAN EVOLVE (REFRESH EVERY 12 H TO MAINTAIN ALIVE IN THE SWARM)
|
||||
### This index.html is ipns link root, 1st welcome page for MEDIAKEY -> *** Redirect to CONTRACTS or LOGIN processing HERE ***
|
||||
|
@ -116,7 +116,8 @@ do
|
|||
| sed "s/\${XZUID}/$XZUID/g" \
|
||||
| sed "s/\${G1PUB}/$G1PUB/g" \
|
||||
| sed "s/\${TITLE}/$TITLE/g" \
|
||||
> ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/index.html
|
||||
> /tmp/${mediakey}_index.html
|
||||
mv /tmp/${mediakey}_index.html ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/index.html
|
||||
|
||||
[ ! -s ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/index.html ] && echo "Problem creating ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/index.html. EXIT" && exit 1
|
||||
|
||||
|
@ -130,7 +131,7 @@ do
|
|||
|
||||
## THIS MAKES FRENCH COPY RIGHT LAW RESPECT
|
||||
## LOCALHOST REDIRECT FOR INTERNAL KODI DEFCON 3 (swarm.key) ASTROPORT STATION MODE
|
||||
# echo "<meta charset=\"UTF-8\"><meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8181$(cat /tmp/${mediakey}_filelink.txt)\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html
|
||||
# echo "<meta charset=\"UTF-8\"><meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8080$(cat /tmp/${mediakey}_filelink.txt)\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html
|
||||
# echo "<meta charset=\"UTF-8\"><meta http-equiv=\"Refresh\" content=\"0;URL=https://tube.copylaradio.com$(cat /tmp/${mediakey}_filelink.txt)\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html
|
||||
|
||||
## DEMO PERIOD
|
||||
|
@ -196,7 +197,7 @@ do
|
|||
|
||||
echo "$id REFRESHED ${I}
|
||||
https://tube.copylaradio.com/ipns/$J
|
||||
http://127.0.0.1:8181/ipns/$J"
|
||||
http://127.0.0.1:8080/ipns/$J"
|
||||
########################################################################
|
||||
########################################################################
|
||||
break ## ONE BY ONE (cron_MINUTE.sh task every 7 mn)
|
||||
|
@ -241,7 +242,7 @@ for ipnslink in $(ls ~/.zen/PIN/*/IPNSLINK 2>/dev/null | shuf ); do
|
|||
|
||||
echo "$id PIN PUBLISH REFRESHED /ipfs/$NEWIPFS
|
||||
https://tube.copylaradio.com/ipns/$ipnsid
|
||||
http://127.0.0.1:8181/ipns/$ipnsid"
|
||||
http://127.0.0.1:8080/ipns/$ipnsid"
|
||||
|
||||
rm -Rf /tmp/${mediakey}
|
||||
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
|
||||
[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
|
||||
########################################################################
|
||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||
|
||||
PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) || ( echo "noplayer" && exit 1 )
|
||||
PSEUDO=$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null) || ( echo "nopseudo" && exit 1 )
|
||||
G1PUB=$(cat ~/.zen/game/players/.current/.g1pub 2>/dev/null) || ( echo "nog1pub" && exit 1 )
|
||||
IPFSNODEID=$(cat ~/.zen/game/players/.current/.ipfsnodeid 2>/dev/null) || ( echo "noipfsnodeid" && exit 1 )
|
||||
PLAYERNS=$(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
|
||||
MOANS=$(cat ~/.zen/game/players/.current/.moans 2>/dev/null) || ( echo "noplayermoans" && exit 1 )
|
||||
QOOPNS=$(cat ~/.zen/game/players/.current/.qoopns 2>/dev/null) || ( echo "noplayerqoopns" && exit 1 )
|
||||
|
||||
|
||||
ipfs --timeout=3s ls /ipns/$QOOPNS
|
||||
if [ $? != 0 ]; then
|
||||
IPUSH=$(ipfs add -Hq ~/.zen/game/players/$PLAYER/ipfs/.$IPFSNODEID/index.html | tail -n 1)
|
||||
echo $IPUSH > ~/.zen/game/players/$PLAYER/ipfs/.$PeerID/$PLAYER.qo-op.chain
|
||||
echo $MOATS > ~/.zen/game/players/$PLAYER/ipfs/.$PeerID/$PLAYER.qo-op.ts
|
||||
echo 1 > ~/.zen/game/players/$PLAYER/ipfs/.$PeerID/$PLAYER.qo-op.n
|
||||
ipfs name publish --key=qo-op_${PLAYER} /ipfs/$IPUSH 2>/dev/null
|
||||
else
|
||||
## MISE A JOUR CACHE
|
||||
ipfs get -o ~/.zen/game/players/$PLAYER/ipfs/.$IPFSNODEID/index.html /ipns/$QOOPNS
|
||||
|
||||
fi
|
||||
echo "PUBLISHED ~/.zen/ipfs TO http://127.0.0.1:8080/ipns/$QOOPNS"
|
|
@ -6,13 +6,20 @@ ME="${0##*/}"
|
|||
countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
|
||||
[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
|
||||
########################################################################
|
||||
IPFSNODEID=$(ipfs --timeout=20s id -f='<id>\n')
|
||||
[[ $IPFSNODEID == "" ]] && echo "ipfs TIMEOUT" && exit 1
|
||||
|
||||
PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) || ( echo "noplayer" && exit 1 )
|
||||
PSEUDO=$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null) || ( echo "nopseudo" && exit 1 )
|
||||
G1PUB=$(cat ~/.zen/game/players/.current/.g1pub 2>/dev/null) || ( echo "nog1pub" && exit 1 )
|
||||
IPFSNODEID=$(cat ~/.zen/game/players/.current/.ipfsnodeid 2>/dev/null) || ( echo "noipfsnodeid" && exit 1 )
|
||||
PLAYERNS=$(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
|
||||
MOANS=$(cat ~/.zen/game/players/.current/.moans 2>/dev/null) || ( echo "noplayermoans" && exit 1 )
|
||||
QOOPNS=$(cat ~/.zen/game/players/.current/.qoopns 2>/dev/null) || ( echo "noplayerqoopns" && exit 1 )
|
||||
|
||||
|
||||
########################################################################
|
||||
## TESSERACT DOUBLE ACTION
|
||||
########################################################################
|
||||
echo "Adding ~/.zen/ipfs to IPFS"
|
||||
echo "Adding ~/.zen/ipfs/ to IPFS"
|
||||
# MIPFS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1)
|
||||
# OLDCHAIN=$(cat ~/.zen/ipfs/.${IPFSNODEID}/.chain)
|
||||
# echo "OLD: $OLDCHAIN != NEW:$MIPFS ?"
|
||||
|
@ -20,11 +27,11 @@ echo "Adding ~/.zen/ipfs to IPFS"
|
|||
# then
|
||||
echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/.timestamp
|
||||
echo $MIPFS > ~/.zen/ipfs/.${IPFSNODEID}/.chain
|
||||
MIPFS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1)
|
||||
MIPFS=$(ipfs add -rHq $(readlink ~/.zen/ipfs) | tail -n 1)
|
||||
NODEIPNS=$(ipfs --timeout=180s name publish --quieter /ipfs/$MIPFS)
|
||||
echo "$NODEIPNS:TIME:$(cat ~/.zen/ipfs/.${IPFSNODEID}/.timestamp):CHAIN:$(cat ~/.zen/ipfs/.${IPFSNODEID}/.chain)"
|
||||
# fi
|
||||
echo "PUBLISHED ~/.zen/ipfs TO http://127.0.0.1:8181/ipns/$IPFSNODEID"
|
||||
echo "PUBLISHED ~/.zen/ipfs TO http://127.0.0.1:8080/ipns/$IPFSNODEID"
|
||||
########################################################################
|
||||
## READ BLOCK CHAIN ##
|
||||
# TIME=$(ipfs cat /ipns/${IPFSNODEID}/.${IPFSNODEID}/.timestamp)
|
||||
|
|
|
@ -5,6 +5,6 @@ DUNIKEY=/.zen/secret.dunikey
|
|||
NODE=https://g1.librelois.fr/gva
|
||||
|
||||
# Adresse du pod Cesium ou Gchange à utiliser
|
||||
POD=https://g1.data.le-sou.org
|
||||
#POD=https://g1.data.le-sou.org
|
||||
#POD=https://g1.data.duniter.fr
|
||||
#POD=https://data.gchange.fr
|
||||
POD=https://data.gchange.fr
|
||||
|
|
|
@ -10,7 +10,7 @@ ME="${0##*/}"
|
|||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid);
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/.player ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player);
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title)
|
||||
|
||||
########################################################################
|
||||
|
@ -39,11 +39,11 @@ else
|
|||
fi
|
||||
|
||||
echo "******************************************************************"
|
||||
echo "STARGATE1 http://127.0.0.1:8181/ipns/$(cat ~/.zen/key/1/stargate)"
|
||||
echo "STARGATE2 http://127.0.0.1:8181/ipns/$(cat ~/.zen/key/2/stargate)"
|
||||
echo "STARGATE3 http://127.0.0.1:8181/ipns/$(cat ~/.zen/key/3/stargate)"
|
||||
echo "STARGATE4 http://127.0.0.1:8181/ipns/$(cat ~/.zen/key/4/stargate)"
|
||||
echo "STARGATE5 http://127.0.0.1:8181/ipns/$(cat ~/.zen/key/5/stargate)"
|
||||
echo "STARGATE1 http://127.0.0.1:8080/ipns/$(cat ~/.zen/key/1/stargate)"
|
||||
echo "STARGATE2 http://127.0.0.1:8080/ipns/$(cat ~/.zen/key/2/stargate)"
|
||||
echo "STARGATE3 http://127.0.0.1:8080/ipns/$(cat ~/.zen/key/3/stargate)"
|
||||
echo "STARGATE4 http://127.0.0.1:8080/ipns/$(cat ~/.zen/key/4/stargate)"
|
||||
echo "STARGATE5 http://127.0.0.1:8080/ipns/$(cat ~/.zen/key/5/stargate)"
|
||||
echo "******************************************************************"
|
||||
|
||||
########################################################################
|
||||
|
@ -91,7 +91,7 @@ for friendgate in $(ls -d ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/*/); do
|
|||
;;
|
||||
esac
|
||||
ls ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/$fg1pub/
|
||||
echo "http://127.0.0.1:8181/ipns/$IPFSNODEID/.$IPFSNODEID/FRIENDS/$fg1pub/"
|
||||
echo "http://127.0.0.1:8080/ipns/$IPFSNODEID/.$IPFSNODEID/FRIENDS/$fg1pub/"
|
||||
echo ""
|
||||
|
||||
done
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash -x
|
||||
#!/bin/bash
|
||||
########################################################################
|
||||
# Author: Fred (support@qo-op.com)
|
||||
# Version: 0.3
|
||||
|
@ -10,11 +10,16 @@
|
|||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
|
||||
[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
|
||||
start=`date +%s`
|
||||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not responding !?' && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
||||
# ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
|
||||
# Astropot/Kodi/Vstream source reads ${PREFIX}ASTRXBIAN from http://127.0.0.1:8181/.$IPFNODEID/
|
||||
# Astropot/Kodi/Vstream source reads ${PREFIX}ASTRXBIAN from http://127.0.0.1:8080/.$IPFNODEID/
|
||||
# Index File Format (could be enhanced) is using Kodi TMDB enhancement
|
||||
# https://github.com/Kodi-vStream/venom-xbmc-addons/wiki/Voir-et-partager-sa-biblioth%C3%A8que-priv%C3%A9e#d%C3%A9clarer-des-films
|
||||
########################################################################
|
||||
|
@ -46,9 +51,11 @@ TITLE="${file%.*}"
|
|||
# GET XZUID
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title) || XZUID=$(cat /etc/hostname)
|
||||
[[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && er="Les fichiers sont à placer dans ~/astroport/ MERCI" && echo "$er" && exit 1
|
||||
TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TYPE(film, youtube, mp3, video)/ REFERENCE /
|
||||
TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TYPE(film, youtube, mp3, video, page)/ REFERENCE /
|
||||
CAT=$(echo "$TYPE" | awk '{ print tolower($0) }')
|
||||
|
||||
echo $CAT
|
||||
|
||||
PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y
|
||||
# File is placed in ROOT ~/astroport ?
|
||||
if [[ $PREFIX == "" ]]
|
||||
|
@ -73,6 +80,12 @@ case ${CAT} in
|
|||
REFERENCE=$(echo "$path" | cut -d '/' -f 6 )
|
||||
TITLE="${file%.*}"
|
||||
;;
|
||||
page)
|
||||
## DIFFERENT TREATMENT
|
||||
INDEXPREFIX="PAGE_"
|
||||
REFERENCE=$(echo "$path" | cut -d '/' -f 6 )
|
||||
TITLE="${file%.*}"
|
||||
;;
|
||||
mp3)
|
||||
## DIFFERENT TREATMENT
|
||||
INDEXPREFIX="MP3_"
|
||||
|
@ -216,6 +229,13 @@ if [[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode} && "$P
|
|||
$MY_PATH/tools/natools.py encrypt -p $PINnode -i /tmp/.ipfsid -o "~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.ipfsid.encrypt"
|
||||
# .ipfsid.encrypt is searched by each Station running ./zen/tools/autoPINfriends.sh
|
||||
fi
|
||||
|
||||
## Ask PIN to myself
|
||||
mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${G1PUB}
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i /tmp/.ipfs.filelink -o "~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${G1PUB}/.ipfs.filelink.encrypt"
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i /tmp/.ipfsid -o "~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${G1PUB}/.ipfsid.encrypt"
|
||||
|
||||
|
||||
########################################################################
|
||||
## GREAT natools can convert IPNS MEDIAKEY into .dunikey file
|
||||
########################################################################
|
||||
|
@ -256,7 +276,7 @@ echo "anonymous" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode
|
|||
# MEMORIZE my PIN
|
||||
mkdir -p ~/.zen/PIN/${IPFSREPFILEID}/
|
||||
touch ~/.zen/PIN/${IPFSREPFILEID}/${G1PUB}
|
||||
# echo "$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1)" > ~/.zen/PIN/${ipfsrepidfile}/IPNSLINK # NO!! Would let PINing nodes change index.html///
|
||||
# echo "$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1)" > ~/.zen/PIN/${ipfsrepidfile}/IPNSLINK # NO!! CHOOSE TODO Would let PINing nodes change index.html///
|
||||
|
||||
########################################################################
|
||||
## encrypt links for myself
|
||||
|
@ -271,14 +291,18 @@ rm /tmp/.ipfsid
|
|||
## ADD "ajouter_video.txt" and "video.json" will be SELF IPNS publish data
|
||||
## ENCRYPT TO STOP CLEAR DATA LEAKING
|
||||
[[ -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/
|
||||
[[ -f ~/astroport/${TYPE}/${REFERENCE}/video.json ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ && cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/
|
||||
[[ -f ~/astroport/${TYPE}/${REFERENCE}/screen.png ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/screen.png ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/
|
||||
[[ -f ~/astroport/${TYPE}/${REFERENCE}/youtube.png ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/youtube.png ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/screen.png
|
||||
[[ -f ~/astroport/${TYPE}/${REFERENCE}/video.json ]] &&\
|
||||
cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ &&\
|
||||
cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/
|
||||
########################################################################
|
||||
|
||||
########################################################################
|
||||
## EXPLANATIONS
|
||||
########################################################################
|
||||
# What is being in ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/
|
||||
# is published on http://127.0.0.1:8181/ipns/$KEY/ AND ipfs ls /ipns/$KEY/
|
||||
# is published on http://127.0.0.1:8080/ipns/$KEY/ AND ipfs ls /ipns/$KEY/
|
||||
########################################################################
|
||||
########################################################################
|
||||
# CONTRACTS, are small App (fulljs or jquery + nginx backend app server)
|
||||
|
@ -292,6 +316,8 @@ rm /tmp/.ipfsid
|
|||
# one star level (no encrypt)
|
||||
# index.html is presenting Astroport/Kodi service then redirect to
|
||||
# $G1PUB/index.html contains redirection to ipfs link
|
||||
## NEW RELEASE
|
||||
## Create TW5 index.html to give easy control access to MEDIAKEY and KEY owner
|
||||
########################################################################
|
||||
|
||||
########################################################################
|
||||
|
@ -310,31 +336,53 @@ IPNSLINK=$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1)
|
|||
| sed "s/\${XZUID}/$XZUID/g" \
|
||||
| sed "s/\${G1PUB}/$G1PUB/g" \
|
||||
| sed "s/\${TITLE}/$TITLE/g" \
|
||||
> ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/index.html
|
||||
> ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html
|
||||
|
||||
### PATCH TW5 (TODO SPLIT TEMPLATES & DIFFERENTIATE MIMETYPE TIDDLERS)
|
||||
echo "=======> Mediakey TW5 /ipns/$KEY"
|
||||
|
||||
cp ~/.zen/Astroport.ONE/templates/dreamcatcher.html ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||
PSEUDO=$(cat ~/.zen/game/players/.current/.pseudo 2>/dev/null)
|
||||
sed -i "s~_MOATS_~${MOATS}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_PLAYER_~${XZUID}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_PSEUDO_~${PSEUDO}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_G1PUB_~${G1PUB}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_TITRE_~${TITLE}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_IPFSROOT_~${IPFSREPFILEID}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_IPFSNODEID_~${IPFSNODEID}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_IPFSID_~${IPFSID}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
|
||||
MIME=$(file --mime-type "$HOME/astroport/${TYPE}/${REFERENCE}/${file}" | cut -d ':' -f 2 | cut -d ' ' -f 2)
|
||||
sed -i "s~_MIME_~${MIME}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
|
||||
sed -i "s~_MEDIAKEY_~${MEDIAKEY}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
sed -i "s~_KEY_~${KEY}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
|
||||
# Configure IPNS publication key
|
||||
sed -i "s~k2k4r8naeti1ny2hsk3a0ziwz22urwiu633hauluwopf4vwjk4x68qgk~${KEY}~g" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
|
||||
### PATCH TW5
|
||||
|
||||
## SECOND REDIRECT PAGE ${MEDIAKEY}/${G1PUB}/index.html
|
||||
# https://tube.copylaradio.com/ipns/$IPNSLINK/${G1PUB}/
|
||||
|
||||
#envsubst < ../www/boris/youtube_watch_step3.html > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
echo "=======> Mediakey Contract index.html "
|
||||
cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step3.html \
|
||||
| sed "s/\${TITLE}/$TITLE/g" \
|
||||
| sed "s/\${IPFSNODEID}/$IPFSNODEID/g" \
|
||||
| sed "s/\${XZUID}/$XZUID/g" \
|
||||
| sed "s/\${IPFSREPFILEID}/$IPFSREPFILEID/g" \
|
||||
| sed "s/\${URLENCODE_FILE_NAME}/$URLENCODE_FILE_NAME/g" \
|
||||
> ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html
|
||||
# echo "=======> Mediakey Contract index.html "
|
||||
# cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step3.html \
|
||||
# | sed "s/\${TITLE}/$TITLE/g" \
|
||||
# | sed "s/\${IPFSNODEID}/$IPFSNODEID/g" \
|
||||
# | sed "s/\${XZUID}/$XZUID/g" \
|
||||
# | sed "s/\${IPFSREPFILEID}/$IPFSREPFILEID/g" \
|
||||
# | sed "s/\${URLENCODE_FILE_NAME}/$URLENCODE_FILE_NAME/g" \
|
||||
# > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
|
||||
|
||||
# echo "<meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
# echo "<meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
########################################################################
|
||||
## MODIFY INTO "./zen/ipns_TAG_refresh.sh" (add crypto/contracts there)
|
||||
########################################################################
|
||||
|
||||
## COPY LOCALHOST IPFS URL TO CLIPBOARD
|
||||
[[ $(which xclip) ]] && echo "http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" | xclip -selection c
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
## PUBLISH new IPNS
|
||||
|
@ -348,7 +396,7 @@ NEWIPFS=$(ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ | tail -n 1
|
|||
echo $NEWIPFS > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/.chain
|
||||
|
||||
IPNS=$(ipfs name publish --quieter --key="${MEDIAKEY}" $NEWIPFS)
|
||||
[[ "$IPNS" == "" ]] && echo "~~~ PROBLEM ~~~ ipfs name publish --quieter --key=${MEDIAKEY} $NEWIPFS"
|
||||
[[ "$IPNS" == "" ]] && echo "~~~ PROBLEM ~~~ ipfs name publish --quieter --key=${MEDIAKEY} $NEWIPFS" && IPNS="$(ipfs key list -l | grep -w ${MEDIAKEY} | cut -f 1 -d ' ')"
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
||||
|
@ -357,17 +405,17 @@ IPNS=$(ipfs name publish --quieter --key="${MEDIAKEY}" $NEWIPFS)
|
|||
########################################################################
|
||||
# film/serie PUBLISH "ajouter_video.txt" for KODI
|
||||
########################################################################
|
||||
if [[ "${CAT}" =~ ^(film|serie|youtube)$ ]]
|
||||
if [[ "${CAT}" =~ ^(film|serie|youtube|page|video)$ ]]
|
||||
then
|
||||
## CREATE GCHANGE AD
|
||||
if [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad && "${CAT}" != "youtube" ]]
|
||||
if [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad && ( "${CAT}" == "film" || "${CAT}" == "serie") ]]
|
||||
then
|
||||
|
||||
GOFFER=$(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" setoffer -t "${TITLE} #astroport #${MEDIAKEY}" -d "${TITLE} https://tube.copylaradio.com/ipns/$IPNS/ Faites un don à son portefeuille pour le conserver dans le Mediacenter des Amis - https://CopyLaRadio.com - https://astroport.com" -p $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png)
|
||||
echo $GOFFER > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad
|
||||
NEWIPFS=$(ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ | tail -n 1 )
|
||||
IPNS=$(ipfs name publish --quieter --key="${MEDIAKEY}" $NEWIPFS)
|
||||
|
||||
[[ "$IPNS" == "" ]] && IPNS="$(ipfs key list -l | grep -w ${MEDIAKEY} | cut -f 1 -d ' ')"
|
||||
echo "Annonce gchange : $(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad)"
|
||||
|
||||
fi
|
||||
|
@ -375,7 +423,7 @@ then
|
|||
########################################################################
|
||||
# CREATION DU FICHIER ${PREFIX}ASTRXBIAN FILE : Add Header
|
||||
[[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ]] \
|
||||
&& echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8181" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
|
||||
&& echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8080" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
|
||||
|
||||
# ADD NEW LINE TO INDEX
|
||||
if [[ -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt ]]
|
||||
|
@ -393,14 +441,75 @@ then
|
|||
echo "$line" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt
|
||||
## UPDATE SOURCE ajouter_video.txt FILE
|
||||
cp -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt
|
||||
|
||||
########################################################################
|
||||
## TODO: ACTIVATE SUB DEFCON 4 MODE = encrypt/decrypt file in $G1DEST subdirectory
|
||||
########################################################################
|
||||
|
||||
echo "----------------- REFRESH LOCAL KODI INDEX ----------------------"
|
||||
cat ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
|
||||
|
||||
GENRE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt | cut -d ';' -f 6 | sed 's/|/ /g' )
|
||||
MIME=$(file --mime-type "$HOME/astroport/${TYPE}/${REFERENCE}/${file}" | cut -d ':' -f 2 | cut -d ' ' -f 2)
|
||||
REAL=$MIME
|
||||
if [[ $(echo "$MIME" | grep 'video') ]]; then
|
||||
TEXT="<video controls><source src='/ipfs/"${IPFSID}"' type='"${MIME}"'></video><h1>"${TITLE}"</h1>"
|
||||
MIME="text/vnd.tiddlywiki"
|
||||
TAGS="${CAT} astroport $GENRE"
|
||||
CANON=''
|
||||
else
|
||||
TEXT='${MEDIAKEY}'
|
||||
TAGS='$:/isAttachment $:/isIpfs astroport '${CAT} $GENRE
|
||||
CANON="/ipfs/"${IPFSID}
|
||||
fi
|
||||
|
||||
## Add screen
|
||||
SCREENDIR=$(ipfs add -wq "$HOME/astroport/${TYPE}/${REFERENCE}/${CAT}.png" | tail -n 1)
|
||||
|
||||
echo "## Creation json tiddler"
|
||||
echo '[
|
||||
{
|
||||
"text": "'${TEXT}'",
|
||||
"title": "'${TITLE}'",
|
||||
"type": "'${MIME}'",
|
||||
"mime": "'${REAL}'",
|
||||
"cat": "'${CAT}'",
|
||||
"screenshot": "'${SCREENDIR}/screen.png'",
|
||||
"ipfsroot": "'${IPFSREPFILEID}'",
|
||||
"file": "'${file}'",
|
||||
"mediakey": "'${MEDIAKEY}'",
|
||||
"ipns": "'${IPNS}'",
|
||||
"tmdb": "'${REFERENCE}'",
|
||||
"tags": "'${TAGS}'" ' > ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json
|
||||
|
||||
[[ ${CANON} != "" ]] && echo ',
|
||||
"_canonical_uri": "'${CANON}'"' >> ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json
|
||||
|
||||
echo '
|
||||
}
|
||||
]
|
||||
' >> ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json
|
||||
|
||||
echo "Add tidller into Station Balise"
|
||||
cp ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/tiddler.json
|
||||
|
||||
echo "SEND TW json to GCHANGE (call from g1-compagnon"
|
||||
~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" send -d "$3" -t "MEDIAKEY ${MEDIAKEY}" -m "MEDIA : https;//astroport.com/ipfs/${IPFSREPFILEID} + TW https;//astroport.com/ipns/$IPFSNODEID/.$IPFSNODEID/KEY/${MEDIAKEY}/${G1PUB}/tiddler.json "
|
||||
|
||||
# Will be used by caroussel.html template
|
||||
# CAROUSSEL=$(ipfs add -wq ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json | head-n 1)
|
||||
|
||||
# COPY TIDDLER JSON TO DESKTOP Journal/${TYPE}
|
||||
[[ "$USER" != "xbian" && -d ~/Bureau ]] && mkdir -p ~/Bureau/Journal/${TYPE} && cp ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json "$HOME/Bureau/Journal/${TYPE}/${TITLE}.dragdrop.json" && xdg-open "$HOME/Bureau/Journal/${TYPE}/"
|
||||
[[ "$USER" != "xbian" && -d ~/Desktop ]] && mkdir -p ~/Desktop/Journal/${TYPE} && cp ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json "$HOME/Desktop/Journal/${TYPE}/${TITLE}.dragdrop.json" && xdg-open "$HOME/Desktop/Journal/${TYPE}/"
|
||||
|
||||
fi
|
||||
|
||||
## COPY LOCALHOST IPFS URL TO CLIPBOARD
|
||||
[[ $(which xclip) ]] &&\
|
||||
[[ $TEXT == "" ]] &&\
|
||||
echo "http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" | xclip -selection c ||\
|
||||
echo "$TEXT" | xclip -selection c
|
||||
|
||||
########################################################################
|
||||
# PUBLISH GENERAL video
|
||||
########################################################################
|
||||
|
@ -431,7 +540,12 @@ fi
|
|||
~/.zen/astrXbian/zen/ipns_self_publish.sh
|
||||
########################################################################
|
||||
echo "DUNIKEY PASS $PASS"
|
||||
echo "NEW $TYPE ($file) ADDED. http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME"
|
||||
echo "INDEX UPDATED : http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN"
|
||||
echo "VIDEO IPNS LINK : http://127.0.0.1:8181/ipns/$KEY/$G1PUB/"
|
||||
echo "NEW $TYPE ($file) ADDED. http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME"
|
||||
echo "INDEX UPDATED : http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN"
|
||||
echo "VIDEO IPNS LINK : http://127.0.0.1:8080/ipns/$KEY/$G1PUB/"
|
||||
echo "#### EXCECUTION TIME"
|
||||
end=`date +%s`
|
||||
echo Execution time was `expr $end - $start` seconds.
|
||||
echo "########################################################################"
|
||||
[[ ! $3 ]] && zenity --warning --width 300 --text "Votre MEDIA a rejoint ASTROPORT en `expr $end - $start` secondes"
|
||||
exit 0
|
||||
|
|
|
@ -116,7 +116,7 @@ echo "${TITLE}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1
|
|||
echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.timestamp
|
||||
|
||||
# IPNS index.html Redirect to ipfs streaming link (could be contract or anything else !!)
|
||||
echo "<meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html
|
||||
echo "<meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html
|
||||
|
||||
IPNSLINK=$(ipfs key list -l | grep ${INDEXPREFIX}${REFERENCE} | cut -d ' ' -f 1)
|
||||
echo "<meta http-equiv=\"Refresh\" content=\"10;URL=https://aries.copylaradio.com/ipns/$IPNSLINK/${G1PUB}/\">
|
||||
|
@ -149,6 +149,6 @@ echo "${TITLE}" > ~/.zen/PIN/${IPFSREPFILEID}/${IPNS}/.title
|
|||
|
||||
rm -Rf ${YTEMP}
|
||||
echo "NEW ($file) ADDED."
|
||||
echo "IPNS LINK : http://127.0.0.1:8181/ipns/$KEY/$G1PUB/"
|
||||
echo "IPNS LINK : http://127.0.0.1:8080/ipns/$KEY/$G1PUB/"
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -15,7 +15,7 @@ export IPFSNODEID=$(ipfs id -f='<id>\n')
|
|||
for PREFIX in F A S
|
||||
do
|
||||
cat ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
|
||||
echo "${PREFIX} INDEX UPDATED : http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN"
|
||||
echo "${PREFIX} INDEX UPDATED : http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN"
|
||||
done
|
||||
|
||||
########################################################################
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
HLS_TIME=40
|
||||
M3U8_SIZE=3
|
||||
IPFS_GATEWAY="http://127.0.0.1:8181"
|
||||
IPFS_GATEWAY="http://127.0.0.1:8080"
|
||||
|
||||
echo "Astroport stream is playing on star_1 : https://tube.copylaradio.com/ipns/$(ipfs key list -l | grep star_1 | cut -d ' ' -f 1)"
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ do
|
|||
TEST=$(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" stars -p $liking_me | jq -r '.yours.level')
|
||||
if [ ! $TEST == 'null' ]; then
|
||||
echo "$station is my friend"
|
||||
ipfs --timeout=6s cat /ipns/$station/.$station/_xbian.zuid
|
||||
ipfs --timeout=6s cat /ipns/$station/.$station/.player
|
||||
[ ! $? == 0 ] && echo "UNAVAILABLE FRIEND $liking_me"
|
||||
sleep 1
|
||||
fi
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# ADD QR/sec CODE & DUNIKEY TO MEDIAKEY
|
||||
# Fabrique ou récupère un PASS pour fabriquer le QRCode "privé" sécurisé avec openssl
|
||||
# ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/QRsec.png
|
||||
# http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/QRsec.png
|
||||
# http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/QRsec.png
|
||||
|
||||
for MEDIAKEY in $(ipfs key list);
|
||||
do
|
||||
|
|
|
@ -9,7 +9,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
ME="${0##*/}"
|
||||
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
||||
|
||||
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
|
||||
IamInLAN=$(echo $myIP | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" )
|
||||
|
|
|
@ -79,7 +79,7 @@ do
|
|||
############################################ PINNING NODE MAKES ALL HIS FRIENDS MOVIES AVAILABLE TO ALL
|
||||
## TODO : DECIDE TO ACTIVATE THIS BEHAVIOUR OR NOT ?
|
||||
## Copy FASTRXBIAN index (makes movies available for ALL)
|
||||
[[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN ]] && echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8181" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
||||
[[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN ]] && echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8080" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
||||
if [[ "$keytype" == "TMDB" ]]; then
|
||||
cat ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/FASTRXBIAN | grep ";$mediaid;" | tail -n 1 >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
||||
cat ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN | uniq > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
||||
|
|
|
@ -13,11 +13,11 @@ for ipfsid in $(cat ~/.zen/ipfs_swarm/.*/.ipfsnodeid); do
|
|||
echo "TESTING $ipfsid"
|
||||
ipfs -timeout=7s ping -n5 /p2p/$ipfsid 2>/dev/null | tail -n 1
|
||||
if [ $? -eq 0 ]; then
|
||||
zuidonline=$(ipfs -timeout=10s cat /ipns/$ipfsid/.$ipfsid/_xbian.zuid 2>/dev/null) || zuidonline="TIMEOUT"
|
||||
[[ -f ~/.zen/ipfs_swarm/.$ipfsid/_xbian.zuid ]] && zuidoffline=$(cat ~/.zen/ipfs_swarm/.$ipfsid/_xbian.zuid) || zuidoffline="UNKOWN"
|
||||
zuidonline=$(ipfs -timeout=10s cat /ipns/$ipfsid/.$ipfsid/.player 2>/dev/null) || zuidonline="TIMEOUT"
|
||||
[[ -f ~/.zen/ipfs_swarm/.$ipfsid/.player ]] && zuidoffline=$(cat ~/.zen/ipfs_swarm/.$ipfsid/.player) || zuidoffline="UNKOWN"
|
||||
echo "Station $zuidonline [$zuidoffline] : OK"
|
||||
else
|
||||
echo "Station $(cat ~/.zen/ipfs_swarm/.$ipfsid/_xbian.zuid) : DEAD"
|
||||
echo "Station $(cat ~/.zen/ipfs_swarm/.$ipfsid/.player) : DEAD"
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
|
|
|
@ -12,7 +12,7 @@ ME="${0##*/}"
|
|||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "ERREUR G1PUB. EXIT" && exit 1
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid);
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/.player ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player);
|
||||
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title)
|
||||
|
||||
channel="$1" && [[ "$channel" == "" ]] && channel="wordpress"
|
||||
|
@ -44,7 +44,7 @@ do
|
|||
echo "$ipfnodesource wants to publish $mediakey"
|
||||
## GET ipns link + title + xzuid
|
||||
title=$(cat ~/.zen/ipfs_swarm/.$ipfnodesource/KEY/$mediakey/$g1pubsource/.title | sed "s/_/ /g")
|
||||
xzuid=$(cat ~/.zen/ipfs_swarm/.$ipfnodesource/_xbian.zuid)
|
||||
xzuid=$(cat ~/.zen/ipfs_swarm/.$ipfnodesource/.player)
|
||||
tags=$(cat ~/.zen/ipfs_swarm/.$ipfnodesource/KEY/$mediakey/$g1pubsource/video.json | jq -c .tags | sed 's/[][]//g' | sed "s/\"//g" )
|
||||
|
||||
mynodename=$(cat ~/.zen/ipfs_swarm/.$IPFSNODEID/G1SSB/_nodename)
|
||||
|
|
256
zen/zen_MAKE.sh
256
zen/zen_MAKE.sh
|
@ -41,37 +41,37 @@ IPFSNODEID=$(ipfs id -f='<id>\n')
|
|||
G1PUB=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
||||
echo "G1SSB Wallet: $G1PUB
|
||||
IPFS: $IPFSNODEID
|
||||
__ __ _ _ _______
|
||||
__ __ _ _ _______
|
||||
_______ _ __ | \/ | / \ | |/ / ____|
|
||||
|_ / _ \ '_ \ | |\/| | / _ \ | ' /| _|
|
||||
/ / __/ | | | | | | |/ ___ \| . \| |___
|
||||
|_ / _ \ '_ \ | |\/| | / _ \ | ' /| _|
|
||||
/ / __/ | | | | | | |/ ___ \| . \| |___
|
||||
/___\___|_| |_| |_| |_/_/ \_\_|\_\_____|
|
||||
|
||||
|
||||
"
|
||||
########################################################################
|
||||
# ZenTag is an IPFS/IPNS datastructure shared into IPFS, publish
|
||||
# ZenTag is an IPFS/IPNS datastructure shared into IPFS, publish
|
||||
# ~~~ Draft ~~~~ Draft ~~~~ Draft ~~~~ Draft ~~~~ Draft ~~~~
|
||||
# _chain # ZenTag IPFS Hash
|
||||
# _chain.n # Sequence Number
|
||||
# _chain.nanodate # Current nanodate
|
||||
# _chain.prev # Previous IPFS Hash
|
||||
# _g1.node.creator # G1SSB wallet pubkey
|
||||
# _tag.issuer # G1TX ISSUER pubkey
|
||||
# _tag.zensource # G1TX HASH or SSB timestamp
|
||||
# _ipfs.node.creatorcat # NODE IPFS ID
|
||||
# _ipfs.publishkey.BB.aes # BB SYMcypher of IPNS publish key
|
||||
# _ipfs.publishkey.crypt # G1SSB ASYMcypher of IPNS publish key
|
||||
# _tag.BB.sha # BB sha256sum
|
||||
# _tag.uid # ZenTag UID
|
||||
# _tag.zen # ZentTag balance
|
||||
# _ipns # /ipns/ address
|
||||
# _chain # ZenTag IPFS Hash
|
||||
# _chain.n # Sequence Number
|
||||
# _chain.nanodate # Current nanodate
|
||||
# _chain.prev # Previous IPFS Hash
|
||||
# _g1.node.creator # G1SSB wallet pubkey
|
||||
# _tag.issuer # G1TX ISSUER pubkey
|
||||
# _tag.zensource # G1TX HASH or SSB timestamp
|
||||
# _ipfs.node.creatorcat # NODE IPFS ID
|
||||
# _ipfs.publishkey.BB.aes # BB SYMcypher of IPNS publish key
|
||||
# _ipfs.publishkey.crypt # G1SSB ASYMcypher of IPNS publish key
|
||||
# _tag.BB.sha # BB sha256sum
|
||||
# _tag.uid # ZenTag UID
|
||||
# _tag.zen # ZentTag balance
|
||||
# _ipns # /ipns/ address
|
||||
# PASSENGER FILE (put to IPFS and cypher link in IPNS ZenTag)
|
||||
# _passenger.filename # Passenger filename
|
||||
# _passenger.ipfs.crypt # G1SSB cyphered IPFS Passenger link
|
||||
# _passenger.read # Zen value asked for READING
|
||||
# _passenger.park # Zen value paid for PARKING
|
||||
# _passenger.filename # Passenger filename
|
||||
# _passenger.ipfs.crypt # G1SSB cyphered IPFS Passenger link
|
||||
# _passenger.read # Zen value asked for READING
|
||||
# _passenger.park # Zen value paid for PARKING
|
||||
# Only if contract executed => add new cyphered links
|
||||
# _passenger.contract.sh # Zen CONTRACT TODO
|
||||
# _passenger.contract.sh # Zen CONTRACT TODO
|
||||
# COmpare with code to verify and extend Draft
|
||||
# TODO: Could be converted into yaml or json if you like...
|
||||
########################################################################
|
||||
|
@ -85,39 +85,39 @@ if [[ "$METADATA" == "" ]]; then
|
|||
echo "
|
||||
# LOVE BANK - PrePaid Card ZenTag
|
||||
# FULLY BACKED ON IRL G1 LIBRE MONEY (https://cesium.app)
|
||||
# ____ ____ _____ _____ _ _
|
||||
# / ___| _ \| ____| ____| \ | | _______ _ __
|
||||
# | | _| |_) | _| | _| | \| | |_ / _ \ '_ \
|
||||
# ____ ____ _____ _____ _ _
|
||||
# / ___| _ \| ____| ____| \ | | _______ _ __
|
||||
# | | _| |_) | _| | _| | \| | |_ / _ \ '_ \
|
||||
# | |_| | _ <| |___| |___| |\ | / / __/ | | |
|
||||
# \____|_| \_\_____|_____|_| \_| /___\___|_| |_|
|
||||
#
|
||||
#
|
||||
"
|
||||
# COMMENT WILL BREAK (G1 <=> ZEN) STRICT RELATION
|
||||
[[ ! -f ~/.zen/cache/g1_TX_inputs/zen.$ZENSOURCE ]] && echo "ERROR# UNKNOWN ~/.zen/cache/g1_TX_inputs/zen.$ZENSOURCE !!" && exit 1
|
||||
ISSUER=$(cat ~/.zen/cache/g1_TX_inputs/zen.$ZENSOURCE)
|
||||
[[ $ISSUER == "" ]] && echo "ERROR# NO ISSUER FOUND FOR TX $ZENSOURCE !!" && exit 1
|
||||
[[ $ISSUER == "" ]] && echo "ERROR# NO ISSUER FOUND FOR TX $ZENSOURCE !!" && exit 1
|
||||
echo "ISSUER = $ISSUER SENT TX $ZENSOURCE !!"
|
||||
|
||||
else
|
||||
|
||||
echo "
|
||||
|
||||
_|_ o ._ _ _ _ _|_ _. ._ _ ._
|
||||
|_ | | | | (/_ _> |_ (_| | | | |_)
|
||||
|
|
||||
|
||||
_|_ o ._ _ _ _ _|_ _. ._ _ ._
|
||||
|_ | | | | (/_ _> |_ (_| | | | |_)
|
||||
|
|
||||
SSB PASSENGER ~/.zen/miam/$ZENSOURCE
|
||||
"
|
||||
|
||||
[[ ! -d ~/.zen/miam/$ZENSOURCE ]] && echo "ERROR# UNKNOWN ~/.zen/miam/$ZENSOURCE !!" && exit 1
|
||||
ISSUER=$(cat ~/.zen/miam/$ZENSOURCE/msg_key)
|
||||
[[ $ISSUER == "" ]] && echo "ERROR# NO ISSUER FOUND FOR miam $ZENSOURCE !!" && exit 1
|
||||
[[ $ISSUER == "" ]] && echo "ERROR# NO ISSUER FOUND FOR miam $ZENSOURCE !!" && exit 1
|
||||
echo "ISSUER = SSB Message $ISSUER !!"
|
||||
|
||||
|
||||
fi
|
||||
|
||||
########################################################################
|
||||
# CREATE ZEN TAG
|
||||
# CREATE ZEN TAG
|
||||
########################################################################
|
||||
# Produce unique 6 words diceware to give a name _tag.uid
|
||||
AA=$(echo $($MY_PATH/tools/diceware.sh 6 | xargs) | sed s/\ /_/g ) # ZenTag Name = Diceware_6_words
|
||||
|
@ -126,12 +126,12 @@ AAH=$(echo -n ${AA} | sha256sum | cut -d ' ' -f 1) # ZenTag Name SHA256
|
|||
# TODO ACTIVATE SWARM UNICITY CHECK
|
||||
# Create Unique Zentag for all IPFS SWARM!
|
||||
while [[ $(grep -Rwl "$AA" ~/.zen/ipfs_swarm/.12D3KooW*/TAG/*/_tag.uid) ]]; do
|
||||
AA=$(echo $($MY_PATH/tools/diceware.sh 6 | xargs) | sed s/\ /_/g )
|
||||
AAH=$(echo -n ${AA} | sha256sum | cut -d ' ' -f 1)
|
||||
AA=$(echo $($MY_PATH/tools/diceware.sh 6 | xargs) | sed s/\ /_/g )
|
||||
AAH=$(echo -n ${AA} | sha256sum | cut -d ' ' -f 1)
|
||||
done
|
||||
|
||||
# BB key is a 4 word diceware printed on QRCode for Human use.
|
||||
# SHA256 PASSWORD CHECK FOR ALLOWING WRITE ACTION
|
||||
# SHA256 PASSWORD CHECK FOR ALLOWING WRITE ACTION
|
||||
BB=$($MY_PATH/tools/diceware.sh 4 | xargs);
|
||||
BBH=$(echo -n "$BB" | sha256sum | cut -d ' ' -f 1)
|
||||
|
||||
|
@ -141,14 +141,14 @@ BBH=$(echo -n "$BB" | sha256sum | cut -d ' ' -f 1)
|
|||
mkdir -p ~/.zen/tag/${AAH}
|
||||
# LOG
|
||||
echo "
|
||||
_____ _____ _ ____
|
||||
_____ _____ _ ____
|
||||
|__ /___ _ _|_ _|/ \ / ___| __/\__
|
||||
/ // _ \ °_ \| | / _ \| | _ \ /
|
||||
/ /| __/ | | | |/ ___ \ |_| | /_ _\
|
||||
/____\___|_| |_|_/_/ \_\____| \/
|
||||
/ /| __/ | | | |/ ___ \ |_| | /_ _\
|
||||
/____\___|_| |_|_/_/ \_\____| \/
|
||||
|
||||
*******************************************************
|
||||
| $AA | $ZEN Zen
|
||||
| $AA | $ZEN Zen
|
||||
*******************************************************
|
||||
CREATING ~/.zen/tag/${AAH}/
|
||||
"
|
||||
|
@ -159,8 +159,8 @@ echo "$ZEN" > ~/.zen/tag/${AAH}/_tag.zen # Tag ZEN amount
|
|||
echo "${IPFSNODEID}" > ~/.zen/tag/${AAH}/_ipfs.node.creator # NODE IPFS ID
|
||||
echo "$ZENSOURCE" > ~/.zen/tag/${AAH}/_tag.zensource # ZENSOURCE
|
||||
echo "$G1PUB" > ~/.zen/tag/${AAH}/_g1.node.creator # CREATOR IPFS NODE G1PUBKEY
|
||||
echo "$ISSUER" > ~/.zen/tag/${AAH}/_tag.issuer # TX ISSUER G1PUBKEY OR SSB_MESSAGE ID
|
||||
|
||||
echo "$ISSUER" > ~/.zen/tag/${AAH}/_tag.issuer # TX ISSUER G1PUBKEY OR SSB_MESSAGE ID
|
||||
|
||||
########################################################################
|
||||
# Create IPNS publishing key ${AA}.key
|
||||
# =====================================
|
||||
|
@ -170,7 +170,7 @@ echo "$ISSUER" > ~/.zen/tag/${AAH}/_tag.issuer # TX ISSUER G1PUBKEY OR SSB_MESSA
|
|||
########################################################################
|
||||
#timestamp=$(date -u +%s%N | cut -b1-13)
|
||||
keyname="${ZENSOURCE}_${AA}.key"
|
||||
[[ ! $(ipfs key list | grep -F ${AA}.key) ]] && J0=$(ipfs key gen -t rsa -s 2048 $keyname)
|
||||
[[ ! $(ipfs key list | grep -F ${AA}.key) ]] && J0=$(ipfs key gen -t rsa -s 2048 $keyname)
|
||||
# WRITE BBH for QRCode BB verification
|
||||
echo "$BBH" > ~/.zen/tag/${AAH}/_tag.BB.sha
|
||||
# BB pgp symetric publishkey
|
||||
|
@ -185,9 +185,9 @@ CYPHERING PUBLISH KEY
|
|||
__ _
|
||||
_/_/ __/|_ __/|_ | |
|
||||
/ / | / | / / /
|
||||
/ / /_ __| /_ __| / /
|
||||
/ / |/ |/ _/_/
|
||||
|_| /_/
|
||||
/ / /_ __| /_ __| / /
|
||||
/ / |/ |/ _/_/
|
||||
|_| /_/
|
||||
|
||||
KEY : $BB
|
||||
BBH : $BBH
|
||||
|
@ -196,61 +196,61 @@ BBH : $BBH
|
|||
# PASSENGER FILE is added to IPFS (then link is cyphered: NO!)
|
||||
# https://beechat.network/how-beechats-encryption-works/
|
||||
# SECURITY IS OBSOLETE AS WE ARE SHARING COPY WITH FRIENDS ;)
|
||||
# ACTIVATE ZEN CONTRACT... 100 readers impresari
|
||||
# ACTIVATE ZEN CONTRACT... 100 readers impresari
|
||||
# LOVE ECONOMY IS FREE. EVERYBODY IS DONATING TO THE OTHERS NOW.
|
||||
# INCOME != MONEY FORGE (Realtive Moey Theory applies HERE)
|
||||
# CODE WILL BE CERTIFIED AS IPFS HASH.
|
||||
if [[ -f $PASSENGER ]]; then
|
||||
|
||||
echo "
|
||||
_ _ _ _ _ _ _ _ _
|
||||
/ \ / \ / \ / \ / \ / \ / \ / \ / \
|
||||
_ _ _ _ _ _ _ _ _
|
||||
/ \ / \ / \ / \ / \ / \ / \ / \ / \
|
||||
( p | a | s | s | e | n | g | e | r )
|
||||
\_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
|
||||
\_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
|
||||
|
||||
"
|
||||
# SEARCH FOR SAME SOURCE in IPFS... Not to make it twice...
|
||||
CHECKSWARM=$(grep -Rwl "$ZENSOURCE" ~/.zen/ipfs_swarm/.12D3KooW*/TAG/*/_tag.zensource | tail -n 1 | cut -f 6 -d '/')
|
||||
[[ $CHECKSWARM == "" ]] && CHECKSWARM=$(grep -Rwl "$ZENSOURCE" ~/.zen/ipfs/.$IPFSNODEID/TAG/*/_tag.zensource | tail -n 1 | cut -f 6 -d '/')
|
||||
[[ -s ~/.zen/ipfs/.$IPFSNODEID/TAG/$ZENSOURCE/_tag.issuer ]] && ISSUERSWARM=$(cat ~/.zen/ipfs/.$IPFSNODEID/TAG/$ZENSOURCE/_tag.issuer)
|
||||
[[ "$CHECKSWARM" != "" && "$ISSUERSWARM" == "$ISSUER" ]] && ipfs key rm $keyname && rm -Rf ~/.zen/tag/${AAH} \
|
||||
&& echo "$ZENSOURCE ALREADY COPIED IN IPFS SWARM. $CHECKSWARM CANCEL" && exit 1
|
||||
# NO DUPLICATE
|
||||
# SEARCH FOR SAME SOURCE in IPFS... Not to make it twice...
|
||||
CHECKSWARM=$(grep -Rwl "$ZENSOURCE" ~/.zen/ipfs_swarm/.12D3KooW*/TAG/*/_tag.zensource | tail -n 1 | cut -f 6 -d '/')
|
||||
[[ $CHECKSWARM == "" ]] && CHECKSWARM=$(grep -Rwl "$ZENSOURCE" ~/.zen/ipfs/.$IPFSNODEID/TAG/*/_tag.zensource | tail -n 1 | cut -f 6 -d '/')
|
||||
[[ -s ~/.zen/ipfs/.$IPFSNODEID/TAG/$ZENSOURCE/_tag.issuer ]] && ISSUERSWARM=$(cat ~/.zen/ipfs/.$IPFSNODEID/TAG/$ZENSOURCE/_tag.issuer)
|
||||
[[ "$CHECKSWARM" != "" && "$ISSUERSWARM" == "$ISSUER" ]] && ipfs key rm $keyname && rm -Rf ~/.zen/tag/${AAH} \
|
||||
&& echo "$ZENSOURCE ALREADY COPIED IN IPFS SWARM. $CHECKSWARM CANCEL" && exit 1
|
||||
# NO DUPLICATE
|
||||
|
||||
echo "ADDING TO IPFS.................$(date)"
|
||||
# ADD PASSENGER TO IPFS # COULD BE SUPER LONG !!!
|
||||
IPASSENGER=$(ipfs add -q "$PASSENGER" -w | tail -n 1)
|
||||
# TODO COMPARE DISK WRITING SPEED AND AVAILABLE SPACE TO CHOOSE BEST IN SWARM
|
||||
echo "$(date) ............... YES /ipfs/$IPASSENGER"
|
||||
|
||||
echo "$IPASSENGER" > ~/.zen/tag/${AAH}/_passenger.ipfs
|
||||
# GET FILE NAME
|
||||
PASSENGERNAME=$(basename -- "$PASSENGER")
|
||||
echo "$PASSENGERNAME" > ~/.zen/tag/${AAH}/_passenger.filename
|
||||
echo "ADDING TO IPFS.................$(date)"
|
||||
# ADD PASSENGER TO IPFS # COULD BE SUPER LONG !!!
|
||||
IPASSENGER=$(ipfs add -q "$PASSENGER" -w | tail -n 1)
|
||||
# TODO COMPARE DISK WRITING SPEED AND AVAILABLE SPACE TO CHOOSE BEST IN SWARM
|
||||
echo "$(date) ............... YES /ipfs/$IPASSENGER"
|
||||
|
||||
# G1SSB NODE ACCESS
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/tag/${AAH}/_passenger.ipfs -o ~/.zen/tag/${AAH}/_passenger.ipfs.crypt
|
||||
# BB OWNER ACCESS
|
||||
openssl aes-256-cbc -pbkdf2 -k "$BB" -salt -in ~/.zen/tag/${AAH}/_passenger.ipfs -out ~/.zen/tag/${AAH}/_passenger.ipfs.BB.aes
|
||||
echo "$IPASSENGER" > ~/.zen/tag/${AAH}/_passenger.ipfs
|
||||
# GET FILE NAME
|
||||
PASSENGERNAME=$(basename -- "$PASSENGER")
|
||||
echo "$PASSENGERNAME" > ~/.zen/tag/${AAH}/_passenger.filename
|
||||
|
||||
# CLEAN CLEARTEXT IPFS link ? LATER MAYBE
|
||||
rm ~/.zen/tag/${AAH}/_passenger.ipfs
|
||||
# G1SSB NODE ACCESS
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/tag/${AAH}/_passenger.ipfs -o ~/.zen/tag/${AAH}/_passenger.ipfs.crypt
|
||||
# BB OWNER ACCESS
|
||||
openssl aes-256-cbc -pbkdf2 -k "$BB" -salt -in ~/.zen/tag/${AAH}/_passenger.ipfs -out ~/.zen/tag/${AAH}/_passenger.ipfs.BB.aes
|
||||
|
||||
# ZEN ECONOMY: ZEN READ payment + PARK rental
|
||||
echo "$READ" > ~/.zen/tag/${AAH}/_passenger.read
|
||||
echo "$PARK" > ~/.zen/tag/${AAH}/_passenger.park
|
||||
# CLEAN CLEARTEXT IPFS link ? LATER MAYBE
|
||||
rm ~/.zen/tag/${AAH}/_passenger.ipfs
|
||||
|
||||
# ZEN ECONOMY: ZEN READ payment + PARK rental
|
||||
echo "$READ" > ~/.zen/tag/${AAH}/_passenger.read
|
||||
echo "$PARK" > ~/.zen/tag/${AAH}/_passenger.park
|
||||
|
||||
echo "
|
||||
_passenger.filename : $PASSENGERNAME
|
||||
_passenger.ipfs : $IPASSENGER
|
||||
http://127.0.0.1:8080/ipfs/$IPASSENGER/$PASSENGERNAME
|
||||
|
||||
# #### ## ##### ###### #####
|
||||
# # # # # # # # # #
|
||||
# # # # # # # ##### # #
|
||||
# # # ###### # # # # #
|
||||
# # # # # # # # # #
|
||||
###### #### # # ##### ###### #####
|
||||
# #### ## ##### ###### #####
|
||||
# # # # # # # # # #
|
||||
# # # # # # # ##### # #
|
||||
# # # ###### # # # # #
|
||||
# # # # # # # # # #
|
||||
###### #### # # ##### ###### #####
|
||||
|
||||
##################################################################
|
||||
# DECODE AND READ _passenger.ipfs with BB Passphrase
|
||||
|
@ -273,12 +273,12 @@ echo
|
|||
#You must execute that code.
|
||||
# ..... TODO ......
|
||||
# It is bash or javascript or python
|
||||
# or any language code with connection with g1, ipfs or ssb
|
||||
# or any language code with connection with g1, ipfs or ssb
|
||||
|
||||
# or Send $READ Zen to $G1PUB with $PASSENGERNAME in comment
|
||||
# .... TODO ....
|
||||
|
||||
# Once contract is validated
|
||||
# Once contract is validated
|
||||
# NodeN will be able to decrypt _passenger.ipfs.NodeN.crypt'
|
||||
|
||||
exit 0
|
||||
|
@ -286,13 +286,13 @@ exit 0
|
|||
EOF
|
||||
|
||||
fi
|
||||
# END PASSENGER FILE
|
||||
# END PASSENGER FILE
|
||||
####################
|
||||
|
||||
###########################################################
|
||||
# Copy TAG into IPFS + ipfs name publish -k ${AA}.key
|
||||
# Copy TAG into IPFS + ipfs name publish -k ${AA}.key
|
||||
###########################################################
|
||||
# ZenTAG CHAIN
|
||||
# ZenTAG CHAIN
|
||||
echo "0" > ~/.zen/tag/${AAH}/_chain.n # Tag modification number (0 first)
|
||||
|
||||
NANODATE=$(date -u +%s%N)
|
||||
|
@ -307,7 +307,7 @@ I=$(ipfs add -qr ~/.zen/tag/${AAH} | tail -n 1)
|
|||
echo "${I}" > ~/.zen/tag/${AAH}/_chain
|
||||
|
||||
echo "
|
||||
_|_ _.o._
|
||||
_|_ _.o._
|
||||
(_| |(_||| | : $NANODATE
|
||||
|
||||
J0=${J0}
|
||||
|
@ -329,37 +329,37 @@ echo "${ISSUER}" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.issuer
|
|||
echo "${J}" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.ipns
|
||||
|
||||
if [[ "${PASSENGERNAME}" != "" ]]; then
|
||||
echo "${PASSENGERNAME}" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.filename
|
||||
# COPY METADATA!! TODO : Please Extend filesource FOR new metadata types. torrent ?
|
||||
extractor=$(cat "$METADATA" | jq -r '.extractor')
|
||||
|
||||
youtubeid=$(cat "$METADATA" | jq -r '.id')
|
||||
fulltitle=$(cat "$METADATA" | jq -r '.fulltitle')
|
||||
echo "$fulltitle" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.fulltitle
|
||||
# description=$(cat "$METADATA" | jq -r '.description')
|
||||
artist=$(cat "$METADATA" | jq -r '.artist')
|
||||
album=$(cat "$METADATA" | jq -r '.album')
|
||||
duration=$(cat "$METADATA" | jq -r '.duration')
|
||||
upload_date=$(cat "$METADATA" | jq -r '.upload_date')
|
||||
uploader_id=$(cat "$METADATA" | jq -r '.uploader_id')
|
||||
|
||||
extractor=$(cat "$METADATA" | jq -r '.extractor')
|
||||
[[ ! -f ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.metadata.${extractor}.json ]] \
|
||||
&& cp -f "${METADATA}" /tmp/
|
||||
mv /tmp/${youtubeid}.info.json ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.metadata.${extractor}.json
|
||||
echo "${PASSENGERNAME}" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.filename
|
||||
# COPY METADATA!! TODO : Please Extend filesource FOR new metadata types. torrent ?
|
||||
extractor=$(cat "$METADATA" | jq -r '.extractor')
|
||||
|
||||
youtubeid=$(cat "$METADATA" | jq -r '.id')
|
||||
fulltitle=$(cat "$METADATA" | jq -r '.fulltitle')
|
||||
echo "$fulltitle" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.fulltitle
|
||||
# description=$(cat "$METADATA" | jq -r '.description')
|
||||
artist=$(cat "$METADATA" | jq -r '.artist')
|
||||
album=$(cat "$METADATA" | jq -r '.album')
|
||||
duration=$(cat "$METADATA" | jq -r '.duration')
|
||||
upload_date=$(cat "$METADATA" | jq -r '.upload_date')
|
||||
uploader_id=$(cat "$METADATA" | jq -r '.uploader_id')
|
||||
|
||||
extractor=$(cat "$METADATA" | jq -r '.extractor')
|
||||
[[ ! -f ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.metadata.${extractor}.json ]] \
|
||||
&& cp -f "${METADATA}" /tmp/
|
||||
mv /tmp/${youtubeid}.info.json ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/_tag.passenger.metadata.${extractor}.json
|
||||
fi
|
||||
ls ~/.zen/ipfs/.$IPFSNODEID/TAG/${ZENSOURCE}/
|
||||
|
||||
IWALLETS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1)
|
||||
IWALLETS=$(ipfs add -rHq $(readlink ~/.zen/ipfs) | tail -n 1)
|
||||
NODEIPNS=$(ipfs name publish --quieter /ipfs/$IWALLETS)
|
||||
|
||||
echo "
|
||||
_ ____
|
||||
_ ____
|
||||
(_)___ / __/____
|
||||
/ / __ \/ /_/ ___/
|
||||
/ / /_/ / __(__ )
|
||||
/_/ .___/_/ /____/
|
||||
/_/
|
||||
/ / /_/ / __(__ )
|
||||
/_/ .___/_/ /____/
|
||||
/_/
|
||||
ipfs ls /ipfs/${I}
|
||||
|
||||
ZenTAG : ipfs ls /ipns/${J}
|
||||
|
@ -371,8 +371,8 @@ NODE index : ipfs ls /ipns/$IPFSNODEID/.$IPFSNODEID/TAG/${ZENSOURCE}
|
|||
### PRINTER IS HOOKED TO G1SSB NODE = G1DAB
|
||||
########################################################################
|
||||
echo "
|
||||
_ _ _ _ _ _
|
||||
/ \|_) / / \| \|_
|
||||
_ _ _ _ _ _
|
||||
/ \|_) / / \| \|_
|
||||
\_X| \ \_\_/|_/|_ .................................
|
||||
"
|
||||
# READ QRCODE
|
||||
|
@ -381,8 +381,8 @@ qrencode -s 5 -o ~/.zen/tag/${AAH}/_QRCODE.read.png "RJ:${AA}#${J}"
|
|||
qrencode -s 5 -o ~/.zen/tag/${AAH}/_QRCODE.write.png "BJ:${BB}#${J}"
|
||||
## TODO PROD REMOVE WRITE FILE
|
||||
|
||||
echo "QRCodes CREATED !!
|
||||
See it :
|
||||
echo "QRCodes CREATED !!
|
||||
See it :
|
||||
xviewer ~/.zen/tag/${AAH}/_QRCODE.read.png &
|
||||
xviewer ~/.zen/tag/${AAH}/_QRCODE.write.png &
|
||||
|
||||
|
@ -397,7 +397,7 @@ ${AA}
|
|||
# SBOT PUBLISH
|
||||
########################################################################
|
||||
if [[ "${PASSENGERNAME}" != "" ]]; then
|
||||
echo "$ISSUER"
|
||||
echo "$ISSUER"
|
||||
msg="$(sbotc get '{"id":"'"$ISSUER"'"}')"
|
||||
# echo "$msg" | jq #DEBUG
|
||||
[[ $msg == "" ]] && echo "ERROR No SSB message for PASSENGER (timestamp: $tstamp)" && exit 1
|
||||
|
@ -405,13 +405,13 @@ if [[ "${PASSENGERNAME}" != "" ]]; then
|
|||
[[ $msg_root == "null" ]] && msg_root=$ISSUER
|
||||
msg_branch=$(printf %s "$msg" | jq -r .value.content.branch)
|
||||
[[ $msg_branch == "null" ]] && msg_branch=$ISSUER
|
||||
|
||||
# ATTACH ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg
|
||||
name="ssb_thumb.jpg"
|
||||
id="$(sbotc blobs.add < ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg)"
|
||||
type="$(file -b --mime-type ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg)"
|
||||
size="$(wc -c < ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg)"
|
||||
|
||||
|
||||
# ATTACH ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg
|
||||
name="ssb_thumb.jpg"
|
||||
id="$(sbotc blobs.add < ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg)"
|
||||
type="$(file -b --mime-type ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg)"
|
||||
size="$(wc -c < ~/.zen/miam/$ZENSOURCE/ssb_thumb.jpg)"
|
||||
|
||||
export MESSAGE=$(cat << EOF
|
||||
[![ssb_thumb.jpg](${id})](http://127.0.0.1:8080/ipfs/$IPASSENGER/$PASSENGERNAME)
|
||||
|
||||
|
@ -432,10 +432,10 @@ if [[ "${PASSENGERNAME}" != "" ]]; then
|
|||
#astroport
|
||||
EOF
|
||||
)
|
||||
|
||||
|
||||
echo "
|
||||
__ _ ____
|
||||
(_ |_)/ \|
|
||||
__ _ ____
|
||||
(_ |_)/ \|
|
||||
__)|_)\_/| POST
|
||||
|
||||
root: $msg_root
|
||||
|
|
Loading…
Reference in New Issue