Created
May 29, 2017 08:07
-
-
Save E-Badapple/d47b852a15004e76417c58f047abc751 to your computer and use it in GitHub Desktop.
Add an orignal link under the image.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name sankaku_image_link | |
// @namespace https://gist.github.com/E-Badapple | |
// @version 1.0 | |
// @description Add an orignal link under the image. | |
// @author E-Badapple(BattleCat) | |
// @match https://chan.sankakucomplex.com/* | |
// @match https://idol.sankakucomplex.com/* | |
// @grant none | |
// ==/UserScript== | |
//监听函数 | |
function mutationEvent() { | |
MutationObserver = window.MutationObserver || window.WebKitMutationObserver; | |
var obs = new MutationObserver(function(mutations, observer) { | |
for (var i = 0; i < mutations.length; ++i) { | |
for (var j = 0; j < mutations[i].addedNodes.length; ++j) { | |
if (mutations[i].addedNodes[j].getAttribute('class') === "content-page") { | |
getPage(mutations[i].addedNodes[j].getAttribute('id')); | |
} | |
} | |
} | |
}); | |
obs.observe((document.querySelector('#post-list > div.content')), { | |
childList: true | |
}); | |
} | |
//获取图片位置 | |
function getPage(id){ | |
var toop; | |
if (id !== null) { | |
toop = document.querySelectorAll('.content > div[id="' + id + '"] > span'); | |
} else { | |
toop = document.querySelectorAll('.content > div > span'); | |
} | |
for(var i = 0 ; i < toop.length ; i++){ | |
var idUrl = "/ja/post/show/" + toop[i].getAttribute('id').split('p')[1]; | |
getURL(idUrl, toop[i].getAttribute('id')); | |
} | |
} | |
//获取大图网址 | |
function getURL(idUrl,id){ | |
//var xmlhttp = new XMLHttpRequest(); | |
var x; | |
var url; | |
var imageURL; | |
var toop = document.getElementById(id); | |
imageURL = toop.getElementsByClassName('preview')[0].getAttribute('src').match(/preview(.*?)\.jpg/)[1]; | |
if( window.location.pathname.indexOf('chan\.sankakucomplex') > -1 ) | |
url = 'https:\/\/cs\.sankakucomplex\.com\/data' + imageURL; | |
else | |
url = 'https:\/\/is\.sankakucomplex\.com\/data' + imageURL; | |
AddImagelink(url,id); | |
/* | |
if (window.XMLHttpRequest) | |
{// code for IE7+, Firefox, Chrome, Opera, Safari | |
xmlhttp=new XMLHttpRequest(); | |
} | |
else | |
{// code for IE6, IE5 | |
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
xmlhttp.onreadystatechange=function() | |
{ | |
if (xmlhttp.readyState==4 && xmlhttp.status==200) | |
{ | |
x=xmlhttp.responseText; | |
//if( x.indexOf("highres") > -1 ) { | |
url = "https://"+xmlhttp.responseText.match(/href=\"\/\/(.*?)\ (.*?)highres/)[1]; | |
//} | |
// else { | |
// url = "https://"+xmlhttp.responseText.match(/href=\"\/\/(.*?)\ (.*?)lowres/)[1]; | |
// } | |
AddImagelink(url,id); | |
} | |
else if( xmlhttp.status==429 ){ | |
getURL(idUrl,id); | |
} | |
}; | |
xmlhttp.open("GET",idUrl,true); | |
xmlhttp.send(); | |
*/ | |
/* | |
xmlhttp.open("GET",idUrl,true); | |
xmlhttp.onload = function(){ | |
if( xmlhttp.responseText.indexOf("highres") > -1 ) { | |
url = "https://"+xmlhttp.responseText.match(/href=\"\/\/(.*?)\ (.*?)highres/)[1]; | |
//url = xmlhttp.responseText.split("\" id=\"highres\"")[0]; | |
//alert(xmlhttp.responseText); | |
} | |
else { | |
//url = xmlhttp.responseText.match(/<a href=(.*?)(.*?)(.*?) id=(.?*)lowres/)[1]; | |
} | |
AddImagelink(url,id); | |
}; | |
xmlhttp.send(); | |
*/ | |
} | |
//创建link | |
function AddImagelink(url,id){ | |
var toop = document.getElementById(id); | |
var p = document.createElement('p'); | |
var p2 = document.createElement('p'); | |
var ulJPG = document.createElement('ul'); | |
var ulPNG = document.createElement('ul'); | |
var urlJPG = url + '\.jpg'; | |
var urlPNG = url + '\.png'; | |
var imagelinkJPG = document.createElement('a'); | |
var imagelinkPNG = document.createElement('a'); | |
imagelinkJPG.setAttribute('href',urlJPG); | |
imagelinkJPG.setAttribute('style','color: #0069b1; background-color:#cceeff; border-radius: 5px; padding: 0 6px;'); | |
imagelinkJPG.innerHTML = 'Original-link-jpg</br>'; | |
imagelinkPNG.setAttribute('href',urlPNG); | |
imagelinkPNG.setAttribute('style','color: #0069b1; background-color:#cceeff; border-radius: 5px; padding: 0 6px;'); | |
imagelinkPNG.innerHTML = 'Original-link-png'; | |
p.setAttribute('style','margin: 5px 0'); | |
p.appendChild(imagelinkJPG); | |
p2.appendChild(imagelinkPNG); | |
if(!toop.getElementsByTagName('p')[0]){ | |
toop.appendChild(p); | |
toop.appendChild(p2); | |
toop.setAttribute('style','height:auto'); | |
} | |
} | |
//打开网页函数 | |
function firstStart(){ | |
var toop = document.getElementsByClassName('content')[0].getElementsByClassName('thumb'); | |
for(var i = 0 ; i < toop.length ; i++){ | |
var idUrl = "/ja/post/show/" + toop[i].getAttribute('id').split('p')[1]; | |
getURL(idUrl, toop[i].getAttribute('id')); | |
} | |
} | |
firstStart(); | |
mutationEvent(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment