├── LICENSE ├── README.md ├── dist ├── CSDN-helper@1.1.0.user.js ├── CSDN-helper@1.1.6.user.js ├── README.md ├── app@1.0.css ├── app@1.0.html └── app@1.0.js ├── docs ├── .nojekyll ├── README.md ├── _coverpage.md ├── _sidebar.md ├── comment.md ├── import.md ├── index.html ├── like.md └── market.md ├── img ├── README.md ├── cover.png ├── csdn.png └── favicon.ico ├── main.user.js └── market ├── README.md └── ZainCheung ├── HelloWorld ├── HelloWorld@1.0.json └── helloWorld.md ├── 网友评论 ├── 网友评论.md └── 网友评论@1.0.json └── 马保国 ├── 马保国.md └── 马保国@1.0.json /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 张远超 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 4 |

5 |

6 | Version 7 | Author 8 | Vue 9 | Element 10 |

11 | 12 | [💡 简介](#简介) 13 | 14 | [:octocat: 安装](#安装) 15 | 16 | [📚 功能](#功能) 17 | 18 | [📖 使用文档](https://zaincheung.github.io/CSDN-helper/) 19 | 20 | [🐛 版本历史与更新日志](https://github.com/ZainCheung/CSDN-helper/releases) 21 | 22 | [👻 责任说明](#责任说明) 23 | 24 | # 简介 25 | 这是一款可以全自动点赞评论刷积分刷等级的插件,进入到CSDN博客页面后便可以自动点赞评论 26 | 27 | 可以选定点赞评论的范围,比如文章字数,浏览数或者文章的发布日期等等 28 | 29 | # 安装 30 | 31 | 安装并使用这款插件,需要你的浏览器装有油猴[Tampermonkey](https://tampermonkey.net/)插件 32 | 33 | | [正式版](https://greasyfork.org/zh-CN/scripts/401373-csdn博客刷积分刷等级助手) | [GitHub版](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/main.user.js) | 34 | | :----------------------------------------------------------: | :----------------------------------------------------------: | 35 | | 在油猴上正式发布的版本, 最稳定, 更新频率较低 | 新增内容测试的地方, 更新频率高, 但功能不稳定 | 36 | 37 | 38 | **本脚本的点赞评论均需要在登陆之后的环境下进行,否则没反应属于正常** 39 | 40 | # 功能 41 | 1. 快速刷积分刷等级 42 | 2. 当天点赞次数用尽之后会帮你关闭自动点赞 43 | 3. 评论的内容你来提前设定,此后便会随机抽选一条内容评论 44 | 4. 纯模拟用户操作,安全并且不会引发账号异常 45 | 5. 营造博客内大家热情友好的一面 46 | 6. 增加互动,为自己的博客带来流量收益 47 | 48 | # 评论市场 49 | 50 | * 评论市场提供评论模板,可以快速导入到你的插件中 51 | * 欢迎提交你的评论库到评论市场 52 | 53 | ## 使用方法 54 | 55 | 找到你感兴趣的评论,可浏览内容,可复制链接导入进你的插件 56 | 57 | ## 所有评论 58 | 59 | | 作者 | 预览 | 类别 | 条目 | 版本 | 导入链接 | 60 | | :-----------------------------------------: | :----------------------------------------------------------: | :--: | :--: | ---- | :----------------------------------------------------------: | 61 | | [ZainCheung](https://github.com/ZainCheung) | [helloWorld](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/HelloWorld/helloWorld.md) | 所有 | 28 | 1.0 | **[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/HelloWorld@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/HelloWorld@1.0.json)** | 62 | | [ZainCheung](https://github.com/ZainCheung) | [马保国](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/马保国/马保国.md) | 随机 | 1 | 1.0 | **[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json)** | 63 | | [ZainCheung](https://github.com/ZainCheung) | [网友评论](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/网友评论/网友评论.md) | 随机 | 13 | 1.0 | **[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json)** | 64 | 65 | ## 加入我们 66 | 67 | 欢迎参与开源项目,提交自己制作的评论库,为开源贡献自己的一份力量。 68 | 69 | ### 提交流程: 70 | 71 | 1. 在项目的`market`目录下新建一个以你的名字(用户名或者花名都可以)为名的文件夹,里面存放的就是你的评论库。 72 | 2. 为每个库建立一个独立的文件夹,以评论库名命名,库下面放置的是各个版本的json文件以及一个README文件。 73 | 3. 提交到项目,作者会帮你更新到主页面列表中。 74 | 75 | ### json结构: 76 | 77 | ```json 78 | { 79 | "commentList": { 80 | "type": "random", 81 | "count": 2, 82 | "author": "作者", 83 | "name": "评论库名", 84 | "version": "1.0", 85 | "R": [ 86 | { 87 | "text": "这是第一条评论" 88 | }, 89 | { 90 | "text": "这是第二条评论" 91 | } 92 | ] 93 | } 94 | } 95 | ``` 96 | 97 | `commentList`:最外层结构 98 | 99 | `type`:库的类型,小写字母,推荐 `random` 100 | 101 | | 所有 | 随机 | 分段 | 少等字数 | 中等字数 | 多等字数 | 102 | | :-----: | :----: | :------: | :------: | :------: | :------: | 103 | | ~~all~~ | random | ~~word~~ | ~~s~~ | ~~m~~ | ~~l~~ | 104 | 105 | 注意:目前只使用**随机评论**,其他所有类型将在下一个版本废弃,请不要使用!!! 106 | 107 | `count`: 评论数量 108 | 109 | `author`: 作者 110 | 111 | `name`: 评论库名 112 | 113 | `version`: 版本,建议从1.0开始 114 | 115 | 评论内容:从示例中可以看到,在`R`列表里面有2条评论 116 | 117 | ### README结构 118 | 119 | ``` 120 | ### 评论库:评论库名 121 | 122 | ### 作者:作者名 123 | 124 | ### 类别:随机 125 | 126 | ### 条目:2 127 | 128 | ### 版本:1.0 129 | 130 | ### 导入链接:[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/作者名/评论库名/评论库@版本.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/作者名/评论库名/评论库@版本.json) 131 | 132 | #### 随机: 133 | 134 | 1. 这是第一条评论 135 | 2. 这是第二条评论 136 | ``` 137 | 138 | 139 | 140 | # 责任说明 141 | 该脚本仅用于学习开发,请不要借此发布不良内容,如因被举报导致关进小黑屋与此项目无关 142 | -------------------------------------------------------------------------------- /dist/CSDN-helper@1.1.0.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name CSDN博客自动点赞评论助手 3 | // @namespace http://tampermonkey.net/ 4 | // @version 1.1.0 5 | // @description 打开任意一个CSDN博客页面,就可以进行自动点赞评论,可以自定义策略与评论内容,高度可定制化 6 | // @author ZainCheung 7 | // @match *://blog.csdn.net/*/article/details/* 8 | // @grant GM.xmlHttpRequest 9 | // @connect csdn.net 10 | // @require https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js 11 | // @resource html https://cdn.jsdelivr.net/gh/superBoyJack/CSDN-helper/dist/app@1.0.html 12 | // @resource css https://cdn.jsdelivr.net/gh/superBoyJack/CSDN-helper/dist/app@1.0.css 13 | // @resource js https://cdn.jsdelivr.net/gh/superBoyJack/CSDN-helper/dist/app@1.0.js 14 | // @grant GM_getValue 15 | // @grant GM_setValue 16 | // @grant GM.getValue 17 | // @grant GM.setValue 18 | // @grant unsafeWindow 19 | // @grant GM_getResourceText 20 | // @icon https://cdn.jsdelivr.net/gh/superBoyJack/CDN/img/20200428232059.png 21 | // ==/UserScript== 22 | 23 | // 获取网页的网址 24 | var articalUrl = window.location.href; 25 | var host = articalUrl.split("article/details/")[0]; // 域名 26 | var artId = articalUrl.split("article/details/")[1].split("?")[0]; 27 | // 组装评论请求 28 | var getCommentUrl = host + "phoenix/comment/list/" + artId + "?page=1&size=1000&tree_type=1"; 29 | // 当前登陆用户的账号 30 | var myName = document.querySelector("#csdn_container_tool > div > ul > li:nth-child(5) > div.userControl > div:nth-child(2) > div:nth-child(1) > a").href.split("blog.csdn.net/")[1]; 31 | // 文章的作者账号 32 | var UserName = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > a.follow-nickName").href.split("csdn.net/")[1]; 33 | // 文章全文字数 34 | var blogLength = document.querySelector("#article_content").innerText.replace(/\ +/g,"").replace(/[\r\n]/g,"").length; 35 | // 文章阅读量 36 | var blogRead = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > span.read-count").innerText; 37 | // 文章最后发布日期 38 | var blogDate = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > span.time").innerText.slice(0,10); 39 | // 评论文本框 40 | var commentArea = document.querySelector("#comment_content"); 41 | // 评论按钮 42 | var commentBtn = document.querySelector("#commentform > div > div.right-box > a > input"); 43 | // 是否评论,默认评论 44 | var toComment = true; 45 | 46 | function init(){ 47 | // 新的一天会自动打开点赞开关 48 | if(localStorage.today){ 49 | var today = new Date(); 50 | if(localStorage.today != today.getDate()){ 51 | localStorage.likeSwitch = 100; 52 | localStorage.likeCustom = 100; 53 | localStorage.today = today.getDate(); 54 | } 55 | } 56 | 57 | if(localStorage.likeSwitch == 100){ 58 | if(localStorage.likeCustom == 100){ 59 | console.log("blogLength:" + blogLength); 60 | console.log("blogRead:" + blogRead); 61 | console.log("localStorage.likeWordNumber:" + localStorage.likeWordNumber); 62 | console.log("localStorage.likeReadNumber:" + localStorage.likeReadNumber); 63 | if((parseInt(blogLength) >= parseInt(localStorage.likeWordNumber)) && (parseInt(blogRead) >= parseInt(localStorage.likeReadNumber))){ 64 | if((new Date(blogDate).getTime()) >= (new Date(localStorage.likeDate).getTime())){ 65 | likeEvent(); 66 | } 67 | } 68 | }else{ 69 | likeEvent(); 70 | } 71 | } 72 | 73 | if(localStorage.commentSwitch == 100){ 74 | if(localStorage.commentCustom == 100){ 75 | if((parseInt(blogLength) >= parseInt(localStorage.commentWordNumber)) && (parseInt(blogRead) >= parseInt(localStorage.commentReadNumber))){ 76 | if((new Date(blogDate).getTime()) >= (new Date(localStorage.commentDate).getTime())){ 77 | commentEvent(); 78 | } 79 | } 80 | }else{ 81 | commentEvent(); 82 | } 83 | } 84 | 85 | } 86 | // 点赞事件 87 | function likeEvent(){ 88 | //没有点赞才自动点赞并且延迟100毫秒后进行评论 89 | var zhan = document.querySelector("#is-like > a"); 90 | 91 | if(document.querySelector("#is-like-img").style.display == "block"){ 92 | zhan.click(); 93 | var checkFull = window.setInterval(function(){ 94 | if(document.querySelector("body > div.skin-boxshadow").style.display == "block"){localStorage.likeSwitch = 0} 95 | },100); 96 | setTimeout(function(){ 97 | window.clearInterval(checkFull); 98 | },1000); 99 | }else{ console.warn("已经点过赞了");} 100 | } 101 | 102 | // 评论事件 103 | function commentEvent(){ 104 | var commentTextList = JSON.parse(localStorage.commentList); 105 | var commentText; 106 | if(localStorage.commentRangeSwitch==0){ 107 | commentText = commentTextList.R[Math.floor(Math.random()*commentTextList.R.length)].text; 108 | }else{ 109 | var count_S = localStorage.commentRange.split(",")[0]; 110 | var count_L = localStorage.commentRange.split(",")[1]; 111 | if(blogLengthcount_L){ 114 | commentText = commentTextList.L[Math.floor(Math.random()*commentTextList.L.length)].text; 115 | } 116 | } 117 | 118 | setTimeout(function(){ 119 | // 从页面获取评论列表,但是只能获取第一页 120 | var commentList = document.querySelectorAll('#mainBox > main > div.comment-box > div.comment-list-container > div.comment-list-box > ul'); 121 | for (let i=0; i a").href.split("csdn.net/")[1]==myName){ 124 | toComment = false; 125 | console.log("已经评论过,无需重复评论"); 126 | } 127 | if(i==(commentList.length-1)){ 128 | if(toComment && myName!=UserName){ 129 | console.log(commentText); 130 | document.querySelector("#comment_content").value= commentText; 131 | document.querySelector("#commentform > div > div.right-box > a > input").click(); 132 | console.log("评论成功!"); 133 | } 134 | } 135 | } 136 | },500); 137 | } 138 | 139 | (function() { 140 | init(); 141 | })(); 142 | 143 | // 添加Link 144 | function addGlobalLink(rel,href) { 145 | var head, link; 146 | head = document.getElementsByTagName('head')[0]; 147 | if (!head) { return; } 148 | link = document.createElement('link'); 149 | link.rel = rel; 150 | link.href = href; 151 | head.appendChild(link); 152 | } 153 | // 添加Script 154 | function addGlobalScript(src) { 155 | var body, script; 156 | body = document.getElementsByTagName('body')[0]; 157 | if (!body) { return; } 158 | script = document.createElement('script'); 159 | script.src = src; 160 | body.appendChild(script); 161 | } 162 | 163 | addGlobalLink('stylesheet','https://cdn.jsdelivr.net/gh/superBoyJack/CDN/css/element-ui-index.css'); 164 | addGlobalLink('stylesheet','https://at.alicdn.com/t/font_1776564_biuc05tmt1k.css'); 165 | addGlobalLink('stylesheet','https://cdn.jsdelivr.net/gh/superBoyJack/CSDN-helper/dist/app@0.2.css'); 166 | addGlobalScript("https://cdn.jsdelivr.net/gh/superBoyJack/CDN/js/element-ui-index.js"); 167 | addGlobalScript("https://cdn.jsdelivr.net/npm/vue/dist/vue.js"); 168 | addGlobalScript("https://unpkg.com/axios/dist/axios.min.js"); 169 | 170 | window.addEventListener( 171 | 'load', 172 | function(){ 173 | var appMenu = document.createElement("div"); 174 | var vueScript = document.createElement("script"); 175 | appMenu.innerHTML = GM_getResourceText("html"); 176 | vueScript.innerHTML = GM_getResourceText("js"); 177 | var navbar,body; 178 | navbar = document.getElementById('csdn-toolbar'); 179 | body = document.getElementsByTagName('body')[0]; 180 | if (navbar && body) { 181 | navbar.parentNode.insertBefore(appMenu, navbar.nextSibling); 182 | body.parentNode.insertBefore(vueScript, body.nextSibling); 183 | } 184 | },true); 185 | -------------------------------------------------------------------------------- /dist/CSDN-helper@1.1.6.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name CSDN博客刷积分刷等级助手 3 | // @namespace http://tampermonkey.net/ 4 | // @version 1.1.6 5 | // @description 打开任意一个CSDN博客页面,就可以进行自动点赞评论,可以涨积分升级,可以自定义策略与评论内容,高度可定制化 6 | // @author ZainCheung 7 | // @match *://blog.csdn.net/*/article/details/* 8 | // @grant GM.xmlHttpRequest 9 | // @connect csdn.net 10 | // @resource html https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.html 11 | // @resource css https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.css 12 | // @resource js https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.js 13 | // @grant GM_getValue 14 | // @grant GM_setValue 15 | // @grant GM.getValue 16 | // @grant GM.setValue 17 | // @grant unsafeWindow 18 | // @grant GM_getResourceText 19 | // @icon https://cdn.jsdelivr.net/gh/ZainCheung/CDN/img/20200428232059.png 20 | // ==/UserScript== 21 | 22 | // 获取网页的网址 23 | var articalUrl = window.location.href; 24 | var host = articalUrl.split("article/details/")[0]; // 域名 25 | var artId = articalUrl.split("article/details/")[1].split("?")[0]; 26 | // 组装评论请求 27 | var getCommentUrl = host + "phoenix/comment/list/" + artId + "?page=1&size=1000&tree_type=1"; 28 | // 当前登陆用户的账号 29 | var myName = document.querySelector("#csdn-toolbar > div > div > div.toolbar-btns.onlyUser.csdn-toolbar-fr > div.toolbar-btn-login.csdn-toolbar-fl.toolbar-subMenu-box > div > a:nth-child(5)").href.split("blog.csdn.net/")[1]; 30 | // 文章的作者账号 31 | var UserName = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > a.follow-nickName").href.split("csdn.net/")[1]; 32 | // 文章全文字数 33 | var blogLength = document.querySelector("#article_content").innerText.replace(/\ +/g,"").replace(/[\r\n]/g,"").length; 34 | // 文章阅读量 35 | var blogRead = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > span.read-count").innerText; 36 | // 文章最后发布日期 37 | var blogDate = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > span.time").innerText.slice(0,10); 38 | // 评论文本框 39 | var commentArea = document.querySelector("#comment_content"); 40 | // 评论按钮 41 | var commentBtn = document.querySelector("#commentform > div > div.right-box > a > input"); 42 | // 是否评论,默认评论 43 | var toComment = true; 44 | 45 | function init(){ 46 | // 新的一天会自动打开点赞开关 47 | if(localStorage.today){ 48 | var today = new Date(); 49 | if(localStorage.today != today.getDate()){ 50 | localStorage.likeSwitch = 100; 51 | localStorage.likeCustom = 100; 52 | localStorage.today = today.getDate(); 53 | } 54 | } 55 | 56 | if(localStorage.likeSwitch == 100){ 57 | if(localStorage.likeCustom == 100){ 58 | if((parseInt(blogLength) >= parseInt(localStorage.likeWordNumber)) && (parseInt(blogRead) >= parseInt(localStorage.likeReadNumber))){ 59 | if((new Date(blogDate).getTime()) >= (new Date(localStorage.likeDate).getTime())){ 60 | likeEvent(); 61 | } 62 | } 63 | }else{ 64 | likeEvent(); 65 | } 66 | } 67 | 68 | if(localStorage.commentSwitch == 100){ 69 | if(localStorage.commentCustom == 100){ 70 | if((parseInt(blogLength) >= parseInt(localStorage.commentWordNumber)) && (parseInt(blogRead) >= parseInt(localStorage.commentReadNumber))){ 71 | if((new Date(blogDate).getTime()) >= (new Date(localStorage.commentDate).getTime())){ 72 | commentEvent(); 73 | } 74 | } 75 | }else{ 76 | commentEvent(); 77 | } 78 | } 79 | 80 | } 81 | // 点赞事件 82 | function likeEvent(){ 83 | //没有点赞才自动点赞并且延迟100毫秒后进行评论 84 | var zhan = document.querySelector("#is-like > a"); 85 | 86 | if(document.querySelector("#is-like-img").style.display == "block"){ 87 | zhan.click(); 88 | var checkFull = window.setInterval(function(){ 89 | if(document.querySelector("body > div.skin-boxshadow").style.display == "block"){localStorage.likeSwitch = 0} 90 | },100); 91 | setTimeout(function(){ 92 | window.clearInterval(checkFull); 93 | },1000); 94 | }else{ console.warn("已经点过赞了");} 95 | } 96 | 97 | // 评论事件 98 | function commentEvent(){ 99 | var commentTextList = JSON.parse(localStorage.commentList); 100 | var commentText; 101 | if(localStorage.commentRangeSwitch==0){ 102 | commentText = commentTextList.R[Math.floor(Math.random()*commentTextList.R.length)].text; 103 | }else{ 104 | var count_S = localStorage.commentRange.split(",")[0]; 105 | var count_L = localStorage.commentRange.split(",")[1]; 106 | if(blogLengthcount_L){ 109 | commentText = commentTextList.L[Math.floor(Math.random()*commentTextList.L.length)].text; 110 | } 111 | } 112 | 113 | setTimeout(function(){ 114 | if(myName!=UserName){ 115 | // 从页面获取评论列表,但是只能获取第一页 116 | var commentList = document.querySelector('#mainBox > main > div.comment-box > div.comment-list-container > div.comment-list-box > ul'); 117 | if(commentList==null){ 118 | console.log(commentText); 119 | document.querySelector("#comment_content").value= commentText; 120 | document.querySelector("#commentform > div > div.right-box > a > input").click(); 121 | console.log("评论成功!"); 122 | }else{ 123 | var Imgs = commentList.getElementsByClassName("avatar"); 124 | for (let i=0; i div > div.right-box > a > input").click(); 136 | console.log("评论成功!"); 137 | } 138 | } 139 | } 140 | },500); 141 | } 142 | 143 | (function() { 144 | init(); 145 | })(); 146 | 147 | // 添加Link 148 | function addGlobalLink(rel,href) { 149 | var head, link; 150 | head = document.getElementsByTagName('head')[0]; 151 | if (!head) { return; } 152 | link = document.createElement('link'); 153 | link.rel = rel; 154 | link.href = href; 155 | head.appendChild(link); 156 | } 157 | // 添加Script 158 | function addGlobalScript(src) { 159 | var body, script; 160 | body = document.getElementsByTagName('body')[0]; 161 | if (!body) { return; } 162 | script = document.createElement('script'); 163 | script.src = src; 164 | body.appendChild(script); 165 | } 166 | 167 | addGlobalLink('stylesheet','https://cdn.jsdelivr.net/gh/ZainCheung/CDN/css/element-ui-index.css'); 168 | addGlobalLink('stylesheet','https://at.alicdn.com/t/font_1776564_biuc05tmt1k.css'); 169 | addGlobalLink('stylesheet','https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.css'); 170 | addGlobalScript("https://cdn.jsdelivr.net/gh/ZainCheung/CDN/js/element-ui-index.js"); 171 | addGlobalScript("https://cdn.jsdelivr.net/npm/vue"); 172 | addGlobalScript("https://unpkg.com/axios/dist/axios.min.js"); 173 | 174 | window.addEventListener( 175 | 'load', 176 | function(){ 177 | var appMenu = document.createElement("div"); 178 | var vueScript = document.createElement("script"); 179 | appMenu.innerHTML = GM_getResourceText("html"); 180 | vueScript.innerHTML = GM_getResourceText("js"); 181 | var navbar,body; 182 | navbar = document.getElementById('csdn-toolbar'); 183 | body = document.getElementsByTagName('body')[0]; 184 | if (navbar && body) { 185 | navbar.parentNode.insertBefore(appMenu, navbar.nextSibling); 186 | body.parentNode.insertBefore(vueScript, body.nextSibling); 187 | } 188 | },true); 189 | -------------------------------------------------------------------------------- /dist/README.md: -------------------------------------------------------------------------------- 1 | ## 这里放置源文件 2 | -------------------------------------------------------------------------------- /dist/app@1.0.css: -------------------------------------------------------------------------------- 1 | /* 悬浮入口 */ 2 | .el-backtop { 3 | transform: translateX(-16px); 4 | transition: .2s; 5 | top: 50%; 6 | border-radius: 50%; 7 | } 8 | .el-backtop:hover { 9 | left: 0px; 10 | transform: translateX(0); 11 | } 12 | /* 抽屉面板加滑动 */ 13 | .el-drawer{ 14 | overflow-y: scroll 15 | } 16 | .el-main { 17 | padding: 20px 0 20px 0; 18 | } 19 | /* 开关标签颜色 */ 20 | .el-switch__label.is-active { 21 | color: #606266; 22 | } 23 | /* 标题下拉箭头 */ 24 | .el-collapse-item__arrow { 25 | /* margin: 0 165px 0 10px; */ 26 | margin-right: 40%; 27 | } 28 | /* 滚动槽 */ 29 | ::-webkit-scrollbar { 30 | width: 6px; 31 | height: 6px; 32 | } 33 | ::-webkit-scrollbar-track { 34 | border-radius: 3px; 35 | background: rgba(0,0,0,0.06); 36 | -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.08); 37 | } 38 | /* 滚动条滑块 */ 39 | ::-webkit-scrollbar-thumb { 40 | border-radius: 3px; 41 | background: rgba(0,0,0,0.12); 42 | -webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.2); 43 | } -------------------------------------------------------------------------------- /dist/app@1.0.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 13 | 14 | 15 | 16 |
17 |
18 |
19 | 20 | 21 | 22 | 23 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 最低浏览量: 82 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 发文日期: 102 | 103 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 122 | 123 | 124 | 125 | 126 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 最低浏览量: 198 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 发文日期: 218 | 219 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 240 | 241 | 242 | 243 | 244 | 250 | 251 | 252 | 256 | 257 | 260 | 261 | 265 | 266 | 267 | 271 | 280 | 281 | 282 | 283 | 284 | 291 | 292 | 293 | 294 | 295 | 296 | 302 | 303 | 307 | 308 | 311 | 312 | 316 | 317 | 318 | 322 | 331 | 332 | 333 | 334 | 341 | 342 | 343 | 344 | 345 | 346 | 352 | 353 | 357 | 358 | 361 | 362 | 366 | 367 | 368 | 372 | 381 | 382 | 383 | 384 | 391 | 392 | 393 | 394 | 395 | 396 | 402 | 403 | 407 | 408 | 411 | 412 | 416 | 417 | 418 | 422 | 431 | 432 | 433 | 434 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 460 | 461 | 462 | 467 | 468 | 469 | 版本:1.0 470 | 471 | 472 | 473 | 474 | 如果觉得这个插件不错,欢迎给个Star 475 | 476 | 477 | 478 | 479 | GitHub: 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 保 存 492 | 493 | 494 |
495 | 496 |
497 | 498 | 499 | 506 | 514 | 515 | 516 | 取 消 517 | 保存 518 | 519 | 520 | 521 | 522 | 529 | 530 | 580 | 581 | 582 | 取 消 583 | {{ importDialog.footer }} 584 | 585 | 586 | 587 |
-------------------------------------------------------------------------------- /dist/app@1.0.js: -------------------------------------------------------------------------------- 1 | var Main = { 2 | data() { 3 | return { 4 | menuShow: false, 5 | likeSwitch: 0, 6 | likeCustom: 0, 7 | likeWordNumber: "", 8 | likeReadNumber: "", 9 | likeDate: "", 10 | commentSwitch: 0, 11 | commentCustom: 0, 12 | commentWordNumber: 0, 13 | commentReadNumber: 0, 14 | commentDate: "", 15 | commentRangeSwitch: 0, 16 | commentRange: [100,2000], 17 | commentDialog: { 18 | visible: false, 19 | title: "默认标题", 20 | text: "", 21 | new: true, 22 | source: "", 23 | index: "", 24 | /* 禁用判断 */ 25 | checkDisabled(){ 26 | if(this.text.length == 0){ 27 | return true; 28 | }else{ 29 | while(this.text.indexOf(" ") >= 0){ 30 | this.text=this.text.replace(" ",""); 31 | } 32 | } 33 | return false; 34 | } 35 | }, 36 | importDialog: { 37 | visible: false, 38 | hasResult: false, 39 | loading: false, 40 | success: false, 41 | title: "导入评论", 42 | footer: "查询", 43 | text: "", 44 | commentList: "", 45 | checkDisabled(){ 46 | if(this.text.length == 0 || this.loading){ 47 | return true; 48 | }else{ 49 | while(this.text.indexOf(" ") >= 0){ 50 | this.text=this.text.replace(" ",""); 51 | } 52 | } 53 | return false; 54 | } 55 | 56 | }, 57 | currentPage: { 58 | R: 1, 59 | S: 1, 60 | M: 1, 61 | L: 1, 62 | pageSize: 5 63 | }, 64 | dateOptions: [{ 65 | value: this.getDateOption(0), 66 | label: '今天' 67 | }, { 68 | value: this.getDateOption(3600 * 1000 * 24 * 7), 69 | label: '一周内' 70 | }, { 71 | value: this.getDateOption(3600 * 1000 * 24 * 30), 72 | label: '一月内' 73 | }, { 74 | value: this.getDateOption(3600 * 1000 * 24 * 30 * 12), 75 | label: '一年内' 76 | }, { 77 | value: this.getDateOption(3600 * 1000 * 24 * 30 * 12 * 2), 78 | label: '两年内' 79 | }, { 80 | value: this.getDateOption(3600 * 1000 * 24 * 30 * 12 * 5), 81 | label: '五年内' 82 | }, { 83 | value: this.getDateOption(3600 * 1000 * 24 * 30 * 12 * 10), 84 | label: '十年内' 85 | }, { 86 | value: '1999-12-01', 87 | label: '不限' 88 | } 89 | ], 90 | commentList: { 91 | R: [ 92 | {text: "写的不错哦,欢迎回访我的博客哦"}, 93 | {text: "前排支持一下,可以的话来我博客看看吧"}, 94 | {text: "我在大佬的评论区瑟瑟发抖,希望能引起注意并回访我的博客哈哈"}, 95 | {text: "膜拜技术大佬,来我博客指点江山吧"}, 96 | {text: "分享技术,不错哦"}, 97 | {text: "少年,我看你骨骼精奇,不如来我博客看看可好"} 98 | ], 99 | S: [ 100 | {text: "虽然字数不多,但是写的非常棒!欢迎回访我的博客"}, 101 | {text: "字不在多在于精"}, 102 | {text: "少年,我看你骨骼精奇,不如多敲几行字可好"}, 103 | {text: "博客破万卷,代码如有神"}, 104 | {text: "字不多却铿锵有力"}, 105 | {text: "一文不赞何以赞天下"} 106 | ], 107 | M: [ 108 | {text: "写的不错,活到老,学到老!欢迎回访我的博客"}, 109 | {text: "欢迎来我博客看看,可以顺手点赞也是极好的"}, 110 | {text: "前排支持一下,欢迎回访我的博客"}, 111 | {text: "都是干货,谢谢了,欢迎回访我的博客"}, 112 | {text: "向你学习,欢迎回访我的博客"}, 113 | {text: "写的真好,如果可以,欢迎回访我的博客"} 114 | 115 | ], 116 | L: [ 117 | {text: "写了这么多字,手动码字一定很累吧!欢迎回访我的博客"}, 118 | {text: "我在大佬的评论区瑟瑟发抖,欢迎大佬回访我的博客"}, 119 | {text: "膜拜技术大佬,来我博客指点江山吧"}, 120 | {text: "收获满满,码字不易,欢迎回访我的博客"}, 121 | {text: "不曾想,若是有一天我能像你一样写出这么好的博客该多好,欢迎来我的博客指点"}, 122 | {text: "天若有情天亦老,来我博客看看可好"} 123 | 124 | ] 125 | }, 126 | }; 127 | }, 128 | mounted() { 129 | this.initItem("likeSwitch",0); 130 | this.initItem("likeCustom",0); 131 | this.initItem("likeWordNumber",100); 132 | this.initItem("likeReadNumber",100); 133 | this.initItem("likeDate",this.getDateOption(3600 * 1000 * 24 * 30 * 12)); 134 | 135 | this.initItem("commentSwitch",0); 136 | this.initItem("commentCustom",0); 137 | this.initItem("commentWordNumber",100); 138 | this.initItem("commentReadNumber",100); 139 | this.initItem("commentDate",this.getDateOption(3600 * 1000 * 24 * 30 * 12)); 140 | this.initItem("commentRangeSwitch",0); 141 | this.initItem("commentRange",[100,2000]); 142 | 143 | this.initItem("commentList",this.commentList); 144 | 145 | if(!localStorage.today){ 146 | var date = new Date(); 147 | localStorage.today = date.getDate(); 148 | } 149 | 150 | }, 151 | methods: { 152 | /* 初始化localStorage */ 153 | initItem(item,value){ 154 | if (localStorage[item]) { 155 | switch (item) { 156 | case "commentRange": 157 | var str = localStorage.commentRange; 158 | this.commentRange = [str.split(",")[0],str.split(",")[1]]; 159 | break; 160 | case "commentList": 161 | this.commentList = JSON.parse(localStorage.commentList); 162 | break; 163 | default:this[item] = localStorage[item]; 164 | break; 165 | } 166 | }else{ 167 | switch (item) { 168 | case "commentList": 169 | this.commentList = value; 170 | localStorage.commentList = JSON.stringify(value); 171 | break; 172 | 173 | default:this[item] = localStorage[item] = value; 174 | break; 175 | } 176 | } 177 | }, 178 | /** 179 | *评论类别码 180 | * 0:随机评论 181 | * 1:少字数评论 182 | * 2:中等字数评论 183 | * 3:多字数评论 184 | * */ 185 | getCommentType(type){ 186 | var str; 187 | switch (type) { 188 | case 0:str = "R";break; 189 | case 1:str = "S";break; 190 | case 2:str = "M";break; 191 | case 3:str = "L";break; 192 | default:break; 193 | } 194 | return str; 195 | }, 196 | /* 负责日期选择器的日期格式化:时间戳减去多少毫秒之前 */ 197 | getDateOption(time){ 198 | var date = new Date(); 199 | date.setTime(date.getTime() - time); 200 | return (date.getFullYear()) + "-" + (date.getMonth() + 1) + "-" + (date.getDate()); 201 | }, 202 | /* 新建评论 */ 203 | commentNew(type){ 204 | this.commentDialog.new = true; 205 | this.commentDialog.title = "新建评论"; 206 | this.commentDialog.source = this.getCommentType(type); 207 | this.commentDialog.text = ""; 208 | this.commentDialog.visible = true; 209 | }, 210 | /* 编辑评论 */ 211 | commentEdit(index, row, type) { 212 | /* 获取到R-S-M-L */ 213 | var typeCode = this.getCommentType(type); 214 | /* 通过当前页码,选中表格的行数以及页码尺寸获得在数组中的固定序列:0+(2-1)*5=5,第二页的第一行即数组的下标为5 */ 215 | var staticIndex = index + ((this.currentPage[typeCode]-1)*this.currentPage.pageSize); 216 | this.commentDialog.new = false; 217 | this.commentDialog.title = "编辑评论"; 218 | this.commentDialog.source = typeCode; 219 | this.commentDialog.text = this.commentList[typeCode][staticIndex].text; 220 | this.commentDialog.index = index; 221 | this.commentDialog.visible = true; 222 | }, 223 | /* 删除评论 */ 224 | commentDelete(index, row, type) { 225 | var typeCode = this.getCommentType(type); 226 | var staticIndex = index + ((this.currentPage[typeCode]-1)*this.currentPage.pageSize); 227 | this.commentList[typeCode].splice(staticIndex,1); 228 | this.saveComment(); 229 | }, 230 | /* 打开导入评论窗口 */ 231 | commentOpenImport(){ 232 | this.importDialog.text = ""; 233 | this.importDialog.hasResult = false; 234 | this.importDialog.footer = "查询"; 235 | this.importDialog.visible = true; 236 | }, 237 | /* 导入评论 */ 238 | commentImport(){ 239 | if(!this.importDialog.commentList.type){return} 240 | switch (this.importDialog.commentList.type) { 241 | case "all": 242 | this.commentList = this.importDialog.commentList; 243 | break; 244 | case "random": 245 | this.commentList.R = this.importDialog.commentList.R; 246 | break; 247 | case "word":/* 字数分段评论(S+M+L) */ 248 | this.commentList.S = this.importDialog.commentList.S; 249 | this.commentList.M = this.importDialog.commentList.M; 250 | this.commentList.L = this.importDialog.commentList.L; 251 | break; 252 | case "s": 253 | this.commentList.S = this.importDialog.commentList.S; 254 | break; 255 | case "m": 256 | this.commentList.M = this.importDialog.commentList.M; 257 | break; 258 | case "l": 259 | this.commentList.L = this.importDialog.commentList.L; 260 | break; 261 | default: 262 | break; 263 | } 264 | this.saveComment(); 265 | console.log("导入成功"); 266 | this.importDialog.hasResult = true; 267 | this.importDialog.success = false; 268 | this.importDialog.loading = false; 269 | this.importDialog.visible = false; 270 | this.$message({ 271 | showClose: true, 272 | message: '评论导入成功,共导入' + this.importDialog.commentList.count + "条评论!", 273 | type: 'success' 274 | }); 275 | }, 276 | /* 查询评论文件 */ 277 | commentQuery(){ 278 | this.importDialog.loading = true; 279 | /* 查询完毕并且成功请求返回时 */ 280 | if( this.importDialog.hasResult && this.importDialog.success){ 281 | this.commentImport(); 282 | return; 283 | } 284 | 285 | axios 286 | .get(this.importDialog.text) 287 | .then(response => { 288 | this.importDialog.commentList = response.data.commentList; 289 | console.log(this.importDialog.commentList); 290 | // this.importDialog.hasResult = true; 291 | this.importDialog.success = true; 292 | this.importDialog.footer = "导入"; 293 | }) 294 | .catch(error => { 295 | console.log(error); 296 | this.importDialog.success = false; 297 | this.importDialog.footer = "查询"; 298 | this.$message({ 299 | showClose: true, 300 | message: '链接解析失败', 301 | type: 'error' 302 | }); 303 | return; 304 | }) 305 | .finally(() => { 306 | this.importDialog.hasResult = true; 307 | this.importDialog.loading = false; 308 | }) 309 | }, 310 | /* 以下4个负责监控分页的变化并实时反馈 */ 311 | currentPageChange_R(page){ 312 | this.currentPage.R = page; 313 | }, 314 | currentPageChange_S(page){ 315 | this.currentPage.S = page; 316 | }, 317 | currentPageChange_M(page){ 318 | this.currentPage.M = page; 319 | }, 320 | currentPageChange_L(page){ 321 | this.currentPage.L = page; 322 | }, 323 | /* 提交评论内容到Vue */ 324 | postComment(){ 325 | var comment = {text:this.commentDialog.text} 326 | if(this.commentDialog.new){ 327 | this.commentList[this.commentDialog.source].push(comment); 328 | }else{ 329 | this.commentList[this.commentDialog.source][this.commentDialog.index] = comment; 330 | } 331 | this.saveComment(); 332 | this.commentDialog.visible = false; 333 | }, 334 | /* 保存到localStorage */ 335 | saveComment(){ 336 | localStorage.commentList = JSON.stringify(this.commentList); 337 | }, 338 | postChange(){ 339 | /* 点赞配置保存到localStorage */ 340 | localStorage.likeSwitch = this.likeSwitch; 341 | localStorage.likeCustom = this.likeCustom; 342 | localStorage.likeWordNumber = this.likeWordNumber; 343 | localStorage.likeReadNumber = this.likeReadNumber; 344 | var like_Date = new Date(this.likeDate); 345 | localStorage.likeDate = (like_Date.getFullYear()) + "-" + (like_Date.getMonth() + 1) + "-" + (like_Date.getDate()); 346 | 347 | /* 评论配置保存到localStorage */ 348 | localStorage.commentSwitch = this.commentSwitch; 349 | localStorage.commentCustom = this.commentCustom; 350 | localStorage.commentWordNumber = this.commentWordNumber; 351 | localStorage.commentReadNumber = this.commentReadNumber; 352 | localStorage.commentRangeSwitch = this.commentRangeSwitch; 353 | localStorage.commentRange = this.commentRange; 354 | var comment_Date = new Date(this.commentDate); 355 | localStorage.commentDate = (comment_Date.getFullYear()) + "-" + (comment_Date.getMonth() + 1) + "-" + (comment_Date.getDate()); 356 | 357 | this.menuShow = false; 358 | }, 359 | 360 | } 361 | }; 362 | var Ctor = Vue.extend(Main); 363 | var ctor = new Ctor(); 364 | ctor.$mount("#app"); -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # CSDN-helper 2 | 3 | > CSDN自动点赞评论助手 4 | 5 |

6 | 8 |

9 |

10 | Version 11 | Author 12 | Vue 13 | Element 14 |

15 | 16 | 17 | 18 | # 简介 19 | 这是一款可以全自动点赞评论刷积分刷等级的插件,进入到CSDN博客页面后便可以自动点赞评论 20 | 21 | 可以选定点赞评论的范围,比如文章字数,浏览数或者文章的发布日期等等 22 | 23 | # 安装 24 | 安装并使用这款插件,需要完成两个步骤 25 | 26 | ## 一、需要浏览器拥有[Tampermonkey](https://tampermonkey.net/)插件. 27 | 28 | ### [Tampermonkey](https://tampermonkey.net/) / [Violentmonkey](https://violentmonkey.github.io/) 29 | 如果你的电脑无法**科学上网**,那么我们为你准备了备用的下载地址:[无需翻墙即可下载](https://lanzous.com/ic2m7pi) 30 | 31 | *下载后得到一个crx文件,使用了Chromium内核的浏览器打开右上角更多 > 更多工具 > 扩展程序,接着将crx文件拖入浏览器即可安装* 32 | 33 | 如需科学上网,我们也为你准备了传送门:[谷歌访问助手](https://lanzous.com/iax4lyh) 34 | 35 | ## 二、**CSDN-helper**:点击名称即可安装👇 36 | 37 | | [正式版](https://greasyfork.org/zh-CN/scripts/401373-csdn博客刷积分刷等级助手) | [GitHub版](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/main.user.js) | 38 | | :----------------------------------------------------------: | :----------------------------------------------------------: | 39 | | 在油猴上正式发布的版本, 最稳定, 更新频率较低 | 新增内容测试的地方, 更新频率高, 但功能不稳定 | 40 | 41 | # 使用方法 42 | 安装脚本后,打开任意一篇CSDN博客文章页面,屏幕左边会出现齿轮标识,点进去进行配置. 43 | 44 | 大多数设置, 需要保存后并刷新网页才能生效. 只有自定义的评论可以立即保存. 45 | 46 | **本脚本的点赞评论均需要在登陆之后的环境下进行,否则没反应属于正常** 47 | 48 | # 功能 49 | 1. 快速刷积分刷等级 50 | 2. 当天点赞次数用尽之后会帮你关闭自动点赞 51 | 3. 评论的内容你来提前设定,此后便会随机抽选一条内容评论 52 | 4. 纯模拟用户操作,安全并且不会引发账号异常 53 | 5. 营造博客内大家热情友好的一面 54 | 6. 增加互动,为自己的博客带来流量收益 55 | 56 | # 责任说明 57 | 该脚本仅用于学习开发,请不要借此发布不良内容,如因被举报导致关进小黑屋与此项目无关 58 | -------------------------------------------------------------------------------- /docs/_coverpage.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # CSDN-helper 1.0 4 | 5 | > 🚀一款CSDN博客自动点赞评论的浏览器插件 6 | 7 | - Don't give in to life 8 | - Your blog should be shining 9 | - Strive to be a better Z 10 | 11 | [GitHub](https://github.com/superBoyJack/CSDN-helper) 12 | [开始使用](#csdn-helper) 13 | 14 | -------------------------------------------------------------------------------- /docs/_sidebar.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | * 入门 4 | 5 | * [🚀 快速开始](/#csdn-helper) 6 | * [💡 简介](/#简介) 7 | * [:octocat: 安装](/#安装) 8 | * [📚 功能](/#功能) 9 | * [🐛 版本历史与更新日志](https://github.com/superBoyJack/CSDN-helper/releases) 10 | * [👻 责任说明](/#责任说明) 11 | 12 | * 使用教程 13 | 14 | * [👍 点赞](like.md) 15 | * [💬 评论](comment.md) 16 | 17 | * 定制化 18 | 19 | * [📝 评论导入](import.md) 20 | * [🎁 评论市场](market.md) -------------------------------------------------------------------------------- /docs/comment.md: -------------------------------------------------------------------------------- 1 | # 打开自动评论 2 | 3 | > 打开自动点赞后,默认会给你接下来要打开的所有文章评论,评论内容来自内容模块的随机评论 4 | 5 | # 字数分段 6 | > 打开字数分段开关即可对文章的字数判断,并根据你的分段评论做出相应的评论 7 | > 分段主要是让用户自定义标准,比如默认的是100字以下为低字数,2000以上为高字数,则100字至2000字为中等字数,插件便会帮你自动分辨文章字数并作出评论 8 | 9 | # 个性化配置 10 | 11 | > 打开个性化配置,即可对文章进行筛选,通过文字的字数,浏览量,以及发文日期选择性对文章进行评论 12 | 13 | 14 | # 最低字数 15 | 16 | > 配置最低字数,默认100字,最高可调10000,最低可调0 17 | 18 | 19 | # 最低浏览量 20 | 21 | > 配置最低浏览量,默认100浏览量,最高可调10000,最低可调0 22 | 23 | 24 | # 发文日期 25 | 26 | > 配置发文日期,默认一年内,可选当天,一周内,一月内,一年内,两年内,五年内,十年内,以及不限日期(1999年12月份之后都可以) 27 | 28 | 29 | 30 | # 注意 31 | 32 | 评论配置的更改完成后,会在保存后更新配置,请记得点击保存按钮 -------------------------------------------------------------------------------- /docs/import.md: -------------------------------------------------------------------------------- 1 | # 评论导入 2 | 3 | 评论导入功能可以将评论市场的评论库导入到你的插件里,并且存储起来,你完全可以对导入的评论进行自定义修改,而后便可以在评论的时候派上用场。 4 | 5 | ## 步骤 6 | 7 | 1. 内容=>导入,打开导入窗口,粘贴评论库的链接(关于评论库的链接你可以在评论市场找到),点击查询即可; 8 | 2. 当查询到文件后,插件会列出评论库的基本信息,核对无误后,你便可以导入到你的插件中去; 9 | 3. 如果第一步中查询出现了错误,请检查链接在浏览器中是否能打开,如果打不开或者文件格式错误都会导致导入失败。另一可能是文件的更新延迟,基于jsdeliver的缓存机制,更新文件大约需要24个小时才能刷新缓存,可以过1天之后再来试试。 10 | 11 | ## 案例 12 | 13 | 链接:https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/HelloWorld@1.0.json 14 | 15 | 文件信息: 16 | 17 | #### 随机: 18 | 19 | 1. 写的不错哦,欢迎回访我的博客哦 20 | 2. 前排支持一下,可以的话来我博客看看吧 21 | 3. 我在大佬的评论区瑟瑟发抖,希望能引起注意并回访我的博客哈哈 22 | 4. 膜拜技术大佬,来我博客指点江山吧 23 | 5. 分享技术,不错哦,加油! 24 | 6. 少年,我看你骨骼精奇,不如来我博客看看可好 25 | 7. 有一天,我在某个人的评论区里写下了这么一句话 26 | 8. 学到了,感谢啊,有空来我博客看看哦 27 | 9. 我觉得很可,继续加油 28 | 10. 写的都很不错,向你学习吧 29 | 30 | #### 少等字数: 31 | 32 | 1. 虽然字数不多,但是写的非常棒!欢迎回访我的博客 33 | 2. 字不在多在于精 34 | 3. 少年,我看你骨骼精奇,不如多敲几行字可好 35 | 4. 博客破万卷,代码如有神 36 | 5. 字不多却铿锵有力 37 | 6. 一文不赞何以赞天下 38 | 39 | #### 中等字数: 40 | 41 | 1. 写的不错,活到老,学到老!欢迎回访我的博客 42 | 2. 欢迎来我博客看看,可以顺手点赞也是极好的 43 | 3. 前排支持一下,欢迎回访我的博客 44 | 4. 都是干货,谢谢了,欢迎回访我的博客 45 | 5. 向你学习,欢迎回访我的博客 46 | 6. 写的真好,如果可以,欢迎回访我的博客 47 | 48 | #### 多等字数: 49 | 50 | 1. 写了这么多字,手动码字一定很累吧!欢迎回访我的博客 51 | 2. 我在大佬的评论区瑟瑟发抖,欢迎大佬回访我的博客 52 | 3. 膜拜技术大佬,来我博客指点江山吧 53 | 4. 收获满满,码字不易,欢迎回访我的博客 54 | 5. 不曾想,若是有一天我能像你一样写出这么好的博客该多好,欢迎来我的博客指点 55 | 6. 天若有情天亦老,来我博客看看可好 56 | 57 | 基于这个链接,你便可以得到其中所有的评论 -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CSDN-helper 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /docs/like.md: -------------------------------------------------------------------------------- 1 | # 打开自动点赞 2 | 3 | > 打开自动点赞后,默认会给你接下来要打开的所有文章点赞 4 | 5 | 6 | # 个性化配置 7 | 8 | > 打开个性化配置,即可对文章进行筛选,通过文字的字数,浏览量,以及发文日期选择性对文章进行点赞 9 | 10 | 11 | # 最低字数 12 | 13 | > 配置最低字数,默认100字,最高可调10000,最低可调0 14 | 15 | 16 | # 最低浏览量 17 | 18 | > 配置最低浏览量,默认100浏览量,最高可调10000,最低可调0 19 | 20 | 21 | 22 | # 发文日期 23 | 24 | > 配置发文日期,默认一年内,可选当天,一周内,一月内,一年内,两年内,五年内,十年内,以及不限日期(1999年12月份之后都可以) 25 | 26 | 27 | 28 | # 注意 29 | 30 | 点赞配置的更改完成后,会在保存后更新配置,请记得点击保存按钮 -------------------------------------------------------------------------------- /docs/market.md: -------------------------------------------------------------------------------- 1 | # 评论市场 2 | 3 | * 评论市场提供评论模板,可以快速导入到你的插件中 4 | * 欢迎提交你的评论库到评论市场 5 | 6 | ## 使用方法 7 | 8 | 找到你感兴趣的评论,可浏览内容,可复制链接导入进你的插件 9 | 10 | ## 所有评论 11 | 12 | | 作者 | 预览 | 类别 | 条目 | 版本 | 导入链接 | 13 | | :-----------------------------------------: | :----------------------------------------------------------: | :--: | :--: | ---- | :----------------------------------------------------------: | 14 | | [ZainCheung](https://github.com/ZainCheung) | [helloWorld](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/HelloWorld/helloWorld.md) | 所有 | 28 | 1.0 | https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/HelloWorld@1.0.json | 15 | | [ZainCheung](https://github.com/ZainCheung) | [马保国](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/马保国/马保国.md) | 随机 | 1 | 1.0 | https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json | 16 | | [ZainCheung](https://github.com/ZainCheung) | [网友评论](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/网友评论/网友评论.md) | 随机 | 13 | 1.0 | https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json | 17 | 18 | ## 加入我们 19 | 20 | 欢迎参与开源项目,提交自己制作的评论库,为开源贡献自己的一份力量。 21 | 22 | ### 提交流程: 23 | 24 | 1. 在项目的`market`目录下新建一个以你的名字(用户名或者花名都可以)为名的文件夹,里面存放的就是你的评论库。 25 | 2. 为每个库建立一个独立的文件夹,以评论库名命名,库下面放置的是各个版本的json文件以及一个README文件。 26 | 3. 提交到项目,作者会帮你更新到主页面列表中。 27 | 28 | ### json结构: 29 | 30 | ```json 31 | { 32 | "commentList": { 33 | "type": "random", 34 | "count": 2, 35 | "author": "作者", 36 | "name": "评论库名", 37 | "version": "1.0", 38 | "R": [ 39 | { 40 | "text": "这是第一条评论" 41 | }, 42 | { 43 | "text": "这是第二条评论" 44 | } 45 | ] 46 | } 47 | } 48 | ``` 49 | 50 | `commentList`:最外层结构 51 | 52 | `type`:库的类型,小写字母,推荐 `random` 53 | 54 | | 所有 | 随机 | 分段 | 少等字数 | 中等字数 | 多等字数 | 55 | | :-----: | :----: | :------: | :------: | :------: | :------: | 56 | | ~~all~~ | random | ~~word~~ | ~~s~~ | ~~m~~ | ~~l~~ | 57 | 58 | 注意:目前只使用**随机评论**,其他所有类型将在下一个版本废弃,请不要使用!!! 59 | 60 | `count`: 评论数量 61 | 62 | `author`: 作者 63 | 64 | `name`: 评论库名 65 | 66 | `version`: 版本,建议从1.0开始 67 | 68 | 评论内容:从示例中可以看到,在`R`列表里面有2条评论 69 | 70 | ### README结构 71 | 72 | ``` 73 | ### 评论库:评论库名 74 | 75 | ### 作者:作者名 76 | 77 | ### 类别:随机 78 | 79 | ### 条目:2 80 | 81 | ### 版本:1.0 82 | 83 | ### 导入链接:[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/作者名/评论库名/评论库@版本.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/作者名/评论库名/评论库@版本.json) 84 | 85 | #### 随机: 86 | 87 | 1. 这是第一条评论 88 | 2. 这是第二条评论 89 | ``` 90 | 91 | -------------------------------------------------------------------------------- /img/README.md: -------------------------------------------------------------------------------- 1 | ## 图片库 2 | -------------------------------------------------------------------------------- /img/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainCheung/CSDN-helper/6960ee836b82b84f4784d9b40756570b50c2ec0a/img/cover.png -------------------------------------------------------------------------------- /img/csdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainCheung/CSDN-helper/6960ee836b82b84f4784d9b40756570b50c2ec0a/img/csdn.png -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainCheung/CSDN-helper/6960ee836b82b84f4784d9b40756570b50c2ec0a/img/favicon.ico -------------------------------------------------------------------------------- /main.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name CSDN博客刷积分刷等级助手 3 | // @namespace http://tampermonkey.net/ 4 | // @version 1.1.9 5 | // @description 打开任意一个CSDN博客页面,就可以进行自动点赞评论,可以涨积分升级,可以自定义策略与评论内容,高度可定制化 6 | // @author ZainCheung 7 | // @match *://blog.csdn.net/*/article/details/* 8 | // @grant GM.xmlHttpRequest 9 | // @connect csdn.net 10 | // @resource html https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/dist/app@1.0.html 11 | // @resource css https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.css 12 | // @resource js https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.js 13 | // @grant GM_getValue 14 | // @grant GM_setValue 15 | // @grant GM.getValue 16 | // @grant GM.setValue 17 | // @grant unsafeWindow 18 | // @grant GM_getResourceText 19 | // @icon https://cdn.jsdelivr.net/gh/ZainCheung/CDN/img/20200428232059.png 20 | // ==/UserScript== 21 | 22 | // 获取网页的网址 23 | var articalUrl = window.location.href; 24 | var host = articalUrl.split("article/details/")[0]; // 域名 25 | var artId = articalUrl.split("article/details/")[1].split("?")[0]; 26 | // 组装评论请求 27 | var getCommentUrl = host + "phoenix/comment/list/" + artId + "?page=1&size=1000&tree_type=1"; 28 | // 当前登陆用户的账号 29 | var myName = document.querySelector("#csdn-toolbar > div > div > div.toolbar-container-right > div > div.toolbar-btn.toolbar-btn-login.csdn-toolbar-fl.toolbar-subMenu-box > a").href.split("blog.csdn.net/")[1]; 30 | // 文章的作者账号 31 | var UserName = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > a.follow-nickName").href.split("csdn.net/")[1]; 32 | // 文章全文字数 33 | var blogLength = document.querySelector("#article_content").innerText.replace(/\ +/g,"").replace(/[\r\n]/g,"").length; 34 | // 文章阅读量 35 | var blogRead = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > span.read-count").innerText; 36 | // 文章最后发布日期 37 | var blogDate = document.querySelector("#mainBox > main > div.blog-content-box > div > div > div.article-info-box > div.article-bar-top > div > span.time").innerText.slice(0,10); 38 | // 评论文本框 39 | var commentArea = document.querySelector("#comment_content"); 40 | // 评论按钮 41 | var commentBtn = document.querySelector("#commentform > div > div.right-box > a > input"); 42 | // 是否评论,默认评论 43 | var toComment = true; 44 | 45 | function init(){ 46 | // 新的一天会自动打开点赞开关 47 | if(localStorage.today){ 48 | var today = new Date(); 49 | if(localStorage.today != today.getDate()){ 50 | localStorage.likeSwitch = 100; 51 | localStorage.likeCustom = 100; 52 | localStorage.today = today.getDate(); 53 | } 54 | } 55 | 56 | if(localStorage.likeSwitch == 100){ 57 | if(localStorage.likeCustom == 100){ 58 | if((parseInt(blogLength) >= parseInt(localStorage.likeWordNumber)) && (parseInt(blogRead) >= parseInt(localStorage.likeReadNumber))){ 59 | if((new Date(blogDate).getTime()) >= (new Date(localStorage.likeDate).getTime())){ 60 | likeEvent(); 61 | } 62 | } 63 | }else{ 64 | likeEvent(); 65 | } 66 | } 67 | 68 | if(localStorage.commentSwitch == 100){ 69 | if(localStorage.commentCustom == 100){ 70 | if((parseInt(blogLength) >= parseInt(localStorage.commentWordNumber)) && (parseInt(blogRead) >= parseInt(localStorage.commentReadNumber))){ 71 | if((new Date(blogDate).getTime()) >= (new Date(localStorage.commentDate).getTime())){ 72 | commentEvent(); 73 | } 74 | } 75 | }else{ 76 | commentEvent(); 77 | } 78 | } 79 | 80 | } 81 | // 点赞事件 82 | function likeEvent(){ 83 | //没有点赞才自动点赞并且延迟100毫秒后进行评论 84 | var zhan = document.querySelector("#is-like > a"); 85 | 86 | if(document.querySelector("#is-like-img").style.display == "block"){ 87 | zhan.click(); 88 | var checkFull = window.setInterval(function(){ 89 | if(document.querySelector("body > div.skin-boxshadow").style.display == "block"){localStorage.likeSwitch = 0} 90 | },100); 91 | setTimeout(function(){ 92 | window.clearInterval(checkFull); 93 | },1000); 94 | }else{ console.warn("已经点过赞了");} 95 | } 96 | 97 | // 评论事件 98 | function commentEvent(){ 99 | var commentTextList = JSON.parse(localStorage.commentList); 100 | var commentText; 101 | if(localStorage.commentRangeSwitch==0){ 102 | commentText = commentTextList.R[Math.floor(Math.random()*commentTextList.R.length)].text; 103 | }else{ 104 | var count_S = localStorage.commentRange.split(",")[0]; 105 | var count_L = localStorage.commentRange.split(",")[1]; 106 | if(blogLengthcount_L){ 109 | commentText = commentTextList.L[Math.floor(Math.random()*commentTextList.L.length)].text; 110 | } 111 | } 112 | 113 | setTimeout(function(){ 114 | if(myName!=UserName){ 115 | // 从页面获取评论列表,但是只能获取第一页 116 | var commentList = document.querySelector('#mainBox > main > div.comment-box > div.comment-list-container > div.comment-list-box'); 117 | if(commentList==null){ 118 | console.log(commentText); 119 | document.querySelector("#comment_content").value= commentText; 120 | document.querySelector("#commentform > div > div.right-box > a > input").click(); 121 | console.log("评论成功!"); 122 | }else{ 123 | var Imgs = commentList.getElementsByClassName("avatar"); 124 | for (let i=0; i div > div.right-box > a > input").click(); 136 | console.log("评论成功!"); 137 | } 138 | } 139 | } 140 | },500); 141 | } 142 | 143 | (function() { 144 | init(); 145 | })(); 146 | 147 | // 添加Link 148 | function addGlobalLink(rel,href) { 149 | var head, link; 150 | head = document.getElementsByTagName('head')[0]; 151 | if (!head) { return; } 152 | link = document.createElement('link'); 153 | link.rel = rel; 154 | link.href = href; 155 | head.appendChild(link); 156 | } 157 | // 添加Script 158 | function addGlobalScript(src) { 159 | var body, script; 160 | body = document.getElementsByTagName('body')[0]; 161 | if (!body) { return; } 162 | script = document.createElement('script'); 163 | script.src = src; 164 | body.appendChild(script); 165 | } 166 | 167 | addGlobalLink('stylesheet','https://cdn.jsdelivr.net/gh/ZainCheung/CDN/css/element-ui-index.css'); 168 | addGlobalLink('stylesheet','https://at.alicdn.com/t/font_1776564_biuc05tmt1k.css'); 169 | addGlobalLink('stylesheet','https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper/dist/app@1.0.css'); 170 | addGlobalScript("https://cdn.jsdelivr.net/gh/ZainCheung/CDN/js/element-ui-index.js"); 171 | addGlobalScript("https://cdn.jsdelivr.net/npm/vue"); 172 | addGlobalScript("https://unpkg.com/axios/dist/axios.min.js"); 173 | 174 | window.addEventListener( 175 | 'load', 176 | function(){ 177 | var appMenu = document.createElement("div"); 178 | var vueScript = document.createElement("script"); 179 | appMenu.innerHTML = GM_getResourceText("html"); 180 | vueScript.innerHTML = GM_getResourceText("js"); 181 | var navbar,body; 182 | navbar = document.getElementById('csdn-toolbar'); 183 | body = document.getElementsByTagName('body')[0]; 184 | if (navbar && body) { 185 | navbar.parentNode.insertBefore(appMenu, navbar.nextSibling); 186 | body.parentNode.insertBefore(vueScript, body.nextSibling); 187 | } 188 | },true); 189 | -------------------------------------------------------------------------------- /market/README.md: -------------------------------------------------------------------------------- 1 | # 评论市场 2 | 3 | * 评论市场提供评论模板,可以快速导入到你的插件中 4 | * 欢迎提交你的评论库到评论市场 5 | 6 | ## 使用方法 7 | 8 | 找到你感兴趣的评论,可浏览内容,可复制链接导入进你的插件 9 | 10 | ## 所有评论 11 | 12 | | 作者 | 预览 | 类别 | 条目 | 版本 | 导入链接 | 13 | | :-----------------------------------------: | :----------------------------------------------------------: | :--: | :--: | ---- | :----------------------------------------------------------: | 14 | | [ZainCheung](https://github.com/ZainCheung) | [helloWorld](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/HelloWorld/helloWorld.md) | 所有 | 28 | 1.0 | **[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/HelloWorld@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/HelloWorld@1.0.json)** | 15 | | [ZainCheung](https://github.com/ZainCheung) | [马保国](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/马保国/马保国.md) | 随机 | 1 | 1.0 | **[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json)** | 16 | | [ZainCheung](https://github.com/ZainCheung) | [网友评论](https://github.com/ZainCheung/CSDN-helper/blob/master/market/ZainCheung/网友评论/网友评论.md) | 随机 | 13 | 1.0 | **[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json)** | 17 | 18 | ## 加入我们 19 | 20 | 欢迎参与开源项目,提交自己制作的评论库,为开源贡献自己的一份力量。 21 | 22 | ### 提交流程: 23 | 24 | 1. 在项目的`market`目录下新建一个以你的名字(用户名或者花名都可以)为名的文件夹,里面存放的就是你的评论库。 25 | 2. 为每个库建立一个独立的文件夹,以评论库名命名,库下面放置的是各个版本的json文件以及一个README文件。 26 | 3. 提交到项目,作者会帮你更新到主页面列表中。 27 | 28 | ### json结构: 29 | 30 | ```json 31 | { 32 | "commentList": { 33 | "type": "random", 34 | "count": 2, 35 | "author": "作者", 36 | "name": "评论库名", 37 | "version": "1.0", 38 | "R": [ 39 | { 40 | "text": "这是第一条评论" 41 | }, 42 | { 43 | "text": "这是第二条评论" 44 | } 45 | ] 46 | } 47 | } 48 | ``` 49 | 50 | `commentList`:最外层结构 51 | 52 | `type`:库的类型,小写字母,推荐 `random` 53 | 54 | | 所有 | 随机 | 分段 | 少等字数 | 中等字数 | 多等字数 | 55 | | :-----: | :----: | :------: | :------: | :------: | :------: | 56 | | ~~all~~ | random | ~~word~~ | ~~s~~ | ~~m~~ | ~~l~~ | 57 | 58 | 注意:目前只使用**随机评论**,其他所有类型将在下一个版本废弃,请不要使用!!! 59 | 60 | `count`: 评论数量 61 | 62 | `author`: 作者 63 | 64 | `name`: 评论库名 65 | 66 | `version`: 版本,建议从1.0开始 67 | 68 | 评论内容:从示例中可以看到,在`R`列表里面有2条评论 69 | 70 | ### README结构 71 | 72 | ``` 73 | ### 评论库:评论库名 74 | 75 | ### 作者:作者名 76 | 77 | ### 类别:随机 78 | 79 | ### 条目:2 80 | 81 | ### 版本:1.0 82 | 83 | ### 导入链接:[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/作者名/评论库名/评论库@版本.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/作者名/评论库名/评论库@版本.json) 84 | 85 | #### 随机: 86 | 87 | 1. 这是第一条评论 88 | 2. 这是第二条评论 89 | ``` 90 | 91 | -------------------------------------------------------------------------------- /market/ZainCheung/HelloWorld/HelloWorld@1.0.json: -------------------------------------------------------------------------------- 1 | { 2 | "commentList": { 3 | "type": "all", 4 | "count": 28, 5 | "author": "ZainCheung", 6 | "name": "helloWorld", 7 | "version": "1.0", 8 | "R": [ 9 | {"text": "写的不错哦,欢迎回访我的博客哦"}, 10 | {"text": "前排支持一下,可以的话来我博客看看吧"}, 11 | {"text": "我在大佬的评论区瑟瑟发抖,希望能引起注意并回访我的博客哈哈"}, 12 | {"text": "膜拜技术大佬,来我博客指点江山吧"}, 13 | {"text": "分享技术,不错哦,加油"}, 14 | {"text": "少年,我看你骨骼精奇,不如来我博客看看可好"}, 15 | {"text": "有一天,我在某个人的评论区里写下了这么一句话"}, 16 | {"text": "学到了,感谢啊,有空来我博客看看哦"}, 17 | {"text": "我觉得很可,继续加油"}, 18 | {"text": "写的都很不错,向你学习吧"} 19 | ], 20 | "S": [ 21 | {"text": "虽然字数不多,但是写的非常棒!欢迎回访我的博客"}, 22 | {"text": "字不在多在于精"}, 23 | {"text": "少年,我看你骨骼精奇,不如多敲几行字可好"}, 24 | {"text": "博客破万卷,代码如有神"}, 25 | {"text": "字不多却铿锵有力"}, 26 | {"text": "一文不赞何以赞天下"} 27 | ], 28 | "M": [ 29 | {"text": "写的不错,活到老,学到老!欢迎回访我的博客"}, 30 | {"text": "欢迎来我博客看看,可以顺手点赞也是极好的"}, 31 | {"text": "前排支持一下,欢迎回访我的博客"}, 32 | {"text": "都是干货,谢谢了,欢迎回访我的博客"}, 33 | {"text": "向你学习,欢迎回访我的博客"}, 34 | {"text": "写的真好,如果可以,欢迎回访我的博客"} 35 | ], 36 | "L": [ 37 | {"text": "写了这么多字,手动码字一定很累吧!欢迎回访我的博客"}, 38 | {"text": "我在大佬的评论区瑟瑟发抖,欢迎大佬回访我的博客"}, 39 | {"text": "膜拜技术大佬,来我博客指点江山吧"}, 40 | {"text": "收获满满,码字不易,欢迎回访我的博客"}, 41 | {"text": "不曾想,若是有一天我能像你一样写出这么好的博客该多好,欢迎来我的博客指点"}, 42 | {"text": "天若有情天亦老,来我博客看看可好"} 43 | ] 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /market/ZainCheung/HelloWorld/helloWorld.md: -------------------------------------------------------------------------------- 1 | ### 评论库:helloWorld 2 | 3 | ### 作者:ZainCheung 4 | 5 | ### 类别:所有 6 | 7 | ### 条目:28 8 | 9 | ### 版本:1.0 10 | 11 | ### 导入链接:[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/helloWorld@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/HelloWorld/helloWorld@1.0.json) 12 | 13 | #### 随机: 14 | 15 | 1. 写的不错哦,欢迎回访我的博客哦 16 | 2. 前排支持一下,可以的话来我博客看看吧 17 | 3. 我在大佬的评论区瑟瑟发抖,希望能引起注意并回访我的博客哈哈 18 | 4. 膜拜技术大佬,来我博客指点江山吧 19 | 5. 分享技术,不错哦,加油! 20 | 6. 少年,我看你骨骼精奇,不如来我博客看看可好 21 | 7. 有一天,我在某个人的评论区里写下了这么一句话 22 | 8. 学到了,感谢啊,有空来我博客看看哦 23 | 9. 我觉得很可,继续加油 24 | 10. 写的都很不错,向你学习吧 25 | 26 | #### 少等字数: 27 | 28 | 1. 虽然字数不多,但是写的非常棒!欢迎回访我的博客 29 | 2. 字不在多在于精 30 | 3. 少年,我看你骨骼精奇,不如多敲几行字可好 31 | 4. 博客破万卷,代码如有神 32 | 5. 字不多却铿锵有力 33 | 6. 一文不赞何以赞天下 34 | 35 | #### 中等字数: 36 | 37 | 1. 写的不错,活到老,学到老!欢迎回访我的博客 38 | 2. 欢迎来我博客看看,可以顺手点赞也是极好的 39 | 3. 前排支持一下,欢迎回访我的博客 40 | 4. 都是干货,谢谢了,欢迎回访我的博客 41 | 5. 向你学习,欢迎回访我的博客 42 | 6. 写的真好,如果可以,欢迎回访我的博客 43 | 44 | #### 多等字数: 45 | 46 | 1. 写了这么多字,手动码字一定很累吧!欢迎回访我的博客 47 | 2. 我在大佬的评论区瑟瑟发抖,欢迎大佬回访我的博客 48 | 3. 膜拜技术大佬,来我博客指点江山吧 49 | 4. 收获满满,码字不易,欢迎回访我的博客 50 | 5. 不曾想,若是有一天我能像你一样写出这么好的博客该多好,欢迎来我的博客指点 51 | 6. 天若有情天亦老,来我博客看看可好 52 | -------------------------------------------------------------------------------- /market/ZainCheung/网友评论/网友评论.md: -------------------------------------------------------------------------------- 1 | ### 评论库:网友评论 2 | 3 | ### 作者:ZainCheung 4 | 5 | ### 类别:随机 6 | 7 | ### 条目:13 8 | 9 | ### 版本:1.0 10 | 11 | ### 导入链接:[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/网友评论/网友评论@1.0.json) 12 | 13 | #### 随机: 14 | 15 | 1. 活到老学到老,支持原创! 16 | 2. 优秀优秀,必须给个大大的赞! 17 | 3. 大佬的文章让我受益颇多! 18 | 4. 大佬出品,必属精品 19 | 5. 写的不错,顶个贴,点个赞,嘿嘿! 20 | 6. 很棒呀,学习啦,谢谢分享! 21 | 7. 文章条理很清晰,学到了 22 | 8. 大佬写的很好,手动点赞! 23 | 9. 我,***,一枚互联网开发工程师,博客专家,看到此文章决定给你点个赞,请继续加油,有一天回首往事的时候你会觉得,那些奋斗的岁月是你一生的精华。 24 | 10. 感谢博主分享,讲的挺不错,希望后面有更多的文章 25 | 11. 大佬的文章让我受益匪浅,感谢博主! 26 | 12. 放弃不难,但坚持一定很酷! 27 | 13. 看完大佬的文章,我的心情竟是久久不能平静。正如老子所云:大音希声,大象无形。我现在终于明白我缺乏的是什么了。 -------------------------------------------------------------------------------- /market/ZainCheung/网友评论/网友评论@1.0.json: -------------------------------------------------------------------------------- 1 | { 2 | "commentList": { 3 | "type": "random", 4 | "count": 13, 5 | "author": "ZainCheung", 6 | "name": "网友评论", 7 | "version": "1.0", 8 | "R": [ 9 | { 10 | "text": "活到老学到老,支持原创!" 11 | }, 12 | { 13 | "text": "优秀优秀,必须给个大大的赞!" 14 | }, 15 | { 16 | "text": "大佬的文章让我受益颇多!" 17 | }, 18 | { 19 | "text": "大佬出品,必属精品" 20 | }, 21 | { 22 | "text": "写的不错,顶个贴,点个赞,嘿嘿!" 23 | }, 24 | { 25 | "text": "很棒呀,学习啦,谢谢分享!" 26 | }, 27 | { 28 | "text": "文章条理很清晰,学到了" 29 | }, 30 | { 31 | "text": "大佬写的很好,手动点赞!" 32 | }, 33 | { 34 | "text": "我,***,一枚互联网开发工程师,博客专家,看到此文章决定给你点个赞,请继续加油,有一天回首往事的时候你会觉得,那些奋斗的岁月是你一生的精华。" 35 | }, 36 | { 37 | "text": "感谢博主分享,讲的挺不错,希望后面有更多的文章" 38 | }, 39 | { 40 | "text": "大佬的文章让我受益匪浅,感谢博主!" 41 | }, 42 | { 43 | "text": "放弃不难,但坚持一定很酷!" 44 | }, 45 | { 46 | "text": "看完大佬的文章,我的心情竟是久久不能平静。正如老子所云:大音希声,大象无形。我现在终于明白我缺乏的是什么了。" 47 | } 48 | ] 49 | } 50 | } -------------------------------------------------------------------------------- /market/ZainCheung/马保国/马保国.md: -------------------------------------------------------------------------------- 1 | ### 评论库:马保国 2 | 3 | ### 作者:ZainCheung 4 | 5 | ### 类别:随机 6 | 7 | ### 条目:1 8 | 9 | ### 版本:1.0 10 | 11 | ### 导入链接:[https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json](https://cdn.jsdelivr.net/gh/ZainCheung/CSDN-helper@master/market/ZainCheung/马保国/马保国@1.0.json) 12 | 13 | #### 随机: 14 | 15 | 1. 看到博主我「啪」就点进来了,很快啊,然后上来就是一个点赞、一个评论、一个收藏,全被博主防出去,防出去了啊。防出去以后自然是传统白嫖,以点到为止,我手指停在屏幕上没有点下去。 16 | -------------------------------------------------------------------------------- /market/ZainCheung/马保国/马保国@1.0.json: -------------------------------------------------------------------------------- 1 | { 2 | "commentList": { 3 | "type": "random", 4 | "count": 1, 5 | "author": "ZainCheung", 6 | "name": "马保国", 7 | "version": "1.0", 8 | "R": [ 9 | { 10 | "text": "看到博主我「啪」就点进来了,很快啊,然后上来就是一个点赞、一个评论、一个收藏,全被博主防出去,防出去了啊。防出去以后自然是传统白嫖,以点到为止,我手指停在屏幕上没有点下去。" 11 | } 12 | ] 13 | } 14 | } --------------------------------------------------------------------------------