// ==UserScript==
// @name CSDN助手
// @namespace http://tampermonkey.net/
// @version 0.21
// @description CSDN未登录复制、复制代码不带原文链接、禁用登录弹窗、未登录查看所有评论、评论完全展开
// @author Gandalf_jiajun
// @include https://blog.csdn.net/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
const appendStyle = (tagArr) => {
tagArr.forEach(element => {
element.style.userSelect = 'text';
element.style.webkitUserSelect = 'text';
});
};
const translateParams = (params) => {
let str = '?';
for(let i in params) {
str += i + '=' + params[i] + '&';
}
return str.substring(0, str.length - 1);
};
const request = (method, url, params) => {
return new Promise((resolve, reject) => {
let newUrl = params ? url + translateParams(params) : url;
const xml = new XMLHttpRequest;
xml.open(method, newUrl, true);
xml.send();
xml.onreadystatechange = () => {
if(xml.readyState == 4 && xml.status == 200) {
resolve(JSON.parse(xml.responseText));
}
};
})
};
let tag_a = document.querySelectorAll('#content_views pre');
let tag_b = document.querySelectorAll('#content_views pre code');
// console.log(tag_a, tag_b);
appendStyle(tag_a);
appendStyle(tag_b);
// 替换表情包
const replaceDoge = (str) => { // [face]emoji:062.png[/face]
return str.replace(/\[face\]([^\]]+):([^\[]+)\[\/face\]/g, ``)
};
const replaceComment = (str) => {
let newCom;
newCom = replaceDoge(str);
return newCom;
};
// 生成子项dom
const createSubDom = (arr) => {
let dom = `