壁纸api需求
壁纸/文章封面 api模块
使用场景
需求
📌需求:给宇宙最美博客-Teek 接入一个壁纸api
具体描述:
目前,宇宙最美博客-Teek的壁纸 已具备 每隔8s随机从壁纸库 显示一张新壁纸功能了,且壁纸有动态放大缩小效果,很美观👏。
此时,我想实现一个 壁纸api 的需求:
我们对用户只需要暴漏一个域名地址,例如imgapi.onedayxyy.cn
,然后在浏览器打开这个域名后,就会出现一张壁纸,每刷新一次,就会随机出现一张新壁纸。
那么该如何接入Teek使用呢?
方案1:Teek修改代码,让自己适配这个壁纸api,博客自己 每隔8s就会 强制 请求壁纸api ,让其显示一张新壁纸
方案2:壁纸api 自己实现“每隔8s随机从 壁纸api 显示一张新壁纸”功能,但teek接入后,也需要能正常每隔8s随机从 壁纸api 显示一张新壁纸才行;
这样做的好处就是:
- 我们后期只需要 在
壁纸api
源源不断地新增漂亮的风景照/好看的妹纸照片。我们无需修改teek的代码,而我们的网站就可以出现新增的漂亮照片; - 其它Teek道友或者类型的博客也可以使用我们的壁纸api;
说明:
不管怎么实现,越简单越好,能实现就好。
首先,壁纸api自身的2个功能不能变:
例如壁纸api
1. imgapi.onedayxyy.cn在自己浏览器打开,会显示一张图片,刷新一次,会切换到另一张图片
2.间隔数s后,会随机切换到下一张图片
然后在次基础上,不管是改teek的代码来适配壁纸api,还是改壁纸api的代码来适配teek,或者两个都改,由开发者自己选择最优解。
目前 壁纸api
https://rpic.cxcare.top/api 时光 壁纸api
https://random.dl-web.top/ 威威 壁纸api
https://imgapi.onedayxyy.cn/ One 壁纸api (Teeker壁纸)
https://baimu.live/api/tp/acg/ecy.php 动漫API-白木
解决思路
方案1-php脚本
方案2-nginx+lua
D:\BaiduSyncdisk\other\壁纸api\v0-nginx-lua脚本-威威-2025.9.10
方案3-freersync
teek目前壁纸存在的问题-壁纸获取感觉有缓存
2025年9月10日
开发思路
Teeker回复
威威大佬
XGQ大佬--实现了??
看效果 的确是实现了的
const fallbackImages =[]
// 动态获取图片列表的函数
async function fetchDynamicWallpapers(): Promise<string[]> {
try {
// 使用你的本地图片服务API
const response = await fetch("http://localhost:9999/api/images", {
method: 'GET',
headers: {
'Accept': 'application/json',
},
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
}
const data = await response.json();
const images = data.images || [];
// 将相对路径转换为完整的localhost URL
const wallpapers = images.map((imagePath: string) => `http://localhost:9999${imagePath}`);
// 如果获取到图片,返回动态图片列表,否则返回备用图片
return wallpapers.length > 0 ? wallpapers : fallbackImages;
} catch (error) {
console.warn('无法获取动态壁纸,使用备用图片:', error);
return fallbackImages;
}
}
// 创建一个Promise来获取壁纸
let wallpaperPromise: Promise<string[]> | null = null;
// 获取壁纸的函数
function getWallpapers(): Promise<string[]> {
if (!wallpaperPromise) {
wallpaperPromise = fetchDynamicWallpapers();
}
return wallpaperPromise;
}
// 导出的Wallpaper数组 - 在服务端渲染时使用备用图片,客户端动态加载
export const Wallpaper = fallbackImages;
// 导出动态获取函数供主题使用
export { getWallpapers, fetchDynamicWallpapers };
边缘函数也可以开
目前已实现部分功能的方案
v1-2025.9.8-白木大佬发的那个已实现部分功能版本(部署失败😢)
📌存在问题
此版本存在的问题:
- 不支持webp格式
- 不能间隔8s后刷新 (目前是手动刷新后会切换一次)
- 接入teek是有效果的
- 部署存在问题
- 浏览器出现的图片两边是黑框
📌源码位置
D:\BaiduSyncdisk\other\壁纸api\v1-2025.9.8-白木大佬发的那个已实现部分功能版本
📌讨论过程
php的图片api源码:https://baimu.live/258
就是链接本地图片路径 例如: avatar: https://gcore.jsdelivr.net/gh/Kele-Bingtang/static/user/20211029181901.png
改为 avatar: https://baimu.live/api/tp/LycorisRecoil/LycorisRecoil.php
📌部署方法(失败)
v2-2025.9.9-nas大佬发的那个已实现部分功能版本(不支持随机😢)
📌存在问题
此版本存在的问题:
- 不支持webp格式
- 不能间隔8s后刷新 (目前是手动刷新后会切换一次)
- 接入teek是有效果的 (待测试)
- 部署是可以成功的👏
- 浏览器出现的图片两边是黑框
📌源码位置
D:\BaiduSyncdisk\other\壁纸api\v2-2025.9.9-nas大佬发的那个已实现部分功能版本
📌部署方法
- 云服务器配置好Nginx https://onedayxyy.cn/linux/yum-install-nginx
- 云服务器配置好php8.2环境 https://onedayxyy.cn/qianduan/php-install-8-2
v3-2025.9.9-One 基于nas大佬 二开的那个已实现部分功能版本(不支持随机😢)
📌效果预览
📌存在问题
此版本存在的问题:
- 不能间隔8s后刷新 (目前是手动刷新后会切换一次)
- 接入teek是有效果的
- 部署是可以成功的👏
- 浏览器出现的图片两边是黑框
📌源码位置
D:\BaiduSyncdisk\other\壁纸api\v3-2025.9.9-One 基于nas大佬 二开的那个已实现部分功能版本
📌部署方法
- 云服务器配置好Nginx https://onedayxyy.cn/linux/yum-install-nginx
- 云服务器配置好php8.2环境 https://onedayxyy.cn/qianduan/php-install-8-2
v4-2025.9.11-白木大佬发的go项目 壁纸api(测试成功,随机壁纸api本身功能可以,但teek无法正常显示)
v1(随机壁纸api本身功能可以,但teek无法正常显示)
📌存在问题
具备功能:
- 可以间隔8s后刷新,同时手动刷新后也会切壁纸
- 部署是可以成功的👏
- 浏览器2边没黑框
- 图片尺寸自适应浏览器
- webp和其他类型都支持
- 图片目录可以随时增加或减少图片,也不用修改代码
此版本存在的问题:
- 但接入teek 没效果的
- 不能自定义运行端口
📌源码位置
D:\BaiduSyncdisk\other\壁纸api\v4-2025.9.11-白木大佬发的go项目 壁纸api\v1-第一次版本
📌部署方法
- 安装go环境
- 二进制运行
问题1:这个服务器前台一直有log弹出,但是我往日志文件里已经写了啊。。。
[root@wiki goimgapi]# pwd
/images/goimgapi
[root@wiki goimgapi]# ls
goimgapi.log images main main.exe templates
chmod +x main
[root@wiki goimgapi]# ./main > goimgapi.log &
问题2:这个go程序不能自定义运行端口
v2(随机壁纸api本身功能可以,但teek无法正常显示)
📌存在问题
具备功能:
- 可以间隔8s后刷新,同时手动刷新后也会切壁纸
- 部署是可以成功的👏
- 浏览器2边没黑框
- 图片尺寸自适应浏览器
- webp和其他类型都支持
- 图片目录可以随时增加或减少图片,也不用修改代码
此版本存在的问题:
- 但接入teek 没效果的
📌源码位置
D:\BaiduSyncdisk\other\壁纸api\v4-2025.9.11-白木大佬发的go项目 壁纸api\v2-包含源码
📌部署方法
- 安装go环境
- 二进制运行
问题1:这个服务器前台一直有log弹出,但是我往日志文件里已经写了啊。。。
[root@wiki goimgapi]# pwd
/images/goimgapi
[root@wiki goimgapi]# ls
goimgapi.log images main main.exe templates
[root@wiki goimgapi]# ./main > goimgapi.log &
v5-2025.9.12-XGQ-go项目
注意事项
!
!
!
!