#!/usr/bin/bash #Dependencies: # yq # curl mkdir -p ./{cache,state,Podcasts} # rm -rf ./cache/* YQ=~/bin/yq yqf() { $YQ "$1" config.yaml } export ALL_PROXY="socks5h://127.0.0.1:9050" download() { local e name url limit mp3url e=$1 name=$(yqf "${e}.name") url=$(yqf "${e}.url") # limit=$(yqf "${e}.limit") limit=2 filter=$(yqf "${e}.filter // true") local rss_path="cache/${name}.rss" local downloads_path="state/${name}.downloads" false && curl -L -o "$rss_path" "$url" #limit=$limit $YQ -p xml '.rss.channel.item[] | keys | .[] | select(. < env(limit)) | .[]' "$rss_path" items=".rss.channel.item" ids=$($YQ -p xml "$items | .[] | select($filter) | path | .[-1]" "$rss_path" | head -n "$limit") for id in $ids do echo "id is $id" #$YQ -p xml "$items.$id | (.title |= .[0]) | .title" "$rss_path" mp3url=$($YQ -p xml "$items.$id | .enclosure.+url" "$rss_path") grep -q --fixed-strings "$mp3url" "$downloads_path" && continue echo "Downloading: $mp3url" echo "$mp3url" >> "$downloads_path" done } entries=".entries" for id in $(yqf "$entries | .[] | path | .[-1]") do echo "============================ start ============================" download "${entries}.$id" # exit echo "============================ done ============================" done