astrXbian/zen/mint_youtube.sh

97 lines
5.3 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 2020.12.15
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
# COPY ~/astroport/* files to IPFS
# Publish INDEX ~/.zen/ipfs/.*/${PREFIX}ASTRXBIAN
######## #### ### ## #
# ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
# Astropot/Kodi/Vstream source reads ${PREFIX}ASTRXBIAN from http://127.0.0.1:8181/.$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
########################################################################
## RUN BY inotifywait process ~/astroport/ NEW FILE DETECT
mkdir -p ~/astroport/youtube
mkdir -p ~/astroport/mp3
########################################################################
path="$1"
file="$2"
fileipfs="$3"
echo "~/.zen/astrXbian/zen/mint_youtube.sh \"$path\" \"$file\" \"$fileipfs\""
[[ "$file" == "" || "$path" == "" ]] && echo "ERROR. Parameter missing.file=$file path=$path"
extension="${file##*.}"
TITLE="${file%.*}"
# .part file false flag correcting
[[ ! -f "${path}${file}" ]] && file="${TITLE%.*}" && extension="${TITLE##*.}" && [[ ! -f "${path}${file}" ]] && exit 1
# GET XZUID
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title) || XZUID=$(hostname)
rm-f ~/.zen/ipfs/.${IPFSNODEID}/_xbian.zuid # CLEANING OLD FILE STRUCTURE (TO BE REMOVED AFTER SWARM CODE UPGRADE)
rm -f ~/.zen/ipfs/xbian/_${XZUID}
TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... films, youtube, mp3
PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M
TMDB=$(echo "$path" | cut -d '/' -f 6 )
RES=$(echo "$path" | cut -d '/' -f 7 )
# File is placed in ROOT ~/astroport ?
[[ $PREFIX == "" ]] && echo "WARNING. $TYPE is root file UNTREATED" && exit 1
echo "ADDING ${path}${file} to IPFS and ${PREFIX}ASTRXBIAN INDEX"
echo "~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN"
echo "-----------------------------------------------------------------"
IPFSREPFILEID=$(ipfs add -wq "${path}${file}" | tail -n 1)
[[ $IPFSREPFILEID == "" ]] && echo "ipfs add ERROR" && exit 1
echo "-----------------------------------------------------------------"
echo "CHECK IPFS $file : ipfs ls /ipfs/$IPFSREPFILEID"
echo "-----------------------------------------------------------------"
echo "UPDATE $TYPE INDEX in ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN "
mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/
URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri)
# Init ${PREFIX}ASTRXBIAN header
mv ~/.zen/ipfs/xbian/$PREFIX$XZUID ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN # MOVE OLD FS
[[ ! -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
## CHECK IF $IPFSREPFILEID is NEW, or an already existing in SWARMs?
isFILEinINDEX=$(grep "$URLENCODE_FILE_NAME" ~/.zen/ipfs_swarm/.*/astroport/kodi/vstream/*ASTRXBIAN)
isLINKinINDEX=$(grep "$IPFSREPFILEID" ~/.zen/ipfs_swarm/.*/astroport/kodi/vstream/*ASTRXBIAN)
isFILEinMYINDEX=$(grep "$URLENCODE_FILE_NAME" ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN)
isLINKinMYINDEX=$(grep "$IPFSREPFILEID" ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN)
# Is it a new file? Add it to INDEX
if [[ ! $isFILEinINDEX && ! $isLINKinINDEX ]]; then
mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/PIN/${IPFSREPFILEID}/$G1PUB/
# SIMILAR with "ipfs ls /ipns/${IPFSNODEID}/.${IPFSNODEID}/PIN/ (...)"
echo "film;$TMDB;$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
else
if [[ $isFILEinMYINDEX ]]; then
echo "$file already in index" ## File was updated => Change OLDLINK
OLDLINK=$(echo $isFILEinMYINDEX | cut -d ";" -f 9 | cut -d "/" -f 3 | tail -n 1) # GRAB old ipfs id
sed -i "s/$OLDLINK/$IPFSREPFILEID/g" ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
fi
[[ $isLINKinINDEX ]] && echo "$IPFSREPFILEID already in index. DO NOTHING"
fi
echo "CREATE ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN ($TYPE) from ~/.zen/ipfs*/xbian/${PREFIX}*"
echo "-----------------------------------------------------------------"
cat ~/.zen/ipfs_swarm/.*/astroport/kodi/vstream/${PREFIX}* | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
########################################################################
echo "PUBLISH ~/.zen/ipfs to IPNS self for SWARM SHARING"
echo "-----------------------------------------------------------------"
echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/.timestamp
MIPFS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1)
echo $MIPFS > ~/.zen/ipfs/.${IPFSNODEID}/.chain ## THIS SIMPLE LINE IS BLOCKCHAIN POWERING ANY DATA PUBLISHED TO IPFS !!!
NODEIPNS=$(ipfs name publish --quieter /ipfs/$MIPFS)
echo "NEW $TYPE ($file) ADDED."
echo "INDEX UPDATED : http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN"