// ==UserScript== // @name CSDN摸鱼影视 // @namespace http://greasyfork.org/ // @version 1.0 // @description CSDN摸鱼影视,只限于CSDN进行摸鱼,摸鱼行动请量力而行 // @author Roc.w // @match http*://*.csdn.net/* // @icon https://g.csdnimg.cn/static/logo/favicon32.ico // @grant none // @license AGPL License // @downloadURL none // ==/UserScript== console.log('欢迎使用树懒脚本! 联系作者:771185858@qq.com') console.log('采用纯原生JS写法 高性能、高可用、高兼容!') init() /*************************一条华丽的分割线 基层代码块*****************************/ //初始化元素 function init() { //创建按钮元素 craeateButtonElement() //创建消息提示元素 craeateMsgElement() //创建搜索元素 craeateSearchElement() } //创建按钮元素 function craeateButtonElement(){ let btnParam = { ele: document.createElement('div'), css: "display: flex;" + "cursor: pointer;" + "position: fixed;" + "right:40px;" + "top: 100px;"+ "background: #aaa;" + "width: 50px;" + "height: 50px;" + "z-index:1000;" + "border-radius: 100%;", iconcss:"margin: auto;"+ "width: 35px;"+ "height: 35px;"+ "line-height: 35px;"+ "background: #fff;"+ "animation:kite 5s infinite;"+ "text-align: center;"+ "font-size: 22px;"+ "border-radius: 100%;" }; document.querySelector('body').appendChild(((ele)=> { ele.id = 'sloth-topic'; ele.innerHTML = '
🎶🦥
'; ele.style.cssText = btnParam.css; return ele; })(btnParam.ele)); //动态创建keyframes动画 //document.styleSheets[0].insertRule(`@keyframes kite{100%{transform:rotate(360deg);}}`,0) const style = document.createElement('style') style.appendChild(document.createTextNode(`@keyframes kite{100%{transform:rotate(360deg);}}`)); document.getElementById('sloth-topic').appendChild(style); //按钮点击操作 document.getElementById("sloth-topic").addEventListener("click", function(){ start(); }); } //创建消息元素 function craeateMsgElement(){ let msgParam = { ele: document.createElement('div'), css: "background: rgba(0,0,0,0.5);" + "position: fixed;" + "inset: 0px;" + "margin: auto;" + "padding: 10px;" + "border-radius: 5px;" + "color: #fff;" + "font-size: 14px;" + "letter-spacing: 1.5px;"+ "display: none;"+ "z-index: 99999;" }; document.querySelector('body').appendChild(((ele)=> { ele.id = 'sloth-msg'; ele.innerHTML = ''; ele.style.cssText = msgParam.css; return ele; })(msgParam.ele)); } //消息提示 function msg(msg,timeout=2500){ document.getElementById('sloth-msg').style.display='inline-table'; document.getElementById('sloth-msg').innerHTML=msg; setTimeout(() => { document.getElementById('sloth-msg').style.display='none'; }, timeout); } //创建搜索元素 function craeateSearchElement(){ let searchParam = { ele: document.createElement('div'), boxcss: "background: #888;" + "position: fixed;" + "inset: -50% 0px 0px 0px;" + "margin: auto;" + "width: 500px;" + "height: 50px;" + "border-radius: 10px;" + "display: none;" + "padding-left: 7px;"+ "z-index: 999;", inputcss:"margin: auto;"+ "flex: 0.75;" + "height: 35px;" + "margin: auto;" + "border: 0;" + "border-radius: 10px 0 0 10px;" + "padding: 4px;" + "outline: none;" + "font-size: 20px;", btncss:"flex: 0.25;" + "margin: auto;" + "height: 50px;" + "background: #4e6ef2;" + "text-align: center;" + "line-height: 50px;" + "cursor: pointer;" + "color: #fff;" + "border-radius: 0 10px 10px 0;" }; document.querySelector('body').appendChild(((ele)=> { ele.id = 'sloth-search-box'; ele.innerHTML = '
解析一下
'; ele.style.cssText = searchParam.boxcss; return ele; })(searchParam.ele)); //按钮点击操作 document.getElementById("sloth-search-btn").addEventListener("click", function(){ search(); }); } //HTTP请求 function request(url, param, callback,type='GET') { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ callback && callback(xhr.responseText); } } } xhr.open(type, url, true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); xhr.send(param); } /*************************一条华丽的分割线 业务代码块*****************************/ //点击开始按钮 function start(){ var txt = document.getElementById('sloth-search-box').style.display; if (txt=='none') { document.getElementById('sloth-search-box').style.display='flex' }else{ document.getElementById('sloth-search-box').style.display='none' } } //解析一下,并植入CSDN function search(){ var url = document.getElementById('sloth-search-input').value if(url==''){ return msg('请输入解析地址'); } //植入iframe let iframeParam = { ele: document.createElement('iframe'), css: "width: 100%;"+ "height: 300px;" }; document.getElementsByTagName('pre')[0].prepend(((ele)=> { ele.id = 'sloth-iframe'; ele.innerHTML = ''; ele.frameborder='0'; ele.scrolling='no' ele.src='https://jx.jsonplayer.com/player/?url='+url ele.style.cssText = iframeParam.css; return ele; })(iframeParam.ele)); document.getElementById('sloth-search-box').style.display='none' document.getElementById('sloth-search-input').value=''; //追加代码行号 var children = document.getElementsByTagName('pre')[0].children for (let i = 0; i < children.length; i++) { if (children[i].className.search('pre-numbering')>-1) { var len = children[i].children.length; for (let j = 0; j < 14; j++) { len++ //children[i].append('
  • '+len+'
  • ') $(children[i]).eq($(children[i]).length - 1).append('
  • '+len+'
  • ') } } } }