Я хочу скачать изображение с НАСА со следующими параметрами.
С учетом конкретной даты скрипт должен иметь возможность загрузить изображение, опубликованное в эту дату
С учетом конкретной даты скрипт долженбыть в состоянии загрузить заголовок, текст объяснения и кредиты
С учетом конкретной даты сценарий должен иметь возможность загрузить заголовок, текст объяснения и кредиты
Ниже приведен код, который я пробовал, но он не полностью функционален.
GET_DESCRIPTION="yes"
PICTURES_DIR=~/Pictures
DESCRIPTION_DIR=~
function get_page {
echo "Downloading page to find image"
wget http://apod.nasa.gov/apod/ --quiet -O /tmp/apod.html
grep -m 1 jpg /tmp/apod.html | sed -e 's/<//' -e 's/>//' -e 's/.*=//' -e 's/"//g' -e 's/^/http:\/\/apod.nasa.gov\/apod\//' > /tmp/pic_url
}
function save_description {
if [ ${GET_DESCRIPTION} == "yes" ]; then
echo "Getting description from page"
# Get description
if [ -e $DESCRIPTION_DIR/description.txt ]; then
rm $DESCRIPTION_DIR/description.txt
fi
if [ ! -e /tmp/apod.html ]; then
get_page
fi
echo "Parsing description"
sed -n '/<b> Explanation: <\/b>/,/<p> <center>/p' /tmp/apod.html |
sed -e :a -e 's/<[^>]*>//g;/</N;//ba' |
grep -Ev 'Explanation:' |
tr '\n' ' ' |
sed 's/ /\n\n/g' |
awk 'NF { print $0 "\n" }' |
sed 's/^[ \t]*//' |
sed 's/[ \t]*$//' > $DESCRIPTION_DIR/description.txt
fi
}
TODAY=$(date +'%Y%m%d')
if [ ! -e ~/Pictures/${TODAY}_apod.jpg ]; then
echo "We don't have the picture saved, save it"
get_page
PICURL=`/bin/cat /tmp/pic_url`
echo "Picture URL is: ${PICURL}"
echo "Downloading image"
wget --quiet $PICURL -O $PICTURES_DIR/${TODAY}_apod.jpg
echo "Setting image as wallpaper"
gconftool-2 -t string -s /desktop/gnome/background/picture_filename $PICTURES_DIR/${TODAY}_apod.jpg
save_description
else
get_page
PICURL=`/bin/cat /tmp/pic_url`
echo "Picture URL is: ${PICURL}"
SITEFILESIZE=$(wget --spider $PICURL 2>&1 | grep Length | awk '{print $2}')
FILEFILESIZE=$(stat -c %s $PICTURES_DIR/${TODAY}_apod.jpg)
if [ $SITEFILESIZE != $FILEFILESIZE ]; then
echo "The picture has been updated, getting updated copy"
rm $PICTURES_DIR/${TODAY}_apod.jpg
PICURL=`/bin/cat /tmp/pic_url`
echo "Downloading image"
wget --quiet $PICURL -O $PICTURES_DIR/${TODAY}_apod.jpg
echo "Setting image as wallpaper"
$PICTURES_DIR/${TODAY}_apod.jpg
save_description
else
echo "Picture is the same, finishing up"
fi
fi
Пожалуйста, я новичок в bash, и я нашел приведенный выше код из GitHub. Это не моя работа. Я могу понять, что происходит в коде, но он не делает то, что я хочу. Пожалуйста, помогите