Wallpaper Like & Save 壁纸一键下载

Wallhaven壁纸一键收藏加下载

当前为 2023-07-12 提交的版本,查看 最新版本

// ==UserScript==
// @name         Wallpaper Like & Save 壁纸一键下载
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Wallhaven壁纸一键收藏加下载
// @author       乃木流架
// @match        https://wallhaven.cc/w/*
// @icon         data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADKElEQVR4nO2YTWgTQRTHt6CCgkW9iJ8XD5aePHhQBKvepb16sr30KnjwIMhs/MCIgopUiBYPVqrMbEmatmmy29T6QRpt0522gQoqoiLag1+tdWe32TzZTWtTmsY2nexa2D88CNl9s//fzNuZnREET548efLkyZMnT44LEK4GRM4CwmFAmIKIxwGRb4BwI8eHtO0EkRBAeAIQ7uXWrkjOASIZEAnMC0Qwb/Nf5xqfA4Dw4AamDNUyhd7TFKoyWf2syWqWKRQWi9x1ddxoffJ+gXHRbj8LCO/jB2D1vN047rJg7P9wep2mqI1MVr/km/NX1i4prHvNG10LzYv2c0a5mbfNWmVj90zOPIsP79UUdaxQ7y4HIOsPFQQw/e0KXwCR/JwZ2t1ajB7TFPqjWIksNcxrHQUBppt7skwePsUPAOGQ3bg/GNBk+p2HeSsMqR/AJy0EePDUfk90efgEJwCpCkTyQQ8PfORlfjb09heQaYpC9nIQ4LwE2asdoHenci+7QqcYTlZzgdBjqUu8zS9plFqfTa54RoJoeovdGw4aP3ySQE09AaaoYPqDJiDyCFDbgZIANFltcLrna+oJHKmX7N+ZQE/+O9JUAgANuVE+bLaMSCJ/hf5dygi8chNAD7+cN0uVAjDhJgCLDq0YYHJVAzCFvl7VJcQU2ucmgEH68z/0ppYPIFPkJkDmbt40ivCdZQMYcmq/mwDmlZC1PwiBTzoklCIAqLA3K27Uf1vCAJ90VFipWIwedwXgfrxB4CVNViOOAshqs8BT0DmymcnqGyfMawqlkEisF3iLRUeqmELfldm8OiWntgvl0q/uwW16eOBTWWo+mHwLz8c2CuUW+PCZzO0Y6F2DfIx3DIB5K2LN86fLbn4G4KC9sPgkMG9G7H2sHkqCHkkBk2eMxdSoFh/dY90/2TOylcm0N2dYtcGNYBKmW/rAvN45t1D5cI0zACi4qfCZTv4BVe4Y5m/OhYe7/plzEe9wCODxmuLmiVE4jxjF81oqnQEQoKK4EZwuDIDTRfMCgbWOANhmRBJf5GhwHJBUVxhAqrOvF87rd8y8J0+ehP9OfwDBJGLFiOaZxAAAAABJRU5ErkJggg==
// @grant        none
// @license      GPL-3.0 License
// ==/UserScript==

