astrXbian/ajouter_video.sh

650 lines
29 KiB
Bash
Raw Permalink Normal View History

2022-04-22 17:55:49 +02:00
#!/bin/bash
2021-01-29 01:09:40 +01:00
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
# SCRIPT INTERACTIF POUR AJOUTER UN FICHIER à ASTROPORT/KODI
#
2021-06-14 11:20:34 +02:00
# 1. CAT: film, serie
2021-01-29 01:09:40 +01:00
# 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
2021-06-14 11:20:34 +02:00
# 6. SAISON: Pour les séries, c'est le numéro de saison.
2021-01-29 01:09:40 +01:00
# Pour un film, le champ SAISON est utilisé pour renseigner la Saga
2021-08-06 02:47:07 +02:00
# 7. GENRES: Action, Aventure, Fantastique, Animation, etc (choix multiple).
# 8. GROUPES: Stocker la clef IPNS du MEDIAKEY.
2021-08-06 02:47:07 +02:00
#
2021-01-29 01:09:40 +01:00
# 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##*/}"
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
2021-01-29 01:09:40 +01: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
2022-06-22 16:11:58 +02:00
# 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="Que copier depuis cette source ?" --entry-text="Video" MP3 Web) || IMPORT="Youtube"
[[ $IMPORT == "Video" ]] && IMPORT="Youtube"
CHOICE="$IMPORT"
fi
2022-06-22 16:11:58 +02:00
[[ $CHOICE == "Web" ]] && CHOICE="Page" #&& CHOICE=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Cette source Web est à enregistrer comme " --entry-text="Page" WebSite)
2021-09-02 22:42:34 +02:00
2021-01-29 01:09:40 +01:00
# REMOVE GtkDialog errors for zenity
shopt -s expand_aliases
alias zenity='zenity 2> >(grep -v GtkDialog >&2)'
# 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))
########################################################################
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)"
2022-05-14 15:56:55 +02:00
[[ -f ~/.zen/ipfs/.$IPFSNODEID/.player ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/.player)
2021-01-29 01:21:28 +01:00
########################################################################
## CADRE EXCEPTION COPIE PRIVE
# https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006278917/2008-12-11/
2022-06-01 22:43:10 +02:00
if [[ ! -f ~/.zen/game/players/.current/legal ]]; then
2021-04-07 23:47:00 +02:00
zenity --width ${large} --height=${haut} --text-info \
--title="Action conforme avec le Code de la propriété intellectuelle" \
2021-04-07 23:47:00 +02:00
--html \
2021-06-06 01:52:50 +02:00
--url="https://fr.wikipedia.org/wiki/Droit_d%27auteur_en_France#Les_exceptions_au_droit_d%E2%80%99auteur" \
2021-04-07 23:47:00 +02:00
--checkbox="J'ai lu et j'accepte les termes."
case $? in
0)
echo "AUTORISATION COPIE PRIVE ASTROPORT OK !"
2022-06-01 22:43:10 +02:00
echo "$G1PUB" > ~/.zen/game/players/.current/legal
2021-08-06 02:47:07 +02:00
# next step
;;
2021-04-07 23:47:00 +02:00
1)
echo "Refus conditions"
2022-06-01 22:43:10 +02:00
rm -f ~/.zen/game/players/.current/legal
2021-04-07 23:47:00 +02:00
exit 1
2021-08-06 02:47:07 +02:00
;;
2021-04-07 23:47:00 +02:00
-1)
echo "Erreur."
exit 1
2021-08-06 02:47:07 +02:00
;;
2021-04-07 23:47:00 +02:00
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
########################################################################
2021-03-07 15:40:44 +01:00
# CHOOSE CATEGORY (remove anime, not working!)
2022-06-23 19:26:55 +02:00
[[ $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
CAT=$(echo "${CHOICE}" | awk '{print tolower($0)}')
2021-07-05 16:05:54 +02:00
# UPPER CARACTERS
2021-06-17 18:27:01 +02:00
CHOICE=$(echo "${CAT}" | awk '{print toupper($0)}')
2021-09-02 22:42:34 +02:00
PREFIX=$(echo "${CAT}" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, S, A, Y, M ... P W
[[ $PREFIX == "" ]] && exit 1
########################################################################
########################################################################
2021-03-03 13:10:55 +01:00
case ${CAT} in
########################################################################
2022-06-22 16:11:58 +02:00
# CASE ## ASTRONAUTE
# _ _
# __ _ ___| |_ _ __ ___ _ __ __ _ _ _| |_ ___
# / _` / __| __| '__/ _ \| '_ \ / _` | | | | __/ _ \
# | (_| \__ \ |_| | | (_) | | | | (_| | |_| | || __/
# \__,_|___/\__|_| \___/|_| |_|\__,_|\__,_|\__\___|
#
#
########################################################################
2022-06-23 19:26:55 +02:00
astroblog)
2022-06-22 16:11:58 +02:00
2022-06-23 19:26:55 +02:00
# INSTASCAN G1PUB CAPTURE
~/.zen/Astroport.ONE/tools/instascan_login.sh "ONE"
2022-06-22 16:11:58 +02:00
2022-06-23 19:26:55 +02:00
zenity --warning --width 300 --text "$PLAYER. Prêt à enregistrer votre video ?"
## RECORD WEBCAM VIDEO
~/.zen/Astroport.ONE/tools/vlc_webcam.sh
2022-06-22 16:11:58 +02:00
exit 0
;;
########################################################################
# CASE ## YOUTUBE
2021-08-06 02:47:07 +02:00
# _ _
# _ _ ___ _ _| |_ _ _| |__ ___
2021-06-17 17:01:55 +02:00
#| | | |/ _ \| | | | __| | | | '_ \ / _ \
#| |_| | (_) | |_| | |_| |_| | |_) | __/
# \__, |\___/ \__,_|\__|\__,_|_.__/ \___|
2021-08-06 02:47:07 +02:00
# |___/
########################################################################
2021-08-06 02:47:07 +02:00
youtube)
2021-04-02 13:30:36 +02:00
2021-09-02 14:20:25 +02:00
YTURL="$URL"
[[ $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 == "" ]] && exit 1
REVSOURCE="$(echo "$YTURL" | awk -F/ '{print $3}' | rev)_"
2021-03-04 00:02:09 +01:00
# Create TEMP directory to copy $YID_$TITLE.$FILE_EXT
YTEMP="$HOME/astroport/tmp/$(date -u +%s%N | cut -b1-13)"
2021-02-24 20:43:47 +01:00
mkdir -p ${YTEMP}
# youtube-dl $YTURL
2021-03-02 16:41:50 +01:00
echo "VIDEO $YTURL"
2021-12-30 19:26:16 +01:00
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
2022-04-23 02:31:40 +02:00
/usr/local/bin/youtube-dl -f '[height=360]/best' \
2022-04-23 02:43:04 +02:00
--no-playlist --write-info-json \
--no-mtime -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" $YTURL
2021-02-24 20:43:47 +01:00
# Get filename, extract ID, make destination dir and move copy.
YFILE=$(ls -S ${YTEMP} | head -n 1)
2021-02-24 22:32:26 +01:00
FILE_NAME="$(basename "${YFILE}")"
2021-02-25 00:16:39 +01:00
FILE_EXT="${FILE_NAME##*.}"
2021-02-24 22:32:26 +01:00
JSON_FILE=$(echo ${FILE_NAME} | sed "s/${FILE_EXT}/json/g")
YID=$(echo "${FILE_NAME}" | cut -d "&" -f 1)
2021-04-02 19:53:32 +02:00
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)
MEDIAID="$REVSOURCE${YID}"
TITLE="${YNAME%.*}"
2021-09-02 14:20:25 +02:00
MEDIAKEY="YOUTUBE_${MEDIAID}"
## CORRECT PARAMETERS to Make Kodi compatible YASTRXBIAN FILE
[ ! $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 ${XZUID// /-}) || GENRES="${XZUID// /-}"
# FORMAT GENRES genre1|genre2|genre3
2021-09-02 14:20:25 +02:00
FILE_PATH="$HOME/astroport/youtube/$MEDIAID"
2021-03-04 00:02:09 +01: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}"
2021-04-06 19:36:43 +02:00
# get & rename video.json
jsonfile=$(ls ${FILE_PATH}/*.json)
mv "${jsonfile}" "${FILE_PATH}/video.json"
2021-02-24 20:43:47 +01:00
2021-03-04 00:02:09 +01:00
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
2021-02-24 22:32:26 +01:00
2021-07-01 23:50:02 +02:00
## CREATE "~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt" and video.json
2021-03-04 21:34:46 +01:00
URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
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
2021-03-04 21:34:46 +01:00
# _IPFSREPFILEID_ is replaced later
2021-02-24 20:43:47 +01:00
rm -Rf ${YTEMP}
2021-03-04 00:02:09 +01:00
2021-08-06 02:47:07 +02:00
;;
2021-03-02 16:41:50 +01:00
########################################################################
2021-09-02 22:42:34 +02:00
# CASE ## WEB
web)
## wget current URL -> index.html ## TEST ## TEST httrack ??
2021-09-02 22:42:34 +02:00
[[ ! $(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_
2022-04-22 16:10:31 +02:00
MEDIAKEY="WWW_${MEDIAID}" # MEDIAKEY=PAGE_1252ff59950395070a0cc56bb058cbb1ccfd2f8d8a32476acaf472f62b14d97d_
FILE_PATH="$HOME/astroport/web/$MEDIAID";
mkdir -p $FILE_PATH
2022-04-22 16:10:31 +02:00
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}/"
2021-09-02 22:42:34 +02:00
;;
########################################################################
# CASE ## PAGE
page)
## record one page to PDF
2021-09-02 22:42:34 +02:00
[[ ! $(which chromium) ]] && zenity --warning --width ${large} --text "Utilitaire de copie de page web absent.. Lancez la commande 'sudo apt install chromium'" && exit 1
2022-04-22 16:10:31 +02:00
cd /tmp/ && rm -f output.pdf
chromium --headless --no-sandbox --print-to-pdf $URL
2021-09-02 22:42:34 +02:00
2022-04-22 16:10:31 +02:00
TITLE=$(zenity --entry --width 480 --title "Titre" --text "Quel nom de fichier à donner à cette page ? " --entry-text="${URL}")
2021-09-02 22:42:34 +02:00
[[ $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"
2022-04-22 16:10:31 +02:00
mkdir -p ${FILE_PATH} && mv output.pdf ${FILE_PATH}/${FILE_NAME}
2021-09-02 22:42:34 +02: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
2021-09-02 22:42:34 +02:00
;;
########################################################################
2021-03-02 16:41:50 +01:00
# CASE ## MP3
2021-08-06 02:47:07 +02:00
# _____
# _ __ ___ _ __|___ /
#| '_ ` _ \| '_ \ |_ \
2021-06-17 17:01:55 +02:00
#| | | | | | |_) |__) |
2021-08-06 02:47:07 +02:00
#|_| |_| |_| .__/____/
# |_|
2021-03-02 16:41:50 +01:00
########################################################################
2021-08-06 02:47:07 +02:00
mp3)
2021-03-02 16:41:50 +01:00
zenity --warning --width 600 --text 'DEV ZONE . Please Participate https://git.p2p.legal'
2021-03-10 03:01:09 +01:00
2021-03-02 16:41:50 +01:00
# Create TEMP directory
YTEMP="$HOME/astroport/tmp/$(date -u +%s%N | cut -b1-13)"
2021-03-02 16:41:50 +01:00
mkdir -p ${YTEMP}
2021-03-04 01:45:58 +01:00
artist=$(zenity --entry --width 400 --title "Extraction MP3 depuis Youtube" --text "Artiste recherché ou Lien Youtube" --entry-text="")
2021-03-02 16:41:50 +01:00
[[ $artist == "" ]] && exit 1
## CHECK if artist is LINK or ID
length=${#artist}
islink=$(echo "$artist" | grep "http")
2021-03-03 15:33:42 +01:00
if [[ ! $islink && $length != 11 ]]
2021-03-02 16:41:50 +01:00
then
2021-08-06 02:47:07 +02:00
# Ask for song name
song=$(zenity --entry --width 300 --title "Titre à chercher sur Youtube" --text "Titre recherché" --entry-text="")
[[ $song == "" ]] && exit 1
2021-03-03 15:33:42 +01:00
else
2021-08-06 02:47:07 +02:00
song=$(zenity --entry --width 300 --title "Confirmer ID" --text "Titre recherché (ou confirmer la saisie précédente)" --entry-text="$artist")
[[ "$song" == "$artist" ]] && song=""
2021-03-02 16:41:50 +01:00
fi
2021-03-04 02:04:26 +01:00
# Download mp3 from 1st youtube search video result (--write-info-json)
2021-03-03 15:43:13 +01:00
/usr/local/bin/youtube-dl --default-search ytsearch1: \
2021-03-04 02:04:26 +01:00
--ignore-errors --no-mtime \
2021-03-02 16:41:50 +01:00
--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"
2021-03-02 16:41:50 +01:00
2021-03-04 01:45:58 +01:00
ls ${YTEMP}
2021-03-02 16:41:50 +01:00
# 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)
2021-04-02 19:53:32 +02:00
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)
2021-09-02 22:42:34 +02:00
[[ $(which detox) ]] && YNAME="$(echo "${FILE_NAME}" | cut -d "&" -f 2- | detox --inline)"
2021-03-02 16:41:50 +01:00
2021-03-04 01:45:58 +01:00
[[ ! $islink && "$song" != "" ]] && FILE_PATH="$HOME/astroport/$CAT/$artist/_o-o_" \
2021-03-04 00:02:09 +01:00
|| FILE_PATH="$HOME/astroport/$CAT/${YID}"
2021-03-02 16:41:50 +01:00
2021-03-04 00:02:09 +01: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}"
2021-03-02 16:41:50 +01:00
2021-07-01 23:50:02 +02:00
MEDIAID="${YID}"
2021-03-02 16:41:50 +01:00
TITLE="${YNAME%.*}"
GENRES="[\"$XZUID\"]"
2021-03-31 22:42:41 +02:00
GROUPES="_IPNSKEY_" # USE GROUPS TO RECORD IPNS MEDIAKEY
2021-07-05 16:05:54 +02:00
MEDIAKEY="MP3_$MEDIAID"
2021-03-02 16:41:50 +01:00
rm -Rf ${YTEMP}
2021-03-04 01:45:58 +01:00
# zenity --warning --width ${large} --text "MP3 copié"
echo "~/.zen/astrXbian/zen/new_mp3_in_astroport.sh \"${FILE_PATH}/\" \"${FILE_NAME}\""
2021-07-01 23:50:02 +02:00
~/.zen/astrXbian/zen/new_mp3_in_astroport.sh "${FILE_PATH}/" "${FILE_NAME}" > /tmp/${CHOICE}_${MEDIAID}.log 2>&1
2021-03-04 02:04:26 +01:00
2021-07-01 23:50:02 +02:00
cat /tmp/${CHOICE}_${MEDIAID}.log
2021-03-04 02:04:26 +01:00
2021-03-03 15:36:10 +01:00
exit 0
2021-03-02 16:41:50 +01:00
2021-08-06 02:47:07 +02:00
;;
2021-03-03 13:10:55 +01:00
2021-01-29 01:09:40 +01:00
########################################################################
2021-08-06 02:47:07 +02:00
# __ _ _
# / _(_) |_ __ ___
#| |_| | | '_ ` _ \
#| _| | | | | | | |
2021-06-17 17:01:55 +02:00
#|_| |_|_|_| |_| |_| THE MOVIE DATABASE INDEX
2021-08-06 02:47:07 +02:00
#
########################################################################
2021-08-06 02:47:07 +02:00
film | serie)
2021-01-29 01:09:40 +01:00
# SELECT FILE TO ADD TO ASTROPORT/KODI
FILE=$(zenity --file-selection --title="Sélectionner le fichier à ajouter")
echo "${FILE}"
[[ $FILE == "" ]] && exit 1
2021-01-29 01:09:40 +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%.*}"
# OPEN default browser and search TMDB
2021-08-06 02:47:07 +02:00
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')"
2021-01-29 01:09:40 +01:00
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="")
2021-07-01 23:50:02 +02:00
[[ $MEDIAID == "" ]] && exit 1
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]+$ ]]
2021-03-04 21:56:36 +01:00
then
2021-04-02 13:30:36 +02:00
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
2021-03-04 21:56:36 +01:00
fi
MEDIAID=$CMED
2021-07-05 16:05:54 +02:00
MEDIAKEY="TMDB_$MEDIAID"
2021-03-04 21:56:36 +01:00
2021-01-29 01:09:40 +01:00
# VIDEO TITLE
TITLE=$(zenity --entry --width 300 --title "Titre" --text "Indiquez le titre de la vidéo" --entry-text="${FILE_TITLE}")
2021-02-04 02:56:57 +01:00
[[ $TITLE == "" ]] && exit 1
2021-04-02 19:55:04 +02:00
TITLE=$(echo "${TITLE}" | sed "s/[(][^)]*[)]//g" | sed -e 's/;/_/g' ) # Clean TITLE (NO ;)
2021-01-29 01:09:40 +01:00
# VIDEO YEAR
YEAR=$(zenity --entry --width 300 --title "Année" --text "Indiquez année de la vidéo. Exemple: 1985" --entry-text="")
2021-01-29 01:09:40 +01:00
# VIDEO RESOLUTION
2021-02-17 03:34:10 +01:00
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)
2021-01-29 01:09:40 +01:00
# VIDEO SEASON or SAGA
2021-06-14 11:20:34 +02:00
[[ "${CAT}" == "serie" ]] && SAISON=$(zenity --entry --width 300 --title "${CHOICE} Saison" --text "Indiquez SAISON et EPISODE. Exemple: S02E05" --entry-text="")
[[ "${CAT}" == "film" ]] && SAISON=$(zenity --entry --width 300 --title "${CHOICE} Saga" --text "Indiquez une SAGA (optionnel). Exemple: James Bond" --entry-text="")
2021-01-29 01:09:40 +01:00
# VIDEO GENRES
FILM_GENRES=$(zenity --list --checklist --title="GENRE" --height=${haut}\
--text="Choisissez le(s) genre(s) de la vidéo \"${TITLE}\""\
--column="Use"\
--column="Feature"\
FALSE '+18'\
FALSE Action\
FALSE Animation\
FALSE 'Arts martiaux'\
FALSE Aventure\
2021-01-31 14:21:59 +01:00
FALSE Autre\
2021-01-29 01:09:40 +01:00
FALSE Biographie\
FALSE Biopic\
FALSE Comedie\
FALSE 'Comedie dramatique'\
FALSE 'Comedie musicale'\
FALSE Crime\
FALSE Documentaire\
FALSE Drame\
FALSE Divers\
2021-01-31 14:21:59 +01:00
FALSE Educatif\
2021-01-29 01:09:40 +01:00
FALSE Enfant\
FALSE 'Epouvante horreur'\
FALSE Espionnage\
FALSE Famille\
FALSE Fantastique\
FALSE Guerre\
FALSE Histoire\
FALSE Historique\
FALSE Judiciaire\
FALSE Opera\
FALSE Medical\
2021-01-31 14:21:59 +01:00
FALSE Musique\
FALSE Mystere\
2021-01-29 01:09:40 +01:00
FALSE Peplum\
FALSE Policier\
FALSE Romance\
FALSE 'Science fiction'\
FALSE Soap\
FALSE Spectacle\
FALSE Sport\
FALSE Telefilm\
FALSE Thriller\
2021-03-09 15:41:52 +01:00
FALSE Western\
TRUE ${XZUID// /-})
2021-01-29 01:09:40 +01:00
2021-01-31 14:21:59 +01:00
# FORMAT GENRES ["genre1","genre2"]
2021-01-29 01:09:40 +01:00
GENRES="[\"$(echo ${FILM_GENRES} | sed s/\|/\",\"/g)\"]"
# DEBUG VERIFICATION
2021-03-04 00:02:09 +01:00
# zenity --question --width ${large} --title "EMBARQUEMENT ASTROPORT! OK?"\
2021-07-01 23:50:02 +02:00
# --text "${FILE_NAME} (${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};${GROUPES};${RES})"
2021-03-04 00:02:09 +01:00
# [ $? == 1 ] && echo "ANNULATION." && exit 1
2021-01-29 01:09:40 +01:00
########################################################################
# 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 ####
###################################
2021-07-01 23:50:02 +02:00
mkdir -p ~/astroport/${CAT}/${MEDIAID}/
2022-04-28 01:27:45 +02:00
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, nous allons préparer son script d'ajout à Astroport..."
else
2021-08-06 02:47:07 +02:00
zenity --warning --width ${large} --text "Impossible de déplacer votre fichier ${FILE_PATH}/${FILE_NAME} vers ~/astroport - EXIT -"
exit 1
fi
2021-03-02 01:13:25 +01:00
FILE_NAME="${TITLE}.${FILE_EXT}"
2021-03-04 21:34:46 +01:00
2021-07-01 23:50:02 +02:00
## CREATE "~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt"
2021-03-04 21:34:46 +01:00
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
2021-03-04 21:34:46 +01:00
# _IPFSREPFILEID_ is replaced later
2021-08-06 02:47:07 +02:00
;;
# _ _
#__ _(_) __| | ___ ___
#\ \ / / |/ _` |/ _ \/ _ \
2021-06-17 17:01:55 +02:00
# \ V /| | (_| | __/ (_) |
2021-08-06 02:47:07 +02:00
# \_/ |_|\__,_|\___|\___/
2021-06-17 17:01:55 +02:00
# TIMESTAMP INDEX
2021-05-23 00:05:20 +02:00
2021-08-06 02:47:07 +02:00
video)
zenity --warning --width 600 --text 'DEVELOPPEMENT. SVP. Inscrivez-vous sur https://git.p2p.legal'
2021-08-06 02:47:07 +02:00
## GENERAL MEDIAKEY for uploaded video. Title + Decription + hashtag + hashipfs
# SELECT FILE TO ADD TO ASTROPORT/KODI
FILE=$(zenity --file-selection --title="Sélectionner le fichier vidéo à 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%.*}"
# VIDEO TITLE
TITLE=$(zenity --entry --width 300 --title "Titre" --text "Indiquez le titre de la vidéo" --entry-text="${FILE_TITLE}")
[[ $TITLE == "" ]] && exit 1
TITLE=$(echo "${TITLE}" | sed "s/[(][^)]*[)]//g" | sed -e 's/;/_/g' ) # Clean TITLE (NO ;)
OUTPUT=$(zenity --forms --width ${large} --title="METADATA" --text="Ajouter des métadonnées" --separator=";" --add-entry="Sous titres" --add-entry="Hashtag(s)")
[[ $? != 0 ]] && echo "FAIL" && exit 1
DESCRIPTION=$(awk -F ';' '{print $1}' <<<$OUTPUT)
HASHTAG=$(awk -F ';' '{print $2}' <<<$OUTPUT)
## video_timestamp INDEX
MEDIAID="$(date -u +%s%N | cut -b1-13)"
mkdir -p ~/astroport/${CAT}/${MEDIAID}/
2021-07-05 16:05:54 +02:00
MEDIAKEY="VIDEO_${MEDIAID}"
2021-08-06 02:47:07 +02:00
## CREATE SIMPLE JSON
jq -n --arg ts "$MEDIAID" --arg title "$TITLE" --arg desc "$DESCRIPTION" --arg htag "$HASHTAG" '{"timestamp":$ts,"ipfs":"_IPFSREPFILEID_","ipns":"_IPNSKEY_","title":$title,"desc":$desc,"htag":$htag}' > ~/astroport/${CAT}/${MEDIAID}/video.json
## MOVE FILE TO IMPORT ZONE
mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT}"
FILE_NAME="${TITLE}.${FILE_EXT}"
;;
2021-06-17 14:49:28 +02:00
2021-03-03 13:10:55 +01:00
########################################################################
# CASE ## DEFAULT
########################################################################
2021-08-06 02:47:07 +02:00
*)
zenity --warning --width ${large} --text "Impossible d'interpréter votre commande $CAT"
exit 1
;;
2021-02-24 20:43:47 +01:00
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"
2021-03-04 00:02:09 +01:00
########################################################################
2021-01-29 01:09:40 +01:00
# ADD $FILE to IPFS / ASTROPORT / KODI
2022-06-14 02:01:39 +02:00
echo "new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\"" $3
2021-07-01 23:50:02 +02:00
[[ -f ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt ]] && cat ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
2021-09-02 22:42:34 +02:00
# LOG NOISE # [[ -f ~/astroport/${CAT}/${MEDIAID}/video.json ]] && cat ~/astroport/${CAT}/${MEDIAID}/video.json
2021-06-17 17:01:55 +02:00
########################################################################
## CREATION DU FICHIER ajouter_video.txt OK
2021-06-17 17:01:55 +02:00
########################################################################
### AJOUT DANS IPFS #######################################################
2021-06-17 17:01:55 +02:00
########################################################################
####################################new_file_in_astroport.sh##################
2021-02-24 20:43:47 +01:00
########################################################################
2021-07-03 16:29:45 +02:00
[[ "$CAT" == "film" || "$CAT" == "serie" ]] && CHOICE="TMDB"
2021-07-05 16:05:54 +02:00
2021-09-29 22:20:21 +02:00
timestamp=$(date -u +%s%N | cut -b1-13)
2022-04-22 16:10:31 +02:00
2022-06-14 02:01:39 +02:00
## 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
2022-06-26 21:32:08 +02:00
# $3 is the G1PUB of the PLAYER (search in code to find where)
2022-06-14 02:01:39 +02:00
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
2022-05-28 04:09:00 +02:00
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
2021-01-29 01:09:40 +01:00
########################################################################
2021-02-24 20:43:47 +01:00
########################################################################
2021-06-17 17:01:55 +02:00
########################################################################
########################################################################
########################################################################
2021-07-05 16:05:54 +02:00
MEDIAPUBKEY=$(cat $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/MEDIAPUBKEY)
2021-09-29 22:20:21 +02:00
#[ ! $2 ] && zenity --width=500 --height=500 --text-info \
# --title="QR CODE MEDIA ${MEDIAKEY} (PASS=$(cat /tmp/${MEDIAKEY}.pass))" \
# --html \
2022-04-18 16:09:28 +02:00
# --url="http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png" \
2021-09-29 22:20:21 +02:00
# --checkbox="Je m'engage à respecter les auteurs et promet d'offrir la Monnaie Libre collectée à qui de droit."
2021-07-03 16:11:15 +02:00
########################################################################
2021-07-05 16:05:54 +02:00
echo "# ZENBALANCE for ${MEDIAKEY} , WALLET $MEDIAPUBKEY"
########################################################################
2022-04-22 20:41:30 +02:00
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] }')
2021-07-03 16:11:15 +02:00
#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
########################################################################
########################################################################
if [ $1 ]; then
bash ~/astroport/Add_${MEDIAKEY}_script.sh "noh265"
[ $? == 0 ] && echo "${MEDIAKEY} is RECORDED in ASTROPORT. GOOD." && exit 0
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