// ==UserScript==
// @name jav清单
// @namespace http://tampermonkey.net/
// @version 1.5
// @description jav清单,替代原网页我的清单,可用作自定义标签
// @author lyscop
// @grant GM_openInTab
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_setClipboard
// @grant GM_info
// @grant GM_openInTab
// @grant GM_deleteValue
// @grant GM_listValues
// @license MIT
// @include *://*javdb*.com/*
// @include *://*javdb*.com/v/*
// @include *://javdb*.com/actors/*
// @include *://*javdb*.com/users/lists*
// @include *://*javdb*.com/users/collection_actors*
// @include /^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/
// @include *://www.javbus.com/*
// @include *://javdb*.com/v/*
// @include *://javdb*.com/search?q=*
// @include *://www.javdb.com/*
// @include *://*.javlib.com/*
// @include *://*.javlibrary.com/*
// @include *://*/cn/?v=jav*
// @include *://*/en/?v=jav*
// @include *://*/tw/?v=jav*
// @include *://*/ja/?v=jav*
// @include *://*.javlib.com/*
// @include *://*.javlibrary.com/*
// @include *://*/tw/movie/jav*
// @run-at document-end
// @require https://cdn.jsdelivr.net/npm/jquery@2.2.3/dist/jquery.min.js
// ==/UserScript==
(function() {
'use strict';
var image = 'data:image/png;base64,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';
let d = new Date();
let TimeDateFormatText = '[Year]/[Month]/[Day] [Hour]:[Minute]:[Second]';
let timetext = TimeDateFormatText.replace(/\[YEAR\]/gi, d.getFullYear().toString()).replace(/\[MONTH\]/gi, ('0' +(d.getMonth()+1).toString()).slice(-2)).replace(/\[DAY\]/gi, ('0' +d.getDate().toString()).slice(-2)).replace(/\[HOUR\]/gi, ('0' +d.getHours().toString()).slice(-2)).replace(/\[MINUTE\]/gi, ('0' +d.getMinutes().toString()).slice(-2)).replace(/\[SECOND\]/gi, ('0' +d.getSeconds().toString()).slice(-2));
var origninfo;
let videoFanhao;
let videoTitle;
let videoName;
let videoDate;
let videoCover;
let videoUrl = window.location.href;
let videoaddDate = timetext;
if(videoUrl.indexOf('javdb') > -1) {
origninfo = document.querySelectorAll('.is-size-7.has-text-grey')[0].innerHTML.trim();
videoFanhao = document.querySelector('[data-clipboard-text]').attributes[2].value;
videoTitle = document.getElementsByClassName('current-title')[0].innerHTML;
videoDate = document.getElementsByClassName('panel movie-panel-info')[0].childNodes[3].childNodes[3].innerHTML;
videoCover = document.getElementsByClassName('video-cover')[0].src;
} else if(videoUrl.indexOf('javbus') > -1 || videoUrl.match(/^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/)) {
videoFanhao = document.getElementsByClassName('col-md-3 info')[0].children[0].children[1].innerHTML;
videoTitle = document.getElementsByTagName('h3')[0].innerHTML.slice(document.getElementsByTagName('h3')[0].innerHTML.indexOf(' ') + 1);
videoDate = document.getElementsByClassName('col-md-3 info')[0].children[1].innerText.split(': ')[1];
videoCover = document.getElementsByClassName('bigImage')[0].children[0].src;
} else if(videoUrl.indexOf('javlib') > -1) {
videoFanhao = document.getElementById('video_id').children[0].children[0].children[0].children[1].innerHTML;
videoTitle = document.getElementsByClassName('post-title text')[0].children[0].innerHTML.slice(document.getElementsByClassName('post-title text')[0].children[0].innerHTML.indexOf(' ') + 1);
videoDate = document.getElementById('video_date').children[0].children[0].children[0].children[1].innerHTML;
videoCover = document.getElementById('video_jacket_img').src;
}
let allValue = GM_listValues();
var inLists = '';
var listsShow = false;
var newArray = [];
const buttonG = document.createElement('button');
if(videoUrl.indexOf('javdb') > -1) {
buttonG.style.borderColor = '#dbdbdb';
buttonG.style.backgroundColor = "#fff";
buttonG.style.color = '#363636';
document.querySelectorAll('.panel-block div.buttons')[0].appendChild(buttonG);
buttonG.classList.add('button', 'is-info', 'is-outlined', 'button-c');
} else if(videoUrl.indexOf('javbus') > -1 || videoUrl.match(/^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/)) {
var divBus = document.getElementsByClassName('col-md-3 info')[0];
console.log(divBus)
var inlistDiv = document.createElement('div');
buttonG.style.border = '1px solid #d1d1d1';
buttonG.style.backgroundColor = "#fff";
buttonG.style.marginBottom = '10px';
divBus.appendChild(buttonG);
inlistDiv.className = 'inListBus'
inlistDiv.style.marginBottom = '10px';
divBus.appendChild(inlistDiv);
} else if(videoUrl.indexOf('javlib') > -1) {
var divLibs = document.getElementById('video_favorite_edit');
var inlistSpan = document.createElement('span');
var spanLib = document.createElement('span');
inlistSpan.className = "favoritetype";
buttonG.className = 'smallbutton';
inlistSpan.appendChild(buttonG);
divLibs.appendChild(inlistSpan);
spanLib.className = "favoritetype";
divLibs.appendChild(spanLib);
}
buttonG.innerHTML = '清单';
buttonG.addEventListener('click', () => {
listssettings();
window.setTimeout(function(){
listsShow = true;
}, 300);
});
allValue = GM_listValues();
allValue.forEach(function (obj, i) {//数组
var newListEle = {};
newListEle['name'] = obj;
newListEle['count'] = Object.values(GM_getValue(obj)).length;
newArray.push(newListEle);
});
newArray.sort(compare( "count"));
newArray.forEach(function (obj, i) {//数组
Object.values(GM_getValue(obj.name)).forEach(function (value, index) {//数组
//console.log(value.fanhao);
if(value.fanhao == videoFanhao) {
if(inLists == ' ') {
inLists = obj.name;
} else {
inLists = inLists + ' ' + obj.name;
}
}
});
});
// console.log(inLists);
if(inLists) {
if(videoUrl.indexOf('javdb') > -1) {
document.querySelectorAll('.is-size-7.has-text-grey')[0].innerHTML = origninfo + ' ' + inLists;
} else if(videoUrl.indexOf('javbus') > -1 || videoUrl.match(/^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/)) {
document.getElementsByClassName('inListBus')[0].innerHTML = inLists;
} else if(videoUrl.indexOf('javlib') > -1) {
document.getElementsByClassName('col-md-3 info')[0].innerHTML = inLists;
}
}
document.addEventListener('mouseover', function (e) {
if(e.target.className === 'button is-info is-outlined button-c') {
e.target.style.borderColor = "#b5b5b5";
}
});
document.addEventListener('mouseout', function (e) {
if(e.target.className === 'button is-info is-outlined button-c') {
e.target.style.borderColor = "#dbdbdb";
}
});
document.addEventListener('click', function (e) {
if(e.target.className === 'button is-info is-outlined button-c') {
e.target.blur()
}
});
var nodeEle = document.createElement('div');
nodeEle.id = "Lists";
document.documentElement.appendChild(nodeEle);//元素加入body
var wid = window.screen.width/2 - 120;
var hei = window.screen.height/2 - 360;
var flag = false;
function listssettings() {
const nodeDiv = document.getElementById("Lists");
nodeDiv.innerHTML = '';
nodeDiv.setAttribute('style', '' +
'position:fixed;' +
'left:' + wid + 'px;' +
'top:'+ hei + 'px;' +
'width:277px;' +//最大宽度
'height:592px;' +//最大高度
'overflow:auto;' +
'font-size:14px!important;' +
'border-radius:5px!important;' +
//'border:none;' +
//'border:1px solid #ccc!important;' +
'border:1px solid #a9a9a9!important;' +
'background-color:#fff!important;' +
'z-index:2147483647!important;' +//显示最顶层
'');
nodeDiv.style.display = 'block';
var titlenode = document.createElement('div');
titlenode.style.border = '1px';
titlenode.style.marginTop = '8px';
titlenode.style.marginBottom = '8px';
const nameDiv = document.createElement('div');
nameDiv.style.marginLeft = '18px';
nameDiv.style.display = 'inline-block';
nameDiv.innerHTML = '清单 (' + allValue.length + ')';
nameDiv.style.marginRight = '5px';
nameDiv.addEventListener('click', () => {
//showList('丝袜', 0);
});
const addlist = document.createElement('img');
addlist.setAttribute('src', image);
addlist.setAttribute('style', '' + 'width:16px;' + 'height:16px;' + 'margin-bottom: 1px;' + 'vertical-align:text-bottom;' + '');
addlist.setAttribute('alt', '新增清单');
addlist.setAttribute('title', '新增清单');
addlist.style.marginRight = '90px';
addlist.addEventListener('click', () => {//新增
var newList = prompt('请输入信息');
var listFlag = false;
allValue = GM_listValues();
allValue.forEach(function (obj, i) {//数组
if(newList == obj) listFlag = true;
});
if(newList && !listFlag) {
GM_setValue(newList, []);
listssettings();
showclipboard('新增清单 ' + newList);
} else if(!newList) {
showclipboard('未输入', 1);
} else if(listFlag) {
showclipboard('已存在 ' + newList, 0);
}
});
var inputSpan = document.createElement('span');
inputSpan.innerHTML = '导入';
inputSpan.style.color = '#d1d1d1';
inputSpan.style.marginRight = '5px';
inputSpan.style.cursor = "pointer";
inputSpan.addEventListener('click', () => {
var input = document.createElement('input');
input.type = 'file';
input.addEventListener('change', function(event) {
var file = event.target.files[0];
var reader = new FileReader();
reader.addEventListener('load', function(event) {
var content = event.target.result;
var jsonArray = JSON.parse(content);
console.log(jsonArray); // 输出文件内容
Object.keys(jsonArray).forEach(function (key, index) {//数组
GM_setValue(key, jsonArray[key]);
});
showclipboard('已导入');
});
reader.readAsText(file);
});
input.click();
});
inputSpan.addEventListener('mouseover', () => {
inputSpan.style.color = 'black';
});
inputSpan.addEventListener('mouseout', () => {
inputSpan.style.color = '#d1d1d1';
});
var outputSpan = document.createElement('span');
outputSpan.innerHTML = '导出';
outputSpan.style.color = '#d1d1d1';
outputSpan.style.marginRight = '10px';
outputSpan.style.cursor = "pointer";
outputSpan.addEventListener('click', () => {
var javLists = {};
allValue = GM_listValues();
allValue.forEach(function (obj, i) {//数组
javLists[obj] = GM_getValue(obj);
});
// var blob = new Blob([JSON.stringify(javLists)], {type:"application/json;charset=utf-8"}).slice(2,-1); //text 内容没有{}不构成json
var blob = new Blob([JSON.stringify(javLists)], {type:"application/json;charset=utf-8"}); //json
var url = URL.createObjectURL(blob);
var elem = document.createElement("a");
elem.href = url;
elem.download = 'javList-Backup-' + timetext;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
showclipboard('已导出');
});
outputSpan.addEventListener('mouseover', () => {
outputSpan.style.color = 'black';
});
outputSpan.addEventListener('mouseout', () => {
outputSpan.style.color = '#d1d1d1';
});
var close = document.createElement('div');
close.innerHTML = '×';
close.title = 'Close';
close.className = 'close';
close.style.cursor = "pointer";
close.style.display = 'inline-block';
close.style.fontSize = 'initial';
close.style.verticalAlign = 'bottom';
close.addEventListener('click', () => {
const settingnodeDiv = document.getElementById("Lists");
settingnodeDiv.style.display = 'none';
listsShow = false;
});
close.addEventListener('mouseover', () => {
close.style.color = 'red';
});
close.addEventListener('mouseout', () => {
close.style.color = 'black';
});
titlenode.appendChild(nameDiv);
titlenode.appendChild(addlist);
titlenode.appendChild(inputSpan);
titlenode.appendChild(outputSpan);
titlenode.appendChild(close);
nodeDiv.appendChild(titlenode);
const blankLast = document.createElement('div');
blankLast.setAttribute('style', '' + 'height: 7px;' + '');
nodeDiv.appendChild(blankLast);
var newEle = {};
var newArray = [];
var newinLists = '';
allValue = GM_listValues();
allValue.forEach(function (obj, i) {//数组
var newListEle = {};
newListEle['name'] = obj;
newListEle['count'] = Object.values(GM_getValue(obj)).length;
newArray.push(newListEle);
});
newArray.sort(compare( "count"));
newArray.forEach(function (value, i) {//数组
var listsinfo = document.createElement('div');
listsinfo.style.marginLeft = '18px';
var list = document.createElement('span');
var count = document.createElement('span');
var modify = document.createElement('span');
var del = document.createElement('span');
var note = document.createElement('span');
list.innerHTML = value.name;
list.style.width = '80px';
list.style.textAlign = 'left';
list.style.cursor = "pointer";
list.style.display = 'inline-block';
Object.values(GM_getValue(value.name)).forEach(function (value1, index1) {//数组
//console.log(value.fanhao);
if(value1.fanhao == videoFanhao) {
list.style.color = '#48C78E';
list.setAttribute('id', '1');
}
});
var ele = GM_getValue(value.name);
list.addEventListener('click', () => {
if(list.id == 1) {
list.style.color = '#000';
list.setAttribute('id', '0');
Object.values(ele).forEach(function (value2, index2) {
if(videoFanhao == value2.fanhao) {
ele.splice(index2, 1)
GM_setValue(value.name, ele);
listssettings();
showclipboard('移除清单 ' + value.name, 0);
newArray.forEach(function (obj, i) {//数组
Object.values(GM_getValue(obj.name)).forEach(function (value, index) {//数组
//console.log(value.fanhao);
if(value.fanhao == videoFanhao) {
if(newinLists == ' ') {
newinLists = obj.name;
} else {
newinLists = newinLists + ' ' + obj.name;
}
}
});
});
console.log(newinLists);
if(videoUrl.indexOf('javdb') > -1) {
document.querySelectorAll('.is-size-7.has-text-grey')[0].innerHTML = origninfo + ' ' + newinLists;
} else if(videoUrl.indexOf('javbus') > -1 || videoUrl.match(/^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/)) {
document.getElementsByClassName('inListBus')[0].innerHTML = newinLists;
} else if(videoUrl.indexOf('javlib') > -1) {
document.getElementsByClassName('favoritetype')[4].innerHTML = newinLists;
}
}
});
listssettings();
} else {
list.setAttribute('id', '1');
newEle['fanhao'] = videoFanhao;
newEle['title'] = videoTitle;
newEle['date'] = videoDate;
newEle['url'] = videoUrl;
newEle['cover'] = videoCover;
newEle['adddate'] = videoaddDate;
ele.push(newEle);
GM_setValue(value.name, ele);
listssettings();
showclipboard('添加至清单 ' + value.name);
console.log('Url ' + videoUrl);
newArray.forEach(function (obj, i) {//数组
Object.values(GM_getValue(obj.name)).forEach(function (value, index) {//数组
//console.log(value.fanhao);
if(value.fanhao == videoFanhao) {
if(newinLists == ' ') {
newinLists = obj.name;
} else {
newinLists = newinLists + ' ' + obj.name;
}
}
});
});
console.log(newinLists);
if(videoUrl.indexOf('javdb') > -1) {
document.querySelectorAll('.is-size-7.has-text-grey')[0].innerHTML = origninfo + ' ' + newinLists;
} else if(videoUrl.indexOf('javbus') > -1 || videoUrl.match(/^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/)) {
document.getElementsByClassName('inListBus')[0].innerHTML = newinLists;
} else if(videoUrl.indexOf('javlib') > -1) {
document.getElementsByClassName('favoritetype')[4].innerHTML = newinLists;
}
}
});
count.innerHTML = '(' + value.count + ')';
count.className = 'count';
count.style.width = '55px';
count.style.textAlign = 'left';
count.style.cursor = "pointer";
count.style.display = 'inline-block';
count.addEventListener('click', () => {
var data = [];
data = GM_getValue(value.name);
data.sort(compare1("fanhao",0, 0));
showList(data, value.name, value.count, 1);
});
modify.innerHTML = '修改';
modify.style.width = '35px';
modify.style.textAlign = 'left';
modify.style.cursor = "pointer";
modify.style.display = 'inline-block';
modify.style.color = 'white';
modify.addEventListener('click', () => {
var newobj = prompt('修改 ' + value.name, value.name);
let newele = [];
var arr = GM_getValue(value.name);
newele = arr;
if(newobj && newobj != value.name) {
GM_deleteValue(value.name);
GM_setValue(newobj, newele);
showclipboard('修改清单 ' + value.name + '为 ' + newobj, 1);
listssettings();
} else {
showclipboard('修改失败', 0);
}
});
modify.addEventListener('mouseover', () => {
modify.style.color = 'blue';
});
modify.addEventListener('mouseout', () => {
modify.style.color = 'white';
});
del.innerHTML = '删除';
del.style.width = '35px';
del.style.textAlign = 'left';
del.style.cursor = "pointer";
del.style.display = 'inline-block';
del.style.color = 'white';
del.addEventListener('click', () => {
var arr = GM_getValue(value.name);
if(arr.length == 0) {
var result = confirm("是否确认删除清单 " + value.name);
if (result) {
GM_deleteValue(value.name);
showclipboard('删除清单 ' + value.name, 0);
listssettings();
}
} else {
showclipboard('清单番号页面数量不为零,无法删除', 1);
}
});
del.addEventListener('mouseover', () => {
del.style.color = 'red';
});
del.addEventListener('mouseout', () => {
del.style.color = 'white';
});
note.innerHTML = '备注';
note.style.width = '35px';
note.style.textAlign = 'left';
note.style.cursor = "pointer";
note.style.display = 'inline-block';
note.style.color = 'white';
note.addEventListener('click', () => {
});
note.addEventListener('mouseover', () => {
note.style.color = 'green';
});
note.addEventListener('mouseout', () => {
note.style.color = 'white';
});
listsinfo.appendChild(list);
listsinfo.appendChild(count);
listsinfo.appendChild(modify);
listsinfo.appendChild(del);
listsinfo.appendChild(note);
nodeDiv.appendChild(listsinfo);
});
nodeDiv.appendChild(blankLast);
}
var mouseFlag = false;
var mouseNode = document.getElementById('Lists');
mouseNode.onmouseenter = function(e){
mouseFlag = true;
console.log("ismouseenter");
}
mouseNode.onmouseleave = function(){
mouseFlag = false;
console.log("ismouseleave");
}
document.addEventListener('click', () => {
if(listsShow && !mouseFlag) {
const settingnodeDiv = document.getElementById("Lists");
settingnodeDiv.style.display = 'none';
listsShow = false;
}
});
function compare( propertyName) {
return function( object1, object2) {
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(value1 < value2) {
return 1;
} else if(value1 > value2) {
return - 1;
} else {
return 0;
}
}
}
function compare1(propertyName, m, n) {//番号排序逆序
return function( object1, object2) {
var value1;
var value2;
if(m == 0) {
value1 = object1[propertyName];
value2 = object2[propertyName];
} else if(m == 1) {
value1 = new Date(object1[propertyName]);
value2 = new Date(object2[propertyName]);
value1 = value1.getTime();
value2 = value2.getTime();
}
if(n == 0) {//0顺序1逆序
if(value1 > value2) {
return 1;
} else if(value1 < value2) {
return - 1;
} else {
return 0;
}
} else if(n == 1) {
if(value1 < value2) {
return 1;
} else if(value1 > value2) {
return - 1;
} else {
return 0;
}
}
}
}
var wrapEle = document.createElement('div');
wrapEle.id = "wrap";
wrapEle.setAttribute('style', '' +
'position:fixed;' +
'right:0px;' +
'top:0px;' +
'width:300px;' +//最大宽度
'background-color:rgba(255,255,255,0)!important;' +
'z-index:2147483647!important;' +//显示最顶层
'');
document.documentElement.appendChild(wrapEle);//元素加入body
function showclipboard(text, c) {
const wrapDiv = document.getElementById("wrap");
var div = document.createElement('div');
if(c == 0) {
div.setAttribute('style', '' +
'display:none!important;' +//去掉直接显示
'left:0px;' +
'top:0px;' +
'margin-left:auto;' +//table块靠右显示
'font-size:13px!important;' +
'overflow:auto!important;' +
'background-color:rgba(255,99,71,0.5)!important;' +
'font-family:sans-serif,Arial!important;' +
'font-weight:normal!important;' +
'font-color:rgba(255,255,255,1)!important;' +
'text-align:left!important;' +//左对齐
'color:#fff!important;' +//字体颜色白
'border-radius:3px!important;' +
'border: 1px solid rgb(10 10 10 / 10%) !important;'+
'max-height:1216px!important;' +
'z-index:2147483647!important;' +
'');
} else if(c == 1) {
div.setAttribute('style', '' +
'display:none!important;' +//去掉直接显示
'left:0px;' +
'top:0px;' +
'margin-left:auto;' +//table块靠右显示
'font-size:13px!important;' +
'overflow:auto!important;' +
'background-color:rgba(8,46,84,0.6)!important;' +
'font-family:sans-serif,Arial!important;' +
'font-weight:normal!important;' +
'text-align:left!important;' +//左对齐
'color:#fff!important;' +
'border-radius:3px!important;' +
'border: 1px solid rgb(10 10 10 / 10%) !important;'+
'max-height:1216px!important;' +
'z-index:2147483647!important;' +
'');
} else {
div.setAttribute('style', '' +
'display:none!important;' +//去掉直接显示
'left:0px;' +
'top:0px;' +
'margin-left:auto;' +//table块靠右显示
'font-size:13px!important;' +
'overflow:auto!important;' +
'background-color:rgba(255,255,255,0.7)!important;' +
'font-family:sans-serif,Arial!important;' +
'font-weight:normal!important;' +
'text-align:left!important;' +//左对齐
'color:#000!important;' +
'border-radius:3px!important;' +
'border: 1px solid rgb(10 10 10 / 10%) !important;'+
'max-height:1216px!important;' +
'z-index:2147483647!important;' +
'');
}
div.innerHTML = text;
div.style.display = 'table';// 换行显示结果
let fc = wrapDiv.firstElementChild
if (fc) {
wrapDiv.insertBefore(div,fc)
} else {
wrapDiv.appendChild(div);
}
setTimeout(() => {
div.parentNode.removeChild(div);
},6000)
}
document.addEventListener('keydown',function(event) {
var keynum;
if(window.event) // IE
keynum = event.keyCode;
else if(event.which) // Netscape/Firefox/Opera
keynum = event.which;
if (event.key === 'Escape') {
const settingnodeDiv = document.getElementById("Lists");
settingnodeDiv.style.display = 'none';
listsShow = false;
document.getElementById("listpage").style.display = 'none';
}
});
var showList = function(data, listname, n, s) {
document.getElementById("Lists").style.display = 'none';
listsShow = false;
var nodeEle1 = document.createElement('div');
nodeEle1.id = "listpage";
document.documentElement.appendChild(nodeEle1);//元素加入body
var newwid = (window.screen.width - 890)/2;
var newhei = (window.screen.height - 860)/2;
const newnodeDiv = document.getElementById("listpage");
newnodeDiv.innerHTML = '';
newnodeDiv.setAttribute('style', '' +
'position:fixed;' +
'left:' + newwid + 'px;' +
'top:'+ newhei + 'px;' +
'width:905px;' +//最大宽度
'height:715px;' +//最大高度
'overflow:auto;' +
'font-size:14px!important;' +
'border-radius:5px!important;' +
'border:1px solid #a9a9a9!important;' +
'background-color:#fff!important;' +
'z-index:2147483647!important;' +//显示最顶层
'');
var div0 = document.createElement('div');
var divl = document.createElement('span');
var download = document.createElement('span');
var downloadtxt = document.createElement('span');
//var downxls = document.createElement('span');
var downloadjson = document.createElement('span');
var sort = document.createElement('span');
var sortfanhao = document.createElement('span');
var sorttimerorder = document.createElement('span');
var sorttimerreversedorder = document.createElement('span');
var sortaddtimerorder = document.createElement('span');
var sortaddtimerreversedorder = document.createElement('span');
var divc = document.createElement('span');
var stri = '';
var queryi = [];
divl.innerText = listname + ' (' + n + ')';
divl.style.width = "180px";
divl.style.paddingLeft = "6px";
divl.style.display = 'inline-block';
download.innerHTML = '下载';
download.style.color = '#000';
download.style.marginRight = '10px';
downloadtxt.innerHTML = 'TXT';
downloadtxt.style.color = '#d1d1d1';
downloadtxt.style.marginRight = '10px';
downloadtxt.style.cursor = "pointer";
downloadtxt.addEventListener('click', () => {
GM_getValue(listname).forEach(function (value, i) {//数组
queryi.push(value.fanhao + ',' + value.title.trim());
});
queryi.sort();
for(var i=0;i<queryi.length;i++) {
stri = stri + queryi[i] + '\n';
}
var downLinki = document.createElement('a');
downLinki.download = listname;
//字符内容转换为blod地址
var blobi = new Blob([stri]);
downLinki.href = URL.createObjectURL(blobi);
// 链接插入到页面
document.body.appendChild(downLinki);
downLinki.click();
// 移除下载链接
document.body.removeChild(downLinki);
showclipboard('已下载TXT');
});
downloadtxt.addEventListener('mouseover', () => {
downloadtxt.style.color = 'black';
});
downloadtxt.addEventListener('mouseout', () => {
downloadtxt.style.color = '#d1d1d1';
});
downloadjson.innerHTML = 'JSON';
downloadjson.style.color = '#d1d1d1';
downloadjson.style.marginRight = '10px';
downloadjson.style.cursor = "pointer";
downloadjson.addEventListener('click', () => {
var javLists = {};
javLists[listname] = GM_getValue(listname);
var blob = new Blob([JSON.stringify(javLists)], {type:"application/json;charset=utf-8"}); //json
var url = URL.createObjectURL(blob);
var elem = document.createElement("a");
elem.href = url;
elem.download = 'javList-Backup-' + timetext;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
showclipboard('已下载JSON');
});
downloadjson.addEventListener('mouseover', () => {
downloadjson.style.color = 'black';
});
downloadjson.addEventListener('mouseout', () => {
downloadjson.style.color = '#d1d1d1';
});
sort.innerHTML = '排序';
sort.style.color = '#000';
sort.style.marginRight = '10px';
sortfanhao.innerHTML = '番号顺序';
if(s == 1)
sortfanhao.style.color = '#d1d1d1';
else
sortfanhao.style.color = '#000';
sortfanhao.style.marginRight = '10px';
sortfanhao.style.cursor = "pointer";
sortfanhao.addEventListener('click', () => {
var data = [];
data = GM_getValue(listname);
data.sort(compare1("fanhao",0, 0));
showList(data, listname, n, 1);
});
sorttimerorder.innerHTML = '时间顺序';
if(s == 2)
sorttimerorder.style.color = '#d1d1d1';
else
sorttimerorder.style.color = '#000';
sorttimerorder.style.marginRight = '10px';
sorttimerorder.style.cursor = "pointer";
sorttimerorder.addEventListener('click', () => {
var data = [];
data = GM_getValue(listname);
data.sort(compare1("date",1, 0));
showList(data, listname, n, 2);
});
sorttimerreversedorder.innerHTML = '时间逆序';
if(s == 3)
sorttimerreversedorder.style.color = '#d1d1d1';
else
sorttimerreversedorder.style.color = '#000';
sorttimerreversedorder.style.marginRight = '10px';
sorttimerreversedorder.style.cursor = "pointer";
sorttimerreversedorder.addEventListener('click', () => {
var data = [];
data = GM_getValue(listname);
data.sort(compare1("date",1, 1));
showList(data, listname, n, 3);
});
sortaddtimerorder.innerHTML = '添加顺序';
if(s == 4)
sortaddtimerorder.style.color = '#d1d1d1';
else
sortaddtimerorder.style.color = '#000';
sortaddtimerorder.style.marginRight = '10px';
sortaddtimerorder.style.cursor = "pointer";
sortaddtimerorder.addEventListener('click', () => {
var data = [];
data = GM_getValue(listname);
data.sort(compare1("adddate",1, 0));
showList(data, listname, n, 4);
});
sortaddtimerreversedorder.innerHTML = '添加逆序';
if(s == 5)
sortaddtimerreversedorder.style.color = '#d1d1d1';
else
sortaddtimerreversedorder.style.color = '#000';
sortaddtimerreversedorder.style.marginRight = '10px';
sortaddtimerreversedorder.style.cursor = "pointer";
sortaddtimerreversedorder.addEventListener('click', () => {
var data = [];
data = GM_getValue(listname);
data.sort(compare1("adddate",1, 1));
showList(data, listname, n, 5);
});
divc.innerHTML = '×';
divc.title = 'Close';
divc.className = 'close';
divc.style.cursor = "pointer";
divc.style.display = 'inline-block';
divc.style.fontSize = 'initial';
divc.style.verticalAlign = 'bottom';
divc.style.marginLeft = '215px';
divc.addEventListener('click', () => {
document.getElementById("listpage").style.display = 'none';
});
divc.addEventListener('mouseover', () => {
divc.style.color = 'red';
});
divc.addEventListener('mouseout', () => {
divc.style.color = 'black';
});
div0.appendChild(divl);
div0.appendChild(download);
div0.appendChild(downloadtxt);
div0.appendChild(downloadjson);
div0.appendChild(sort);
div0.appendChild(sortfanhao);
div0.appendChild(sorttimerorder);
div0.appendChild(sorttimerreversedorder);
div0.appendChild(sortaddtimerorder);
div0.appendChild(sortaddtimerreversedorder);
div0.appendChild(divc);
newnodeDiv.appendChild(div0);
var newDiv = document.createElement('div');
newDiv.id = "List";
newDiv.style.paddingLeft = "6px";
newDiv.style.width = '890px';
newDiv.style.display = 'flex';
newDiv.style.flexWrap = 'wrap';
newDiv.style.justifyContent = 'flex-start';
newnodeDiv.appendChild(newDiv);
let div = document.getElementById("List"),
currentPage = 1,
pageCount = 12,
list = null,
li = null;
function paginationByJS(data, div, currentPage, pageCount, list, li) {
//拿到我们的总页码
function getTotalPage(data, pageCount){
if (Math.ceil(data.length / pageCount) < 0) return console.error('getTotalPage 出现问题');
return Math.ceil(data.length / pageCount);
}
//每次都能够返回 一个包含要取到数据的索引
function getArrIndex(currentPage, data, totalPge, pageCount){
let begin, end;
if (!currentPage > 0 && !data.length && !totalPge > 0 && !pageCount > 0) {
return console.error('您传入的参数有误');
}
//当前页在头尾的情况
if (currentPage === 1) {
return (totalPge === 1)? {
begin: 0,
end: data.length - 1
} : {
begin: 0,
end: pageCount -1
}
}
if (currentPage === totalPge){
begin = ((currentPage -1) * pageCount);
end = data.length -1;
return {
begin, end
}
}
//在中间的情况
if (currentPage > 1 && currentPage < totalPge){
begin = (currentPage - 1) * pageCount;
end = currentPage * pageCount -1;
return { begin, end };
}
}
//增删类名修改
function isActive(){
//拿到目前正在作用active的元素 并且获取他的innerText
let activeBtn = document.getElementsByClassName('active')[0],
oldActiveIndex = activeBtn? parseInt(activeBtn.innerText) : null;
//如果两次点击同一个按钮则不做操作
if (oldActiveIndex === currentPage){ return; }
//若按钮存在 么此先做一个删除
if (activeBtn){ activeBtn.classList.remove('active'); }
list = Array.from(document.getElementsByTagName('li'));
//遍历添加
(list.find(i=> parseInt(i.innerText) === currentPage)).classList.add('active');
var eleli = document.getElementsByTagName('li');
//console.log(eleli)
if(eleli) {
Object.values(eleli).forEach(function (value, index) {//数组
value.addEventListener('mouseover', () => {
value.style.border = '1px solid #d1d1d1';
value.style.padding = '4px';
});
value.addEventListener('mouseout', () => {
value.style.border = '0px solid #d1d1d1';
value.style.padding = '5px';
});
// console.log(value.className)
if(value.className == 'active') {
value.style.background = '#CCE8FF';
} else {
value.style.background = '#FFF';
}
});
}
}
//返回渲染数组
function getRenderList(){
let temp = getArrIndex(currentPage, data, getTotalPage(data, pageCount), pageCount);
return data.slice(temp.begin, temp.end + 1); //slice方法取头不拿尾
}
//第一次创造列表数据
function createBtn(totalPage){
//let ul = document.getElementsByTagName('ul')[0];
var newUl = document.createElement('ul');
newUl.id = "ul-list";
newUl.setAttribute('style', '' +
'padding: 0;' +
'position: relative;' +
'top: 10px;' +
//'left: 38%;' +
'overflow: hidden;' +
'list-style: none;' +
'border: 0px solid #c1c1c1;' +
'display: inline-block;' +
'margin-top: 5px;' +
'height: 30px;' +
'');
if(getTotalPage(data, pageCount) < 3) {
newUl.style.left = '45%';
} else if(getTotalPage(data, pageCount) > 3 && getTotalPage(data, pageCount) < 6) {
newUl.style.left = '42%';
} else if(getTotalPage(data, pageCount) > 6 && getTotalPage(data, pageCount) < 8) {
newUl.style.left = '40%';
} else {
newUl.style.left = '38%';
}
newnodeDiv.appendChild(newUl);
const ul = document.getElementById("ul-list");
//每次都至少显示五个 当前 当前的前2个 当前的后2个
for (let i =1; i<=totalPage; i++){
//开头
if (i === 1){
li = document.createElement('li');
li.setAttribute('style', '' +
'float: left;' +
'padding: 5px;' +
'color: #273346;' +
'font-size: 15px;' +
'cursor: pointer;' +
'');
li.innerText = '<';
ul.appendChild(li);
}
//拿到页码按钮集合
li = document.createElement('li');
li.setAttribute('style', '' +
'float: left;' +
'padding: 5px;' +
'color: #273346;' +
'font-size: 15px;' +
'cursor: pointer;' +
'');
li.innerText = i;
//保证至少页码为8的时候才出现省略号
if(i > 6 && totalPage > 7){
li.innerText = '...';
ul.appendChild(li);
li = document.createElement('li');
li.setAttribute('style', '' +
'float: left;' +
'padding: 5px;' +
'color: #273346;' +
'font-size: 15px;' +
'cursor: pointer;' +
'');
li.innerText = totalPage;
ul.appendChild(li);
li = document.createElement('li');
li.setAttribute('style', '' +
'float: left;' +
'padding: 5px;' +
'color: #273346;' +
'font-size: 15px;' +
'cursor: pointer;' +
'');
li.innerText = '>';
ul.appendChild(li);
break;
}
ul.appendChild(li);
//到头了您
if (i === totalPage){
li = document.createElement('li');
li.setAttribute('style', '' +
'float: left;' +
'padding: 5px;' +
'color: #273346;' +
'font-size: 15px;' +
'cursor: pointer;' +
'');
li.innerText = '>';
ul.appendChild(li);
}
}
}
function btnControl(totalPage, currentPage) {
//小于7 就直接全部排出来就ok 不用搞这些花里胡哨的
if (totalPage < 8)return;
let li,
before = currentPage - 2, //头
after = currentPage + 2, //尾巴
list = document.getElementsByTagName('li'), //数据列表
arr = Array.from(list).filter((i)=>{ //实际页码改变的按钮
var index = parseInt(i.innerText);
return (index !== 1 && index !== totalPage && index.toString() !== 'NaN');
}),
headFlag = list[2],
endFlag = list[list.length - 3];
//控制插入 '...'
// if (currentPage > 4 && headFlag.innerText !== '...'){
// li = document.createElement('li');
// li.setAttribute('style', '' +
// 'float: left;' +
// 'padding: 5px;' +
// 'color: #273346;' +
// 'font-size: 15px;' +
// 'cursor: pointer;' +
// '');
// li.innerText = '...';
// list[0].parentElement.insertBefore(li, headFlag);
// }
// if ((currentPage > 1) && endFlag.innerText !== '...'){
// li = document.createElement('li');
// li.setAttribute('style', '' +
// 'float: left;' +
// 'padding: 5px;' +
// 'color: #273346;' +
// 'font-size: 15px;' +
// 'cursor: pointer;' +
// '');
// li.innerText = '...';
// list[0].parentElement.insertBefore(li, list[list.length - 2]); //加入之前的所以是 list.length-2
// }
//控制删除 '...'
if (currentPage < 5 && headFlag.innerText === '...'){
headFlag.parentNode.removeChild(headFlag);
}
if (after + 1 >= totalPage && endFlag.innerText === '...'){
endFlag.parentNode.removeChild(endFlag);
}
//关键的控制 基于他们展示时当前页 和 头尾 在边界位置以及普通位置的情况来做考虑
//在中间的时候 以currentPage为中心 前后2格
if (before > 1 && after < totalPage){
for (let i = currentPage - 2, j = 0; i <= currentPage + 2; i++, j++){
arr[j].innerText = i;
}
}
//头碰到边界了 说明要从2开始 这个currentPage是3了
if (before === 1){
for (let i = currentPage - 1, j = 0; i <= currentPage + 3; i++, j++){
arr[j].innerText = i;
}
}
//尾巴碰到边界了 说明要从currentPage回头数三个开始,不然会生成一个和totalPage相同的page,就是bug了。
if (after === totalPage){
for (let i = currentPage - 3, j = 0; i < currentPage + 2; i++, j++){
arr[j].innerText = i;
}
}
//当前页首尾~同上
if (currentPage === 1){
for (let i = currentPage + 1, j = 0; i <= arr.length + 1; i++, j++){
arr[j].innerText = i;
}
}
if (currentPage === totalPage){
for (let i = currentPage - arr.length, j = 0; i < totalPage; i++, j++){
arr[j].innerText = i;
}
}
}
window.setTimeout(function(){
var eleli = document.getElementsByTagName('li');
//console.log(eleli)
if(eleli) {
Object.values(eleli).forEach(function (value, index) {//数组
value.addEventListener('mouseover', () => {
value.style.border = '1px solid #d1d1d1';
value.style.padding = '4px';
});
value.addEventListener('mouseout', () => {
value.style.border = '0px solid #d1d1d1';
value.style.padding = '5px';
});
// console.log(value.className)
if(value.className == 'active') {
value.style.background = '#CCE8FF';
}
});
}
}, 100);
function arrowControl(target, totalPage){
let event = target || window.event;
if (event) {
target = event.target;
}
if (target) {
switch (target.innerText){
case '<': currentPage = currentPage === 1? 1 : currentPage - 1;break;
case '>': currentPage = currentPage === totalPage? totalPage : currentPage + 1; break;
case '...': break;
default: currentPage = parseInt(target.innerText);
}
}
}
function displayData() {
let arr = getRenderList(), p;//最后得到的数据
div.innerHTML = ''; //重置div内容区域
arr.forEach(i =>{
//p = document.createElement('p');
var div1 = document.createElement('div');
var linkimg1 = document.createElement('a');
var img1 = document.createElement('img');
var s1 = document.createElement('div');
var s2 = document.createElement('div');
var t1 = document.createElement('span');
var t2 = document.createElement('span');
var delfanhao = document.createElement('div');
div1.style.border = '3px solid #fff';
linkimg1.href = i.url;
linkimg1.onclick = function(){
GM_openInTab(i.url, {
active: false
});
return false;
}
img1.src = i.cover;
img1.style.width = '215px';
s1.innerText = i.fanhao;
t1.innerText = i.date;
t1.style.fontSize = '10px';
t2.innerText = i.adddate;
t2.style.fontSize = '10px';
t2.style.marginLeft = '60px';
delfanhao.innerHTML = '删除';
delfanhao.title = '删除';
delfanhao.className = '删除';
delfanhao.style.cursor = "pointer";
delfanhao.style.fontSize = '13px';
delfanhao.style.textAlign = 'center';
delfanhao.addEventListener('click', () => {
var ele = GM_getValue(listname);
delfanhao.parentNode.remove();
var result1 = confirm("是否确认删除清单 " + listname);
if (result1) {
Object.values(ele).forEach(function (value, index) {
if(i.fanhao == value.fanhao) {
ele.splice(index, 1)
GM_setValue(listname, ele);
showclipboard('移除清单 ' + listname, 0);
}
});
}
});
delfanhao.addEventListener('mouseover', () => {
delfanhao.style.color = 'red';
});
delfanhao.addEventListener('mouseout', () => {
delfanhao.style.color = 'black';
});
linkimg1.appendChild(img1);
div1.appendChild(linkimg1);
div1.appendChild(s1);
s2.appendChild(t1);
s2.appendChild(t2);
div1.appendChild(s2);
div1.appendChild(delfanhao);
div.appendChild(div1);
}); //展示一下
}
//这个是事件的监听函数
function pagination(target){
let totalPage = getTotalPage(data, pageCount);
//兼容拿到事件
arrowControl(target, totalPage);
btnControl(totalPage, parseInt(currentPage));
isActive();
displayData();
}
//首次注册生成第一页数据和分页栏
function firstInit() {
createBtn(parseInt(getTotalPage(data, pageCount)));
isActive();
displayData();
}
//window.onload = function () {
firstInit();
Array.from(document.getElementsByTagName('li')).forEach(i => i.onclick = function (e) {
pagination(e)
});
//}
}
paginationByJS(data, div, currentPage, pageCount, list, li);
}
})();