From f77646f4f5479464282480b9ce27e28d5859de0a Mon Sep 17 00:00:00 2001 From: Joel Grunbaum <joelgrun@gmail.com> Date: Thu, 03 Dec 2020 07:20:39 +0000 Subject: [PATCH] Changed querying to jq instead of grep, names images --- main.sh | 62 ++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 13 deletions(-) diff --git a/main.sh b/main.sh index c02759d..2ea58e1 100755 --- a/main.sh +++ b/main.sh @@ -1,30 +1,66 @@ #!/bin/bash -IMAGE_REGEX='"url": "https:\/\/i\.redd\.it\/[a-z0-9]*\.\w{3,4}\", "subreddit_subscribers": ' -TITLE_REGEX='"clicked": (true|false), "title": "[a-zA-Z0-9.\[\]\(\) ]*", "link_flair_richtext": \[' -TIME_REGEX='"subreddit_subscribers": \d*, "created_utc": [\d.]*, "num_crossposts": ' -PERMALINK_REGEX=', "permalink": "\/r\/[A-Za-z0-9\/_]*", "parent_whitelist_status": ' +TESTING=1 +#Default variables SUBREDDITS=("EarthPorn") SORT=new USER=$(whoami) +SIZE=1920x1080 +WRITE_TITLE=1 +TITLE_COLOR="white" +TITLE_POSITION="Southeast" +TITLE_SIZE=30 -source $HOME/.config/reddit-wallpaper-fetcher.conf &>/dev/null - -LATEST_TIME=0 -if [ -f $HOME/.wallpaper/json ]; then - LATEST=$(cat ~/.wallpaper/json) - LATEST_TIME=$(echo $LATEST | grep -oP "$TIME_REGEX" | tail -n1 | grep -oP '"created_utc": [\d.]*' | grep -oP '[\d.]*') +#Set directories for testing +if [ $TESTING != 1 ]; then + CONFDIR="$HOME/.config" + WALLDIR="$HOME/.wallpaper" +else + CONFDIR="$(dirname $(realpath $0))" + WALLDIR="$(dirname $(realpath $0))" fi +source $CONFDIR/reddit-wallpaper-fetcher.conf &>/dev/null + +#Initialise time from last fetch +LATEST_TIME=0 +if [ -f $WALLDIR/json ]; then + LATEST=$(cat $WALLDIR/json) + LATEST_TIME=$(echo $LATEST | jq ".data.children[-1].data.created_utc") +fi + +#Try subreddits for new images for i in "${SUBREDDITS[@]}"; do temp=$(curl -s --user-agent $USER "https://www.reddit.com/r/$i.json?sort=$SORT&limit=1") - time=$(echo $temp | grep -oP "$TIME_REGEX" | tail -n1 | grep -oP '"created_utc": [\d.]*' | grep -oP '[\d.]*') + time=$(echo $temp | jq ".data.children[-1].data.created_utc") if [ $(awk -v n1="$time" -v n2="$LATEST_TIME" 'BEGIN {printf (n1>n2?"1":"")}') ]; then LATEST=$temp LATEST_TIME=$time fi done -url=$(echo $LATEST | grep -oP "$IMAGE_REGEX" | tail -n1 | grep -oP '"https:\/\/.*",' | grep -oP '".*"' | sed 's/"//g') -curl -s -o "$HOME/.wallpaper/temp.$(echo $url | rev | cut -d'.' -f1 | rev)" "$url" +#No Update to do +#if [ -f $WALLDIR/json ] && [ "$(cat $WALLDIR/json)" == "$LATEST" ]; then +# exit +#fi + +#Download image +url=$(echo $LATEST | jq ".data.children[-1].data.url" | sed 's/"//g') +ext="$(echo $url | rev | cut -d'.' -f1 | rev)" +curl -s -o "$WALLDIR/temp.$ext" "$url" + +#Save image information +echo $LATEST > $WALLDIR/json +title=$(echo $LATEST | jq ".data.children[-1].data.title") +echo "$title" > $WALLDIR/data.txt +echo $url >> $WALLDIR/data.txt +echo https://reddit.com$(echo $LATEST | jq ".data.children[-1].data.permalink" | sed 's/"//g') >> $WALLDIR/data.txt + +#Add image title +if [ $WRITE_TITLE == 1 ]; then + convert "temp.$ext" -fill "$TITLE_COLOR" -gravity "$TITLE_POSITION" -pointsize "$TITLE_SIZE" -annotate 0 "$title" -resize $SIZE "wallpaper.jpg" +else + convert "temp.$ext" -resize $SIZE "wallpaper.jpg" +fi +rm temp.$ext -- Gitblit v1.10.0