blob: b218246379cd2f64d3227dca7b17cefb32a42930 (
plain) (
tree)
|
|
#!/bin/bash
# $1 naj bo icecast host kruljo.radiostudent.si
# $2 naj bo icecast http port 8000
# $3 naj bo icecast endpoint /ehiq
# $4 naj bo končnica datotek .mp3
# v CWD delam imenike in datoteke in sem glede tega kompatibilen z earhornom:
# Posnetek 2024/06/03/202136.mp3 se začne 2024-06-03T20:21:36 vedno UTC.
# Posnetkov ne splittam na uro. Posnetek se splitta le takrat, ko se zgodi napaka (stream crkne) -- takrat začnem pisati v novo datoteko
# požvižgam se na vsebino datotek. zame so to le bajti. v tem nisem earhornski.
# earhornski nisem tudi zato, ker se zadnja datoteka stalno veča, kar se ne dogaja pri earhornu. na to bodite pozorni. k sreči earhorn_m3u.sh ve za to obnašanje
set -xeuo pipefail
host=$1
port=$2
endpoint=$3
kon=$4
mistakes=0
while :
do
filename=`date --utc +%Y/%m/%d/%H%m%S$kon`
mkdir -p `cut -d/ -f1-3 <<<$filename`
start=$SECONDS
set +e
nc $host $port <<<"GET $endpoint HTTP/1.0"$'\r\n\r' > $filename
koda=$?
set -e
echo TCP PREKINJEN! ZAČENJAM NOV POSNETEK! IZHODNA KODA nc je $koda, datum je `date`
if [ $(($SECONDS-$start)) -lt 300 ]
then
mistakes=$(($mistakes+1))
if [ $mistakes -gt 3 ]
then
sleep $((2**($mistakes-3)))
fi
else
mistakes=0
fi
done
|