windows 自动获取金十数据周历壁纸

news/2025/3/20 14:26:45/文章来源:https://www.cnblogs.com/hdykt/p/18782968

百度盘:https://pan.baidu.com/s/1GZ0hjv3nNdzfFK1hcUf7Og?pwd=mmbu
将程序通过计划任务设置为开机自启就行了

下面是源码

点击查看代码
use chrono::{Datelike, Duration, Local};
use reqwest::blocking::get;
use serde::{Deserialize, Serialize};
use std::{fs::{self, File},io::Write,path::PathBuf,
};
use wallpaper;// 配置文件结构
#[derive(Serialize, Deserialize)]
struct Config {save_dir: PathBuf,
}fn main() -> Result<(), Box<dyn std::error::Error>> {// 获取配置let config = get_or_create_config()?;// 生成本周一的日期let monday_date = get_last_monday();println!("本周一日期: {}", monday_date);// 构建图片URLlet image_url = format!("https://cdn.jin10.com/showbox/bizhi/{}/1920_1080_1.jpg",monday_date);// 下载图片let image_data = download_image(&image_url)?;// 保存图片let image_path = save_image(config.save_dir, &monday_date, &image_data)?;// 设置壁纸set_wallpaper(&image_path)?;Ok(())
}fn get_or_create_config() -> Result<Config, Box<dyn std::error::Error>> {let config_path = dirs::config_dir().ok_or("无法找到配置目录")?.join("wallpaper_updater").join("config.json");if config_path.exists() {let content = fs::read_to_string(&config_path)?;Ok(serde_json::from_str(&content)?)} else {println!("首次运行,请输入壁纸保存目录:");let mut input = String::new();std::io::stdin().read_line(&mut input)?;let save_dir = PathBuf::from(input.trim());// 创建目录fs::create_dir_all(&save_dir)?;// 保存配置let config = Config { save_dir };fs::create_dir_all(config_path.parent().unwrap())?;let mut file = File::create(config_path)?;file.write_all(serde_json::to_string_pretty(&config)?.as_bytes())?;Ok(config)}
}fn get_last_monday() -> String {let today = Local::now().date_naive();let days_since_monday = today.weekday().num_days_from_monday();let last_monday = today - Duration::days(days_since_monday.into());last_monday.format("%Y-%m-%d").to_string()
}fn download_image(url: &str) -> Result<Vec<u8>, Box<dyn std::error::Error>> {let response = get(url)?;if !response.status().is_success() {return Err(format!("下载失败: {}", response.status()).into());}Ok(response.bytes()?.to_vec())
}fn save_image(dir: PathBuf, date: &str, data: &[u8]) -> Result<PathBuf, Box<dyn std::error::Error>> {let filename = format!("wallpaper_{}.jpg", date);let path = dir.join(filename);let mut file = File::create(&path)?;file.write_all(data)?;Ok(path)
}fn set_wallpaper(path: &PathBuf) -> Result<(), Box<dyn std::error::Error>> {wallpaper::set_from_path(path.to_str().ok_or("无效路径")?)?;println!("壁纸设置成功");Ok(())
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/902014.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deepseek本地部署的webui可视化

1.WebUI可视化插件 —— Page Assist 在chrome应用商店中搜索Page Assist,找到后添加到chrome 浏览器添加完成后类似这样 点击这个扩展插件,即可看到 就可以进行对话聊天了

母婴电商企业案例:日事清驱动项目管理执行与OKR目标管理的流程自动化实践

日事清以电商基因与高性价比集成方案,助力科木电商解决协作低效、流程散乱等管理痛点,实现母婴品牌“小鹿豆豆”的团队提效与目标追踪。一、关于科木电商“小鹿豆豆”,一个年轻的品牌,近期在无论是淘宝、拼多多还是抖音电商平台,都成了亮眼的爆品。这个由绵阳科木电子商务…

20241905 2024-2025-2 《网络攻防实践》 第4次作业

1. 实验内容 在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。 ARP缓存欺骗攻击:ARP协议在进行IP到MAC地址映射查询时存在安全缺陷,ARP协议为提高效率,设置了缓存机制,会将主…

ClkLog埋点系统客户案例-电子签佼佼者「大家签」为何选择ClkLog?

ClkLog的付费版上线已有一年多。作为一款从开源起步的产品,我们始终关注用户的使用体验。因此,近期我们发起了一轮客户回访,希望了解他们的使用情况及优化建议,并分享一些典型案例,让更多人看到ClkLog在真实业务场景中的价值。本次回访的客户是ClkLog最早的一批付费用户—…

国思RDIF低代码快速开发框架 v6.2版本发布

国思RDIF企业级低代码开发平台,给用户和开发者最佳的框架平台方案,为企业快速构建跨平台、企业级的应用提供强大支持。致力于解决企业信息化项目交付难、实施效率低、开发成本高的问题。能帮助企业快速构建美观易用、架构专业、安全可控的企业级多终端应用,并可随需而变。1、…

如何用Leangoo破解需求隔离与频繁变更的协作困局?

本文探讨了敏捷工具在团队需求管理中的优缺点。四款主流敏捷工具有各自的特点和适用场景,适用于不同的团队和需求。领歌更加适合国内的中小团队快速迭代需求。作为一位经历过“需求文档满天飞、系统各自为战”的研发负责人,我深知团队在需求频繁变更时面临的痛点——信息割裂…

数字先锋 | 如何提升工业园区算力服务,天翼云息壤给出答案!

AI时代,算力作为数字化转型的关键生产力,重要性不言而喻。在城市发展中,一个城市的算力应用水平,直接决定了它在数字经济赛道的发展潜力。因此,加快建设算力产业、推动算力互联互通,成为我国各城市驱动经济社会快速发展的重要抓手。 在苏州市工业园区(以下简称“工业园区…

WPF 和 Avalonia 开发者的 html css 前端指南 Grid 篇

本文主要面向WPF和Avalonia熟手但是对前端不太擅长的.NET开发者,希望能够向各位介绍WPF和Avalonia的写法如何在前端中实现。并且得出了在 Grid 控件上,html 和 css 的支持性可以很完美的描述原本的 WPF 和 Avalonia Grid。WPF 和 Avalonia 开发者的 html css 前端指南 Grid 篇…

20244220 实验一《Python程序设计》实验报告

实验一 (一)实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;编写一个猜数字的游戏。(二)实验要求 熟悉Pycharm等开发环境; 掌握基本的Python运行和调试技能; 掌握基本的Python编程技能。 (…

74.8K star!这个开源图标库让界面设计效率提升10倍!

Font Awesome 是全球最受欢迎的图标库和工具包,提供超过2000个免费图标和7000+专业图标,支持网页、桌面应用、移动端等多平台使用。开发者只需几行代码就能为项目添加精美矢量图标,设计师可直接下载SVG进行二次创作。嗨,大家好,我是小华同学,关注我们获得“最新、最全、最…

如何在Java程序中使用泛型

如何在Java程序中使用泛型泛型可以使你的代码更灵活、更易读,并能帮助你在运行时避免ClassCastExceptions。让我们通过这篇结合Java集合框架的泛型入门指南,开启你的泛型之旅。Java 5引入的泛型增强了代码的类型安全性并提升了可读性。它能帮助你避免诸如ClassCastException(…

BUUCTF从0到1:N1BOOk(web入门,常见的信息收集)

各位师傅们,第一次写博客文章: 就从最简单的web信息收集入门吧: 信息收集在不管时在红蓝对抗还是在ctf比赛中都是具有很大的作用 我们先看题:题目提示:信息收集,我们就直接打开虚拟机kali用dirsearch命令扫描网址: 对于新手来说dirsearch还未安装,dirsearch安装看这个:…