使用cf搭建随机二次元图片,图片资源取的是wallhaven.cc【含NSFW】

Demo: https://lfff.alwaysdata.net
Demo: https://ooooooooooooooooooooooo.ooo/ooooοооoοᴏοoοᴏοoοᴏooοᴏoᴏoᴏооoоᴏᴏoоᴏᴏοоᴏoοоοоοоοоοоοоoоᴏоοоoοοоᴏoοᴏοᴏοоoοοᴏоοοᴏoᴏοоοoοоoοοᴏοoοоoοoоᴏоοоᴏоοоοοοᴏοooоᴏᴏ


代码如下:

export default {
  async fetch(request, env, ctx) {
    const userAgent = request.headers.get('User-Agent');
    const isMobile = /mobile/i.test(userAgent);

    const params = new URLSearchParams();
    params.append("categories", "010");
    params.append("purity", "110"); //🔞
    params.append("sorting", "toplist");//random
    //params.append("atleast", "1920x1080");
    params.append("ratios", isMobile ? "9x16" : "16x9");
    params.append("page", (Math.floor(Math.random() * 6) + 1).toString());
    params.append("topRange", "1y");
    params.append("apikey", "xxxxxxxxxxxxxxxxxxxxxxxxx");

    let url = new URL("https://wallhaven.cc/api/v1/search");
    url.search = params.toString();

    let response = await fetch(url);
    let { data } = await response.json();
    let item = data[Math.floor(Math.random() * data.length)];
    let path = item.path;
    let { large, original, small } = item.thumbs;

    let r = Math.floor(Math.random() * 3);
    return Response.redirect(`https://i${r}.wp.com/` + path.replace('https://', ''), 302);

    // return Response.redirect('https://cdn.cdnjson.com/' + path.replace('https://', ''), 302);

    //return await fetch(path);
  },
};

12 个赞

感谢分享,这就搭一个

感谢大佬教程!

感谢大佬的教程

怎么NSFW only

purity=001
apikey={自己的APIKEY}

在vps怎么搭建

用Node.js跑啊

感谢大佬教程!

这就去搭一个

Wallhaven 随机壁纸 | 周润发的博客 (blog.001315.xyz) 搞了个这样页面 。但是我发现图片资源随机的 重复几率很高!

优化一下搞个json利用率更高吧~