macOS/iOS自动化指南mac 之美首页投稿(暂停使用,暂停投稿)

Mac 每天自动下载 Bing 壁纸

2016-05-10  本文已影响2056人  每天一道编程题

摘要:本文介绍了在 Mac 系统下如何自动下载 Bing.com 中每天更新的壁纸。无需任何编程基础,按照步骤做就可以了。

我个人很喜欢用必应,很大一部分原因就是其首页每天更新的漂亮壁纸。后来我就想,如果能把这些壁纸自动用作桌面壁纸该有多爽,一番研究后就有了这篇文章。

壁纸预览

这件事情其实并不复杂,只需以下几个简单步骤:

#!/usr/bin/env bash

PICTURE_DIR="$HOME/Pictures/bing-wallpapers/"

mkdir -p $PICTURE_DIR

urls=( $(curl -s http://cn.bing.com | \
    grep -Eo "url:'.*?'" | \
    sed -e "s/url:'\([^']*\)'.*/http:\/\/bing.com\1/" | \
    sed -e "s/\\\//g") )

for p in ${urls[@]}; do
    filename=$(echo $p|sed -e "s/.*\/\(.*\)/\1/")
    if [ ! -f $PICTURE_DIR/$filename ]; then
        echo "Downloading: $filename ..."
        curl -Lo "$PICTURE_DIR/$filename" $p
    else
        echo "Skipping: $filename ..."
    fi
done

cd $HOME/Library/LaunchAgents && touch com.ideasftw.bing-wallpaper.plist

open -a TextEdit com.ideasftw.bing-wallpaper.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.ideasftw.bing-wallpaper</string>
        <key>ProgramArguments</key>
        <array>
            <string>/bin/bash</string>
            <string>$HOME/Pictures/bing-wallpaper.sh</string>
        </array>
        <key>LowPriorityIO</key>
        <true/>
        <key>Nice</key>
        <integer>1</integer>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>10</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
    </dict>
</plist>

launchctl load $HOME/Library/LaunchAgents/com.ideasftw.bing-wallpaper.plist

到此为止,所有的跟代码相关的任务都完成了。以后每天都会有一张最新的 Bing 美图下载到你的图片文件夹下的 bing-wallpapers 文件夹中。等积攒了够多张以后,你就可以用它来做壁纸文件夹咯。

壁纸文件夹

参考链接:thejandroman/bing-wallpaper

上一篇 下一篇

猜你喜欢

热点阅读