您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Wallhaven 是最酷的壁纸网站,本脚本为该网站提供了额外的功能,能让你更畅快的寻找到喜欢的图片。
当前为
// ==UserScript== // @name Wallhaven Enhance // @name:zh-CN Wallhaven 壁纸网站增强 // @description The script for the coolest wallpaper site provides additional features, can make you more fun to find favorite pictures. // @description:zh-CN Wallhaven 是最酷的壁纸网站,本脚本为该网站提供了额外的功能,能让你更畅快的寻找到喜欢的图片。 // @author Moshel // @namespace https://hzy.pw // @homepageURL https://hzy.pw/ // @supportURL https://github.com/h2y/link-fix // @icon https://alpha.wallhaven.cc/favicon.ico // @license GPL-3.0 // require https://cdn.staticfile.org/lightgallery/1.6.11/css/lightgallery.min.css // require https://cdn.staticfile.org/lightgallery/1.6.11/js/lightgallery-all.min.js // @include https://alpha.wallhaven.cc/* // @grant none // @run-at document-end // @date 05/02/2017 // @modified 08/22/2018 // @version 2.0.0 // ==/UserScript== { class Pic { constructor(elem, wallhavenScript) { this.elem = elem; this.wallhavenScript = wallhavenScript const $pic = $(elem); this.favs = parseInt( $pic.find('.wall-favs')[0].innerHTML ); this.seen = $pic.find('figure').hasClass('thumb-seen'); this.id = $pic.find('figure').data('wallpaper-id'); this.picUrl = `/wallpapers/full/wallhaven-${this.id}.jpg`; this.picSmallUrl = $pic.find('img')[0].src; // this.getPicUrl(); } desalt() { const opacity = this.wallhavenScript.desaltPicsOpacity; this.elem.style.opacity = opacity; } addDownload() { let dlDom = $(`<a class="jsDownload" href="javascript:;"> <i class="fa fa-fw fa-cloud-download"></i></a>`)[0]; dlDom.onclick = this.download.bind(this); $(this.elem).find('.thumb-info').append(dlDom); } download() { let aDom = document.createElement('a'); aDom.href = this.picUrl; aDom.download = ""; aDom.click(); } // 异步获取图片的真实地址 getPicUrl() { let xhr = new XMLHttpRequest(); xhr.onreadystatechange = ()=>{ if (xhr.readyState == 2) { if(xhr.status != 200) this.picUrl = this.picUrl.replace('.jpg', '.png'); xhr.abort(); } }; xhr.open("GET", this.picUrl, true); xhr.send(); } initGallery() { let $pic = $(this.elem).find('figure'); $pic.data('data-src', this.picUrl) .data('data-sub-html-url', 'https://alpha.wallhaven.cc/wallpaper/'+this.id ); $pic.click( this.showGallery ); } showGallery(e) { $('ul').lightGallery({ selector: 'figure' }); return false; } } class WallhavenScript { constructor() { // 部分页面中淡化对未达到点赞数量的图片 this.desaltPics = true; this.desaltPicsByFavs = 10; // 需要达到的点赞数量 this.desaltPicsOpacity = 0.2; // 淡化后的透明度 // 淡化看过的图片 this.desaltSeen = true; // 显示一键下载按钮 this.download = true; // 图片灯箱浏览 this.gallery = false; // 开发中 // 当前登录(不可用)状态 this.isLogined = ($('#userpanel > a > span.username').length > 0) } workList() { this.workListMain(); new MutationObserver( this.workListMain.bind(this) ).observe(document.body, { attributes: false, childList: true, subtree: true }); } workListMain() { let pics = this.getPics(); let newPics = this.filterNewPics(pics); for(let pic of newPics) { // 淡化对未达到点赞数量的图片 if(this.desaltPics && pic.favs < this.desaltPicsByFavs) pic.desalt(); // 淡化看过的图片 if(this.desaltSeen && pic.seen) pic.desalt(); // 显示一键下载按钮 if(this.download) pic.addDownload(); // Gallery if(this.gallery) pic.initGallery(); } this.pics = pics; } // 单图页面 workSingle() { if(this.download) this.addDownloadForSingle(); } addDownloadForSingle() { const src = $('img#wallpaper').attr('src').replace('//wallpapers.wallhaven.cc', ''); let dlDom = $(`<a id="fav-button" class="button add-button" href="${src}" download></a>`)[0]; dlDom.innerHTML = `<a class="add-fav"><i class="fa fa-fw fa-download"></i> Download</a>`; $('div.sidebar-content')[0].insertBefore(dlDom, $('.sidebar-content > #fav-button')[0] ); } getPics() { let elems = $('.thumb-listing-page li'); let ret = []; for(let elem of elems) ret.push( new Pic(elem, this) ) return ret; } filterNewPics(pics) { let ret = []; const oldElems = this.pics.map(pic=>pic.elem); return pics.filter( pic => { return (oldElems.indexOf(pic.elem) < 0); }); } /* 根据当前页面选择需要运行的功能,返回对应的 work 函数 */ run() { if(!this.isLogined) { this.desaltSeen = false; } // 单图页面 if(location.pathname.indexOf('/wallpaper/')==0) return this.workSingle(); // latest pics else if(location.pathname == '/latest' || location.search.indexOf('sorting=date_added')>0) { this.desaltPics = false; } // up 主页面 else if(location.pathname.indexOf('/user/')>=0) this.desaltPics = false; this.pics = []; return this.workList(); } } new WallhavenScript().run(); } //end userScript
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址