astroport/zen/ssb_GET_zenytv.sh

110 lines
4.4 KiB
Bash
Raw Normal View History

2020-04-15 04:37:01 +02:00
#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 2020.03.24
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
########################################################################
# \\///
# qo-op
############# '$MY_PATH/$ME'
########################################################################
# ex: ./'$ME'
# #zenytv = youtube-dl video to ~/.zen/miam/$timestamp
2020-04-15 04:37:01 +02:00
########################################################################
2020-04-28 00:39:00 +02:00
2020-04-15 04:37:01 +02:00
######## YOUTUBE-DL ##########
if [[ ! $(which youtube-dl) ]]; then
2020-05-12 15:18:04 +02:00
sudo curl -s https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl || err=1
2020-04-15 04:37:01 +02:00
sudo chmod a+rx /usr/local/bin/youtube-dl
2020-04-19 17:53:44 +02:00
sudo chown $(whoami) /usr/local/bin/youtube-dl
2020-04-15 04:37:01 +02:00
fi
mkdir -p ~/.zen/miam/
2020-04-15 04:37:01 +02:00
self=$(sbotc whoami | jq -r .id) || exit 1
2020-04-19 13:02:16 +02:00
[[ "$self" == "" ]] && exit 1
2020-04-15 04:37:01 +02:00
g1self=$(echo $self | cut -d '@' -f 2 | cut -d '.' -f 1 | base64 -d | base58)
self_name=$(sbotc query.read '{"query":[{"$filter":{"value":{"author": "'"$self"'", "content":{"type":"about", "about": "'"$self"'"}}}}]}' | jq -r .value?.content?.name | grep -v null | tail -n 1)
ipfsnodeid=$(ipfs id -f='<id>\n')
current_ts=$(date -u +%s%N | cut -b1-13)
[ -s ~/.zen/zenytv.last.ts ] && last_ts=$(cat ~/.zen/zenytv.last.ts) || last_ts=$((current_ts - 24*3600*1000)) # 24h ago
2020-06-16 06:29:58 +02:00
# last_ts=$((last_ts + 10))
2020-05-04 22:49:08 +02:00
echo "Hi, i am [$self_name]($self)
last timestamp: $last_ts"
2020-04-19 16:15:58 +02:00
echo '
v i d e o
_ _
__ __ (_) __| | ___ ___
\ V / | | / _` | / -_) / _ \
\_/ |_| \__,_| \___| \___/
'
2020-04-15 04:37:01 +02:00
#messages=$(sbotc messagesByType '{"type":"post","gt":'$last_ts'}')
# SEARCH "#zenytv" CMD in message text
2020-06-16 06:29:58 +02:00
echo "sbotc backlinks.read '{\"query\":[{\"\$filter\":{\"dest\":\"#zenytv\",\"value\":{\"content\":{\"type\":\"post\"}},\"timestamp\":{\"\$gt\":'\"$last_ts\"'}}}]}'"
2020-04-15 04:37:01 +02:00
messages=$(sbotc backlinks.read '{"query":[{"$filter":{"dest":"#zenytv","value":{"content":{"type":"post"}},"timestamp":{"$gt":'"$last_ts"'}}}]}')
2020-05-04 22:08:58 +02:00
[[ $messages == "" ]] && exit 1
2020-04-15 04:37:01 +02:00
while read -r msg
do
# EXTRACT CMD PARAM
msg_key=$(printf %s "$msg" | jq -r .key)
2020-04-15 04:37:01 +02:00
author=$(printf %s "$msg" | jq -r .value.author)
timestamp=$(printf %s "$msg" | jq -r .value.timestamp)
2020-04-18 19:22:56 +02:00
# TEST CURRENT NODE last_ts
2020-06-16 06:29:58 +02:00
[[ $timestamp -lt $last_ts ]] && echo "ALREADY DONE $msg_key timestamp is $timestamp " && continue
2020-04-18 19:22:56 +02:00
2020-05-08 03:46:37 +02:00
# SWARM REFRESH
2020-04-28 14:42:00 +02:00
$MY_PATH/ipfs_SWARM_refresh.sh
2020-05-08 03:46:37 +02:00
# SWARM ALREADY DONE
2020-12-05 00:10:19 +01:00
CHECKSWARM=$(grep -Rwl "$timestamp" ~/.zen/ipfs_swarm/.12D3KooW*/TAG/*/_tag.zensource | tail -n 1 | cut -f 6 -d '/')
2020-05-08 03:46:37 +02:00
# OR SWARM PROCESS IN ACTION
2020-12-05 00:10:19 +01:00
[[ ! $CHECKSWARM ]] && CHECKSWARM=$(grep -Rwl "$timestamp" ~/.zen/ipfs_swarm/.12D3KooW*/TAG/process.timestamp.ssb | tail -n 1 | cut -f 6 -d '/')
[[ $CHECKSWARM ]] \
&& echo "$timestamp ALREADY on NODE $CHECKSWARM CONTINUE" \
2020-05-04 22:27:13 +02:00
&& echo "$timestamp" > ~/.zen/zenytv.last.ts \
&& continue
2020-04-18 19:22:56 +02:00
2020-05-08 03:46:37 +02:00
# ANTI DOUBLE COPY START
echo "$timestamp" > ~/.zen/ipfs/.$ipfsnodeid/process.timestamp.ssb
2020-05-08 06:02:23 +02:00
$MY_PATH/ipfs_SWARM_refresh.sh
2020-05-08 03:46:37 +02:00
# ANTI DOUBLE COPY
2020-04-15 04:37:01 +02:00
msg_root=$(printf %s "$msg" | jq -r .value.content.root)
msg_branch=$(printf %s "$msg" | jq -r .value.content.branch)
msg_text=$(printf %s "$msg" | jq -r .value.content.text)
2020-05-04 20:22:16 +02:00
msg_ytdlurl=$(echo $msg_text | egrep -o 'https?://[^ ]+' | grep you | cut -d '\' -f 1 | tail -n 1)
2020-04-15 04:37:01 +02:00
# YOUTUBE-DL VIDEO
2020-04-19 17:21:43 +02:00
[[ $timestamp ]] && mkdir -p ~/.zen/miam/$timestamp
2020-04-15 04:37:01 +02:00
2020-04-19 17:21:43 +02:00
[[ $msg_ytdlurl ]] && /usr/local/bin/youtube-dl -f '[height=720]/best' \
2020-04-15 04:37:01 +02:00
--write-thumbnail --all-subs --write-info-json --write-annotations \
--no-mtime -o "~/.zen/miam/$timestamp/%(id)s.%(ext)s" $msg_ytdlurl
2020-04-15 04:37:01 +02:00
2020-05-16 06:28:12 +02:00
# ###### TODO make gif tu push to SSB
# ffmpeg -ss 00:00:00.000 -i yesbuddy.mov -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif
# convert -layers Optimize output.gif output_optimized.gif
# REFERENCE msg_key AND timestamp
[[ $timestamp ]] && echo "$((timestamp))" > ~/.zen/zenytv.last.ts
2020-04-19 17:21:43 +02:00
[[ $msg_key ]] && echo "$msg_key" > ~/.zen/miam/$timestamp/msg_key
2020-05-04 20:57:53 +02:00
$MY_PATH/miam_miam.sh "$timestamp"
2020-05-08 03:46:37 +02:00
# ANTI DOUBLE COPY END
echo "$timestamp" > ~/.zen/ipfs/.$ipfsnodeid/process.timestamp.ssb
2020-05-08 06:02:23 +02:00
$MY_PATH/ipfs_SWARM_refresh.sh
2020-05-08 03:46:37 +02:00
# ANTI DOUBLE COPY
2020-05-04 20:57:53 +02:00
2020-04-15 04:37:01 +02:00
done < <(printf '%s\n' "$messages")