From 8db5795f3cf446bda85822b4bc2ea527dc1db4b9 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Fri, 27 Aug 2021 02:21:55 +0000
Subject: [PATCH] Check for no time, meaning cant fetch json
---
reddit-wallpaper-fetcher | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/reddit-wallpaper-fetcher b/reddit-wallpaper-fetcher
index 28a72e9..5690ff5 100755
--- a/reddit-wallpaper-fetcher
+++ b/reddit-wallpaper-fetcher
@@ -4,7 +4,7 @@
#Default variables
SUBREDDITS=("Wallpapers")
-SORT=new
+SORT="new"
USER=$(whoami)
SIZE=1920x1080
WRITE_TITLE=1
@@ -21,6 +21,7 @@
WALLDIR="$(dirname $(realpath "$0"))"
fi
+[ ! -d "$WALLDIR" ] && mkdir "$WALLDIR"
source "$CONFDIR"/reddit-wallpaper-fetcher.conf &>/dev/null
#Loud output for testing a changed config
@@ -30,13 +31,19 @@
LATEST_TIME=0
if [ -f "$WALLDIR"/json ]; then
LATEST=$(cat "$WALLDIR"/json)
- LATEST_TIME=$(echo "$LATEST" | jq ".data.children[-1].data.created_utc")
+ LATEST_TIME=$(echo "$LATEST" | jq -r ".data.children[-1].data.created_utc")
+fi
+if [ "$LATEST_TIME" == "null" ]; then
+ LATEST_TIME=0
fi
#Try subreddits for new images
for i in "${SUBREDDITS[@]}"; do
temp=$(curl "$LOUD" --user-agent "$USER" "https://www.reddit.com/r/$i.json?sort=$SORT&limit=1")
- time=$(echo "$temp" | jq ".data.children[-1].data.created_utc")
+ time=$(echo "$temp" | jq -r ".data.children[-1].data.created_utc")
+ if [ "$time" == "null" ]; then
+ continue
+ fi
if [ $(awk -v n1="$time" -v n2="$LATEST_TIME" 'BEGIN {printf (n1>n2?"1":"")}') ]; then
LATEST="$temp"
LATEST_TIME="$time"
@@ -49,16 +56,20 @@
fi
#Download image
-url=$(echo "$LATEST" | jq ".data.children[-1].data.url" | sed 's/"//g')
+url=$(echo "$LATEST" | jq -r ".data.children[-1].data.url" | sed 's/"//g')
+if [ -n "$(echo $url | grep gallery)" ]; then
+ media_id=$(echo "$LATEST" | jq -r ".data.children[-1].data.gallery_data.items[0].media_id" | sed 's/"//g')
+ url=$(echo "$LATEST" | jq -r ".data.children[-1].data.media_metadata.$media_id.p[0].u" | sed 's/"//g;s/\?.*//g;s/preview/i/g')
+fi
ext="$(echo "$url" | rev | cut -d'.' -f1 | rev)"
-curl "$LOUD" -o "$WALLDIR/temp.$ext" "$url"
+curl "$url" "$LOUD" --output "$WALLDIR/temp.$ext"
#Save image information
echo "$LATEST" > "$WALLDIR"/json
-title=$(echo "$LATEST" | jq ".data.children[-1].data.title")
+title=$(echo "$LATEST" | jq -r ".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
+echo https://reddit.com$(echo "$LATEST" | jq -r ".data.children[-1].data.permalink" | sed 's/"//g') >> "$WALLDIR"/data.txt
#Add image title
convert "$WALLDIR/temp.$ext" -resize "$SIZE^" -gravity center -crop "$SIZE+0+0" -resize "$SIZE!" "$WALLDIR/wallpaper.jpg"
--
Gitblit v1.10.0