您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
博客网站留言评论自动填写个人信息方法
// ==UserScript== // @name 【龙笑天下】博客网站留言评论信息自动填充 // @namespace https://www.ilxtx.com/automatically-fill-in-personal-information.html // @version 2.1.3 // @description 博客网站留言评论自动填写个人信息方法 // @author 龙笑天 // @namespace https://greasyfork.org/zh-CN/users/831228 // @homepage https://greasyfork.org/zh-CN/scripts/434862 // @include http://*/* // @include https://*/* // @exclude *://*/wp-admin/* // @exclude *://*/admin/* // @exclude *://*.aliyun.com/* // @exclude *://myssl.com* // @exclude *://*.alipay.com/* // @exclude *://*.taobao.com/* // @exclude *://*.alimama.com/* // @exclude *://*.tmall.com/* // @exclude *://*.qq.com/* // @exclude *://*.tencent.com/* // @exclude *://*.qcloud.com/* // @exclude *://*.tenpay.com/* // @exclude *://*.baidu.com/* // @exclude *://*.iqiyi.com/* // @exclude *://*.jd.com/* // @exclude *://*.meituan.com/* // @exclude *://*.cloudflare.com/* // @exclude *://*.yundun.com/* // @exclude *://github.com/* // @exclude *://weibo.com/* // @exclude *://*.sina.com.cn/* // @exclude *://*.youku.com/* // @exclude *://*.bilibili.com/* // @exclude *://*.acfun.cn/* // @exclude *://douban.com/* // @exclude *://*.jd.com/* // @exclude *://*.huya.com/* // @exclude *://*.douyin.com/* // @exclude *://*.douyu.com/* // @exclude *://*.sohu.com/* // @exclude *://*.letv.com/* // @exclude *://*.toutiao.com/* // @exclude *://*.ixigua.com/* // @exclude *://*.kafan.cn/* // @exclude *://*.163.com/* // @exclude *://*.126.com/* // @exclude *://*.hupu.com/* // @exclude *://*.qidian.com/* // @exclude *://*.mi.com/* // @exclude *://*.360.cn/* // @exclude *://*.icbc.com.cn/* // @exclude *://*.ccb.com/* // @exclude *://*.abchina.com/* // @exclude *://*.cmbchina.com/* // @exclude *://*.boc.cn/* // @exclude *://*.bankcomm.com/* // @exclude *://*.psbc.com/* // @exclude *://*.pingan.com/* // @exclude *://*.citicbank.com/* // @exclude *://*.cib.com.cn/* // @exclude *://*.spdb.com.cn/* // @exclude *://*.cebbank.com/* // @exclude *://*.cmbc.com.cn/* // @exclude *://*.cgbchina.com.cn/* // @exclude *://*.unionpay.com/* // @exclude *://*.chinalife.com.cn/* // @exclude *://*.citi.com/* // @exclude *://*.hsbc.com/* // @exclude *://*.sc.com/* // @exclude *://*.google.com/* // @exclude *://*.google.hk/* // @exclude *://*.google.cn/* // @exclude *://*.apple.com/* // @exclude *://*.youtube.com/* // @exclude *://*.facebook.com/* // @exclude *://twitter.com/* // @exclude *://*.qianxin.com/* // @exclude *://*.mail-tester.com/* // @exclude *://*.openai.com/* // @exclude *://*.godaddy.com/* // @exclude *://*.lowendtalk.com/* // @exclude *://*.racknerd.com/* // @exclude *://*.colocrossing.com/* // @exclude *://*.namecheap.com/* // @exclude *://*.namesilo.com/* // @exclude *://*.expireddomains.net/* // @exclude *://*.mailu.io/* // @exclude *://*.amazon.cn/* // @exclude *://*.amazon.com/* // @exclude *://*.qiniu.com/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAADAFBMVEX///////98f4EveJQEdKAAcakAcacAc6J7f4F/f4BtfYMnd5YDc6ENdJ43eJNRe4tLeo5wfoMzeJMAcqMcdppdfIhffIhce4knd5cbdppHeo4fdpoFc6JBeZAAc6MAcqUAc6QEc6IgdppvfoMTdZ1Jeo0Gc6EAcqQBdKFKeo0UdZ2Ef35vfYMcdZwfdZoAc6EAdKEAdKIZdZsZdZwHc6F+f38WdJ0cdZoCdKELdJ9Ve4t4foESdJ4ddpp7foAyeJQZdZoAcaQAc6UBc6JgfId/f3+Df355f4BGeo98foCJf31ufoNYe4lhfIcJc6EOdZ0PdJ4/eZAgdpk9eZEid5gNdZ4MdZ4QdZ4md5cld5cCdKBUe4qCf34YdZt9f4BmfYY0d5Qhdpgud5Y+eZAddpkBc6FnfYVofYZXe4pufYOGgH1jfYdwfYOEgH6FgH5rfYQAdKABc6Ard5U6eZFefIgud5QMdJ5Meo0DdKABc6NHeY58f4AfdpkCc6FpfYUGdJ8Fc6Bce4gRc6A3eJIBcqUod5Z7f4ABdKAedplGeo5Ieo1ifYcxeJMmdpkAcKlQe4xbe4gAcaUHc593f4GBgH9mfIYEc6EEc6AAc6AAcqIDc6B3foIAcagAcaZTe4sVdZsyeJMCc6ILdJ4weJRIeo54f4EkdpcWdZt9fn89eZAcdpmBf39ReotofYVlfIZtfYQCc6B9f38veJVAeo9Se4tbe4kXdZt9foAgdpiAf34DdJ8wd5ROe4xgfIgBcqNRe4wFc6FLeo02eJMLdJ18f39Neowmd5YPdJ0AcqFcfIg/eZFAeZBbfIhAeY9vfYQmdpcfdpgYdptFeo8IdJ8cdZkFdKBrfYU4eJIDc6IVdJ0bdZtMe40XdpsUdZxZfIoKdJ8edppbfIkud5UCc6NVfIqOgHtUe4sAcqZae4kueJVWe4pPeowpd5aCgH8AAAIBAQAOAABicRgZ9oD//gAAdOkAAAAAAAL2aAAAABkAAAAAABgAgAAAAAAAAAAAAAAAAACw+0DzAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIzSURBVHjafVO/ixNBFP6KvUxzqSaNXJjNHUdmsZlZED1BQd1eRfyBC1cE3D5pQg4MBlH2KmEtEhMSjlwjXJVKDotDuEJbEcE7FIsr/DecN7Orq0Qfy/DtezPfe/O9eUDJvJUKY5UVD8tttVqg6uqSMK+V/87xv8JrdToo/IYxXxDV+kY5Xt8EmpIFuTHZBM43f8cJShVozXQYmkUHShrXhSJeu4hL0guY3gp0QB/T7LLxX7lalI9r19UNocOGYMYaQqvIBqK8fuDmrdu4IwLcrd67/wAPmYpdSNh12/20WFzkZCpxwObIsS+0lswy8nankIEcXSjLEynd2yH0eCfRqk/oCQbAU+CZKyUNU76bo7al8Gl5AWQvXWKt1ZDQSKlX44kBFWCKmdHIFrvHO2FK+uART3UyB/YzYtfmMuw1+WUaJuLA3i4JY7NVcMpCGxKryFxpx4BEabUwtRhmaVP0pMuRqpHdsCs6bB9VJikFFRmP31jmPj+ELV++NTEZZ1SkueZRklgKFXO0MkLvOrRhcmT5ujhmW/bcHvMwchryAd5/YMckFOkoY9Ul96wFuZgTyp5DTKSTGjUMVepS45DHPO8w7w9xULRb5swYqIR9tOgT1ZV7DalcfC4a0mauj0aEL8WTO8Ept438ahriWt3yT3FSKz9a/5tZxm16tN9tOc5devYk91nPPPr4zPo26+XB2FinNZ4JMzjyh9Vq7b+jt82XTGf0a2S96B/zjalvbPqH6yfbenh4ag/oaAAAAABJRU5ErkJggg== // @run-at document-end // @grant unsafeWindow // @license MIT // ==/UserScript== (function() { 'use strict'; /////////// 评论信息配置 /////////// // 您的昵称 var dr_gm_comment_author_name = '您的昵称'; // 您的邮箱 var dr_gm_comment_author_email = '您的邮箱'; // 您的网址 var dr_gm_comment_author_url = '您的网址'; /////////// 评论信息配置 /////////// // 开启debug true/false var dr_gm_debug = false; // 评论信息缺失不执行 if ( dr_gm_comment_author_name==='' || dr_gm_comment_author_email==='' ) { return; } // 只能在顶层窗口中执行 if ( window.top !== window.self ) { return; } // 开始执行 setTimeout(dr_init, 1500); // 填充评论框 function dr_js_autofill_commentinfos() { var lauthor = ["input#author","input[name='comname']","input#inpName","input[name='author']","input#ds-dialog-name","input#name","input[name='name']","input[name='nick']","input#comment_author", ".comment-form input[placeholder='昵称(必填)']","input.atk-name"], lmail =["input#mail","input#email","input[name='commail']","input#inpEmail","input[name='email']","input#ds-dialog-email","input[name='mail']","input#comment_email", ".comment-form input[type='email']","input.atk-email"], lurl =["input#url","input[name='comurl']","input#inpHomePage","input#ds-dialog-url","input[name='url']","input[name='website']","input#website","input[name='link']","input#comment_url", ".comment-form input[type='url']","input.atk-link"]; for (var i = 0; i < lauthor.length; i++) { var author = document.querySelector(lauthor[i]); if (author != null) { author.value = dr_gm_comment_author_name; author.dispatchEvent(new Event('input')); author.dispatchEvent(new Event('change')); break; } } for (var j = 0; j < lmail.length; j++) { var mail = document.querySelector(lmail[j]); if (mail != null) { mail.value = dr_gm_comment_author_email; mail.dispatchEvent(new Event('input')); mail.dispatchEvent(new Event('change')); break; } } for (var k = 0; k < lurl.length; k++) { var url = document.querySelector(lurl[k]); if (url != null) { url.value = dr_gm_comment_author_url; url.dispatchEvent(new Event('input')); url.dispatchEvent(new Event('change')); break; } } return ! 1; } // init function dr_init(){ var filled = false; var obj = dr_get_type(); if ( dr_gm_debug ) { console.log( '【龙笑天下】GM脚本填充评论信息:', obj ); } if( obj && obj.fill ){ dr_js_autofill_commentinfos(); filled = true; } console.log( '【龙笑天下】GM脚本填充评论信息'+( filled?'成功':'失败' )+':', obj.type ); } // 判断评论程序类型 function dr_get_type(){ var obj = null; obj = dr_is_wordpress(); if( obj ){ return obj; } obj = dr_is_twikoojs(); if( obj ){ return obj; } obj = dr_is_artalkjs(); if( obj ){ return obj; } obj = dr_is_valinejs(); if( obj ){ return obj; } obj = dr_is_typecho(); if( obj ){ return obj; } obj = dr_is_zblog(); if( obj ){ return obj; } obj = dr_is_emlog(); if( obj ){ return obj; } return false; } // 检测评论程序 // wordpress function dr_is_wordpress(){ var ck_class = false, ck_meta = null, ck_resources = null, ck_includes = null, ck_api = null; // 检查body上的class var ck_body_obj = document.body; if( !ck_body_obj.classList.contains('logged-in') && ( ck_body_obj.classList.contains('wp-singular') || ck_body_obj.classList.contains('single') || ck_body_obj.classList.contains('page') ) ){ ck_class = true; } // 检查meta生成器标签 ck_meta = document.querySelector('meta[name="generator"][content*="WordPress"]'); // 检测路径的资源引用 ck_resources = document.querySelectorAll(` link[href*="/wp-content/"], script[src*="/wp-content/"], img[src*="/wp-content/"], style[src*="/wp-content/"] `); // 检测路径的资源引用 ck_includes = document.querySelectorAll(` script[src*="/wp-includes/"], link[href*="/wp-includes/"] `); // 检测WordPress REST API ck_api = document.querySelector('link[href*="/wp-json/"]'); // 综合判断 var ret = ck_meta!== null || ck_resources.length>0 || ck_includes.length>0 || ck_api!== null; if( dr_gm_debug ){ console.log( '===== wordpress begin =====' ); console.log( 'ck_class:', ck_class ); console.log( 'ck_meta:', ck_meta ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_includes:', ck_includes ); console.log( 'ck_api:', ck_api ); console.log( 'ret:', ret ); console.log( '===== wordpress end =====' ); } // 返回 if ( ret ) { return {type:'wordpress', fill:ck_class&&ret}; } return false; } // typecho function dr_is_typecho(){ // 检查meta生成器标签 const ck_meta = document.querySelector('meta[name="generator"][content*="Typecho"]'); // 检测路径的资源引用 var ck_resources = document.querySelectorAll(` link[href*="/usr/themes/"], link[href*="/usr/plugins/"], script[src*="/usr/themes/"], script[src*="/usr/plugins/"] `); // 检查特有的全局变量 const ck_var = typeof window.Typecho !== 'undefined'; // 综合判断 var ret = ck_meta !== null || ck_resources.length > 0 || ck_var; if( dr_gm_debug ){ console.log( '===== typecho begin =====' ); console.log( 'ck_meta:', ck_meta ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_var:', ck_var ); console.log( 'ret:', ret ); console.log( '===== typecho end =====' ); } // 返回 if ( ret ) { return {type:'typecho', fill:ret}; } return false; } // ZBlog function dr_is_zblog() { // 检查meta生成器标签 const ck_meta = document.querySelector('meta[name="generator"][content*="Z-Blog"]'); // 检测路径的资源引用 var ck_resources = document.querySelectorAll(` link[href*="/zb_users/"], link[href*="/zb_system/"], script[src*="/zb_users/"], script[src*="/zb_system/"] `); // 检查全局变量 const ck_var = typeof window.ZBlog !== 'undefined'; // 综合判断 var ret = ck_meta !== null || ck_resources.length > 0 || ck_var; if( dr_gm_debug ){ console.log( '===== zblog begin =====' ); console.log( 'ck_meta:', ck_meta ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_var:', ck_var ); console.log( 'ret:', ret ); console.log( '===== zblog end =====' ); } // 返回 if ( ret ) { return {type:'zblog', fill:ret}; } return false; } // Emlog function dr_is_emlog() { // 检查meta生成器标签 const ck_meta = document.querySelector('meta[name="generator"][content*="Emlog"]'); // 检测路径的资源引用 var ck_resources = document.querySelectorAll(` link[href*="/content/templates/"], link[href*="/content/plugins/"], script[src*="/content/templates/"] `); // 4. 检查特有的全局变量 const ck_var = typeof window.emlog !== 'undefined'; // 综合判断 var ret = ck_meta !== null || ck_resources.length > 0 || ck_var; if( dr_gm_debug ){ console.log( '===== emlog begin =====' ); console.log( 'ck_meta:', ck_meta ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_var:', ck_var ); console.log( 'ret:', ret ); console.log( '===== emlog end =====' ); } // 返回 if ( ret ) { return {type:'emlog', fill:ret}; } return false; } // twikoo.js function dr_is_twikoojs() { // 检测路径的资源引用 var ck_resources = document.querySelectorAll(` script[src*="twikoo.min.js"], script[src*="twikoo.js"], script[src*="twikoo.all.min.js"], script[src*="twikoo.all.js"], script[src*="jsdelivr.net/npm/twikoo/"], script[src*="unpkg.com/twikoo"], script[src*="staticfile.org/twikoo/"] `); // 检测容器元素 const ck_container = document.querySelector('#twikoo-wrap'); // 检测全局对象 const ck_var = typeof window.twikoo !== 'undefined'; // 综合判断 var ret = ck_resources.length > 0 || ck_container!==null || ck_var; if( dr_gm_debug ){ console.log( '===== twikoo.js begin =====' ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_container:', ck_container ); console.log( 'ck_var:', ck_var ); console.log( 'ret:', ret ); console.log( '===== twikoo.js end =====' ); } // 返回 if ( ret ) { return {type:'twikoo.js', fill:ret}; } return false; } // artalk.js function dr_is_artalkjs() { // 检测script标签引用 const ck_resources = Array.from(document.scripts).some(script => { return script.src.includes('artalk.js') || script.src.includes('artalk.min.js') || script.src.includes('artalk/dist/') || script.src.includes('jsdelivr.net/npm/artalk'); }); // 检测容器元素 const ck_container = document.querySelector('#artalk-wrap'); // 检测全局对象 const ck_var = typeof window.Artalk !== 'undefined'; // 检测初始化代码特征 const ck_initcode = document.documentElement.innerHTML.includes('Artalk.init({'); // 综合判断 var ret = ck_resources || ck_container !== null || ck_var || ck_initcode; if( dr_gm_debug ){ console.log( '===== artalk.js begin =====' ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_container:', ck_container ); console.log( 'ck_var:', ck_var ); console.log( 'ck_initcode:', ck_initcode ); console.log( 'ret:', ret ); console.log( '===== artalk.js end =====' ); } // 返回 if ( ret ) { return {type:'artalk.js', fill:ret}; } return false; } // valine.js function dr_is_valinejs() { // 检测script标签引用 const ck_resources = Array.from(document.scripts).some(script => { return script.src.includes('/Valine.min.js"') || script.src.includes('/Valine.js') || script.src.includes('unpkg.com/valine') || script.src.includes('jsdelivr.net/npm/valine'); }); // 检测容器元素 const ck_container = document.querySelector('#vcomments'); // 检测全局对象 const ck_var = typeof window.Valine !== 'undefined'; // 检测初始化代码特征 const ck_initcode = document.documentElement.innerHTML.includes('new Valine({'); // 综合判断 var ret = ck_resources || ck_container !== null || ck_var || ck_initcode; if( dr_gm_debug ){ console.log( '===== valine.js begin =====' ); console.log( 'ck_resources:', ck_resources ); console.log( 'ck_container:', ck_container ); console.log( 'ck_var:', ck_var ); console.log( 'ck_initcode:', ck_initcode ); console.log( 'ret:', ret ); console.log( '===== valine.js end =====' ); } // 返回 if ( ret ) { return {type:'valine.js', fill:ret}; } return false; } })();