diff --git a/styli.sh b/styli.sh index 87363a7..49037a9 100755 --- a/styli.sh +++ b/styli.sh @@ -1,37 +1,56 @@ #!/usr/bin/env bash link="https://source.unsplash.com/random/" -dir="$HOME/.local/wallpaper" +dir="$HOME/.config/styli.sh" # https://www.reddit.com/r/Animewallpaper/search/.json?q=flair_name%3ADesktop&restrict_sr=1 reddit(){ useragent="thevinter" timeout=60 - - readarray subreddits < /home/ben/.git/styli.sh/subreddits - a=${#subreddits[@]} - b=$(($RANDOM % $a)) - sub=${subreddits[$b]} - sort=$2 - top_time=$3 - if [ -z $sort ]; then - sort="hot" + # TODO: Implement sort and top + sort="hot" + top_time="" + while : + do + case "${1}" in + -s | --search) search=${2} ; shift 2 ;; + -f | --flair) flair=${2} ; shift 2 ;; + -r | --sub) sub=${2} ; shift 2;; + -- | '') shift; break ;; + *) echo "Unexpected option: $1 - this should not happen." ; usage ;; + esac + done + RED_PARSED_ARGUMENTS=$(getopt -a -n $0 -o f:s:r: --long flair:,search:,sub: -- "$@") + RED_VALID_ARGUMENTS=$? + if [ "$RED_VALID_ARGUMENTS" != "0" ]; then + usage fi - if [ -z $top_time ]; then - top_time="" - fi - sub="$(echo -e "${sub}" | tr -d '[:space:]')" - if [ ! -z "$1" ] && [ -z "$2" ]; then - sub=$1 - fi - if [[ $2 -eq "flair" ]] + + if [ -z $sub ] then - url="https://www.reddit.com/r/$sub/search/.json?q=flair_name%3A$1&restrict_sr=1" - else - url="https://www.reddit.com/r/$sub/$sort/.json?raw_json=1&t=$top_time" + readarray subreddits < "$dir/subreddits" + a=${#subreddits[@]} + b=$(($RANDOM % $a)) + sub=${subreddits[$b]} + sub="$(echo -e "${sub}" | tr -d '[:space:]')" + fi + + + if [ -z "$search" ] && [ -z "$flair" ] + then + url="https://www.reddit.com/r/$sub/$sort/.json?raw_json=1&t=$top_time" + else + if [ -z "$flair" ] + then + url="https://www.reddit.com/r/$sub/search/.json?q=$search&restrict_sr=1" + elif [ -z "$search" ] + then + url="https://www.reddit.com/r/$sub/search/.json?q=flair_name%3A$flair&restrict_sr=1" + else + url="https://www.reddit.com/r/$sub/search/.json?q=$search+flair_name%3A$flair&restrict_sr=1" + fi fi - # url="https://www.reddit.com/r/$sub/search/.json?q=flair_name%3ADesktop&restrict_sr=1" content=`wget -T $timeout -U "$useragent" -q -O - $url` # urls=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.preview.images[0].source.url') urls=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.url') @@ -49,8 +68,8 @@ reddit(){ ext=`echo -n "${target_url##*.}"|cut -d '?' -f 1` newname=`echo $target_name | sed "s/^\///;s/\// /g"`_"$subreddit"_$target_id.$ext wget -T $timeout -U "$useragent" --no-check-certificate -q -P down -O "$dir/wallpaper.jpg" $target_url &>/dev/null - } + usage(){ echo "Usage: styli.sh [-s | --search ] [-f | --flair ] @@ -70,7 +89,7 @@ then fi pywal=0 -PARSED_ARGUMENTS=$(getopt -a -n $0 -o h:w:s:l:b:r:c:p:f --long flair:,search:,hight:,width:,fehbg:,fehopt:,subreddit:,termcolor -- "$@") +PARSED_ARGUMENTS=$(getopt -a -n $0 -o f:h:w:s:l:b:r:c:p --long flair:,search:,hight:,width:,fehbg:,fehopt:,subreddit:,termcolor -- "$@") VALID_ARGUMENTS=$? if [ "$VALID_ARGUMENTS" != "0" ]; then usage @@ -118,9 +137,9 @@ if [ $link = "reddit" ] || [ ! -z $sub ] then if [ ! -z $flair ] then - reddit "$flair" "flair" + reddit -f "$flair" else - reddit "$sub" + reddit -r "$sub" fi feh+=("$dir/wallpaper.jpg") "${feh[@]}"