20 lines
		
	
	
		
			895 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			895 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
cd "$(dirname "$(realpath "$0")")"
 | 
						|
 | 
						|
if [ "$1" == "sync" ]; then
 | 
						|
    cat urls | xargs -d '\n' curl -Z $(seq 1 $(wc -l <urls) | xargs -I{} echo -o .tmp.{}.rss-file)
 | 
						|
    for file in .tmp.*.rss-file; do
 | 
						|
        name="$(cat "$file" | xq -r '.rss.channel.title')"
 | 
						|
        mv "$file" "${name}.rss"
 | 
						|
        echo "Updated \"$name\""
 | 
						|
    done
 | 
						|
elif [ "$1" == "play" ]; then
 | 
						|
    rss_file="$(ls -1 *.rss | sed 's/\(.*\)\.rss/\1/g' | fzf).rss"
 | 
						|
    nr=$(cat "$rss_file" | xq -r '.rss.channel.item[].title' | nl -v0 -w1 -s ' ' | fzf --with-nth=2.. --no-sort --preview "cat \"$rss_file\" | xq -r '.rss.channel.item[{1}].description' | html2text --body-width=\$FZF_PREVIEW_COLUMNS" --bind 'ctrl-p:toggle-preview' --preview-window hidden | cut -d " " -f 1)
 | 
						|
 | 
						|
    if [ "$nr" != "" ]; then
 | 
						|
        mpv "$(cat "$rss_file" | xq -r ".rss.channel.item[$nr].enclosure.\"@url\"")" --no-audio-display
 | 
						|
    fi
 | 
						|
fi
 |