2022-09-04 12:20:55 +02:00
#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.3
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
# COPY ~/astroport/* files to IPFS
# Publish INDEX ~/.zen/game/players/$PLAYER/ipfs/.*/${PREFIX}ASTRXBIAN
######## #### ### ## #
2022-11-18 20:22:33 +01:00
start = ` date +%s`
2022-09-04 12:20:55 +02:00
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
ME = " ${ 0 ##*/ } "
countMErunning = $( ps auxf --sort= +utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
[ [ $countMErunning -gt 2 ] ] && echo " $ME already running $countMErunning time " && exit 0
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-09-04 12:20:55 +02:00
IPFSNODEID = $( cat ~/.ipfs/config | jq -r .Identity.PeerID)
[ [ ! $IPFSNODEID ] ] && echo 'ERROR missing IPFS Node id !! IPFS is not responding !?' && exit 1
2022-10-31 17:52:57 +01:00
MOATS = $( date -u +"%Y%m%d%H%M%S%4N" )
IPFSNODEID = $( cat ~/.ipfs/config | jq -r .Identity.PeerID)
myIP = $( hostname -I | awk '{print $1}' | head -n 1)
2022-11-05 13:55:02 +01:00
isLAN = $( echo $myIP | grep -E " /(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1 $)|(^[fF][cCdD])/ " )
2022-11-19 20:34:28 +01:00
[ [ ! $myIP || $isLAN ] ] && myIP = "ipfs.localhost"
2022-09-04 12:20:55 +02:00
2022-11-19 17:46:00 +01:00
alias zenity = 'zenity 2> >(grep -v GtkDialog >&2)'
2022-09-04 12:20:55 +02:00
# ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
2022-10-31 17:52:57 +01:00
# Astropot/Kodi/Vstream source reads ${PREFIX}ASTRXBIAN from http://${myIP}:8080/.$IPFNODEID/
2022-09-04 12:20:55 +02:00
# 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 inotifywait process ~/astroport/ NEW FILE DETECT
# /usr/bin/inotifywait -r -e close_write -m /home/$YOU/astroport | while read dir flags file; do ~/.zen/Astroport.ONE/tools/new_file_in_astroport.sh "$dir" "$file"; done &
# mkdir -p ~/astroport/youtube
# mkdir -p ~/astroport/mp3
########################################################################
path = " $1 "
if [ [ " $path " = = "" ] ] ; then
echo "## BATCH RUN. READ FIFO FILE."
fi
2022-11-21 18:58:03 +01:00
2022-09-04 12:20:55 +02:00
# Add trailing / if needed
length = ${# path }
last_char = ${ path : length -1 : 1 }
[ [ $last_char != "/" ] ] && path = " $path / " ; :
file = " $2 "
G1PUB = " $3 "
2022-11-18 20:22:33 +01:00
### ECHO COMMAND RECEIVED
echo " $MY_PATH /new_file_in_astroport.sh PATH/ \" $path \" FILE \" $file \" G1PUB \" $G1PUB \" "
2022-09-04 12:20:55 +02:00
2022-11-18 20:22:33 +01:00
################################################
## FILE ANALYSE & IDENTIFICATION TAGGINGS
2022-09-04 12:20:55 +02:00
extension = " ${ file ##*. } "
TITLE = " ${ file %.* } "
2022-11-21 18:58:03 +01:00
# CapitalGluedTitle
CapitalGluedTitle = $( echo " ${ TITLE } " | sed -r 's/\<./\U&/g' | sed 's/ //g' )
2022-11-18 20:22:33 +01:00
# .part file false flag correcting (in case inotify has launched script)
2022-09-04 12:20:55 +02:00
[ [ ! -f " ${ path } ${ file } " ] ] && file = " ${ TITLE %.* } " && extension = " ${ TITLE ##*. } " && [ [ ! -f " ${ path } ${ file } " ] ] && er = "NO FILE" && echo " $er " && exit 1
2022-11-18 20:22:33 +01:00
2022-11-14 13:54:30 +01:00
MIME = $( file --mime-type -b " ${ path } ${ file } " )
2022-09-04 12:20:55 +02:00
2022-11-18 22:47:45 +01:00
############# EXTEND MEDIAKEY IDENTIFATORS https://github.com/NapoleonWils0n/ffmpeg-scripts
2022-11-18 20:22:33 +01:00
if [ [ $( echo " $MIME " | grep 'video' ) ] ] ; then
2022-11-21 18:58:03 +01:00
FILE_RES = $( ffprobe -v error -select_streams v:0 -show_entries stream = width,height -of csv = s = x:p= 0 " ${ path } ${ file } " | cut -d "x" -f 2)
RES = ${ FILE_RES %? } 0p
DURATION = $( ffprobe -i " ${ path } ${ file } " -show_entries format = duration -v quiet -of csv = "p=0" | cut -d '.' -f 1)
DUREE = $( ffprobe -i " ${ path } ${ file } " -show_entries format = duration -sexagesimal -v quiet -of csv = "p=0" | cut -d '.' -f 1)
PROBETIME = $( echo " 0.618 * $DURATION " | bc -l | cut -d '.' -f 1)
[ [ ! $PROBETIME ] ] && PROBETIME = "1.0"
2022-11-18 20:22:33 +01:00
## Create gifanime ## TODO Search for similarities BEFORE ADD
echo "(✜‿‿✜) GIFANIME (✜‿‿✜)"
rm -f ~/.zen/tmp/screen.gif
2022-11-21 18:58:03 +01:00
ffmpeg -loglevel quiet -ss $PROBETIME -t 1.6 -loglevel quiet -i " ${ path } ${ file } " ~/.zen/tmp/screen.gif
2022-11-18 20:22:33 +01:00
ANIMH = $( ipfs add -q ~/.zen/tmp/screen.gif)
2022-11-21 18:58:03 +01:00
echo " GIFANIM $PROBETIME : /ipfs/ $ANIMH "
2022-11-18 20:22:33 +01:00
fi
2022-09-04 12:20:55 +02:00
# GET PLAYER
PLAYER = $( cat ~/.zen/game/players/.current/.player 2>/dev/null) ;
[ [ ! $PLAYER ] ] && echo "No current player. Please Login" && exit 1
2022-11-18 20:22:33 +01:00
## Indicate IPFSNODEID copying
2022-09-04 12:20:55 +02:00
mkdir -p ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID }
2022-11-18 20:22:33 +01:00
### SOURCE IS ~/astroport/ !!
2022-09-04 12:20:55 +02:00
[ [ ! $( echo " $path " | cut -d '/' -f 4 | grep 'astroport' ) ] ] && er = "Les fichiers sont à placer dans ~/astroport/ MERCI" && echo " $er " && exit 1
2022-11-18 22:47:45 +01:00
### TyPE & type & T = related to ~/astroport location of the infile (mimetype subdivision)
2022-11-18 20:22:33 +01:00
TyPE = $( echo " $path " | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TyPE(film, youtube, mp3, video, page)/ REFERENCE /
type = $( echo " $TyPE " | awk '{ print tolower($0) }' )
PREFIX = $( echo " $TyPE " | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y (all the alaphabet can address a data type
2022-09-04 12:20:55 +02:00
2022-11-18 22:47:45 +01:00
# File cannot be without "TyPE" in ~/astroport
2022-09-04 12:20:55 +02:00
if [ [ $PREFIX = = "" ] ]
then
2022-11-18 20:22:33 +01:00
[ [ ! $3 ] ] && [ [ " $USER " != "xbian" ] ] && zenity --warning --width 300 --text "Désolé votre fichier ne peut pas être traité"
er = " $er | WARNING. $TyPE is root file UNTREATED " && echo " $er " && exit 1
2022-09-04 12:20:55 +02:00
fi
########################################################################
2022-11-18 22:47:45 +01:00
# EXTRACT INDEX REFERENCE : TMDB or YOUTUBE (TODO : EXTEND)
2022-09-04 12:20:55 +02:00
########################################################################
2022-11-18 20:22:33 +01:00
case ${ type } in
2022-09-04 12:20:55 +02:00
video)
INDEXPREFIX = "VIDEO_"
REFERENCE = $( echo " $path " | cut -d '/' -f 6 )
TITLE = " ${ file %.* } "
; ;
youtube)
INDEXPREFIX = "YOUTUBE_"
REFERENCE = $( echo " $path " | cut -d '/' -f 6 )
TITLE = " ${ file %.* } "
; ;
page)
## DIFFERENT TREATMENT
INDEXPREFIX = "PAGE_"
REFERENCE = $( echo " $path " | cut -d '/' -f 6 )
TITLE = " ${ file %.* } "
; ;
mp3)
## DIFFERENT TREATMENT
INDEXPREFIX = "MP3_"
REFERENCE = $( echo " $path " | cut -d '/' -f 6 )
TITLE = $( echo " $file " | cut -d "&" -f 2-)
er = " $er | Please use new_mp3_in_astroport.sh ... EXIT "
echo " $er "
exit 1
; ;
film | serie)
INDEXPREFIX = "TMDB_"
REFERENCE = $( echo " $path " | cut -d '/' -f 6 ) # Path contains TMDB id
if ! [ [ " $REFERENCE " = ~ ^[ 0-9] +$ ] ] # ${REFERENCE} NOT A NUMBER
then
2022-11-18 22:47:45 +01:00
er = " $er | ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ or use your a mobile phone number ;) "
2022-09-04 12:20:55 +02:00
echo " $er "
exit 1
fi
; ;
## TODO ADD "httrack" for website copying
## httrack "https://wiki.lowtechlab.org" -O "./wiki.lowtechlab.org" "+*.lowtechlab.org/*" -v -%l "fr"
##
*)
2022-11-18 20:22:33 +01:00
er = " $type inconnu " && echo " $er " && exit 1
2022-09-04 12:20:55 +02:00
; ;
esac
2022-11-18 22:47:45 +01:00
### SET MEDIAKEY
2022-09-04 12:20:55 +02:00
MEDIAKEY = " ${ INDEXPREFIX } ${ REFERENCE } "
2022-11-14 13:54:30 +01:00
echo " >>>>>>>>>> $MEDIAKEY ( $MIME ) <<<<<<<<<<<<<<< "
2022-09-04 12:20:55 +02:00
2022-11-19 20:26:21 +01:00
######################### Decimal convert
rm ~/.zen/tmp/decimal
echo " $CapitalGluedTitle " > ~/.zen/tmp/convert
# iteracte through each like
while read -r -n1 char; do
arr += $( printf '%d+' " ' $char " ) ;
done <<< ~/.zen/tmp/convert
printf '%s' " ${ arr [@] : :- 3 } " > ~/.zen/tmp/decimal
## TODO USE IT TO MAKE A MEDIAKEY IMAGE KEY "SONDE" FOR FILTERING ?
# ISSUE11 : https://git.p2p.legal/qo-op/Astroport.ONE/issues/11
##########################
2022-11-18 22:47:45 +01:00
## RUBISH ??
2022-09-04 12:20:55 +02:00
########################################################################
mkdir -p ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /astroport/kodi/vstream/
2022-11-14 13:54:30 +01:00
echo " ADDING ${ path } ${ file } to IPFS "
2022-09-04 12:20:55 +02:00
echo " ~/.zen/game/players/ $PLAYER /ipfs/. ${ IPFSNODEID } /astroport/kodi/vstream/ ${ PREFIX } ASTRXBIAN "
echo "-----------------------------------------------------------------"
2022-11-18 22:47:45 +01:00
### FILE SIZING ####
2022-11-18 20:22:33 +01:00
FILE_BSIZE = $( du -b " ${ path } ${ file } " | 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] }' )
################################
###########################################
###########################################################
### IPFS ADD ###########################################################
2022-11-14 13:54:30 +01:00
###########################################################
2022-11-18 20:22:33 +01:00
startipfs = ` date +%s`
echo " ADDING FILE SIZE = $FILE_SIZE ( $FILE_BSIZE octets) "
2022-09-04 12:20:55 +02:00
IPFS = $( ipfs add -wq " ${ path } ${ file } " )
IPFSREPFILEID = $( echo $IPFS | cut -d ' ' -f 2)
IPFSID = $( echo $IPFS | cut -d ' ' -f 1)
[ [ $IPFSREPFILEID = = "" ] ] && echo "ipfs add ERROR" && exit 1
2022-10-31 14:25:18 +01:00
2022-11-18 20:22:33 +01:00
end = ` date +%s`
ipfsdur = ` expr $end - $startipfs `
echo IPFS ADD time was $ipfsdur seconds.
###########################################################
############################################
################################
2022-11-18 22:47:45 +01:00
APPNAME = "KEY"
2022-09-04 12:20:55 +02:00
echo "-----------------------------------------------------------------"
echo " IPFS $file DIRECTORY: ipfs ls /ipfs/ $IPFSREPFILEID "
2022-11-18 22:47:45 +01:00
echo " APP $APPNAME OUTPUT ----------------------------------------------------------------- "
echo " $HOME /.zen/game/players/ $PLAYER /ipfs/. ${ IPFSNODEID } / ${ APPNAME } / ${ MIME } / ${ MEDIAKEY } / ${ G1PUB } / "
2022-09-04 12:20:55 +02:00
URLENCODE_FILE_NAME = $( echo ${ file } | jq -Rr @uri)
2022-11-20 12:57:41 +01:00
### MEDIAKEY FORGE
########################################################################
## CREATE NEW ipns KEY : ${MEDIAKEY}
########################################################################
## IPFS SELF IPNS DATA STORAGE
## ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/
########################################################################
if [ [ ! $( ipfs key list | grep -w " ${ MEDIAKEY } " ) ] ] ; then
echo " CREATING NEW IPNS $MEDIAKEY "
## IPNS KEY CREATION ?
mkdir -p ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB }
KEY = $( ipfs key gen " ${ MEDIAKEY } " )
KEYFILE = $( ~/.zen/Astroport.ONE/tools/give_me_keystore_filename.py " ${ MEDIAKEY } " ) # better method applied
fi
## IS IT NEW IPNS KEY?
if [ [ $KEY ] ] ; then
# memorize IPNS key filename for easiest exchange
echo " $KEYFILE " > ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /.ipns.key.keystore_filename
# Publishing IPNS key
echo " $KEY " > ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /.ipns.link
# CREATE .zen = ZEN economic value counter
touch ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /.zen
################ STORE ENCRYPT keystore/$KEYFILE
cp ~/.ipfs/keystore/$KEYFILE ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /
else
KEY = $( cat ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /.ipns.link)
KEYFILE = $( cat ~/.zen/game/players/$PLAYER /ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /.ipns.key.keystore_filename)
echo " ## ALREADY EXISTING IPNS KEY $KEYFILE ( $KEY ) "
fi
2022-09-04 12:20:55 +02:00
########################################################################
# POST TRAITEMENTS
2022-11-21 18:58:03 +01:00
if [ [ " ${ type } " = = 'page' ] ] ; then
echo "PDF ??"
fi
2022-09-04 12:20:55 +02:00
########################################################################
2022-11-20 12:57:41 +01:00
# film/serie PUBLISH
2022-09-04 12:20:55 +02:00
########################################################################
2022-11-21 18:58:03 +01:00
if [ [ " ${ type } " = ~ ^( film| serie| youtube| video) $ ] ]
2022-09-04 12:20:55 +02:00
then
## CREATE GCHANGE AD
## STOP PUBLISHING TO GCHANGE, NOW PLAYER TW ONLY
## ACTIVATE AGAIN TO MAKE ADVERTISMENT OF YOUR MEDIAKEY ACCES
2022-11-18 20:22:33 +01:00
# if [[ ! -f ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad && ( "${type}" == "film" || "${type}" == "serie") ]]
2022-09-04 12:20:55 +02:00
# then
#
# GOFFER=$(~/.zen/Astroport.ONE/tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://data.gchange.fr" setoffer -t "${TITLE} #astroport #${MEDIAKEY}" -d "${TITLE} https://tube.copylaradio.com/ipns/$IPNS/ Faites un don à son portefeuille pour le conserver dans le Mediacenter des Amis - https://CopyLaRadio.com - https://astroport.com" -p $HOME/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png)
# echo $GOFFER > ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad
# NEWIPFS=$(ipfs add -rHq ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ | tail -n 1 )
# IPNS=$(ipfs name publish --quieter --key="${MEDIAKEY}" $NEWIPFS)
# [[ "$IPNS" == "" ]] && IPNS="$(ipfs key list -l | grep -w ${MEDIAKEY} | cut -f 1 -d ' ')"
# echo "Annonce gchange : $(cat ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad)"
#
# fi
2022-11-14 20:22:37 +01:00
#~ ########################################################################
#~ # CREATION DU FICHIER ${PREFIX}ASTRXBIAN FILE : Add Header (TODO DEBUG Kodi Plugin !! )
#~ mkdir -p ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/
#~ [[ ! -f ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ]] \
2022-11-18 20:22:33 +01:00
#~ && echo "type;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://${myIP}:8080" > ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
2022-11-14 20:22:37 +01:00
2022-11-20 12:57:41 +01:00
# REFRESH ${MOATS}_ajouter_video.txt FILE
2022-11-18 20:22:33 +01:00
if [ [ -f ~/astroport/${ TyPE } /${ REFERENCE } /ajouter_video.txt ] ]
2022-09-04 12:20:55 +02:00
then
2022-11-18 20:22:33 +01:00
line = $( cat ~/astroport/${ TyPE } /${ REFERENCE } /ajouter_video.txt | sed " s/_IPFSREPFILEID_/ $IPFSREPFILEID /g " | sed " s/_IPNSKEY_/ $IPNS /g " )
2022-09-04 12:20:55 +02:00
else
2022-11-18 20:22:33 +01:00
line = " $type ; ${ REFERENCE } ; $YEAR ; $TITLE ; $SAISON ;; ${ IPNS } ; $RES ;/ipfs/ $IPFSREPFILEID / $URLENCODE_FILE_NAME "
2022-09-04 12:20:55 +02:00
fi
2022-09-05 16:31:07 +02:00
echo " -------------------- UPDATE ${ PREFIX } ASTRXBIAN INDEX ----------------------------- "
2022-09-04 12:20:55 +02:00
echo " $line "
2022-11-18 20:22:33 +01:00
echo " UPDATE ~/astroport/ ${ TyPE } / ${ REFERENCE } /ajouter_video.txt "
echo " $line " > ~/astroport/${ TyPE } /${ REFERENCE } /ajouter_video.txt
2022-11-20 12:57:41 +01:00
cp ~/astroport/${ TyPE } /${ REFERENCE } /ajouter_video.txt ~/astroport/${ TyPE } /${ REFERENCE } /${ MOATS } _ajouter_video.txt
2022-09-04 12:20:55 +02:00
########################################################################
## TODO: ACTIVATE SUB DEFCON 4 MODE = encrypt/decrypt file in $G1DEST subdirectory
########################################################################
2022-11-14 13:54:30 +01:00
# echo "----------------- REFRESH LOCAL KODI INDEX ----------------------"
# cat ~/.zen/game/players/$PLAYER/ipfs*/.*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN | sort | uniq > ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
2022-09-04 12:20:55 +02:00
echo "----------------- PREPARING TIDDLER ----------------------"
2022-11-18 22:47:45 +01:00
CAT = $( echo " $type " | sed -r 's/\<./\U&/g' | sed 's/ //g' ) # CapitalGluedWords
2022-11-20 12:57:41 +01:00
GENRE = $( cat ~/astroport/${ TyPE } /${ REFERENCE } /${ MOATS } _ajouter_video.txt | cut -d ';' -f 6 | sed 's/|/ /g' | jq -r '@csv' | sed 's/ /_/g' | sed 's/,/ /g' | sed 's/\"//g' )
2022-11-21 18:58:03 +01:00
## Adapt TMDB url for season & tag naming
[ [ $CAT = = "Film" ] ] && tdb = "movie" \
&& FILETAG = " $CapitalGluedTitle "
[ [ $CAT = = "Serie" ] ] && tdb = "tv" \
&& SAISON = $( cat ~/astroport/${ TyPE } /${ REFERENCE } /${ MOATS } _ajouter_video.txt | cut -d ';' -f 5 | cut -d '_' -f 2) \
&& FILETAG = $( echo " $CapitalGluedTitle " | cut -d '_' -f 1)
2022-11-20 12:57:41 +01:00
echo $GENRE $SAISON
2022-11-14 13:54:30 +01:00
2022-11-03 01:15:33 +01:00
## ASK FOR EXTRA METADATA
2022-11-18 20:22:33 +01:00
[ [ ! $3 ] ] && OUTPUT = $( zenity --forms --width 480 --title= "METADATA" --text= "Metadonnées (séparateur espace)" --separator= "~" --add-entry= "Description" --add-entry= "extra tag(s)" )
[ [ ! $3 ] ] && DESCRIPTION = $( awk -F '~' '{print $1}' <<< $OUTPUT )
[ [ ! $3 ] ] && HASHTAG = $( awk -F '~' '{print $2}' <<< $OUTPUT )
2022-11-03 01:15:33 +01:00
2022-11-12 02:32:10 +01:00
## Add screenshot (TODO : Make it better. Check what to put; if used & usefull
2022-11-18 20:22:33 +01:00
[ [ -f $HOME /astroport/${ TyPE } /${ REFERENCE } /screen.png ] ] && IPSCREEN = $( ipfs add -q " $HOME /astroport/ ${ TyPE } / ${ REFERENCE } /screen.png " | tail -n 1)
2022-11-13 02:23:28 +01:00
[ [ $IPSCREEN ] ] && POSTER = $IPSCREEN
2022-11-18 20:22:33 +01:00
[ [ -f $HOME /astroport/${ TyPE } /${ REFERENCE } /thumbnail.png ] ] && IPTHUMB = $( ipfs add -q " $HOME /astroport/ ${ TyPE } / ${ REFERENCE } /thumbnail.png " | tail -n 1)
2022-11-13 02:23:28 +01:00
[ [ $IPTHUMB ] ] && POSTER = $IPTHUMB
2022-11-03 20:11:17 +01:00
2022-09-04 12:20:55 +02:00
if [ [ $( echo " $MIME " | grep 'video' ) ] ] ; then
2022-11-18 20:22:33 +01:00
TEXT = "<video controls width=100% poster='/ipfs/" ${ ANIMH } "'><source src='/ipfs/" ${ IPFSID } "' type='" ${ MIME } " '>
2022-11-19 03:51:10 +01:00
</video><h1><a target = 'tmdb' href = 'https://www.themoviedb.org/"${tdb}"/"${REFERENCE}"' >" ${ TITLE } " </a></h1>
2022-11-03 20:11:17 +01:00
<h2>" $DESCRIPTION " </h2>
2022-11-19 03:18:09 +01:00
<img src = '/ipfs/"${POSTER}"' width = 33%><br>
2022-10-31 14:54:28 +01:00
<\$ button class = 'tc-tiddlylink' >
2022-11-14 13:54:30 +01:00
<\$ list filter = '[tag[G1${CAT}]]' >
2022-10-31 14:54:28 +01:00
<\$ action-navigate \$ to = <<currentTiddler>> \$sc roll= no/>
</\$ list>
2022-11-14 13:54:30 +01:00
Afficher tous les G1${ CAT }
2022-10-31 14:54:28 +01:00
</\$ button>"
2022-11-18 20:22:33 +01:00
TidType = "text/vnd.tiddlywiki" ## MAYBE REAL ONCE TW CAN SHOW ATTACHED IPFS VIDEO (TODO: TESTINGS)
2022-11-21 18:58:03 +01:00
TAGS = " G1 ${ CAT } ${ PLAYER } ${ FILETAG } $GENRE ipfs ${ HASHTAG } "
2022-11-18 20:22:33 +01:00
# TyPE="$MIME"
2022-11-14 13:54:30 +01:00
# CANON="/ipfs/"${IPFSID}
2022-09-04 12:20:55 +02:00
CANON = ''
else
2022-11-18 20:22:33 +01:00
TidType = " ${ MIME } "
2022-09-04 12:20:55 +02:00
TEXT = '${MEDIAKEY}'
2022-11-19 03:18:09 +01:00
TAGS = " ' $:/isAttachment $:/isIpfs G1 ${ CAT } ${ PLAYER } ${ CapitalGluedTitle } $GENRE ${ HASHTAG } "
2022-09-04 12:20:55 +02:00
CANON = "/ipfs/" ${ IPFSID }
fi
2022-11-20 12:57:41 +01:00
## Archive previous dragdrop.json
[ [ -s ~/astroport/${ TyPE } /${ REFERENCE } /${ MEDIAKEY } .dragdrop.json ] ] \
&& cp ~/astroport/${ TyPE } /${ REFERENCE } /${ MEDIAKEY } .dragdrop.json ~/astroport/${ TyPE } /${ REFERENCE } /${ MOATS } .${ MEDIAKEY } .dragdrop.json
2022-09-04 12:20:55 +02:00
echo "## Creation json tiddler"
echo ' [
{
"text" : " ' ${ TEXT } ' " ,
2022-11-19 03:18:09 +01:00
"title" : " ' ${ CapitalGluedTitle } ' " ,
2022-11-21 18:58:03 +01:00
"season" : " ' ${ SAISON } ' " ,
2022-11-13 02:23:28 +01:00
"created" : " ' ${ MOATS } ' " ,
2022-11-14 13:54:30 +01:00
"resolution" : " ' ${ RES } ' " ,
2022-11-21 18:58:03 +01:00
"duree" : " ' ${ DUREE } ' " ,
"duration" : " ' ${ DURATION } ' " ,
"giftime" : " ' ${ PROBETIME } ' " ,
2022-11-18 20:22:33 +01:00
"gifanime" : " '/ipfs/ ${ ANIMH } ' " ,
"type" : " ' ${ TidType } ' " ,
"mime" : " ' ${ MIME } ' " ,
"ipfsdur" : " ' ${ ipfsdur } ' " ,
2022-09-04 12:20:55 +02:00
"cat" : " ' ${ CAT } ' " ,
2022-10-31 14:25:18 +01:00
"size" : " ' ${ FILE_BSIZE } ' " ,
2022-11-03 01:15:33 +01:00
"description" : " ' ${ DESCRIPTION } ' " ,
2022-11-13 02:23:28 +01:00
"poster" : " '/ipfs/ ${ POSTER } ' " ,
2022-11-03 01:15:33 +01:00
"ipfsroot" : " '/ipfs/ ${ IPFSREPFILEID } ' " ,
2022-09-04 12:20:55 +02:00
"file" : " ' ${ file } ' " ,
2022-10-20 15:25:08 +02:00
"ipfs" : " '/ipfs/ ${ IPFSREPFILEID } / ${ URLENCODE_FILE_NAME } ' " ,
2022-09-04 12:20:55 +02:00
"mediakey" : " ' ${ MEDIAKEY } ' " ,
2022-10-20 15:25:08 +02:00
"ipns" : " '/ipns/ ${ IPNS } ' " ,
2022-09-04 12:20:55 +02:00
"tmdb" : " ' ${ REFERENCE } ' " ,
2022-11-15 14:34:36 +01:00
"modified" : " ' ${ MOATS } ' " ,
2022-11-18 20:22:33 +01:00
"tags" : " ' ${ TAGS } ' " ' > ~/astroport/${ TyPE } /${ REFERENCE } /${ MEDIAKEY } .dragdrop.json
2022-09-04 12:20:55 +02:00
[ [ ${ CANON } != "" ] ] && echo ' ,
2022-11-18 20:22:33 +01:00
"_canonical_uri" : " ' ${ CANON } ' " ' >> ~/astroport/${ TyPE } /${ REFERENCE } /${ MEDIAKEY } .dragdrop.json
2022-09-04 12:20:55 +02:00
echo '
}
]
2022-11-18 20:22:33 +01:00
' >> ~/astroport/${ TyPE } /${ REFERENCE } /${ MEDIAKEY } .dragdrop.json
2022-09-04 12:20:55 +02:00
2022-11-18 20:22:33 +01:00
echo " ~/astroport/ ${ TyPE } / ${ REFERENCE } / ${ MEDIAKEY } .dragdrop.json copy into Station Balise "
#############################################################################
## ARCHIVE FOR IPFSNODEID CACHE SHARING (APPNAME=KEY)
mkdir -p " $HOME /.zen/game/players/ $PLAYER /ipfs/. ${ IPFSNODEID } /KEY/ ${ MIME } / ${ MEDIAKEY } / ${ G1PUB } / "
cp ~/astroport/${ TyPE } /${ REFERENCE } /${ MEDIAKEY } .dragdrop.json " $HOME /.zen/game/players/ $PLAYER /ipfs/. ${ IPFSNODEID } /KEY/ ${ MIME } / ${ MEDIAKEY } / ${ G1PUB } /tiddler.json "
#############################################################################
2022-09-04 12:20:55 +02:00
## TODO : Do we keep that ?
# echo "SEND TW LINK to GCHANGE MESSAGE"
2022-10-29 01:59:50 +02:00
[ [ $3 ] ] && ~/.zen/Astroport.ONE/tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER /secret.dunikey -n "https://data.gchange.fr" send -d " $3 " -t " ${ TITLE } ${ MEDIAKEY } " -m " MEDIA : http://astroport.com:8080/ipfs/ ${ IPFSREPFILEID } "
2022-09-04 12:20:55 +02:00
# Couldl be used by caroussel.html template
2022-11-18 20:22:33 +01:00
# CAROUSSEL=$(ipfs add -wq ~/astroport/${TyPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json | head-n 1)
2022-09-04 12:20:55 +02:00
2022-11-18 20:22:33 +01:00
# COPY TIDDLER JSON TO DESKTOP Journal/${TyPE}
# [[ "$USER" != "xbian" && -d ~/Bureau ]] && mkdir -p ~/Bureau/Journal/${TyPE} && cp ~/astroport/${TyPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json "$HOME/Bureau/Journal/${TyPE}/${TITLE}.dragdrop.json" && xdg-open "$HOME/Bureau/Journal/${TyPE}/"
# [[ "$USER" != "xbian" && -d ~/Desktop ]] && mkdir -p ~/Desktop/Journal/${TyPE} && cp ~/astroport/${TyPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json "$HOME/Desktop/Journal/${TyPE}/${TITLE}.dragdrop.json" && xdg-open "$HOME/Desktop/Journal/${TyPE}/"
2022-09-04 12:20:55 +02:00
fi
2022-11-18 20:22:33 +01:00
########################################################################
2022-09-04 12:20:55 +02:00
## COPY LOCALHOST IPFS URL TO CLIPBOARD
[ [ $( which xclip) ] ] && \
2022-11-18 20:22:33 +01:00
echo " http:// ${ myIP } :8080/ipfs/ $IPFSREPFILEID / $URLENCODE_FILE_NAME " | xclip -selection c
2022-09-04 12:20:55 +02:00
########################################################################
########################################################################
2022-11-14 13:54:30 +01:00
# echo "DUNIKEY PASS $PASS"
2022-11-18 20:22:33 +01:00
echo " NEW $TyPE ( $file ) ADDED. http:// ${ myIP } :8080/ipfs/ $IPFSREPFILEID / $URLENCODE_FILE_NAME "
2022-11-14 13:54:30 +01:00
echo " VIDEO IPNS LINK : http:// ${ myIP } :8080/ipns/ $KEY / $G1PUB / = Create 'G1 ${ CAT } .sh' to adapt 20H12 Ŋ1 process "
2022-09-04 12:20:55 +02:00
echo "#### EXCECUTION TIME"
end = ` date +%s`
2022-11-19 18:39:31 +01:00
dur = ` expr $end - $start `
2022-11-20 12:57:41 +01:00
echo ${ MOATS } :${ G1PUB } :${ PLAYER } :NewFile:$dur :${ MEDIAKEY } >> ~/.zen/tmp/${ IPFSNODEID } /_timings
2022-11-19 18:39:31 +01:00
cat ~/.zen/tmp/${ IPFSNODEID } /_timings | tail -n 1
2022-09-04 12:20:55 +02:00
echo "########################################################################"
2022-11-18 20:22:33 +01:00
2022-09-04 12:20:55 +02:00
[ [ ! $3 ] ] && zenity --warning --width 300 --text " Votre MEDIA a rejoint ASTROPORT en `expr $end - $start ` secondes "
2022-11-18 20:22:33 +01:00
2022-09-04 12:20:55 +02:00
exit 0