// ==UserScript==
// @name Pixiv(P站)热门作品推荐功能
// @name:ja Pixiv 擬似コレクション検索
// @name:zh-Tw Pixiv(P站)熱門作品推薦功能
// @namespace http://tampermonkey.net/
// @version 3.03
// @require https://code.jquery.com/jquery-1.12.4.min.js
// @icon http://www.pixiv.net/favicon.ico
// @description 此插件用于移除跳转模块,让非会员用户直接点击热门推荐图片链接;UID和PID搜索功能及模拟按收藏人数搜索功能
// @description:en Non-members click directly on popular images; UID and PID search and simulation search by favorites
// @description:ja 非会員が直接ヒットしているおすすめ画像をクリック;UIDとPID検索機能とシミュレーションコレクション人数による検索機能
// @description:zh-TW 此外掛用於移除跳轉模組,讓非會員使用者直接點選熱門推薦圖片連結;UID和PID搜尋功能及模擬按收藏人數搜尋功能
// @author Nears
// @include *://www.pixiv.net/tags/*
// @match https://www.pixiv.net/
// @grant none
// ==/UserScript==
var styleP = document.createElement('style');
document.body.appendChild(styleP);
styleP.textContent = ''+
'.searchID{'+
'display:none;'+
'width: 500px;'+
'left: -350px;'+
'margin-left: 50%;'+
'background: #fff;'+
'top: 3%;'+
'color: #333;'+
'padding: 25px;'+
'border-radius: 15px;'+
'border: 1px solid #ddd;'+
'box-shadow: 0 0 25px #a88a81;'+
'max-height: calc(94% - 50px);'+
'overflow: auto;'+
'position: fixed;'+
'z-index: 1000;'+
'font-size: 14px;}'+
'.searchID p {'+
'line-height: 35px;'+
'text-align:center;'+
'margin: 0;}'+
'.searchID p label{'+
'font-size:20px;'+
'cursor: pointer;'+
'margin-right: 12px;}'+
'input[type="text"]{'+
'height: 20px;'+
'margin: 0;'+
'padding: 0 4px;}'+
'.searchID p input{'+
'width: 50px;'+
'min-width: 200px;'+
'line-height: 20px;'+
'font-size: 14px!important;'+
'height: 20px;'+
'text-indent: 4px;'+
'box-sizing: border-box;'+
'border: none!important;'+
'border-bottom: 1px solid #a3b9c2!important;'+
'outline: 0;}'+
'.sClose{'+
'font-size: 18px;'+
'font-family: initial;'+
'position: absolute;'+
'top: 0;'+
'right: 0;'+
'width: 40px;'+
'height: 40px;'+
'text-align: center;'+
'cursor: pointer;'+
'color: #666;'+
'user-select: none;}'+
'.sButton{'+
'float:right;'+
'color:white;'+
'background-color: rgb(14, 168, 239);'+
'padding: 6px 8px;'+
'text-align: center;'+
'min-height: 20px;'+
'line-height: 20px;'+
'border-radius: 4px;'+
'margin-right: 30px;'+
'cursor: pointer;'+
'max-width:30px;'+
'vertical-align: top;}'+
'.sDivBody{'+
'margin-left: 80px;'+
'width:338px;}'+
'.pDivC{'+
'float:left;}'+
'.clearF{ '+
'clear:both}'+
'aside ul:after{content: none!important}aside{width:50%}'+
'.aline:before {content: "";height: 14px;vertical-align: -2px;padding-left: 4px;margin-left: 4px;border-left: 1px solid #eee;}'+
'.byPopur{height:37px;width:390px}';
var bm_Rang = [" 10000users入り"," 5000users入り"," 1000users入り"," 500users入り"," 300users入り"," 100users入り"," 50users入り"];
var bm_val = 7;
function appendPUID(element){
$('<a href="#" class="searchByUID aline">'+
'<span class="text"></span>搜作者</a>'+
'<a href="#" class="searchByPID aline">'+
'<span class="text">搜作品</span></a>').appendTo(element);
var searchType = 0;
$("<div class='searchID'><div class='sClose'>x</div><div class='sDivBody'><div class='pDivC'><p><label class='typeClass'></label><input id='UPID' type='text'/></p></div><div class='sButton'>搜索</div></div><div class='clearF'></div></div>").appendTo($('body'))
$(".sClose").click(function(){
$('.searchID').hide()
})
$(".searchByUID").click(function(){
searchType = 1;
$('.typeClass').text('UID:')
$('.searchID').show()
$("#UPID").val('');
$("#UPID").focus();
})
$(".searchByPID").click(function(){
searchType = 2;
$('.typeClass').text('PID:')
$('.searchID').show()
$("#UPID").val('');
$("#UPID").focus();
})
$("#UPID").on('keyup',function(eve){
eve.target.value = eve.target.value.toString().replace(/[^\d]/g,"");
})
$(".sButton").click(function(){
if($("#UPID").val() == ""){
alert("Pid or uid is null!");
return false;
}
if(searchType == 1){
window.open("https://www.pixiv.net/member.php?id="+$("#UPID").val());
}else{
window.open('https://www.pixiv.net/member_illust.php?mode=medium&illust_id='+$("#UPID").val());
}
})
}
function reLoad(){
let urlParm = document.URL.split("/");
urlParm[1] = "//"
urlParm[2] = urlParm[2] + "/"
urlParm[3] = urlParm[3] + "/"
urlParm[4]= urlParm[4].replace(/%+\s*\d+users%E5%85%A5%E3%82%8A/ig,"")
urlParm[4] = $("input[name='word']").val() + "/"
location.href = urlParm.join("")
}
function appendSearch(){
let checkFNum = 0;
let checkForm = setInterval(function(){
checkFNum = checkFNum + 1;
if($("[role='presentation']") && $("[role='presentation']").length >0){
clearInterval(checkForm)
let presentForm = $("[role='presentation']")[0].childNodes[0].childNodes[0]
let formDiv = presentForm.childNodes[0].childNodes[1]
formDiv.childNodes[4].style.display = 'none'
$(formDiv.childNodes[4]).after($("<div><select class='byPopur'><option value='7' selected='selected'>按收藏人数搜索</option></select></div>"))
let formInput = formDiv.childNodes[0].childNodes[1].childNodes[1];
let wordVal = $(formInput).val().replace(/\s*\d+users入り/ig,"")
$(formInput).val(wordVal)
$(formInput).focus(function(){
setTimeout(function(){
let vD= $(this).val().replace(/\s*\d+users入り/ig,"")
$(this).val(vD)
})
})
$(formInput).blur(function(){
setTimeout(function(){
let vD= $(this).val().replace(/\s*\d+users入り/ig,"")
$(this).val(vD)
})
})
for(var i = 6;i >= 0;i--){
var option = $("<option>").val(i).text(bm_Rang[i].replace(/\s/ig,""));
$(".byPopur").append(option);
}
let subB = presentForm.childNodes[0].childNodes[2].childNodes[0].childNodes[0].childNodes[0]
$(".byPopur").change(function(){
bm_val = parseInt($(this).val(),10)
})
$(subB).click(function(e){
subByPopur()
})
}
if(checkFNum > 10){
clearInterval(checkForm)
}
},1000)
}
function subByPopur(){
let checkSNum = 0;
let checkSorm = setInterval(function(){
checkSNum = checkSNum + 1;
if(!$("[role='presentation']") || !$("[role='presentation']").length >0){
clearInterval(checkSorm)
sessionStorage.setItem("hisUrl",document.URL.replace(/%+\s*\d+users%E5%85%A5%E3%82%8A/ig,""))
let urlParm = document.URL.split("/");
//console.log(urlParm,bm_Rang[bm_val])
urlParm[1] = "//"
urlParm[2] = urlParm[2] + "/"
urlParm[3] = urlParm[3] + "/"
urlParm[4]= urlParm[4].replace(/%+\s*\d+users%E5%85%A5%E3%82%8A/ig,"")
console.log(urlParm[4])
if(bm_val != 7){
urlParm[4] = urlParm[4] + bm_Rang[bm_val] + "/"
}else{
urlParm[4] = urlParm[4] +"/"
}
location.href = urlParm.join("")
}
if(checkSNum > 10){
clearInterval(checkSorm)
}
},1000)
}
(function() {
let checkNum = 0;
let charge = {
header:false,
popur:false,
term:false,
word:false,
list:false
}
let checkPopular = setInterval(function () {
checkNum = checkNum + 1;
if($("aside ul li a") && $("aside ul li a").length >0 && !charge.popur){
$("aside").next().remove()
$("aside ul").next().remove()
$("aside button").remove()
$("section aside ul li a").click(function(e){
e.preventDefault();
window.open($(this).attr('href'))
})
charge.popur = true
}
if($("section ul li a") && $("section ul li a").length >0 && !charge.list){
$("section ul li a").click(function(e){
e.preventDefault();
window.open($(this).attr('href'))
})
charge.list = true
}
if($('header div div:nth-child(1) div ul li') && $('header div div:nth-child(1) div ul li').length >0 &&!charge.header){
let headerBar = $('header div')[9];
let bar = $(headerBar).find('ul li')[1]
appendPUID($(bar))
charge.header = true;
}
if($("input[name='word']") && $("input[name='word']").length >0 &&!charge.word){
let wordVal = $("input[name='word']").val().replace(/\s*\d+users入り/ig,"")
$("input[name='word']").val(wordVal)
$("input[name='word']").focus(function(){
setTimeout(function(){
let vD= $("input[name='word']").val().replace(/\s*\d+users入り/ig,"")
$("input[name='word']").val(vD)
})
})
$("input[name='word']").blur(function(){
setTimeout(function(){
let vD= $("input[name='word']").val().replace(/\s*\d+users入り/ig,"")
$("input[name='word']").val(vD)
})
})
$("input[name='word']").keydown(function (event) {
console.log(event.keyCode )
if (event.keyCode == 13) {
reLoad()
}
});
$("input[name='word']").next().click(function(){
let vD= $("input[name='word']").val().replace(/\s*\d+users入り/ig,"")
$("input[name='word']").val(vD)
reLoad()
})
charge.word = true;
}
if($("header").next().children() && $("header").next().children().length >2&&!charge.term){
if($("header").next().children().length == 4){
let spanText = $("header").next().children()[0].childNodes[0].childNodes[0].childNodes[0].childNodes
for(let i = 0;i<spanText.length;i++){
spanText[i].innerHTML = spanText[i].innerHTML.replace(/\s*\d+users入り/ig,"")
}
let term = $("header").next().children()[3].childNodes[0].childNodes[0]
$(term).click(function(){
appendSearch()
})
}else{
let spanText = $("header").next().children()[1].childNodes[1].childNodes[0].childNodes[0].childNodes
for(let i = 0;i<spanText.length;i++){
spanText[i].innerHTML = spanText[i].innerHTML.replace(/\s*\d+users入り/ig,"")
}
let term = $("header").next().children()[4].childNodes[0].childNodes[0]
$(term).click(function(){
appendSearch()
})
}
charge.term = true;
}
if(checkNum > 30 ||(charge.term && charge.popur && charge.header && charge.word && charge.list)){
clearInterval(checkPopular)
}
},1000)
window.onload = function(){
if(sessionStorage.getItem("hisUrl") && sessionStorage.getItem("hisUrl") != ""){
window.history.pushState({status: 0} ,'' ,sessionStorage.getItem("hisUrl"))
}
}
})();