您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Access blocked images on Sankaku Channel (does not support thumbnails)
// ==UserScript== // @name Sankaku Channel Access Rights // @namespace http://tampermonkey.net/ // @version 20210312 // @description Access blocked images on Sankaku Channel (does not support thumbnails) // @author Couchy (original author) & WujekTadek (modified an existing script) // @updated by WujekTadek // @match https://chan.sankakucomplex.com/* // @grant none // ==/UserScript== (function() { 'use strict'; function unblockThumbs(target) { const thumbs = target.querySelectorAll("span.thumb"); for (const thumb of thumbs) { var thumbnailReadyLink //DAS IST MEIN const link = thumb.firstElementChild; if (!link || link.href != "https://get.sankaku.plus/") { continue; } const id = thumb.id.substring(1); //READS ALL IMG ID'S CURRENTLY ON WEBPAGE link.href = `/post/show/${id}`; link.removeAttribute("target"); const oReq = new XMLHttpRequest(); oReq.addEventListener("load", function(){ //console.log(oReq.responseText); const data = JSON.parse(oReq.responseText)[0]; //alert(data); //console.log(data); let scale = 1; if (data.preview_width > 150 || data.preview_height > 150) { scale = 1 / Math.max(data.preview_width, data.preview_height); } const previewElem = thumb.children[0].children[0]; //console.log(previewElem); previewElem.width = 150; previewElem.height = 150; previewElem.src = "https://chan.sankakucomplex.com/post/show/"+id+""; //previewElem.src = data.preview_url; let title = ""; for (let tag of data.tags) { title += `${tag.name_en} `; } //TODO: other info in title previewElem.title = title; }); oReq.open("GET", `https://capi-v2.sankakucomplex.com/posts?lang=en&page=1&limit=1&tags=id_range:${id}`); oReq.send(); } } function unblockLarge(content) { content.innerHTML = ""; //this const id = document.querySelector('meta[property~="og:image"][content]').content.slice(5); var properLink = "//s.s"; properLink += id; window.open(properLink,"_self"); } if (document.querySelector("span.thumb")) { unblockThumbs(document); } const content = document.getElementById("post-content"); if (content && content.querySelector(".post-content-notification")) { unblockLarge(content); } //idk what that stuff below does --WujekTadek //and now it makes everything work again, while before it had to be commented... const list = document.getElementById("post-list"); if (list) { const callback = function (mutations){ for (const mutation of mutations) { if (mutation.addedNodes.length > 0 && mutation.addedNodes[0].className == "content-page") { console.log(mutation.addedNodes[0]); unblockThumbs(mutation.addedNodes[0]); } } }; const observer = new MutationObserver(callback); observer.observe(list, {childList: true, subtree: true}); } // Fix Sankaku's shit /* var parts = /(.*) Rating:(\w)\w+ Score:(\S+) Size:(\d+)x(\d+) User:(.*)/.exec(title); o.tags = parts[1]; o.rating = parts[2].toLowerCase(); o.score = parseFloat(parts[3]); o.width = parseInt(parts[4]); o.height = parseInt(parts[5]); o.author = parts[6]; */ /* const realExec = RegExp.prototype.exec; RegExp.prototype.exec = function(str){ let result = realExec.apply(this, [str]); if (!result && this.source.indexOf("Rating") > -1) { result = ["","","e","0","0","0",""]; } return result; };*/ })();