======bing.sh====== %%(bash) #!/bin/bash function logit { z=$1 # echo $1 } # export DBUS_SESSION_BUS_ADDRESS environment variable useful when the script is set as a cron job PID=$(pgrep gnome-session) export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-) # $bing is needed to form the fully qualified URL for # the Bing pic of the day bing="http://www.bing.com" # $xmlURL is needed to get the xml data from which # the relative URL for the Bing pic of the day is extracted # # The mkt parameter determines which Bing market you would like to # obtain your images from. # Valid values are: en-US, zh-CN, ja-JP, en-AU, en-UK, de-DE, en-NZ, en-CA. # # The idx parameter determines where to start from. 0 is the current day, # 1 the previous day, etc. xmlURL="http://www.bing.com/HPImageArchive.aspx?format=xml&idx=1&n=1&mkt=en-US" # $saveDir is used to set the location where Bing pics of the day # are stored. $HOME holds the path of the current user's home directory saveDir="$HOME/Pictures/wallpapers/Bing/" # Create saveDir if it does not already exist mkdir -p $saveDir # Set picture options # Valid options are: none,wallpaper,centered,scaled,stretched,zoom,spanned picOpts="zoom" # The desired Bing picture resolution to download # Valid options: "_1024x768" "_1280x720" "_1366x768" "_1920x1200" #desiredPicRes="_1920x1200" desiredPicRes="_1366x768" # The file extension for the Bing pic picExt=".jpg" # Extract the relative URL of the Bing pic of the day from # the XML data retrieved from xmlURL, form the fully qualified # URL for the pic of the day, and store it in $picURL xml=$(curl -s $xmlURL) # Form the URL for the desired pic resolution desiredPicURL=$bing$(echo $xml | grep -oP "(.*)" | cut -d ">" -f 2 | cut -d "<" -f 1)$desiredPicRes$picExt # Form the URL for the default pic resolution defaultPicURL=$bing$(echo $xml | grep -oP "(.*)" | cut -d ">" -f 2 | cut -d "<" -f 1) # $picName contains the filename of the Bing pic of the day # Attempt to download the desired image resolution. If it doesn't # exist then download the default image resolution desiredPicName="$saveDir${desiredPicURL##*/}" defaultPicName="$saveDir${defaultPicURL##*/}" if [ -a $desiredPicName ] then logit "allready download $desiredPicName" exit fi if [ -a $defaultPicName ] then logit "allready download $defaultPicName" exit fi logit $desiredPicURL logit $defaultPicURL logit $desiredPicName logit $defaultPicName http_code=`curl -o $desiredPicName --silent --write-out '%{http_code}' $desiredPicURL` if [[ $http_code == "200" ]] then logit "download $desiredPicName" local_file=$desiredPicName else logit "fail download $desiredPicName" rm -f $desiredPicName http_code=`curl -o $defaultPicName --silent --write-out '%{http_code}' $defaultPicURL` if [[ $http_code == "200" ]] then logit "download $defaultPicName" local_file=$defaultPicName else logit "fail download $defaultPicName" rm -f $defaultPicName exit fi fi logit "set wallpaper $local_file" # Set the GNOME3 wallpaper gsettings set org.gnome.desktop.background picture-uri "file://$local_file" # Set the GNOME 3 wallpaper picture options gsettings set org.gnome.desktop.background picture-options $picOpts # Remove pictures older than 30 days #find $saveDir -atime 30 -delete # Exit the script exit%%