2021-01-29 01:09:40 +01:00
#!/bin/bash
########################################################################
# 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
#
# 1. CAT: film, serie, anime
# 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 et animes, 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: Permet de regrouper des films. (choix multiple)
#
# 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 ##*/ } "
########################################################################
[ [ $( 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
# 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))
########################################################################
# CHECK for Kodi + astroport.py
2021-01-31 14:21:59 +01:00
IPFSNODEID = $( ipfs id -f= '<id>\n' )
2021-01-29 01:09:40 +01:00
if [ [ -f ~/.zen/astroport.py ] ]
then
## NORMAL behaviour (ISOConfig.sh made the Job)
## astroport.py already created (refresh vstream plugin,in case update erase it)
cp ~/.zen/astroport.py ~/.kodi/addons/plugin.video.vstream/resources/sites/astroport.py
else
## astroport.py missing
cp -f ~/.zen/astrXbian/.install/.kodi/addons/plugin.video.vstream/resources/sites/astroport.py ~/.zen/astroport.py
## CONFIGURE ASTROPORT ACCOUNT
# Make xbian G1BILLET or ASK for it?
zenity --warning --width 300 --text "Vous devez avoir un compte Gchange.fr pour utiliser ASTROPORT / KODI"
zenity --question --width 300 --text "Avez vous déjà un compte sur Gchange.fr ?"
[ $? = = 1 ] && xdg-open "https://gchange.fr"
#sed -i "s/_PROFIL_/$XZUID/g" ~/.zen/astroport.py
#sed -i "s/_LOGIN_/$salt/g" ~/.zen/astroport.py
#sed -i "s/_MDP_/$pepper/g" ~/.zen/astroport.py
sed -i " s/_IPFSNODEID_/ $IPFSNODEID /g " ~/.zen/astroport.py
cp ~/.zen/astroport.py ~/.kodi/addons/plugin.video.vstream/resources/sites/astroport.py
fi
2021-01-29 01:21:28 +01:00
## GET XZUID
2021-02-13 00:40:45 +01:00
[ [ -f ~/.zen/ipfs/.$IPFSNODEID /G1SSB/_g1.gchange_title ] ] && XZUID = $( cat ~/.zen/ipfs/.$IPFSNODEID /G1SSB/_g1.gchange_title) || XZUID = $( hostname)
2021-01-29 01:21:28 +01:00
2021-02-04 02:56:57 +01:00
zenity --warning --width 300 --text "Ajoutez une vidéo à ASTROPORT/KODI"
2021-02-24 16:13:19 +01:00
# CHOOSE CATEGORY
CHOICE = $( zenity --entry --width 300 --title= "Catégorie" --text= "Choisissez la catégorie de votre vidéo" --entry-text= "Film" Serie Anime Youtube)
[ [ $CHOICE = = "" ] ] && exit 1
# LOWER CARACTERS
CAT = $( echo " ${ CHOICE } " | awk '{print tolower($0)}' )
PREFIX = $( echo " ${ CAT } " | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, S, A, Y
[ [ $PREFIX = = "" ] ] && exit 1
case ${ PREFIX } in
########################################################################
# CASE ## YOUTUBE
########################################################################
Y)
YTURL = $( zenity --entry --width 300 --title "Lien ou identifiant à copier" --text "Copiez le lien (URL) ou l'ID de la vidéo" --entry-text= "" )
[ [ $YTURL = = "" ] ] && exit 1
2021-02-24 20:43:47 +01:00
# Create TEMP directory
YTEMP = " /tmp/ $( date -u +%s%N | cut -b1-13) "
mkdir -p ${ YTEMP }
CONVERT = $( zenity --question --width 300 --title "Convertir en MP3 ?" --text "Voulez-vous convertir la vidéo en mp3?" )
# youtube-dl $YTURL
if [ $? = = 1 ] ; then
echo "VIDEO"
/usr/local/bin/youtube-dl -f '[height=720]/best' \
--write-info-json --write-annotations \
--no-mtime -o " ${ YTEMP } /%(id)s_%(title)s.%(ext)s " $YTURL
2021-02-24 22:32:26 +01:00
CAT = "youtube"
2021-02-24 20:43:47 +01:00
else
echo "MP3"
/usr/local/bin/youtube-dl -x --audio-format mp3 \
--write-info-json --add-metadata --embed-thumbnail \
--no-mtime -o " ${ YTEMP } /%(id)s_%(title)s.%(ext)s " $YTURL
2021-02-24 22:32:26 +01:00
CAT = "mp3"
2021-02-24 20:43:47 +01:00
fi
# Get filename, extract ID, make destination dir and move copy.
YFILE = $( ls -t ${ 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
YID = $( echo " ${ FILE_NAME } " | cut -d "_" -f 1)
YNAME = $( echo " ${ FILE_NAME } " | cut -d "_" -f 2)
2021-02-24 20:43:47 +01:00
2021-02-24 22:32:26 +01:00
FILE_PATH = " $HOME /astroport/ $CAT / $YID "
2021-02-24 20:43:47 +01:00
mkdir -p ${ FILE_PATH } && mv ${ YTEMP } /* ${ FILE_PATH } /
TMDB = $YID
2021-02-24 22:32:26 +01:00
TITLE = " ${ YNAME %.* } "
GENRES = "[Youtube]"
GROUPES = " ${ XZUID } "
2021-02-24 20:43:47 +01:00
rm -Rf ${ YTEMP }
2021-02-24 16:13:19 +01:00
; ;
2021-01-29 01:09:40 +01:00
########################################################################
2021-02-24 16:13:19 +01:00
# CASE ## DEFAULT
########################################################################
*)
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 } "
2021-02-18 00:33:06 +01:00
[ [ $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-02-24 16:13:19 +01:00
zenity --question --width 300 --text "IMPORTANT! Nous allons ouvrir le site themoviedb pour y récuperer le numéro d'identification"
2021-01-29 01:09:40 +01:00
[ $? = = 1 ] && exit 1
xdg-open " https://www.themoviedb.org/search?query= ${ FILE_TITLE } "
2021-02-18 00:33:06 +01:00
TMDB = $( zenity --entry --title= "Identification TMDB" --text= "Indiquez le numéro de la fiche du film. Exemple: https://www.themoviedb.org/movie/301528-toy-story-4 => 301528" --entry-text= "" )
[ [ $TMDB = = "" ] ] && exit 1
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-02-18 00:33:06 +01:00
2021-01-29 01:09:40 +01:00
# VIDEO YEAR
2021-02-13 00:40:45 +01:00
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
2021-02-13 00:40:45 +01:00
#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
[ [ " ${ CAT } " = = "serie" || " ${ CAT } " = = "anime" ] ] && SAISON = $( zenity --entry --width 300 --title " ${ CHOICE } Saison " --text "Indiquez SAISON et EPISODE. Exemple: S02E05" --entry-text= "" )
2021-02-13 00:40:45 +01:00
[ [ " ${ 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\
FALSE Western)
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) \"] "
2021-02-04 02:56:57 +01:00
[ [ $GENRES = = "" ] ] && exit 1
2021-01-29 01:09:40 +01:00
# VIDEO GROUP
2021-02-13 17:59:10 +01:00
GROUPES = $( zenity --entry --width 300 --title "Groupe" --text "Associez la vidéo à un groupe (optionnel). Exemple: PIXAR" --entry-text= " ${ XZUID } " )
2021-01-29 01:09:40 +01:00
2021-02-13 00:40:45 +01:00
# DEBUG VERIFICATION
2021-02-18 00:33:06 +01:00
zenity --question --width ${ large } --title "CONTROLE DES INFORMATIONS - EMBARQUEMENT ASTROPORT! OK?" \
--text " ${ CAT } ; ${ TMDB } ; ${ YEAR } ; ${ TITLE } ; ${ SAISON } ; ${ GENRES } ; ${ GROUPES } ; ${ RES } = ${ FILE_NAME } "
2021-02-13 00:40:45 +01:00
[ $? = = 1 ] && echo "ANNULATION." && exit 1
2021-01-29 01:09:40 +01:00
2021-02-18 00:33:06 +01:00
### OK MOVING FILE TO ASTROPORT ####
mkdir -p ~/astroport/${ CAT } /${ TMDB } /
2021-02-25 00:16:39 +01:00
mv " ${ FILE_PATH } / ${ FILE_NAME } " " $HOME /astroport/ ${ CAT } / ${ TMDB } / ${ TITLE } . ${ FILE_EXT } " && zenity --warning --width ${ large } --text " Votre fichier ~/astroport/ ${ CAT } / ${ TMDB } / ${ TITLE } . ${ FILE_EXT } est prêt à embarquer. Cliquez sur OK puis patientez quelques minutes... "
2021-03-02 01:13:25 +01:00
FILE_NAME = " ${ TITLE } . ${ FILE_EXT } "
2021-02-24 20:43:47 +01:00
; ;
esac
2021-02-24 22:32:26 +01:00
## TRANSMIT "ajouter_video.txt"
URLENCODE_FILE_NAME = $( echo ${ FILE_NAME } | jq -Rr @uri)
echo " ${ CAT } ; $TMDB ; $YEAR ; $TITLE ; $SAISON ; ${ GENRES } ; ${ GROUPES } ; $RES ;/ipfs/_IPFSREPFILEID_/ $URLENCODE_FILE_NAME " > ~/astroport/${ CAT } /${ TMDB } /ajouter_video.txt
# _IPFSREPFILEID_ is replaced later
2021-01-29 01:09:40 +01:00
########################################################################
# ADD $FILE to IPFS / ASTROPORT / KODI
2021-02-24 20:43:47 +01:00
########################################################################
2021-03-02 01:13:25 +01:00
~/.zen/astrXbian/zen/new_file_in_astroport.sh " $HOME /astroport/ ${ CAT } / ${ TMDB } / " " ${ FILE_NAME } "
2021-01-29 01:09:40 +01:00
########################################################################
2021-02-24 20:43:47 +01:00
########################################################################
2021-02-25 00:16:39 +01:00
[ $? = = 0 ] && zenity --warning --width 300 --text " OK! Votre source vidéo $cat a été transférée dans Astroport " \
|| zenity --warning --width 300 --text "Désolé une erreur est survenue..."