Astroport.ONE/ajouter_media.sh

945 lines
39 KiB
Bash
Raw Normal View History

2022-09-04 12:20:55 +02:00
#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 1.0
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
# SCRIPT INTERACTIF POUR AJOUTER UN FICHIER à ASTROPORT/TW
#
# 1. CAT: film, serie
# 2. TMDB: ID de la fiche sur https://www.themoviedb.org/
# 3. TITLE: Titre de la vidéo
# 4. YEAR: Année de la vidéo
# 5. RES: Résolution 1080p, 4K, SD, 720, HD
# 6. SAISON: Pour les séries, c'est le numéro de saison.
# Pour un film, le champ SAISON est utilisé pour renseigner la Saga
# 7. GENRES: Action, Aventure, Fantastique, Animation, etc (choix multiple).
# 8. GROUPES: Stocker la clef IPNS du MEDIAKEY.
#
# https://github.com/Kodi-vStream/venom-xbmc-addons/wiki/Voir-et-partager-sa-biblioth%C3%A8que-priv%C3%A9e#d%C3%A9clarer-des-films
########################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
2022-12-03 16:54:40 +01:00
start=`date +%s`
2022-12-04 19:12:02 +01:00
# REMOVE GtkDialog errors for zenity
shopt -s expand_aliases
alias zenity='zenity 2> >(grep -v GtkDialog >&2)'
alias espeak='espeak 1>&2>/dev/null'
2022-09-04 12:20:55 +02:00
########################################################################
[[ $(which ipfs) == "" ]] && echo "ERREUR! Installez ipfs" && echo "wget https://git.p2p.legal/axiom-team/astrXbian/raw/master/.install/ipfs_alone.sh -O /tmp/ipfs_install.sh && chmod +x /tmp/ipfs_install.sh && /tmp/ipfs_install.sh" && exit 1
[[ $(which zenity) == "" ]] && echo "ERREUR! Installez zenity" && echo "sudo apt install zenity" && exit 1
[[ $(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
URL="$1"
PLAYER="$2"
CHOICE="$3"
2022-09-04 12:20:55 +02:00
# Check who is .current PLAYER
[[ ${PLAYER} == "" ]] && PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
2022-11-29 16:39:58 +01:00
[[ ${PLAYER} == "" ]] \
2022-12-04 23:02:09 +01:00
&& espeak "YOU MUST CONNECT A PLAYER" \
&& OUTPUT=$(zenity --forms --width 480 --title="CONNEXION" --text="Ecrivez la formule magique" --separator="~" --add-entry="Phrase 1" --add-entry="Phrase 2") \
2022-11-29 16:39:58 +01:00
&& SALT=$(awk -F '~' '{print $1}' <<<$OUTPUT) \
&& PEPPER=$(awk -F '~' '{print $2}' <<<$OUTPUT) \
2022-12-04 23:02:09 +01:00
&& PLAYER=$(zenity --entry --width 300 --title "PLAYER" --text "Indiquez votre email" --entry-text="user@domain.tld") \
&& ${MY_PATH}/tools/VISA.new.sh "$SALT" "$PEPPER" "$PLAYER"
2022-11-29 16:39:58 +01:00
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
espeak "Hello $PSEUDO"
2022-11-29 16:39:58 +01:00
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
[[ $G1PUB == "" ]] && espeak "ERROR NO G 1 PUBLIC KEY FOUND - EXIT" && exit 1
2022-10-31 17:22:40 +01:00
2022-11-29 16:39:58 +01:00
PLAYERNS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
2022-09-04 12:20:55 +02:00
ASTRONAUTENS=$(ipfs key list -l | grep -w "${PLAYER}" | cut -d ' ' -f 1)
2022-10-31 17:22:40 +01:00
[[ $ASTRONAUTENS == "" ]] && echo "ASTRONAUTE manquant" && espeak "Astronaut Key Missing" && exit 1
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1
2022-11-29 16:39:58 +01:00
2022-12-10 21:55:19 +01:00
BROWSER=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1) ## GET cookies-from-browser
2022-10-31 17:22:40 +01:00
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost"
2022-09-04 12:20:55 +02:00
if [ $URL ]; then
echo "URL: $URL"
REVSOURCE="$(echo "$URL" | awk -F/ '{print $3}' | rev)_"
[ ! $2 ] && IMPORT=$(zenity --entry --width 640 --title="$URL => Astroport" --text="${PLAYER} Type de media à importer ?" --entry-text="Video" Page MP3 Web) || IMPORT="$CHOICE"
2022-10-31 17:22:40 +01:00
[[ $IMPORT == "" ]] && espeak "No choice made. Exiting program" && exit 1
2022-09-04 12:20:55 +02:00
[[ $IMPORT == "Video" ]] && IMPORT="Youtube"
CHOICE="$IMPORT"
fi
# GET SCREEN DIMENSIONS
screen=$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')
width=$(echo $screen | cut -d 'x' -f 1)
height=$(echo $screen | cut -d 'x' -f 2)
large=$((width-300))
haut=$((height-200))
########################################################################
## CADRE EXCEPTION COPIE PRIVE
# https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006278917/2008-12-11/
2022-11-29 16:39:58 +01:00
if [[ ! -f ~/.zen/game/players/${PLAYER}/legal ]]; then
2022-09-04 12:20:55 +02:00
zenity --width ${large} --height=${haut} --text-info \
--title="Action conforme avec le Code de la propriété intellectuelle" \
--html \
--url="https://fr.wikipedia.org/wiki/Droit_d%27auteur_en_France#Les_exceptions_au_droit_d%E2%80%99auteur" \
--checkbox="J'ai lu et j'accepte les termes."
case $? in
0)
echo "AUTORISATION COPIE PRIVE ASTROPORT OK !"
2022-11-29 16:39:58 +01:00
echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/legal
2022-09-04 12:20:55 +02:00
# next step
;;
1)
echo "Refus conditions"
2022-11-29 16:39:58 +01:00
rm -f ~/.zen/game/players/${PLAYER}/legal
2022-09-04 12:20:55 +02:00
exit 1
;;
-1)
echo "Erreur."
exit 1
;;
esac
fi
## CHANGE ASTROPORT BOOTSTRAP
2022-10-31 17:22:40 +01:00
if [[ $1 == "on" ]]; then
2022-09-04 12:20:55 +02:00
STRAP=$(ipfs bootstrap)
2022-11-22 19:13:55 +01:00
BOOT=$(zenity --entry --width 300 --title="Catégorie" --text="$STRAP Changez de Bootstrap" --entry-text="Aucun" Astroport Public)
2022-09-04 12:20:55 +02:00
[[ $BOOT == "Aucun" ]] && ipfs bootstrap rm --all
2022-11-22 19:13:55 +01:00
[[ $BOOT == "Astroport" ]] && for bootnode in $(cat ${MY_PATH}/A_boostrap_nodes.txt | grep -Ev "#"); do ipfs bootstrap add $bootnode; done
[[ $BOOT == "Public" ]] && for bootnode in $(cat ${MY_PATH}/A_boostrap_public.txt | grep -Ev "#"); do ipfs bootstrap add $bootnode; done
REP=$(${MY_PATH}/tools/cron_VRFY.sh ON) && zenity --warning --width 600 --text "$REP"
2022-09-04 12:20:55 +02:00
fi
2022-10-31 17:22:40 +01:00
2022-12-04 23:02:09 +01:00
###
# IS THERE ANY RUNNING IPFS ADD
ISADDING=$(ps auxf --sort=+utime | grep -w 'ipfs add' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
ISPUBLISHING=$(ps auxf --sort=+utime | grep -w 'ipfs name publish' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
[[ $ISADDING || $ISPUBLISHING ]] \
&& espeak "I P F S progressing. Please try again later" && exit 1
########################################################################
2022-11-20 12:57:41 +01:00
espeak "restart I P F S daemon"
2022-11-19 21:28:00 +01:00
sudo systemctl restart ipfs
2022-11-22 19:13:55 +01:00
sleep 1
2022-10-31 17:22:40 +01:00
## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING
2022-11-16 06:11:07 +01:00
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
2022-10-31 17:22:40 +01:00
[[ ! $YOU ]] && espeak "I P F S not running - EXIT" && exit 1
2022-09-04 12:20:55 +02:00
########################################################################
2022-11-19 21:28:00 +01:00
espeak "Ready !"
########################################################################
2022-11-19 21:28:00 +01:00
2022-09-04 12:20:55 +02:00
########################################################################
# CHOOSE CATEGORY (remove anime, not working!)
[ ! $2 ] && CHOICE=$(zenity --entry --width 300 --title="Catégorie" --text="Quelle catégorie pour ce media ?" --entry-text="Vlog" Video Film Serie Web Page Youtube Mp3)
[[ $CHOICE == "" ]] && echo "NO CHOICE MADE" && exit 1
2022-09-04 12:20:55 +02:00
# LOWER CARACTERS
CAT=$(echo "${CHOICE}" | awk '{print tolower($0)}')
# UPPER CARACTERS
CHOICE=$(echo "${CAT}" | awk '{print toupper($0)}')
PREFIX=$(echo "${CAT}" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, S, A, Y, M ... P W
[[ $PREFIX == "" ]] && exit 1
########################################################################
########################################################################
case ${CAT} in
########################################################################
########################################################################
2022-12-02 19:38:05 +01:00
########################################################################
# CASE ## VLOG
2022-11-22 19:13:55 +01:00
#~ __ ___
#~ \ \ / / | ___ __ _
#~ \ \ / /| |/ _ \ / _` |
#~ \ V / | | (_) | (_| |
#~ \_/ |_|\___/ \__, |
#~ |___/
2022-09-04 12:20:55 +02:00
#
########################################################################
2022-10-31 17:22:40 +01:00
vlog)
2022-09-04 12:20:55 +02:00
2022-12-04 19:12:02 +01:00
espeak "Ready to record your webcam"
2022-09-04 12:20:55 +02:00
[ ! $2 ] && zenity --warning --width 300 --text "${PLAYER}. Prêt à enregistrer votre video ?"
2022-09-04 12:20:55 +02:00
## RECORD WEBCAM VIDEO
2022-11-22 19:13:55 +01:00
${MY_PATH}/tools/vlc_webcam.sh
2022-09-04 12:20:55 +02:00
exit 0
;;
########################################################################
# CASE ## YOUTUBE
# _ _
# _ _ ___ _ _| |_ _ _| |__ ___
#| | | |/ _ \| | | | __| | | | '_ \ / _ \
#| |_| | (_) | |_| | |_| |_| | |_) | __/
# \__, |\___/ \__,_|\__|\__,_|_.__/ \___|
# |___/
########################################################################
youtube)
2022-10-31 17:22:40 +01:00
espeak "youtube : video copying"
2022-09-04 12:20:55 +02:00
YTURL="$URL"
[ ! $2 ] && [[ $YTURL == "" ]] && YTURL=$(zenity --entry --width 300 --title "Lien ou identifiant à copier" --text "Indiquez le lien (URL) ou l'ID de la vidéo" --entry-text="")
[[ $YTURL == "" ]] && echo "URL EMPTY " && exit 1
2022-09-04 12:20:55 +02:00
REVSOURCE="$(echo "$YTURL" | awk -F/ '{print $3}' | rev)_"
# Create TEMP directory to copy $YID_$TITLE.$FILE_EXT
YTEMP="$HOME/.zen/tmp/$(date -u +%s%N | cut -b1-13)"
mkdir -p ${YTEMP}
# youtube-dl $YTURL
echo "VIDEO $YTURL"
/usr/local/bin/youtube-dl -f "(bv*[ext=mp4][height<=720]+ba/b[height<=720])" \
--cookies-from-browser $BROWSER \
--download-archive $HOME/.zen/.yt-dlp.list \
-S "filesize:700M" --no-mtime --embed-thumbnail --add-metadata \
--no-playlist --write-info-json --write-description --no-get-comments \
--write-subs --write-auto-subs --sub-langs "fr, en, en-orig" --embed-subs \
--no-mtime -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" $YTURL
2022-09-04 12:20:55 +02:00
# Get filename, extract ID, make destination dir and move copy.
YFILE=$(ls -S ${YTEMP} | head -n 1)
FILE_NAME="$(basename "${YFILE}")"
FILE_EXT="${FILE_NAME##*.}"
JSON_FILE=$(echo ${FILE_NAME} | sed "s/${FILE_EXT}/json/g")
YID=$(echo "${FILE_NAME}" | cut -d "&" -f 1)
YNAME=$(echo "${FILE_NAME}" | cut -d "&" -f 2- | sed "s/[(][^)]*[)]//g" | sed -e 's/[^A-Za-z0-9._-]/_/g' | sed -e 's/__/_/g' ) # Remove YoutubeID_ and (what is in perentheses)
[[ $(which detox) ]] && YNAME=$(echo "${FILE_NAME}" | cut -d "&" -f 2- | detox --inline)
2022-12-04 19:12:02 +01:00
espeak "OK $YNAME copied"
2022-09-04 12:20:55 +02:00
MEDIAID="$REVSOURCE${YID}"
TITLE="${YNAME%.*}"
MEDIAKEY="YOUTUBE_${MEDIAID}"
## CORRECT PARAMETERS to Make Kodi compatible YASTRXBIAN FILE
2022-12-04 19:12:02 +01:00
espeak "Please. Choose your tags"
2022-09-04 12:20:55 +02:00
[ ! $2 ] && GENRES=$(zenity --list --checklist --title="GENRE" --height=${haut} \
--text="Choisissez le(s) genre(s) d'information(s) contenue(s) dans cette vidéo \"${TITLE}\" publiée sur OASIS" \
--column="Use" \
--column="Feature" \
FALSE Savoir \
FALSE Nature \
FALSE Habiter \
FALSE Nourrir \
FALSE Deplacer \
FALSE Guerir \
FALSE Divertir \
FALSE Musique \
FALSE DIY \
FALSE Science \
FALSE Humain \
FALSE Animal \
TRUE Eveil \
TRUE ${PLAYER// /-}) || GENRES="${PLAYER// /-}"
# FORMAT GENRES genre1|genre2|genre3
2022-11-23 14:59:04 +01:00
FILE_PATH="$HOME/Astroport/youtube/$MEDIAID"
2022-09-04 12:20:55 +02:00
mkdir -p ${FILE_PATH} && mv -f ${YTEMP}/* ${FILE_PATH}/
# rename FILE_NAME to YNAME (URL clean)
mv "${FILE_PATH}/${FILE_NAME}" "${FILE_PATH}/${YNAME}" && FILE_NAME="${YNAME}"
# get & rename video.json
jsonfile=$(ls ${FILE_PATH}/*.json)
mv "${jsonfile}" "${FILE_PATH}/video.json"
FILE_RES=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "${FILE_PATH}/${FILE_NAME}" | cut -d "x" -f 2)
RES=${FILE_RES%?}0p
2022-11-23 14:59:04 +01:00
## CREATE "~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt" and video.json
2022-09-04 12:20:55 +02:00
URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
## KEEPS KODI COMPATIBILITY (BROKEN astroport.py !! ) : TODO DEBUG
2022-11-23 14:59:04 +01:00
echo "youtube;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt
2022-09-04 12:20:55 +02:00
# _IPFSREPFILEID_ is replaced later
rm -Rf ${YTEMP}
;;
########################################################################
# CASE ## WEB
2022-11-22 19:13:55 +01:00
#~ __ __ _
#~ \ \ / /__ | |__
#~ \ \ /\ / / _ \ '_ \
#~ \ V V /__/ |_) |
#~ \_/\_/ \_|_.__/
#~
2022-09-04 12:20:55 +02:00
web)
# URL="https://discuss.ipfs.io/t/limit-ipfs-get-command/3573/6"
espeak "Mirror web site"
cd ~/.zen/tmp/
URL=$(echo $URL | grep -Eo '^http[s]?://[^/]+')
[ ! $2 ] && [[ $URL == "" ]] && URL=$(zenity --entry --width 300 --title "Lien du site Web à copier" --text "Indiquez le lien (URL)" --entry-text="")
## Extract http(s)://domain.tld
URL=$(echo $URL | grep -Eo '^http[s]?://[^/]+') # URL="https://discuss.ipfs.io"
DOMAIN=$(echo $URL | rev | cut -d '/' -f1 | rev) # DOMAIN=discuss.ipfs.io
ARR=($(echo $DOMAIN | sed "s~\.~ ~g")) # ARR=discuss ipfs io
NIAMOD=$(printf '%s\n' "${ARR[@]}" | tac | tr '\n' '.' ) # NIAMOD=io.ipfs.discuss.
NIAPATH=$(echo $NIAMOD | sed "s~\.~\/~g") # NIAPATH=io/ipfs/discuss/
TITLE=$DOMAIN
GENRES="Web"
espeak "${ARR[@]}"
2022-12-04 19:12:02 +01:00
## CREATE IPNS KEY HOOK JUST FOR FUN
REVSOURCE="$(echo "$NIAMOD" | rev | sha256sum | cut -d ' ' -f 1)"; echo $REVSOURCE
MEDIAKEY="$REVSOURCE" # MEDIAKEY=435582881619ee4df9e2723fb9e20bb173b32818094a3e40c9536068ae3730ac
IPNSKEY=$(ipfs key list -l | grep -w $MEDIAKEY | cut -d ' ' -f 1 )
if [[ ! $IPNSKEY ]]; then
# Funny Crypto Level # TODO MAKE IT MORE SECURE # THIS KEY OWNS THE DOMAIN NOW
${MY_PATH}/tools/keygen -t ipfs -o ~/.zen/tmp/$MEDIAKEY.ipns "$DOMAIN" "$NIAMOD"
IPNSKEY=$(ipfs key import $MEDIAKEY -f pem-pkcs8-cleartext ~/.zen/tmp/$MEDIAKEY.ipns)
fi
MEDIAID="WEB_${NIAMOD}" # MEDIAID=WEB_io.ipfs.discuss.
FILE_PATH="$HOME/Astroport/web/$MEDIAID"; # FILE_PATH=/home/fred/Astroport/web/WEB_io.ipfs.discuss.
2022-10-31 17:22:40 +01:00
start=`date +%s`
2022-10-31 17:22:40 +01:00
mkdir -p $FILE_PATH
cd $FILE_PATH
2022-09-04 12:20:55 +02:00
espeak "Let's go. " ###################### HTTRACK COPYING
2022-09-04 12:20:55 +02:00
2022-12-02 17:45:45 +01:00
httrack -wxY --sockets=99 maxrate=0 --disable-security-limits keepalive --ext-depth=0 --stay-on-same-domain --keep-links=0 -V "echo \$0 >> $FILE_PATH/files" "$URL" -* +*/$DOMAIN/* -*wget* # -%l "fr"
2022-09-04 12:20:55 +02:00
2022-12-02 17:45:45 +01:00
mv $FILE_PATH/external.html $FILE_PATH/$DOMAIN/
## G1PUB ENCODE.16 MEDIAKEY
${MY_PATH}/tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/tmp/$MEDIAKEY.ipns -o $HOME/.zen/tmp/$MEDIAKEY.ipns.enc
cat $HOME/.zen/tmp/$MEDIAKEY.ipns.enc | base16 > $FILE_PATH/$DOMAIN/.ipnskey.$G1PUB.enc.16
## BLOCKCHAIN IT
echo "$MOATS" > $FILE_PATH/$DOMAIN/.moats # TIMESTMAPING
echo "$IPNSKEY" > $FILE_PATH/$DOMAIN/.ipnshook # SELF REFERING
2022-12-04 19:12:02 +01:00
espeak "OK Web is copied. Adding to I P F S now..."
### ADD TO IPFS
2022-12-04 15:06:09 +01:00
IPFSREPFILEID=$(ipfs add -qHwr $FILE_PATH/$DOMAIN/* | tail -n 1) # ADDING $DOMAIN TO IPFS
ipfs name publish -k $MEDIAKEY /ipfs/$IPFSREPFILEID # PUBLISH $MEDIAKEY
## CREATE ajouter_video.txt
2022-12-02 17:45:45 +01:00
echo "web;${MEDIAID};${MOATS};${TITLE};${SAISON};${GENRES};$IPNSKEY;${RES};/ipfs/$IPFSREPFILEID" > ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt
## DURATION LOG
end=`date +%s`
dur=`expr $end - $start`
echo ${MOATS}:${G1PUB}:${PLAYER}:${MEDIAID}:$dur >> ~/.zen/tmp/${IPFSNODEID}/_timings
cat ~/.zen/tmp/${IPFSNODEID}/_timings | tail -n 1
## TIDDLER CREATION
FILE_BSIZE=$(du -b "$FILE_PATH/$DOMAIN/" | awk '{print $1}' | tail -n 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] }')
2022-12-04 19:12:02 +01:00
## NB TEXT IS MADE WITH TIDDLERS FIELDS VALUES (LEARN TODO)
TEXT="<iframe src={{{ [{$:/ipfs/saver/gateway/http/localhost!!text}] [{!!ipfs}] +[join[]] }}} height='360' width='100%'></iframe>
2022-12-02 17:45:45 +01:00
Web : $URL ----> <a href={{{ [{$:/ipfs/saver/gateway/http/localhost!!text}] [{!!ipfs}] +[join[]] }}}}><<currentTiddler>></a>
2022-12-04 19:12:02 +01:00
<br>$FILE_SIZE - $dur sec"
echo '[
{
"created": "'${MOATS}'",
"modified": "'${MOATS}'",
2022-12-04 15:06:09 +01:00
"dur": "'$dur'",
2022-12-02 17:45:45 +01:00
"title": "'${NIAMOD}'",
"type": "'text/vnd.tiddlywiki'",
"text": "'$TEXT'",
"size": "'${FILE_BSIZE}'",
"g1pub": "'${G1PUB}'",
"ipfs": "'/ipfs/${IPFSREPFILEID}'",
"mediakey": "'${MEDIAKEY}'",
"ipnskey16": "'$(cat $HOME/.zen/tmp/$MEDIAKEY.ipns.enc | base16)'",
"ipns": "'/ipns/${IPNSKEY}'",
2022-12-04 19:12:02 +01:00
"tags": "'ipfs G1Web $PLAYER webmaster@$DOMAIN'"
}
]
' > ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json
# zenity --warning --width ${large} --text "Copie $URL dans ${FILE_PATH}/ et /ipns/$IPNSKEY"
2022-12-04 19:12:02 +01:00
espeak "Done. Tiddler is ready"
2022-09-04 12:20:55 +02:00
;;
########################################################################
# CASE ## PAGE
2022-11-22 19:13:55 +01:00
#~ ____
#~ | _ \ __ _ __ _ ___
#~ | |_) / _` |/ _` |/ _ \
#~ | __/ (_| | (_| | __/
#~ |_| \__,_|\__, |\___|
#~ |___/
2022-09-04 12:20:55 +02:00
page)
2022-12-04 19:12:02 +01:00
espeak "Converting any web page into P D F"
## EVOLVE TO ARTICLE
# httrack --mirror --ext-depth=0 --depth=1 --near --stay-on-same-address --keep-links=0 --path article-x --quiet https://example.com/article-x/
2022-11-22 19:13:55 +01:00
[ ! $2 ] && [[ $URL == "" ]] && URL=$(zenity --entry --width 300 --title "Lien de la page à convertir en PDF" --text "Indiquez le lien (URL)" --entry-text="")
2022-10-31 17:22:40 +01:00
2022-11-22 19:13:55 +01:00
if [[ $URL != "" ]]; then
2022-09-04 12:20:55 +02:00
## record one page to PDF
[ ! $2 ] && [[ ! $(which chromium) ]] && zenity --warning --width ${large} --text "Utilitaire de copie de page web absent.. Lancez la commande 'sudo apt install chromium'" && exit 1
2022-11-22 19:13:55 +01:00
cd ~/.zen/tmp/ && rm -f output.pdf
# https://peter.sh/experiments/chromium-command-line-switches
2022-12-04 19:12:02 +01:00
${MY_PATH}/tools/timeout.sh -t 30 \
2022-11-22 19:13:55 +01:00
chromium --headless --use-mobile-user-agent --no-sandbox --print-to-pdf "$URL"
fi
if [[ $URL == "" ]]; then
# SELECT FILE TO ADD TO ASTROPORT/KODI
[ ! $2 ] && FILE=$(zenity --file-selection --title="Sélectionner le fichier à ajouter")
2022-11-22 19:13:55 +01:00
echo "${FILE}"
[[ $FILE == "" ]] && echo "NO FILE" && exit 1
2022-11-19 17:46:00 +01:00
2022-11-22 19:13:55 +01:00
# Remove file extension to get file name => STITLE
FILE_PATH="$(dirname "${FILE}")"
FILE_NAME="$(basename "${FILE}")"
FILE_EXT="${FILE_NAME##*.}"
FILE_TITLE="${FILE_NAME%.*}"
cat "${FILE}" > ~/.zen/tmp/output.pdf
URL="/ipfs.localhost/$FILE_TITLE"
fi
2022-11-19 17:46:00 +01:00
2022-09-04 12:20:55 +02:00
2022-11-23 14:59:04 +01:00
[[ ! -s ~/.zen/tmp/output.pdf ]] && espeak "No file Sorry. Exit" && exit 1
2022-11-19 17:46:00 +01:00
2022-12-04 19:12:02 +01:00
espeak "OK Page copied. Give it a title please"
2022-11-19 17:46:00 +01:00
CTITLE=$(echo $URL | rev | cut -d '/' -f 1 | rev)
[ ! $2 ] && TITLE=$(zenity --entry --width 480 --title "Titre" --text "Quel nom de fichier à donner à cette page ? " --entry-text="${CTITLE}") || TITLE="$CTITLE"
[[ "$TITLE" == "" ]] && echo "NO TITLE" && exit 1
2022-09-04 12:20:55 +02:00
FILE_NAME="$(echo "${TITLE}" | detox --inline).pdf" ## TODO make it better
2022-11-22 19:13:55 +01:00
REVSOURCE="$(echo "$URL" | awk -F/ '{print $3}' | rev | detox --inline)_"
2022-09-04 12:20:55 +02:00
MEDIAID="$REVSOURCE$(echo "${TITLE}" | detox --inline)"
MEDIAKEY="PAGE_${MEDIAID}"
2022-11-23 14:59:04 +01:00
FILE_PATH="$HOME/Astroport/page/$MEDIAID"
2022-11-22 19:13:55 +01:00
mkdir -p ${FILE_PATH} && mv ~/.zen/tmp/output.pdf ${FILE_PATH}/${FILE_NAME}
2022-09-04 12:20:55 +02:00
2022-11-23 14:59:04 +01:00
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
2022-09-04 12:20:55 +02:00
2022-11-22 19:13:55 +01:00
espeak 'Document ready'
2022-09-04 12:20:55 +02:00
;;
########################################################################
# CASE ## MP3
# _____
# _ __ ___ _ __|___ /
#| '_ ` _ \| '_ \ |_ \
#| | | | | | |_) |__) |
#|_| |_| |_| .__/____/
# |_|
########################################################################
mp3)
2022-12-02 17:45:45 +01:00
espeak " Youtube music copying. Please help us to make the Web your Web"
2022-10-31 17:22:40 +01:00
[ ! $2 ] && zenity --warning --width 600 --text 'DEVELOPPEMENT ZONE - https://git.p2p.legal - P2P INTERNET FACTORY'
2022-09-04 12:20:55 +02:00
# Create TEMP directory
YTEMP="$HOME/.zen/tmp/$(date -u +%s%N | cut -b1-13)"
mkdir -p ${YTEMP}
2022-12-02 17:45:45 +01:00
YTURL="$URL"
[ ! $2 ] && [[ $YTURL == "" ]] && artist=$(zenity --entry --width 400 --title "Extraction MP3 depuis Youtube" --text "Artiste recherché ou Lien Youtube" --entry-text="")
[[ $artist == "" ]] && echo "NO COPY TO MAKE" && exit 1
2022-09-04 12:20:55 +02:00
## CHECK if artist is LINK or ID
length=${#artist}
islink=$(echo "$artist" | grep "http")
if [[ ! $islink && $length != 11 ]]
then
# Ask for song name
[ ! $2 ] && song=$(zenity --entry --width 300 --title "Titre à chercher sur Youtube" --text "Titre recherché" --entry-text="")
2022-12-02 17:45:45 +01:00
[[ $song == "" ]] && espeak "I was expecting a song name. Sorry. I Am out." && exit 1
# Download mp3 from 1st youtube search video result (--write-info-json)
/usr/local/bin/youtube-dl --default-search ytsearch1: \
2022-12-10 21:55:19 +01:00
--cookies-from-browser $BROWSER \
2022-12-02 17:45:45 +01:00
--ignore-errors --no-mtime \
--embed-thumbnail --metadata-from-title "%(artist)s - %(title)s" --add-metadata \
--extract-audio --audio-format mp3 -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" "$artist $song"
2022-09-04 12:20:55 +02:00
else
2022-12-02 17:45:45 +01:00
# artist is the URL ot the song
/usr/local/bin/youtube-dl \
2022-12-10 21:57:44 +01:00
--cookies-from-browser $BROWSER \
2022-09-04 12:20:55 +02:00
--ignore-errors --no-mtime \
--embed-thumbnail --metadata-from-title "%(artist)s - %(title)s" --add-metadata \
2022-12-02 17:45:45 +01:00
--extract-audio --audio-format mp3 -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" "$artist"
fi
2022-09-04 12:20:55 +02:00
ls ${YTEMP}
# Get filename, extract ID, make destination dir and move copy.
YFILE=$(ls -t ${YTEMP} | head -n 1)
FILE_NAME="$(basename "${YFILE}")"
FILE_EXT="${FILE_NAME##*.}"
YID=$(echo "${FILE_NAME}" | cut -d "&" -f 1)
YNAME=$(echo "${FILE_NAME}" | cut -d "&" -f 2- | sed "s/[(][^)]*[)]//g" | sed -e 's/[^A-Za-z0-9._-]/_/g' | sed -e 's/__/_/g') # Remove YoutubeID_ and (what is in perentheses)
[[ $(which detox) ]] && YNAME="$(echo "${FILE_NAME}" | cut -d "&" -f 2- | detox --inline)"
2022-12-02 17:45:45 +01:00
FILE_PATH="$HOME/Astroport/$CAT/${YID}"
2022-09-04 12:20:55 +02:00
mkdir -p "${FILE_PATH}" && mv -f ${YTEMP}/* "${FILE_PATH}/"
# Remove "&" from FILE_NAME rename to YNAME
mv "${FILE_PATH}/${FILE_NAME}" "${FILE_PATH}/${YNAME}" && FILE_NAME="${YNAME}"
MEDIAID="${YID}"
TITLE="${YNAME%.*}"
2022-11-14 15:24:20 +01:00
GENRES="[\"${PLAYER}\"]"
2022-09-04 12:20:55 +02:00
GROUPES="_IPNSKEY_" # USE GROUPS TO RECORD IPNS MEDIAKEY
MEDIAKEY="MP3_$MEDIAID"
rm -Rf ${YTEMP}
# zenity --warning --width ${large} --text "MP3 copié"
2022-12-02 17:45:45 +01:00
echo "new_mp3_in_astroport \"${FILE_PATH}/\" \"${FILE_NAME}\""
# ${MY_PATH}/tools/new_mp3_in_astroport.sh "${FILE_PATH}/" "${FILE_NAME}"
2022-09-04 12:20:55 +02:00
2022-12-02 17:45:45 +01:00
## BLOCKCHAIN IT
start=`date +%s`
2022-09-04 12:20:55 +02:00
2022-12-02 17:45:45 +01:00
echo "$MOATS" > $FILE_PATH/.moats # TIMESTMAPING
### ADD TO IPFS
IPFSREPFILEID=$(ipfs add -q $FILE_PATH/$FILE_NAME | tail -n 1) # ADDIN TO IPFS
## CREATE ajouter_video.txt
echo "mp3;${MEDIAID};${MOATS};${TITLE};${SAISON};${GENRES};$GROUPES;${RES};/ipfs/$IPFSREPFILEID" > ${FILE_PATH}/ajouter_video.txt
## DURATION LOG
end=`date +%s`
dur=`expr $end - $start`
echo ${MOATS}:${G1PUB}:${PLAYER}:${MEDIAID}:$dur >> ~/.zen/tmp/${IPFSNODEID}/_timings
cat ~/.zen/tmp/${IPFSNODEID}/_timings | tail -n 1
## TIDDLER CREATION
FILE_BSIZE=$(du -b "$FILE_PATH/$FILE_NAME" | awk '{print $1}' | tail -n 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] }')
TEXT=""
mkdir -p ~/Astroport/${CAT}/${MEDIAID}/
echo '[
{
"created": "'${MOATS}'",
"modified": "'${MOATS}'",
2022-12-03 16:54:40 +01:00
"_canonical_uri": "'/ipfs/${IPFSREPFILEID}'",
2022-12-02 17:45:45 +01:00
"title": "'$TITLE'",
"artist": "'$artist'",
"song": "'$song'",
2022-12-04 15:06:09 +01:00
"dur": "'$dur'",
2022-12-02 17:45:45 +01:00
"type": "'audio/mpeg'",
"text": "'$TEXT'",
"size": "'${FILE_BSIZE}'",
"g1pub": "'${G1PUB}'",
"ipfs": "'/ipfs/${IPFSREPFILEID}'",
"mediakey": "'${MEDIAKEY}'",
"tags": "'$:/isAttachment $:/isIpfs ipfs mp3 G1Mp3 $artist $song $PLAYER'"
}
]
' > ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json
2022-09-04 12:20:55 +02:00
;;
########################################################################
2022-11-22 19:13:55 +01:00
# Film __ _ _ Serie
#~ _____ _ _ ___ ____ _
#~ | ___(_) |_ __ ___ ( _ ) / ___| ___ _ __(_) ___
#~ | |_ | | | '_ ` _ \ / _ \/\ \___ \ / _ \ '__| |/ _ \
#~ | _| | | | | | | | | | (_> < ___) | __/ | | | __/
#~ |_| |_|_|_| |_| |_| \___/\/ |____/ \___|_| |_|\___|
2022-09-04 12:20:55 +02:00
#
########################################################################
film | serie)
2022-11-20 12:57:41 +01:00
espeak "please select your file"
2022-10-31 17:22:40 +01:00
2022-09-04 12:20:55 +02:00
# SELECT FILE TO ADD TO ASTROPORT/KODI
FILE=$(zenity --file-selection --title="Sélectionner le fichier à ajouter")
echo "${FILE}"
[[ $FILE == "" ]] && exit 1
# Remove file extension to get file name => STITLE
FILE_PATH="$(dirname "${FILE}")"
FILE_NAME="$(basename "${FILE}")"
FILE_EXT="${FILE_NAME##*.}"
FILE_TITLE="${FILE_NAME%.*}"
# OPEN default browser and search TMDB
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="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
2022-11-22 19:13:55 +01:00
MEDIAID=$(echo $MEDIAID | rev | cut -d '/' -f 1 | rev) ## REmoving/That/Part/keeping/MEDIAID
2022-09-04 12:20:55 +02:00
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
2022-11-22 19:13:55 +01:00
### CHECK IF PREVIOUS ajouter_video (usefull for Serie)
2022-11-23 14:59:04 +01:00
[[ -f ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt ]] \
&& PRE=$(cat ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt | cut -d ';' -f 4) \
2022-11-20 12:57:41 +01:00
|| PRE=${FILE_TITLE}
###
TITLE=$(zenity --entry --width 300 --title "Titre" --text "Indiquez le titre de la vidéo" --entry-text="${PRE}")
2022-09-04 12:20:55 +02:00
[[ $TITLE == "" ]] && exit 1
TITLE=$(echo "${TITLE}" | sed "s/[(][^)]*[)]//g" | sed -e 's/;/_/g' ) # Clean TITLE (NO ;)
# VIDEO YEAR
2022-11-20 12:57:41 +01:00
### CHECK IF PREVIOUS ajouter_video (Serie case)
2022-11-23 14:59:04 +01:00
[[ -f ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt ]] \
2022-12-04 15:06:09 +01:00
&& PRE=$(cat ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt | cut -d ';' -f 3) \
|| PRE=""
2022-11-20 12:57:41 +01:00
YEAR=$(zenity --entry --width 300 --title "Année" --text "Indiquez année de la vidéo. Exemple: 1985" --entry-text="${PRE}")
2022-09-04 12:20:55 +02:00
# VIDEO RESOLUTION
FILE_RES=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "${FILE}" | cut -d "x" -f 2)
RES=${FILE_RES%?}0p # Rounding. Replace last digit with 0
#RES=$(zenity --entry --width 300 --title="Résolution" --text="Résolution de la vidéo" --entry-text="${FILE_RES}" SD HD 4K 360p 480p 720p 1080p)
# VIDEO SEASON or SAGA
2022-11-20 12:57:41 +01:00
### CHECK IF PREVIOUS ajouter_video (Serie case)
2022-11-23 14:59:04 +01:00
[[ -f ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt ]] \
&& PRE=$(cat ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt | cut -d ';' -f 5 | cut -d '_' -f 2)
2022-11-20 12:57:41 +01:00
[[ "${CAT}" == "serie" ]] && SAISON=$(zenity --entry --width 300 --title "${CHOICE} Saison" --text "Indiquez SAISON et EPISODE. Exemple: S02E05" --entry-text="${PRE}")
2022-09-04 12:20:55 +02:00
[[ "${CAT}" == "film" ]] && SAISON=$(zenity --entry --width 300 --title "${CHOICE} Saga" --text "Indiquez une SAGA (optionnel). Exemple: James Bond" --entry-text="")
2022-11-19 21:28:00 +01:00
[[ $SAISON ]] && SAISON="_$SAISON"
2022-09-04 12:20:55 +02:00
# VIDEO GENRES
FILM_GENRES=$(zenity --list --checklist --title="GENRE" --height=${haut}\
2022-11-22 19:13:55 +01:00
--text="Choisissez le(s) genre(s) de \"${TITLE}\""\
2022-09-04 12:20:55 +02:00
--column="Use"\
--column="Feature"\
FALSE '+18'\
FALSE Action\
FALSE Animation\
FALSE 'Arts martiaux'\
FALSE Aventure\
FALSE Autre\
FALSE Biographie\
FALSE Biopic\
FALSE Comedie\
FALSE 'Comedie dramatique'\
FALSE 'Comedie musicale'\
FALSE Crime\
FALSE Documentaire\
FALSE Drame\
FALSE Divers\
FALSE Educatif\
FALSE Enfant\
FALSE 'Epouvante horreur'\
FALSE Espionnage\
FALSE Famille\
FALSE Fantastique\
FALSE Guerre\
FALSE Histoire\
FALSE Historique\
FALSE Judiciaire\
FALSE Opera\
FALSE Medical\
FALSE Musique\
FALSE Mystere\
FALSE Peplum\
FALSE Policier\
FALSE Romance\
FALSE 'Science fiction'\
FALSE Soap\
FALSE Spectacle\
FALSE Sport\
FALSE Telefilm\
FALSE Thriller\
FALSE Western\
TRUE ${PLAYER// /-})
# FORMAT GENRES ["genre1","genre2"] # USE IF YOU ACTIVATE KODI COMPATIBILITY
GENRES="[\"$(echo ${FILM_GENRES} | sed s/\|/\",\"/g)\"]"
2022-12-10 03:26:20 +01:00
# CONVERT INPUT TO MP4 #######################
[[ $FILE_EXT != "mp4" ]] \
&& espeak "Converting to M P 4. Please wait" \
&& echo "CONVERT TO MP4 : ffmpeg -loglevel quiet -i ${FILE_PATH}/${FILE_NAME} -c:v libx264 -c:a aac ${FILE_PATH}/$FILE_TITLE.mp4" \
&& ffmpeg -loglevel quiet -i "${FILE_PATH}/${FILE_NAME}" -c:v libx264 -c:a aac "${FILE_PATH}/$FILE_TITLE.mp4" \
&& FILE_EXT="mp4" && FILE_NAME="$FILE_TITLE.mp4" \
&& espeak "M P 4 ready"
2022-12-04 15:06:09 +01:00
mkdir -p ~/Astroport/${CAT}/${MEDIAID}/
2022-12-02 17:45:45 +01:00
[[ ! -s "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" ]] \
2022-12-02 19:38:05 +01:00
&& cp "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" \
&& [ $? != 0 ] \
&& zenity --warning --width ${large} --text "(☓‿‿☓) ${FILE_PATH}/${FILE_NAME} vers ~/Astroport - EXIT -" && exit 1
2022-09-04 12:20:55 +02:00
2022-11-21 21:30:58 +01:00
FILE_NAME="${TITLE}${SAISON}.${FILE_EXT}"
2022-09-04 12:20:55 +02:00
2022-11-23 14:59:04 +01:00
## CREATE "~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt"
2022-09-04 12:20:55 +02:00
URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
2022-11-23 14:59:04 +01:00
echo "${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt
2022-09-04 12:20:55 +02:00
# _IPFSREPFILEID_ is replaced later
2022-12-04 19:12:02 +01:00
#######################################################
######## NOT CREATING TIDDLER JSON... SWALLOW IS POST-PROCESSED
## new_file_in_astroport.sh ACTIVATES CONTRACT MODE !!
#######################################################
#######################################################
2022-09-04 12:20:55 +02:00
;;
2022-11-22 19:13:55 +01:00
# video _ _
2022-09-04 12:20:55 +02:00
#__ _(_) __| | ___ ___
#\ \ / / |/ _` |/ _ \/ _ \
# \ V /| | (_| | __/ (_) |
# \_/ |_|\__,_|\___|\___/
# TIMESTAMP INDEX
video)
2022-09-04 12:20:55 +02:00
2022-12-02 19:38:05 +01:00
espeak "Add your personnal video in TW"
2022-10-31 17:22:40 +01:00
zenity --warning --width 600 --text 'DEV ZONE - HELP US - https://git.p2p.legal'
2022-09-04 12:20:55 +02:00
## GENERAL MEDIAKEY for uploaded video. Title + Decription + hashtag + hashipfs
# SELECT FILE TO ADD TO ASTROPORT/KODI
2022-12-02 19:38:05 +01:00
FILE=$(zenity --file-selection --title="Sélectionner votre vidéo")
2022-09-04 12:20:55 +02:00
echo "${FILE}"
[[ $FILE == "" ]] && exit 1
# Remove file extension to get file name => STITLE
FILE_PATH="$(dirname "${FILE}")"
FILE_NAME="$(basename "${FILE}")"
FILE_EXT="${FILE_NAME##*.}"
FILE_TITLE="${FILE_NAME%.*}"
2022-12-02 19:38:05 +01:00
# MUST CONVERT MKV TO MP4
[[ $FILE_EXT != "mp4" ]] \
&& ffmpeg -loglevel quiet -i "${FILE_PATH}/${FILE_NAME}" -c:v libx264 -c:a aac "${FILE_PATH}/$FILE_TITLE.mp4" \
&& FILE_EXT="mp4" && FILE_NAME="$FILE_TITLE.mp4"
2022-09-04 12:20:55 +02:00
# VIDEO TITLE
2022-12-02 19:38:05 +01:00
TITLE=$(zenity --entry --width 300 --title "Titre" --text "Indiquez un titre pour cette vidéo" --entry-text="${FILE_TITLE}")
2022-09-04 12:20:55 +02:00
[[ $TITLE == "" ]] && exit 1
TITLE=$(echo "${TITLE}" | sed "s/[(][^)]*[)]//g" | sed -e 's/;/_/g' ) # Clean TITLE (NO ;)
## video_timestamp INDEX
MEDIAID="$(date -u +%s%N | cut -b1-13)"
2022-11-23 14:59:04 +01:00
mkdir -p ~/Astroport/${CAT}/${MEDIAID}/
2022-09-04 12:20:55 +02:00
MEDIAKEY="VIDEO_${MEDIAID}"
## CREATE SIMPLE JSON (REMOVE== it ?
2022-11-23 14:59:04 +01:00
jq -n --arg ts "$MEDIAID" --arg title "$TITLE" --arg desc "$DESCRIPTION" --arg htag "$HASHTAG" '{"timestamp":$ts,"ipfs":"_IPFSREPFILEID_","ipns":"_IPNSKEY_","title":$title,"desc":$desc,"tag":$htag}' > ~/Astroport/${CAT}/${MEDIAID}/video.json
2022-12-02 19:38:05 +01:00
2022-09-04 12:20:55 +02:00
## MOVE FILE TO IMPORT ZONE
2022-12-02 17:45:45 +01:00
[[ ! -s "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" ]] \
&& cp "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}"
2022-12-02 19:38:05 +01:00
2022-09-04 12:20:55 +02:00
FILE_NAME="${TITLE}.${FILE_EXT}"
2022-12-04 19:12:02 +01:00
#######################################################
######## NOT CREATING TIDDLER JSON... SWALLOW IS POST-PROCESSED
## new_file_in_astroport.sh FOR OWN CREATION CONTRACTING MODE !!
#######################################################
#######################################################
2022-09-04 12:20:55 +02:00
;;
########################################################################
# CASE ## DEFAULT
########################################################################
*)
[ ! $2 ] && zenity --warning --width ${large} --text "Impossible d'interpréter votre commande $CAT"
2022-09-04 12:20:55 +02:00
exit 1
;;
esac
2022-11-21 21:30:58 +01:00
########################################################################
2022-11-22 19:13:55 +01:00
########################################################################
########################################################################
########################################################################
########################################################################
2022-11-21 21:30:58 +01:00
# Screen capture
########################################################################
if [[ $(echo $DISPLAY | cut -d ':' -f 1) == "" ]]; then
2022-11-22 23:16:12 +01:00
espeak "beware taking screen shot in 3 seconds"
sleep 3
espeak "smile"
2022-11-21 21:30:58 +01:00
import -window root ~/.zen/tmp/screen.png
fi
###################################
### MOVING FILE TO ~/astroport ####
###################################
2022-11-23 14:59:04 +01:00
mkdir -p ~/Astroport/${CAT}/${MEDIAID}/
mv ~/.zen/tmp/screen.png ~/Astroport/${CAT}/${MEDIAID}/screen.png
2022-11-21 21:30:58 +01:00
2022-09-04 12:20:55 +02:00
########################################################################
# ADD $FILE to IPFS / ASTROPORT / KODI
2022-11-23 14:59:04 +01:00
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
2022-09-04 12:20:55 +02:00
########################################################################
2022-11-23 14:59:04 +01:00
## CREATION DU FICHIER ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
########################################################################
### AJOUT DANS IPFS #######################################################
########################################################################
####################################new_file_in_astroport.sh##################
########################################################################
if [[ ! -s ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json ]]; then
[[ "$CAT" == "film" || "$CAT" == "serie" ]] && CHOICE="TMDB"
2022-09-04 12:20:55 +02:00
timestamp=$(date -u +%s%N | cut -b1-13)
2022-09-04 12:20:55 +02:00
## OLD CODE !!! ADD TO ASTROPORT SCRIPT
## NOW CREATE TIDDLER INTO PLAYER TW
2022-09-04 12:20:55 +02:00
echo "MEDIAKEY=${MEDIAKEY}" > ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
## ACTIVATE h265 conversion .?
#[[ $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\"
# ${MY_PATH}/tools/new_file_in_astroport.sh \"$HOME/Astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}.mp4\"
#else" >> ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
# $3 is the G1PUB of the PLAYER
echo "${MY_PATH}/tools/new_file_in_astroport.sh \"$HOME/Astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\" \"$G1PUB\"" >> ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
#[[ $CHOICE == "TMDB" ]] && echo "fi" >> ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
echo "mv ~/Astroport/Add_${MEDIAKEY}_script.sh \"$HOME/Astroport/Done_${FILE_NAME}.sh\"
" >> ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
chmod +x ~/Astroport/Add_${MEDIAKEY}_script.sh
2022-09-04 12:20:55 +02:00
########################################################################
2022-12-02 19:38:05 +01:00
echo "(♥‿‿♥) $MEDIAKEY IPFS MIAM (ᵔ◡◡ᵔ)"
2022-12-02 17:45:45 +01:00
# zenity --warning --width 360 --text "(♥‿‿♥) $MEDIAKEY IPFS MIAM (ᵔ◡◡ᵔ)"
2022-09-04 12:20:55 +02:00
espeak "Adding $CAT to I P F S. Please Wait"
2022-09-04 12:20:55 +02:00
bash ~/Astroport/Add_${MEDIAKEY}_script.sh "noh265"
2022-09-04 12:20:55 +02:00
fi
2022-09-04 12:20:55 +02:00
if [[ -s ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json ]]; then
espeak "Updating T W"
2022-11-20 12:57:41 +01:00
########################################################################
## ADD TIDDLER TO TW
########################################################################
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
## GETTING LAST TW via IPFS or HTTP GW
LIBRA=$(head -n 2 ${MY_PATH}/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2)
rm -f ~/.zen/tmp/ajouter_media.html > /dev/null 2>&1
[[ $YOU ]] && echo " ipfs --timeout 30s cat /ipns/${ASTRONAUTENS} ($YOU)" && ipfs --timeout 30s cat /ipns/${ASTRONAUTENS} > ~/.zen/tmp/ajouter_media.html
[[ ! -s ~/.zen/tmp/ajouter_media.html ]] && echo "curl -m 12 $LIBRA/ipns/${ASTRONAUTENS}" && curl -m 12 -so ~/.zen/tmp/ajouter_media.html "$LIBRA/ipns/${ASTRONAUTENS}"
[[ ! -s ~/.zen/tmp/ajouter_media.html ]] && espeak "WARNING. WARNING. impossible to find your TW online"
[[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ]] && espeak "FATAL ERROR. No player TW copy found ! EXIT" && exit 1
## TODO : CHECK CACHE LAST MODIFIED
echo "%%%%%%%%%%%%%% I GOT YOUR TW %%%%%%%%%%%%%%%%%%%%%%%%%%"
[[ -s ~/.zen/tmp/ajouter_media.html ]] && cp -f ~/.zen/tmp/ajouter_media.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html && espeak "TW Found"
###############################
2022-11-03 00:24:21 +01:00
2022-11-14 15:24:20 +01:00
echo "Nouveau MEDIAKEY dans TW $PSEUDO / ${PLAYER} : http://$myIP:8080/ipns/$ASTRONAUTENS"
2022-11-20 12:57:41 +01:00
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
2022-11-23 14:59:04 +01:00
--import ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json "application/json" \
2022-09-04 12:20:55 +02:00
--output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain"
if [[ -s ~/.zen/tmp/newindex.html ]]; then
2022-11-20 12:57:41 +01:00
2022-12-02 21:34:46 +01:00
mv ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json ~/Astroport/${CAT}/${MEDIAID}/${MOATS}.dragdrop.json
2022-11-20 12:57:41 +01:00
espeak "I P N S Publishing. Please wait..."
2022-11-14 15:24:20 +01:00
cp ~/.zen/tmp/newindex.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
[[ $DIFF ]] && cp ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain \
~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats)
2022-09-04 12:20:55 +02:00
2022-11-14 15:24:20 +01:00
TW=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1)
2022-11-19 17:46:00 +01:00
ipfs name publish --allow-offline -t 24h --key=${PLAYER} /ipfs/$TW
2022-09-04 12:20:55 +02:00
2022-11-14 15:24:20 +01:00
[[ $DIFF ]] && echo $TW > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain
echo ${MOATS} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats
2022-11-03 00:24:21 +01:00
echo "================================================"
2022-11-14 15:24:20 +01:00
echo "${PLAYER} : http://$myIP:8080/ipns/$ASTRONAUTENS"
2022-11-03 00:24:21 +01:00
echo "================================================"
2022-09-04 12:20:55 +02:00
echo
2022-11-20 12:57:41 +01:00
2022-12-03 16:54:40 +01:00
[[ $XDG_SESSION_TYPE == 'x11' ]] && xdg-open "http://$myIP:8080/ipns/$ASTRONAUTENS"
2022-11-20 12:57:41 +01:00
else
espeak "Warning. Could not import Tiddler. You must add it by hand."
2022-09-04 12:20:55 +02:00
fi
espeak "OK We did it"
else
espeak "Sorry. No Tiddler found"
fi
2022-12-03 16:54:40 +01:00
end=`date +%s`
dur=`expr $end - $start`
espeak "It tooks $dur seconds to acomplish"
2022-10-31 17:22:40 +01:00
2022-09-04 12:20:55 +02:00
exit 0