dot_testing/scripts/yt

48 lines
1000 B
Bash
Executable File

#!/bin/sh
DATFILE="${HOME}/.config/youtube/dat"
CACHEDIR="${HOME}/.config/youtube/cache"
tmp1=$(mktemp)
tmp2=$(mktemp)
touch $DATFILE
mkdir -p $CACHEDIR
sync () {
for i in $(cat $DATFILE | tr '\n' ' '); do
torify curl -s \
https://www.youtube.com/feeds/videos.xml?channel_id=$i\
> ${CACHEDIR}/$i
done
}
display () {
for i in $(ls $CACHEDIR | tr '\n' ' '); do
grep \<media:title\> ${CACHEDIR}/$i | cut -c 17- | \
rev | cut -c 15- | rev >> $tmp1
grep 'link rel' ${CACHEDIR}/$i | grep 'watch' | \
cut -c31- | rev | cut -c4- | rev >> $tmp2
done
cat $tmp1 $tmp2 | pr -2t -s" | "
}
add () { # $1: name of channel id
printf "%s\n" $1 >> $DATFILE
}
del () { # $1: line number of channel id
sed -i "${1}d" $DATFILE
}
case $1 in
*"sync"*)
sync
;;
*"add"*)
[ $# -eq 2 ] && add $2
;;
*"del"*)
[ $# -eq 2 ] && del $2
;;
*)
display
;;
esac
exit 0