G1Kodi 1st step
This commit is contained in:
parent
708b0a3e87
commit
323c9ff40e
|
@ -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
|
||||
#~ <item>
|
||||
#~ <title>Delicatessen</title>
|
||||
#~ <description>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 ».</description>
|
||||
#~ <link>http://ipfs.localhost:8080/ipfs/QmfVuhDo4kEk5eh5EULfZGxiWqrrCcHBehojgPF6kiq8r3/Delicatessen.mp4</link>
|
||||
#~ <pubDate>Sun, 6 Sep 2022 16:20:00 +0000</pubDate>
|
||||
#~ </item>
|
||||
|
||||
## 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
|
|
@ -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 '<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>Astroport Kodi</title>
|
||||
<description>Astroport Kodi Movies RSS feed</description>
|
||||
<link>http://astroport.copylaradio.com</link>
|
||||
<copyright>2020 Astroport.com All rights reserved</copyright>
|
||||
<lastBuildDate>Mon, 6 Sep 2020 00:01:00 +0000</lastBuildDate>
|
||||
<pubDate>Sun, 6 Sep 2020 16:20:00 +0000</pubDate>
|
||||
<ttl>1800</ttl>' > $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
|
||||
#~ <item>
|
||||
#~ <title>Delicatessen</title>
|
||||
#~ <description>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 ».</description>
|
||||
#~ <link>http://ipfs.localhost:8080/ipfs/QmfVuhDo4kEk5eh5EULfZGxiWqrrCcHBehojgPF6kiq8r3/Delicatessen.mp4</link>
|
||||
#~ <pubDate>Sun, 6 Sep 2022 16:20:00 +0000</pubDate>
|
||||
#~ </item>
|
||||
|
||||
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 '
|
||||
#~ <item>
|
||||
#~ <title>'$TITLE'</title>
|
||||
#~ <description>'$DESC'</description>
|
||||
#~ <link>'$SOURCE'</link>
|
||||
#~ <pubDate>Sun, 1 Sep 2020 20:12:00 +0000</pubDate>
|
||||
#~ </item>
|
||||
#~ ' >> $HOME/.zen/tmp/${MOATS}/movie.rss
|
||||
|
||||
fi
|
||||
|
||||
echo "~~~~~~~~"
|
||||
|
||||
|
||||
done < ~/.zen/tmp/${MOATS}/${PLAYER}.movie.csv
|
||||
|
||||
echo '</channel>
|
||||
</rss>' >> $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
|
|
@ -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}/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>RSS MOVIE</title>
|
||||
<description>Astroport Kodi RSS feed</description>
|
||||
<link>http://astroport.copylaradio.com</link>
|
||||
<copyright>2020 Astroport.com All rights reserved</copyright>
|
||||
<lastBuildDate>Mon, 6 Sep 2020 00:01:00 +0000</lastBuildDate>
|
||||
<pubDate>Sun, 6 Sep 2020 16:20:00 +0000</pubDate>
|
||||
<ttl>1800</ttl>
|
||||
|
||||
<item>
|
||||
<title>Delicatessen</title>
|
||||
<description>Un festin comique et funeste.</description>
|
||||
<link>http://ipfs.localhost:8080/ipfs/QmfVuhDo4kEk5eh5EULfZGxiWqrrCcHBehojgPF6kiq8r3/Delicatessen.mp4</link>
|
||||
<pubDate>Sun, 6 Sep 2022 16:20:00 +0000</pubDate>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Le Petit Prince</title>
|
||||
<description>Histoire à lire</description>
|
||||
<link>http://ipfs.localhost:8080/ipfs/QmQwYpoHX6Fw26nd3KFfLj71Uv34riT4F5X2RFy2rmHekW</link>
|
||||
<pubDate>Sun, 6 Sep 2022 16:20:00 +0000</pubDate>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Le Roi des Ronces</title>
|
||||
<description>coucou</description>
|
||||
<link>http://ipfs.localhost:8080/ipfs/QmXMrgJ5YfVaXxQCaMdD6i87HKjJ8sX9iZKPthuMfTewGy</link>
|
||||
<pubDate>Sun, 6 Sep 2022 16:20:00 +0000</pubDate>
|
||||
</item>
|
||||
|
||||
|
||||
</channel>
|
||||
</rss>
|
12
tools/my.sh
12
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
|
||||
|
|
Loading…
Reference in New Issue