(function () {
  // "use strict";

  const static = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADKElEQVR4nO2YTWgTQRTHt6CCgkW9iJ8XD5aePHhQBKvepb16sr30KnjwIMhs/MCIgopUiBYPVqrMbEmatmmy29T6QRpt0522gQoqoiLag1+tdWe32TzZTWtTmsY2nexa2D88CNl9s//fzNuZnREET548efLkyZMnT44LEK4GRM4CwmFAmIKIxwGRb4BwI8eHtO0EkRBAeAIQ7uXWrkjOASIZEAnMC0Qwb/Nf5xqfA4Dw4AamDNUyhd7TFKoyWf2syWqWKRQWi9x1ddxoffJ+gXHRbj8LCO/jB2D1vN047rJg7P9wep2mqI1MVr/km/NX1i4prHvNG10LzYv2c0a5mbfNWmVj90zOPIsP79UUdaxQ7y4HIOsPFQQw/e0KXwCR/JwZ2t1ajB7TFPqjWIksNcxrHQUBppt7skwePsUPAOGQ3bg/GNBk+p2HeSsMqR/AJy0EePDUfk90efgEJwCpCkTyQQ8PfORlfjb09heQaYpC9nIQ4LwE2asdoHenci+7QqcYTlZzgdBjqUu8zS9plFqfTa54RoJoeovdGw4aP3ySQE09AaaoYPqDJiDyCFDbgZIANFltcLrna+oJHKmX7N+ZQE/+O9JUAgANuVE+bLaMSCJ/hf5dygi8chNAD7+cN0uVAjDhJgCLDq0YYHJVAzCFvl7VJcQU2ucmgEH68z/0ppYPIFPkJkDmbt40ivCdZQMYcmq/mwDmlZC1PwiBTzoklCIAqLA3K27Uf1vCAJ90VFipWIwedwXgfrxB4CVNViOOAshqs8BT0DmymcnqGyfMawqlkEisF3iLRUeqmELfldm8OiWntgvl0q/uwW16eOBTWWo+mHwLz8c2CuUW+PCZzO0Y6F2DfIx3DIB5K2LN86fLbn4G4KC9sPgkMG9G7H2sHkqCHkkBk2eMxdSoFh/dY90/2TOylcm0N2dYtcGNYBKmW/rAvN45t1D5cI0zACi4qfCZTv4BVe4Y5m/OhYe7/plzEe9wCODxmuLmiVE4jxjF81oqnQEQoKK4EZwuDIDTRfMCgbWOANhmRBJf5GhwHJBUVxhAqrOvF87rd8y8J0+ehP9OfwDBJGLFiOaZxAAAAABJRU5ErkJggg==`;

  const animate = `https://i.postimg.cc/13Vdn4Cb/save.gif`;

  function log(...args) {
    const name = "WLS";
    const logPrefix = [
      "%c" + name,
      `background:#42e36a;border-radius: 0.5em;color: white;font-weight: bold;padding: 2px 0.5em`,
    ];
    console.log(...logPrefix, ...args);
  }

  function vueInject() {
    let script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.src = "https://unpkg.com/vue@3/dist/vue.global.js";
    document.documentElement.appendChild(script);

    let link = document.createElement("link");
    link.setAttribute("rel", "stylesheet");
    link.href =
      "https://gcore.jsdelivr.net/gh/NogiRuka/images@main/script/Wallhaven%20Like%20%26%20Save/save.css";
    document.documentElement.appendChild(link);
  }

  log("[Wallhaven Like & Save] userscript is running...");

  vueInject();

  window.onload = () => {
    let text = `<div id="app" style="position: fixed;bottom: 100px;right: 100px;z-index: 999"><img id='save' src='${static}' alt="WLS" style="width: 60px;height: 60px;cursor: pointer;border-radius:50%;background: white;" @click="save"/>
    </div>`;
    //图片阴影
    let style = document.createElement("style");
    style.innerHTML = `
    #save:hover {
        box-shadow: 0 0 10px #ff80ab;
    }
    `;
    document.head.append(style);

    let el = document.createElement("div");
    el.innerHTML = text;
    document.body.append(el);

    const { createApp } = Vue;

    createApp({
      data() {
        return {
          message: "Hello Vue!",
        };
      },
      methods: {
        save() {
          log("Start saving");

          // Change icon
          let img = document.querySelector("#save");
          img.src = animate;
          setTimeout(() => {
            img.src = static;
          }, 1000);

          // Add to Favorites
          this.add();

          // Download
          this.download();
        },
        add() {
          let add = document.querySelector(".add-fav");
          log(`output->add`, add);
          if (add != null) {
            add.click();
          }
        },
        download() {
          let imgUrl = document.querySelector("#wallpaper").src;
          log(`output->imgUrl`, imgUrl);

          // 下载图片
          fetch(imgUrl).then((res) =>
            res.blob().then((blob) => {
              // 动态创建a标签,防止下载大文件时,用户没看到下载提示连续点击
              const a = document.createElement("a"),
                url = window.URL.createObjectURL(blob),
                filename = imgUrl.substring(imgUrl.lastIndexOf("/") + 1);
              log(`output->filename`, filename);
              a.href = url;
              a.download = filename;
              a.click();
              window.URL.revokeObjectURL(url);
            })
          );
          document.querySelector("#header").click();
        },
      },
    }).mount("#app");
  };

  // Your code here...
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址