diff options
Diffstat (limited to 'home-manager/packages/scripts/apps/deprecated/walldl')
-rwxr-xr-x | home-manager/packages/scripts/apps/deprecated/walldl | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/home-manager/packages/scripts/apps/deprecated/walldl b/home-manager/packages/scripts/apps/deprecated/walldl new file mode 100755 index 00000000..3b6752db --- /dev/null +++ b/home-manager/packages/scripts/apps/deprecated/walldl @@ -0,0 +1,174 @@ +#!/bin/bash +############################################################ +# Help # +############################################################ +Help() +{ + # Display Help + echo "Fetch all images accociated with a given URL." + echo + echo "options:" + echo "-h Print this Help." + echo "-H For Sites with hrefs" + echo "-L For Sites without hrefs" + echo "-C For generated Code" + echo +} + +############################################################ +############################################################ +# Main program # +############################################################ +############################################################ +############################################################ +# Create all needed tmp files and variables. # +############################################################ +Tav() { + pstr="[=======================================================================]" + out="$(mktemp)" + html="$(mktemp)" + NR="$(mktemp)" + printf "URL for Website: " + read url + dir=$(echo "$url" | awk '{ gsub(":|https",""); print $0 }') + try=HighRes +} +############################################################ +# Define downloader engines # +############################################################ +HighRes() { + # For Websites that have hrefs for bigger images + curl -sS $url | awk 'BEGIN { FS="\"";} /href=/ && /img src/ && !/index.html/ { print $2 } ' | awk '!a[$0]++' | sort > $out +} +LowRes() { + # For Websites that don't have hrefs + wget --quiet --output-document=${html} $url + cat $html | tidy --custom-tags pre --show-warnings no -q -output $html + cat $html | awk 'BEGIN { FS="\"";} /src=/ {print $2}' > $out +} +GenCode() { + # For Generated Code blocks + wget --quiet --output-document=${html} $url + cat $html | tidy --custom-tags pre --show-warnings no -q -output $html + + cat $html | awk ' /<img/ {print NR}' > $NR + for ((i = 1; i <= $(cat $NR | wc -l); i++)) + do + lnNums=$(cat $NR | awk -v n=$i ' NR == n {print $0} ') + let "lnNums++" + cat $html | awk -v n=$lnNums 'BEGIN { FS="\"";} NR == n { print $2 } ' >> $out + done +} +############################################################ +# Process the input options. Add options as needed. # +############################################################ +# Get the options +while getopts ":hHLGV" option; do + case $option in + H) + proc=HighRes + ;; + L) + proc=LowRes + ;; + G) + proc=GenCode + ;; + V) + ver=true + ;; + \?) # Invalid option + echo "Error: Invalid option" + ;; + * | h) + Help + exit;; + esac +done +############################################################ +# Download it # +############################################################ +Down() { + total=$(cat $out | wc -l) + if [ $total -eq 0 ]; + then + case $try in + HighRes) + if [ ver ]; + then + echo "trying HighRes engine" + fi + HighRes + try="GenCode" + Down + ;; + LowRes) + if [ ver ]; + then + echo "trying LowRes engine" + fi + LowRes + try=":(" + Down + ;; + GenCode) + if [ ver ]; + then + echo "trying GenCode engine" + fi + GenCode + try="LowRes" + Down + ;; + *) + echo "Nothing found" + exit + ;; + esac + + else + cat $out + read -p "Do you want to download this to ${WALLPAPERDIR}/${dir}?(y/n) " -n 1 -r + echo + + if [[ $REPLY =~ ^[Yy]$ ]]; + then + mkdir -p ${WALLPAPERDIR}/${dir} + cd ${WALLPAPERDIR}/${dir} + url=$(echo $url | awk ' BEGIN {FS="/";} {printf "%s//%s/", $1, $3 } ' ) + # cycle throught all pictures and download them + for ((i = 0; i <= $total; i++ )) + do + awk -v n=$i 'FNR == n ' ${out} | xargs printf "$url%s\n" | xargs curl -OsS + pd=$(( $i * 73 / $total )) + printf "\r%3d.%1d%% %.${pd}s" $(( $i * 100 / $total )) $(( ($i * 1000 / $total) % 10 )) $pstr + done + printf "\n" + echo "downloaded to ${WALLPAPERDIR}${dir}" + rm -f "$out" + rm -f "$html" + rm -f "$NR" + fi + fi +} +############################################################ +# Call the functions # +############################################################ + +Tav +# case $proc in +# HighRes) +# HighRes +# ;; +# LowRes) +# LowRes +# ;; +# GenCode) +# GenCode +# ;; +# *) +# echo "No engine specified" +# exit +# ;; +# esac +Down |