1

(萌新折腾笔记)美化飞牛系列——自动获取必应壁纸

发表于:2024-10-6 15:13:05 攻略分享 332

[i=s] 本帖最后由 EWEDL 于 2024-10-16 18:36 编辑 [/i]<br /> <br />

前言

  上期教程能有那么多人查阅很意外,很高兴大家能喜欢。这也说明大家对自定义壁纸有一定的需求,希望官方后续能推出相应功能。   在评论区中,牛友@Billgor曾建议,可尝试直接获取Bing每日壁纸,趁着假期实践了一下,效果还可以接受,特此发帖。如果其他大佬有更好的思路,也望指出优化!

免责声明:数据无价,折腾需谨慎!!

教程整体逻辑

  • 获取壁纸临时存储
  • 将壁纸转换格式并重命名
  • 复制该文件到相关目录
  • 赋权
  • 创建定时任务 本教材全程需要使用到控制台或shell会话,请自行准备相关工具

第一步:进入root用户

后续所有操作都需要在root下进行。

sudo su

安装 imagemagick插件,用于图片处理。

apt install imagemagick

一路回车即可完成安装。

第二步:创建脚本文件

自行选择一个指定位置,此处使用 /vol1/1000/config/bingbg/,创建一个sh文件(命名随意,这里命名为 bgupdate.sh)。文件内容如下:

#!/bin/bash  
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
BING_URL="https://www.bing.com"  
TEMP_DIR="/tmp/bing_wallpaper"  
WALLPAPER_NAME="wallpaper-1.webp"  
BG_DIR="/usr/trim/www/static/bg"  
THUMBNAIL_BG_DIR="/usr/trim/www/static/thumbnail_bg"  
mkdir -p "$TEMP_DIR"  
JSON=$(curl -s "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN")  
IMAGE_URL=$(echo $JSON | grep -oP '"url":"\K.*?(?=")' | sed 's/^/\//')  
FULL_IMAGE_URL="${BING_URL}${IMAGE_URL}"  
wget -q -O "${TEMP_DIR}/bing_wallpaper.jpg" "${FULL_IMAGE_URL}"  
convert "${TEMP_DIR}/bing_wallpaper.jpg" "${TEMP_DIR}/${WALLPAPER_NAME}"  
cp "${TEMP_DIR}/${WALLPAPER_NAME}" "${BG_DIR}/"  
cp "${TEMP_DIR}/${WALLPAPER_NAME}" "${THUMBNAIL_BG_DIR}/"  
chmod 644 "${BG_DIR}/${WALLPAPER_NAME}"  
chmod 644 "${THUMBNAIL_BG_DIR}/${WALLPAPER_NAME}"  
rm -rf "${TEMP_DIR}"  
echo "$(date +'%Y-%m-%d %H:%M:%S') Wallpaper updated successfully."

亦可直接选择下载文件,地址: https://www.123684.com/s/6c2djv-BL50h

第三步:授权脚本

对该文件授予可执行权限。

chmod +x /vol1/1000/config/bingbg/bgupdate.sh

第四步:创建定时任务

键入 crontab -e 打开系统定时任务,在末尾空行填入以下内容:

0 0 * * * /vol1/1000/config/bingbg/bgupdate.sh >> /vol1/1000/config/bingbg/bgupdate.log 2>&1

其中两处 /vol1/1000/config/bingbg/ 均可自选的位置,如有变更务必修改。使用 Ctrl+O 回车保存,Ctrl+X 退出编辑器。

键入 crontab -l,如果有显示相关内容即为添加成功。

总结

至此,定时任务已创建成功。系统将在每日0点后自动更新Bing国区的每日壁纸。每次更新后我们可在指定文件夹下找到log文件以验证是否完成更新。请注意,该脚本中修改的是第一张壁纸,因此在飞牛网页端也必须设置为第一张壁纸才可生效(或自行修改脚本代码)。如未生效,可能是浏览器缓存没过期,目前不想对Nginx做过多修改,该问题暂时没有好的思路进行解决,欢迎各位大佬完善。

收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

发表回复

评论列表(3)

……壁纸太大,内存溢出就崩了,这玩意儿我要是巨硬,直接来个默认8K 20G壁纸,飞牛直接崩
前天 13:06 回复
真当微软的流量不要钱啊/滑稽  详情 回复
昨天 11:40
哈哈哈,合理存在但不太可能发生的情况,必应不会给你推那么大的壁纸的  详情 回复
前天 18:01
哈哈哈,合理存在但不太可能发生的情况,必应不会给你推那么大的壁纸的
前天 18:01 回复
真当微软的流量不要钱啊/滑稽
昨天 11:40 回复