You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.8 KiB
86 lines
1.8 KiB
#!/bin/bash |
|
|
|
tags="scenic order:random width:1600" |
|
picdir=`realpath $(dirname "${BASH_SOURCE[0]}")` |
|
del="30m" |
|
sud=0 |
|
lockfile=/tmp/updateWallpaper.lock |
|
kill_running=0 |
|
|
|
for i in "$@"; do |
|
case $i in |
|
-s=*|--start-up-delay=*) |
|
sud="${i#*=}" |
|
shift |
|
;; |
|
-d=*|--delay=*) |
|
del="${i#*=}" |
|
shift |
|
;; |
|
-t=*|--tags=*) |
|
tags="${i#*=}" |
|
shift |
|
;; |
|
-k|--kill*) |
|
kill_running=1 |
|
;; |
|
-h|--help*) |
|
echo "usage: $0 <options>" |
|
echo "Options:" |
|
echo " -s --start-up-delay=del Set time between start and first image request." |
|
echo " -d --delay=del Set delay between image requests." |
|
echo " -t --tags=tags The actual search string. Special fields allowed." |
|
echo " -k --kill Kill a previously running instance of the script." |
|
echo "Notes:" |
|
echo " All times need to be formatted for the sleep command." |
|
exit 1 |
|
;; |
|
*) |
|
# Unknown |
|
;; |
|
esac |
|
done |
|
|
|
if [ -e "$lockfile" ]; then |
|
kill -0 $(cat $lockfile) |
|
if [ $? -eq 0 ]; then |
|
if [ $kill_running -eq 0 ]; then |
|
echo "Error: Lock file $lockfile exists!" |
|
echo " This most likely means another instance of the script is already running." |
|
echo " Use -k to kill the running process." |
|
exit 2; |
|
else |
|
echo "Warning: Killing old process..." |
|
kill $(cat $lockfile) |
|
fi |
|
fi |
|
fi |
|
echo $$ > "$lockfile" |
|
|
|
if [ "$sud" != "0" ]; then |
|
sleep "$sud"; |
|
fi |
|
|
|
tags=`echo -n "$tags" | sed "s/ /%20/g"` |
|
|
|
while [ 0 ]; do |
|
json=`curl "http://konachan.com/post.json?tags=$tags&limit=1"` |
|
|
|
id=`echo $json | jq -r '.[0].id'` |
|
url=`echo $json | jq -r '.[0].file_url'` |
|
ext=`echo $url | sed "s/.*\.//g"` |
|
|
|
url="$url" |
|
local_url="$picdir/$id.$ext" |
|
|
|
echo "Updating wallpaper to $id..." |
|
if [ -f "$local_url" ]; then |
|
echo "Already downloaded." |
|
else |
|
echo "Downloading $url..." |
|
curl -o "$local_url" "$url" |
|
fi |
|
gsettings set org.gnome.desktop.background picture-uri "$local_url" |
|
|
|
sleep "$del" |
|
done
|
|
|