https:www.tucia.netshots // ==UserScript==// @name tucia.net// @namespace minhill.com// @include https://www.tucia.net/shots/*// @version 1// @grant none// ==/UserScript==const fetchInit = { //请求参数, cookies method:'POST', credenti
// ==UserScript==
// @name tucia.net
// @namespace minhill.com
// @include https://www.tucia.net/shots/*
// @version 1
// @grant none
// ==/UserScript==
const fetchInit = { //请求参数, cookies
method:'POST',
credentials:'include'
}
var links = [];
function mainPage(){
var nodesList = document.querySelectorAll('.block.widest.highest.absolute.editedThumb');
for (let item of nodesList) {
links.push(item.href.replace('shots','account/likes'));//替换成推荐地址
}
console.log(links.length);
}
function siglePage(){
links.push(location.href.replace('shots','account/likes'));
/* var targetButton = document.querySelector('.f-md-90 button');
console.log(targetButton);
var clickEvt = document.createEvent('HTMLEvents');
clickEvt.initEvent('click',true,true);
targetButton.dispatchEvent(clickEvt);
*/
}
function after1s(x) {//蛤蛤函数
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, Math.round(x*1000));
});
};
async function fetchAll(links){
for (let url of links){
await after1s(0.5); //停顿一秒后再抓取,防止被禁
let res = await fetch(url,fetchInit);
if(res.redirected) throw new Error('未登陆');
let data = await res.json();
//打印数据
if(!data.error){
console.log(data.callbacks[0].param);
var permission = await Notification.requestPermission();
if (permission === 'granted') {
var options = {
body: data.callbacks[0].param,
}
var n = new Notification('成功推荐',options);
await after1s(3)
n.close();
}
}
else{
console.log(data.popError.body);
}
}
}
function main(){
//console.log(location.href);
let singleTest = /shots\/\d{5,}/.test(location.href);
//console.log(singleTest);
if(singleTest){
siglePage();
}
else{
//mainPage();
}
fetchAll(links)
.catch(err=>console.error(err));
}
main();
