From 323c9ff40eb49e3264cbd41b8f465e2d888f4f4d Mon Sep 17 00:00:00 2001 From: fred Date: Mon, 10 Jul 2023 11:51:36 +0200 Subject: [PATCH] G1Kodi 1st step --- ASTROBOT/G1Kodi.sh | 301 ++++++++++++++++++++++++++++++++++++ ASTROBOT/_G1Kodi.sh | 161 ------------------- RUNTIME/VOEUX.refresh.sh | 13 +- ajouter_media.sh | 9 +- install.sh | 2 +- templates/_sandbox/kodi.rss | 35 +++++ tools/my.sh | 12 ++ 7 files changed, 362 insertions(+), 171 deletions(-) create mode 100755 ASTROBOT/G1Kodi.sh delete mode 100755 ASTROBOT/_G1Kodi.sh create mode 100644 templates/_sandbox/kodi.rss diff --git a/ASTROBOT/G1Kodi.sh b/ASTROBOT/G1Kodi.sh new file mode 100755 index 00000000..50fa408d --- /dev/null +++ b/ASTROBOT/G1Kodi.sh @@ -0,0 +1,301 @@ +#!/bin/bash +######################################################################## +# Version: 0.5 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +######################################################################## +# PAD COCODING : https://pad.p2p.legal/s/G1Kodi +# KODI SERVICE : Publish and Merge Friends Kodi Movies into RSS Stream +######################################################################## +######################################################################## +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +. "${MY_PATH}/../tools/my.sh" + +echo "(✜‿‿✜) G1Kodi : Get Kodi database from ~/.kodi/userdata/Database/MyVideos116.db +export movie to RSS (ex : http://ipfs.localhost:8080/ipfs/QmSJYf4uTj3NmqovSFZpBZuUhSS8j9FXKKnAjUMuVE896k)" +echo "$ME RUNNING" + +## EXTRACT MOVIES FROM KODI +[[ ! -s ~/.kodi/userdata/Database/MyVideos116.db ]] && echo "KODI MOVIE SQLITE DB MISSING - EXIT -" && exit 1 +## CREATE 1ST ONLY TIDDLER INTO TW + +######################################################################## +######################################################################## +INDEX="$1" +[[ ! ${INDEX} ]] && INDEX="$HOME/.zen/game/players/.current/ipfs/moa/index.html" +[[ ! -s ${INDEX} ]] && echo "ERROR - Please provide path to source TW index.html" && exit 1 +[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1 +ORIGININDEX=${INDEX} + +PLAYER="$2" +[[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)" +[[ ! ${PLAYER} ]] && echo "ERROR - Please provide PLAYER" && exit 1 + +ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1) +[[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1 + +G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub) +[[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1 + +# Extract tag=tube from TW +MOATS="$3" +[[ ! ${MOATS} ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N") + +echo "${PLAYER} ${INDEX} ${ASTRONAUTENS} ${G1PUB} " +#~ ################################################################### +#~ ## CREATE APP NODE PLAYER PUBLICATION DIRECTORY +#~ ################################################################### +mkdir -p $HOME/.zen/tmp/${IPFSNODEID}/G1Kodi/${PLAYER}/ +mkdir -p $HOME/.zen/tmp/${MOATS} && echo $HOME/.zen/tmp/${MOATS} +mkdir -p $HOME/.zen/game/players/${PLAYER}/G1Kodi/ + +echo "EXPORT Kodi Wish for ${PLAYER}" +rm -f ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json +tiddlywiki --load ${INDEX} \ + --output ~/.zen/game/players/${PLAYER}/G1Kodi \ + --render '.' 'Kodi.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Kodi' + +[[ $(cat ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json ) == "[]" ]] \ + && echo "AUCUN VOEU G1KODI" \ + && echo "EXIT" && exit 0 + +WISH=$(cat ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json | jq -r '.[].wish') +WISHNS=$(cat ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json | jq -r '.[].wishns') +echo "G1KODI: $WISH ${myIPFS}$WISHNS" + +## Export already in TW movies +rm -f ~/.zen/game/players/${PLAYER}/G1Kodi/TWmovies.json + +tiddlywiki --load ${INDEX} \ + --output ~/.zen/game/players/${PLAYER}/G1Kodi \ + --render '.' 'TWmovies.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Kodi]!tag[G1Voeu]]' + +[[ $(cat ~/.zen/game/players/${PLAYER}/G1Kodi/TWmovies.json) == "[]" ]] && echo "AUCUN FILM G1KODI" + +echo "=========== ( ◕‿◕) (◕‿◕ ) ==============" + +## EXTRACT MOVIE FILES LIST TO CSV +echo "\"titre\",\"desc\",\"sub\",\"source\",\"cat\",\"extrait\",\"prem\"" > ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv +sqlite3 -csv ~/.kodi/userdata/Database/MyVideos116.db 'select c00, c01, c03, c22, c14, c19, premiered from movie' >> ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv +[[ ! -s ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv ]] && echo "EMPTY KODI MOVIE DATABASE - EXIT -" && exit 0 +################################# + +### CONVERT TO JSON +## Use "miller" to convert csv into json +mlr --c2j --jlistwrap cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv > ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json + +## INDEX TITRE LIST +cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq -r .[].titre > ~/.zen/tmp/${MOATS}/${PLAYER}.movie.id + +boucle=0 + +while read TITRE; do + + DESC=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .desc') + SUB=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .sub') + SOURCE=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .source') + CAT=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .cat' | tail -n 1) + YID=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .extrait' | rev | cut -d '=' -f 1 | rev) + + PREM=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .prem') + MIME=$(file --mime-type -b "$SOURCE" ) + + YEAR=$(echo "${PREM}" | cut -f1 -d '-' ) + TITLE=$(echo "${TITRE}" | detox --inline ) ## TITLE SANITY + TAGS="${YEAR} G1Kodi ${TITLE} ${PLAYER} $(echo "${CAT}" | detox --inline | sed 's~_~\ ~g')" + + echo "${YID} > ${TITLE}" + echo "($MIME)" "$SOURCE" + + ## ADD MOVIE TO IPFS + #~ + #~ Delicatessen + #~ La vie des étranges habitants d'un immeuble de banlieue qui se dresse dans un immense terrain vague et qui tous vont se fournir chez le boucher-charcutier, à l'enseigne « Delicatessen ». + #~ http://ipfs.localhost:8080/ipfs/QmfVuhDo4kEk5eh5EULfZGxiWqrrCcHBehojgPF6kiq8r3/Delicatessen.mp4 + #~ Sun, 6 Sep 2022 16:20:00 +0000 + #~ + + ## CHECK IN TW + if [[ ! -s ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json ]]; then + tiddlywiki --load ${ORIGININDEX} \ + --output ~/.zen/game/players/${PLAYER}/G1Kodi \ + --render '.' "${TITLE}.dragdrop.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "'"Kodi_${TITLE}"'" + fi + ## CHECK PLAYER G1KODI CACHE. QUICKER. + + if [[ $(cat ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json) == "[]" ]]; then + echo "NOT IN TW either IN CACHE" + + + if [[ $MIME == "video/mp4" ]]; then + echo "$MIME. GOOD. RECORDING TO TW" + + + echo "## Creation json tiddler" + echo '[ + { + "text": "'${DESC}'", + "title": "'Kodi_${TITLE}'", + "created": "'${MOATS}'", + "year": "'${YEAR}'", + "mime": "'${MIME}'", + "prem": "'${PREM}'", + "sub": "'${SUB}'", + "desc": "'${DESC}'", + "yid": "'${YID}'", + "cat": "'${CAT}'", + "g1pub": "'${G1PUB}'", + "source": "'${SOURCE}'", + "ipfs_one": "''", + "titre": "'${TITRE}'", + "modified": "'${MOATS}'", + "tags": "'${TAGS}'" + } + ] + ' > ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json + + + echo "ADD G1KODI IN TW ${PLAYER} : $myIPFS/ipns/$ASTRONAUTENS" + rm -f ~/.zen/tmp/newindex.html + tiddlywiki --load ${INDEX} \ + --import ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json "application/json" \ + --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" + + if [[ -s ~/.zen/tmp/newindex.html ]]; then + + cp -f ~/.zen/tmp/newindex.html ~/.zen/tmp/${MOATS}/index.html + + INDEX="$HOME/.zen/tmp/${MOATS}/index.html" + echo "NEWINDEX : ${INDEX}" + + else + + echo "CANNOT UPDATE TW - FATAL ERROR -" + exit 1 + + fi + + else + + echo "MOVIE NO COMPATIBLE. PLEASE CONVERT TO MP4" + + fi + + else + + echo "## TIDDLER WITHOUT ipfs_one" + ## MANAGING TIDDLER UPDATE + IPFSONE=$(cat ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json | jq -r .[].ipfs_one) + SOURCE=$(cat ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json | jq -r .[].source) + + if [[ ${IPFSONE} == "" ]]; then + + ## RUN NO IPFS_ONE STEP + echo "${SOURCE}" + [[ ${boucle} == 1 ]] && echo "IPFS ADD DONE ONCE TODAY" && continue + + $IPFSMOVIE=$(ipfs add -q "$SOURCE") + echo "/ipfs/${IPFSMOVIE}" > ~/.zen/tmp/${MOATS}/source + + ~/.zen/Astroport.ONE/tools/natools.py encrypt -p ${G1PUB} -i ~/.zen/tmp/${MOATS}/source -o ~/.zen/tmp/${MOATS}/source.enc + ENCODING=$(cat ~/.zen/tmp/${MOATS}/source.enc | base16) + echo "MOVIE ADDED /ipfs/${IPFSMOVIE} :NATOOLS16: ${ENCODING}" + + ## UPDATE ipfs_one in JSON + cat ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json | jq --arg v "${ENCODING}" '.[].ipfs_one = "$v"' \ + > ~/.zen/game/players/${PLAYER}/G1Kodi/ipfs_one.json + + ## INSERT NEW TIDDLER + tiddlywiki --load ${INDEX} \ + --import ~/.zen/game/players/${PLAYER}/G1Kodi/ipfs_one.json "application/json" \ + --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" + + [[ -s ~/.zen/tmp/newindex.html ]] \ + && cp -f ~/.zen/tmp/newindex.html ~/.zen/tmp/${MOATS}/index.html + + boucle=$((boucle+1)) ## COUNT HOW MANY MOVIES GOING TO IPFS + + else + + ## ipfs_one STEP OK + echo "ipfs_one NATOOLS DECRYPTING" + echo "${IPFSONE}" | base16 -d > ~/.zen/tmp/${MOATS}/source.one.enc + ~/.zen/Astroport.ONE/tools/natools.py decrypt -f pubsec \ + -k ~/.zen/game/players/${PLAYER}/secret.dunikey \ + -i ~/.zen/tmp/${MOATS}/source.one.enc -o $HOME/.zen/tmp/${MOATS}/source.one + + cat $HOME/.zen/tmp/${MOATS}/source.one + + ## TODO + ## ADD FIELDS ipfs_AG1PUB for my FRIENDS + #~ cat ~/.zen/game/players/${PLAYER}/G1Kodi/${TITLE}.dragdrop.json | jq --arg a "${AG1PUB}" --arg v "${ACODING}" '.[] |= .+ {"ipfs_$a":"$v"}' + + + + fi + + + YID=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.movie.json | jq --arg v "${TITRE}" -r '.[] | select(.titre==$v) | .extrait' | rev | cut -d '=' -f 1 | rev) + + echo "MOVIE ALREADY IN TW" + + fi + + echo "~~~~~~~~" + +done < ~/.zen/tmp/${MOATS}/${PLAYER}.movie.id + +if [[ $(diff ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${INDEX}) ]]; then + + ################################################ + ## UPDATE TW CHAIN WITH PREVIOUSLY RECORDED CHAIN + tiddlywiki --load ${INDEX} \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' + ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) + [[ $ASTROPORT == "" ]] && echo "INCOMPATIBLE TW - ADD Astroport TIDDLER - CORRECTION NEEDED -" && exit 1 + + CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part + [[ $CURCHAIN == "" || $CURCHAIN == "null" ]] && CURCHAIN="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # AVOID EMPTY + echo "CURCHAIN=$CURCHAIN" + [[ -s ~/.zen/game/players/$PLAYER/ipfs/moa/.chain ]] \ + && ZCHAIN=$(cat ~/.zen/game/players/$PLAYER/ipfs/moa/.chain) \ + && echo "# CHAIN : $CURCHAIN -> $ZCHAIN" \ + && sed -i "s~$CURCHAIN~$ZCHAIN~g" ${INDEX} + ################################################ + + espeak "I P N S Publishing. Please wait..." + cp ${INDEX} ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html + + cp ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain \ + ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats) + + TW=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1) + ipfs name publish --key=${PLAYER} /ipfs/$TW + + echo $TW > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain + echo ${MOATS} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats + + echo "================================================" + echo "${PLAYER} : $myIPFS/ipns/$ASTRONAUTENS" + echo "================================================" + echo + + [[ $XDG_SESSION_TYPE == 'x11' ]] && xdg-open "http://ipfs.localhost:8080/ipns/$ASTRONAUTENS" + +else + + echo "UNCHANGED TW" + +fi + +echo "=========== ( ◕‿◕) (◕‿◕ ) ==============" + +ls -al $HOME/.zen/tmp/${MOATS} + +exit 0 + +## ./userdata/mediasources.xml +## ./userdata/sources.xml diff --git a/ASTROBOT/_G1Kodi.sh b/ASTROBOT/_G1Kodi.sh deleted file mode 100755 index 0f6702a3..00000000 --- a/ASTROBOT/_G1Kodi.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -######################################################################## -# Version: 0.5 -# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) -######################################################################## -# PAD COCODING : https://pad.p2p.legal/s/G1Kodi -######################################################################## -MY_PATH="`dirname \"$0\"`" # relative -MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized -ME="${0##*/}" - -. "${MY_PATH}/../tools/my.sh" - -echo "(✜‿‿✜) G1Kodi : Get Kodi database from ~/.kodi/userdata/Database/MyVideos116.db -export movie to RSS (ex : http://ipfs.localhost:8080/ipfs/QmSJYf4uTj3NmqovSFZpBZuUhSS8j9FXKKnAjUMuVE896k)" -echo "$ME RUNNING" - -######################################################################## -# KODI SERVICE -######################################################################## -######################################################################## -INDEX="$1" -[[ ! ${INDEX} ]] && INDEX="$HOME/.zen/game/players/.current/ipfs/moa/index.html" -[[ ! -s ${INDEX} ]] && echo "ERROR - Please provide path to source TW index.html" && exit 1 -[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1 - -#~ PLAYER="$2" -#~ [[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)" -#~ [[ ! ${PLAYER} ]] && echo "ERROR - Please provide PLAYER" && exit 1 - -#~ ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1) -#~ [[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1 - -#~ G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub) -#~ [[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1 - -#~ # Extract tag=tube from TW -#~ MOATS="$3" -#~ [[ ! ${MOATS} ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N") - -#~ ################################################################### -#~ ## CREATE APP NODE PLAYER PUBLICATION DIRECTORY -#~ ################################################################### -#~ mkdir -p $HOME/.zen/tmp/${IPFSNODEID}/G1Kodi/${PLAYER}/ -#~ mkdir -p $HOME/.zen/game/players/${PLAYER}/G1Kodi/ -#~ mkdir -p $HOME/.zen/tmp/${MOATS} && echo $HOME/.zen/tmp/${MOATS} - -#~ echo "EXPORT Kodi Wish for ${PLAYER}" -#~ rm -f ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json -#~ tiddlywiki --load ${INDEX} \ - #~ --output ~/.zen/game/players/${PLAYER}/G1Kodi \ - #~ --render '.' 'Kodi.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Kodi' - -#~ ## Second export try -#~ if [[ ! -s ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json ]] ; then - #~ tiddlywiki --load ${INDEX} \ - #~ --output ~/.zen/game/players/${PLAYER}/G1Kodi \ - #~ --render '.' 'Kodi.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Kodi]]' - - #~ fi - -#~ [[ ! -s ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json ]] && echo "AUCUN VOEU G1KODI - EXIT -" && exit 0 - - -#~ WISH=$(cat ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json | jq -r '.[].wish') -#~ WISHNS=$(cat ~/.zen/game/players/${PLAYER}/G1Kodi/Kodi.json | jq -r '.[].wishns') - -MOATS=$(date -u +"%Y%m%d%H%M%S%4N") - -#~ ################################################################### -#~ ## CREATE APP NODE PLAYER PUBLICATION DIRECTORY -#~ ################################################################### -mkdir -p $HOME/.zen/tmp/${MOATS} && echo $HOME/.zen/tmp/${MOATS} - -#~ echo ${myIPFS}${WISHNS} -echo "=========== ( ◕‿◕) (◕‿◕ ) ==============" - -## EXTRACT MOVIE FILES LIST -sqlite3 -csv ~/.kodi/userdata/Database/MyVideos116.db 'select c00, c01, c22, c14 from movie' > ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv -[[ ! -s ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv ]] && echo "EMPTY KODI MOVIE DATABASE - EXIT -" && exit 0 -################################# - -## PREPARE RSS XML -echo ' - - - Astroport Kodi - Astroport Kodi Movies RSS feed - http://astroport.copylaradio.com - 2020 Astroport.com All rights reserved - Mon, 6 Sep 2020 00:01:00 +0000 - Sun, 6 Sep 2020 16:20:00 +0000 - 1800' > $HOME/.zen/tmp/${MOATS}/movie.rss - -while read LINE -do - TITLE=$(echo $LINE | csvcut -c 1) - DESC=$(echo $LINE | csvcut -c 2) - SOURCE=$(echo $LINE | csvcut -c 3) - CAT=$(echo $LINE | csvcut -c 4 | sed "s~\/~~g") - echo "$TITLE ($CAT)" - echo "$SOURCE" - ## ADD MOVIE TO IPFS - #~ - #~ Delicatessen - #~ La vie des étranges habitants d'un immeuble de banlieue qui se dresse dans un immense terrain vague et qui tous vont se fournir chez le boucher-charcutier, à l'enseigne « Delicatessen ». - #~ http://ipfs.localhost:8080/ipfs/QmfVuhDo4kEk5eh5EULfZGxiWqrrCcHBehojgPF6kiq8r3/Delicatessen.mp4 - #~ Sun, 6 Sep 2022 16:20:00 +0000 - #~ - - if [[ ! $(echo $SOURCE | grep ipfs) ]]; then - - MIME=$(file --mime-type -b "$SOURCE" ) - echo "$MIME" - - FILE=$(basename $SOURCE ) - EXT=$(echo $FILE | rev | cut -d '.' -f1 | rev ) - #~ PATH=$(echo $SOURCE | rev | cut -d / -f2- | rev ) - echo "FILE : $FILE ($EXT)" - - tiddlywiki --load ${INDEX} \ - --output ~/.zen/tmp/${MOATS} \ - --render '.' 'inTW.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "$FILE" - - [[ -s ~/.zen/tmp/${MOATS}/inTW.json ]] \ - && echo "FOUND IN TW" && continue \ - || echo "NOT IN TW" - - #~ # [[ $MIME == "video/mp4" ]] && ${MY_PATH}/../tools/make_video_gifanim_ipfs.sh "$PATH" "$FILE" - - #~ else - - #~ echo "IPFS FILE : '$SOURCE" - #~ echo ' - #~ - #~ '$TITLE' - #~ '$DESC' - #~ '$SOURCE' - #~ Sun, 1 Sep 2020 20:12:00 +0000 - #~ - #~ ' >> $HOME/.zen/tmp/${MOATS}/movie.rss - - fi - - echo "~~~~~~~~" - - -done < ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv - -echo ' -' >> $HOME/.zen/tmp/${MOATS}/movie.rss - -#~ IPRSS=$(ipfs add -q $HOME/.zen/tmp/${MOATS}/movie.rss) - -#~ ipfs name publish -k $WISH /ipfs/$IPRSS - -echo "=========== ( ◕‿◕) (◕‿◕ ) ==============" - -ll $HOME/.zen/tmp/${MOATS} - -exit 0 diff --git a/RUNTIME/VOEUX.refresh.sh b/RUNTIME/VOEUX.refresh.sh index 98f3d7b6..9cf157f0 100755 --- a/RUNTIME/VOEUX.refresh.sh +++ b/RUNTIME/VOEUX.refresh.sh @@ -125,7 +125,8 @@ do rm -f ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.json echo "$floop / ${#FINDEX[@]} TRY EXPORT [tag[G1${WISHNAME}]] FROM $APLAYER TW" tiddlywiki --load $FRIENDTW \ - --output ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME} --render '.' _${APLAYER}'.tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1'${WISHNAME}']!tag[G1Voeu]!sort[modified]limit[30]]' + --output ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME} \ + --render '.' _${APLAYER}'.tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1'${WISHNAME}']!tag[G1Voeu]!sort[modified]limit[30]]' [[ ! -s ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.json ]] \ && echo "NO ${WISHNAME} - CONTINUE -" \ @@ -214,6 +215,16 @@ do ### PREPARE WISHNAME index.html ################################## + ## RUN N1Program ASTROBOT PROGRAM (like G1CopierYoutube.sh) + if [[ -s $MY_PATH/N1${WISHNAME}.sh ]]; then + echo "........................ Astrobot N1${WISHNAME}.sh program found !" + echo "________________________________ Running it *****" + ${MY_PATH}/N1${WISHNAME}.sh "$INDEX" "${PLAYER}" "$MOATS" + echo "________________________________ Finished ******" + else + echo "......................... N1${WISHNAME} REGULAR Ŋ1 RSS JSON" + fi + ### ADD TO IPFS echo "++WISH PUBLISHING++ ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/*" ls ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/ diff --git a/ajouter_media.sh b/ajouter_media.sh index 051bef19..d2382543 100755 --- a/ajouter_media.sh +++ b/ajouter_media.sh @@ -114,14 +114,7 @@ fi COINS=$($MY_PATH/tools/COINScheck.sh $G1PUB | tail -n 1) echo "$PLAYER wallet = $COINS G1" -### -# 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)) -### + ######################################################################## ## EXCEPTION COPIE PRIVE diff --git a/install.sh b/install.sh index 3b0b37ca..d9499b90 100755 --- a/install.sh +++ b/install.sh @@ -44,7 +44,7 @@ echo "#############################################" echo "######### INSTALL BASE & PYTHON3 PACKAGE ####" echo "#############################################" -for i in git make cmake fail2ban npm netcat-traditional ncdu chromium csvkit inotify-tools curl net-tools libsodium* libcurl4-openssl-dev python3-pip python3-setuptools python3-wheel python3-dotenv python3-gpg python3-jwcrypto python3-brotli mpack; do +for i in git make cmake fail2ban npm netcat-traditional ncdu chromium miller inotify-tools curl net-tools libsodium* libcurl4-openssl-dev python3-pip python3-setuptools python3-wheel python3-dotenv python3-gpg python3-jwcrypto python3-brotli mpack; do if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then echo ">>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" sudo apt install -y $i diff --git a/templates/_sandbox/kodi.rss b/templates/_sandbox/kodi.rss new file mode 100644 index 00000000..18d6cd08 --- /dev/null +++ b/templates/_sandbox/kodi.rss @@ -0,0 +1,35 @@ + + + + RSS MOVIE + Astroport Kodi RSS feed + http://astroport.copylaradio.com + 2020 Astroport.com All rights reserved + Mon, 6 Sep 2020 00:01:00 +0000 + Sun, 6 Sep 2020 16:20:00 +0000 + 1800 + + + Delicatessen + Un festin comique et funeste. + http://ipfs.localhost:8080/ipfs/QmfVuhDo4kEk5eh5EULfZGxiWqrrCcHBehojgPF6kiq8r3/Delicatessen.mp4 + Sun, 6 Sep 2022 16:20:00 +0000 + + + + Le Petit Prince + Histoire à lire + http://ipfs.localhost:8080/ipfs/QmQwYpoHX6Fw26nd3KFfLj71Uv34riT4F5X2RFy2rmHekW + Sun, 6 Sep 2022 16:20:00 +0000 + + + + Le Roi des Ronces + coucou + http://ipfs.localhost:8080/ipfs/QmXMrgJ5YfVaXxQCaMdD6i87HKjJ8sX9iZKPthuMfTewGy + Sun, 6 Sep 2022 16:20:00 +0000 + + + + + diff --git a/tools/my.sh b/tools/my.sh index 421709e2..e780fca4 100755 --- a/tools/my.sh +++ b/tools/my.sh @@ -427,3 +427,15 @@ myASTROTUBE="https://$(myAstroTube)" && myIP="$(zIp)" \ && myIPFSGW="$(zIp):8080" \ || true + + +### +if [[ $XDG_SESSION_TYPE == 'x11' ]]; then +# 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)) +### +fi