astroport/zen/cron_MINUTE.sh

141 lines
6.0 KiB
Bash
Executable File

#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 2020.04.19
# 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##*/}"
ipfsnodeid=$(/usr/local/bin/ipfs id -f='<id>\n')
g1pub=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
# UNIVERSAL TIME (TODO ntpdate, but sudo problem)
minute=$(date -u +%M)
heure=$(date -u +%H)
timebar="$heure:$minute"
jourdelasemaine=$(date +%w)
jourdumois=$(date +%d)
numerosemaine=$(date +%V)
echo $timebar
# TIME NTP SYNC: TODO: Problem being root (stickybit INSTALL?)
# sudo ntpdate ntp.pool.org
# CORRECT PATH
[[ ! $(echo $PATH | grep "/usr/local/bin") ]] && export PATH="$PATH:/usr/local/bin"
[[ ! $(echo $PATH | grep "~/.local/bin") ]] && export PATH="$PATH:~/.local/bin"
##################################################################
# REFRESH IPFS SWARM DATA EVERY 12 minutes
[[ $(($minute % 12)) == 0 ]] && $MY_PATH/ssb_IPFS_swarm.sh # && $MY_PATH/ipfs_SWARM_refresh.sh
##################################################################
##################################################################
# MONITOR INPUT TX (TODO: DEBUG)
[[ $(($minute % 5)) == 0 ]] && $MY_PATH/g1_MONITOR_zen.sh "5 minutes"
##################################################################
##################################################################
# RANDOMLY RUN SSB GET zenytv (avoid simultaneous run in swarm)
randh=$((1 + RANDOM % 24))
[[ $(($heure % $randh)) == 0 ]] && $MY_PATH/ssb_GET_zenytv.sh && $MY_PATH/miam_miam.sh
##################################################################
randh=$((1 + RANDOM % 24))
[[ $(($heure % $randh)) == 0 ]] && $MY_PATH/ssb_GET_zenyta.sh && $MY_PATH/miam_miam.sh
##################################################################
##################################################################
# MIDNIGHT:01 : ZENBOT CLEANING & UPDATE
if [[ "$timebar" == "00:01" ]]; then
# UPGRADE youtube-dl
youtube-dl --rm-cache-dir
youtube-dl -U
# LOG ROTATE EVERY SUNDAY
[[ $jourdelasemaine == 0 ]] && mv -f /tmp/astroport.log ~/.zen/astroport.$numerosemaine.log # LOG BACKUP FOR 1 YEAR !!
# GIT PULL
cd $MY_PATH/../ && git pull && cd $MY_PATH # UPDATE CODE git pull
# Clear 24h ssb_GET markers
rm ~/.zen/zenytv.last.ts
rm ~/.zen/zenyta.last.ts
# SYNC SSB Friends with IPFS SWARM
$PATH/zen/ssb_IPFS_swarm.sh
fi
##################################################################
##################################################################
if [[ "$1" == "PRINT" ]]; then
##################################################################
##################################################################
# Refresh All peers SWARM Wallets.
##################################################################
ipfs_swarm_wallets_refresh
################################################################################
# PRINT G1Tag PRINTED FROM ANOTHER NODE (TODO: Correct BAD Cypher KEY + BUG why last image png layers are not printed???)
# CREATE and REMOVE rr.bin -> done.rr
if [[ -d "./wallets_swarm/.$IPFSNODEID/PRINT/" ]]; then
log "__SUB:cron_MINUTE.sh: SEARCH NEW PRINT FOR ME .$IPFSNODEID"
mkdir -p ./wallets/.$IPFSNODEID/PRINT/
for qrrtag in ./wallets_swarm/.$IPFSNODEID/PRINT/*.bin; do
rr=$(echo $qrrtag | cut -d '/' -f 5 | cut -d '.' -f 1)
if [[ ! -f "./wallets/.$IPFSNODEID/PRINT/done.$rr" ]]; then
log "__SUB:cron_MINUTE.sh: PRINT G1Tag $rr - START: $(date)"
./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i "${qrrtag}" -o "/tmp/G1Tag.png"
log "__SUB:cron_MINUTE.sh: natools.py decrypt - $(date)"
brother_ql_create --model QL-700 "/tmp/G1Tag.png" --label-size 62 > "/tmp/G1Tag.bin"
log "__SUB:cron_MINUTE.sh: brother_ql_create - $(date)"
brother_ql_print "/tmp/G1Tag.bin" /dev/usb/lp0
log "__SUB:cron_MINUTE.sh: brother_ql_print - $(date)"
# INFORM PRINT DONE
echo "OK" > ./wallets/.$IPFSNODEID/PRINT/done.$rr
I=$(ipfs_node_wallets_add)
else
lqrrtag=$(echo "${qrrtag}" | sed s/_swarm//g )
log "__SUB:cron_MINUTE.sh: REMOVE OLD DONE PRINT ${lqrrtag} + ./wallets/.$IPFSNODEID/PRINT/done.$rr"
rm -f "./wallets/.$IPFSNODEID/PRINT/done.$rr"
rm -f "${lqrrtag}"
I=$(ipfs_node_wallets_add)
fi
done
log "__SUB:cron_MINUTE.sh: REMOVE OLD PRINT MARKED AS DONE"
for scan in ./wallets_swarm/.Qm*/PRINT/done.*; do
lscan=$(echo $scan | sed s/_swarm//g )
lid=$(echo $scan | cut -d '/' -f 3 | cut -d '.' -f 2 )
lrr=$(echo $scan | cut -d '/' -f 5 | cut -d '.' -f 2 )
log "__SUB:cron_MINUTE.sh: REMOVE ./wallets/.$lid/PRINT/$lrr.bin OLD PRINT ${lscan} SENT to $lid ($lrr.bin)"
rm -f ./wallets/.$lid/PRINT/$lrr.bin
rm -f "${lscan}"
I=$(ipfs_node_wallets_add)
done
rm "/tmp/G1Tag.bin"
rm "/tmp/G1Tag.png"
fi
fi
##################################################################
##################################################################
if [[ "$1" == "KALKUN" ]]; then
##################################################################
for number in ./wallets/*; do
member=""
phone=$(echo $number | cut -d '/' -f 3);
if [[ -f $number/$phone.uidname ]]; then member=$(cat $number/$phone.uidname); fi
if [[ ! $member ]]; then member=$phone; fi
if [[ $phone && $member ]]; then add_contact $phone $member; log "__SUB:cron_MINUTE.sh: KALKUN add_contact $phone $member"; fi
done
fi
##################################################################