Nasa Image скачать - PullRequest
       62

Nasa Image скачать

0 голосов
/ 03 ноября 2019

Я хочу скачать изображение с НАСА со следующими параметрами.

  1. С учетом конкретной даты скрипт должен иметь возможность загрузить изображение, опубликованное в эту дату

  2. С учетом конкретной даты скрипт долженбыть в состоянии загрузить заголовок, текст объяснения и кредиты

  3. С учетом конкретной даты сценарий должен иметь возможность загрузить заголовок, текст объяснения и кредиты

Ниже приведен код, который я пробовал, но он не полностью функционален.

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. Это не моя работа. Я могу понять, что происходит в коде, но он не делает то, что я хочу. Пожалуйста, помогите

1 Ответ

0 голосов
/ 05 ноября 2019

Чтобы изменить существующий код для загрузки определенной даты, измените:

TODAY=$(date +'%Y%m%d')

на:

TODAY=$1

и передайте свою дату в свой сценарий, запустив сценарий следующим образом:

./nasa.sh 20191031

Изображение будет сохранено в ~/Pictures, а описание будет сохранено как ~/description.txt. (~ означает ваш домашний каталог.) Вы можете изменить каталоги изображения и описания назначения, изменив эти переменные в верхней части скрипта:

PICTURES_DIR=~/Pictures
DESCRIPTION_DIR=~

PS: удалите эти строки о настройке изображения какобои для рабочего стола:

echo "Setting image as wallpaper"
gconftool-2 -t string -s /desktop/gnome/background/picture_filename $PICTURES_DIR/${TODAY}_apod.jpg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...