// ==UserScript== // @name 油猴酷@百度,谷歌搜索记录在线保存收藏 // @namespace www.keywords.cool // @homepage https://www.keywords.cool // @version 1.2025.02.16 // @description 可以自动在线保存百度,谷歌搜索过的关键词,可以浏览,收藏,搜索, 删除关键字。需要配合chrome扩展使用才能体验完整的功能。本脚本对收集的用户信息,只有用户自己可见。采取完全保密的原则,完全尊重用户隐私。请大家放心使用。 // @author colin // @match *://www.baidu.com/* // @match *://www.google.com/search?* // @match *://www.google.com.hk/search?* // @require https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/1.12.4/jquery.min.js // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant unsafeWindow // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/405672/%E6%B2%B9%E7%8C%B4%E9%85%B7%40%E7%99%BE%E5%BA%A6%2C%E8%B0%B7%E6%AD%8C%E6%90%9C%E7%B4%A2%E8%AE%B0%E5%BD%95%E5%9C%A8%E7%BA%BF%E4%BF%9D%E5%AD%98%E6%94%B6%E8%97%8F.user.js // @updateURL https://update.greasyfork.icu/scripts/405672/%E6%B2%B9%E7%8C%B4%E9%85%B7%40%E7%99%BE%E5%BA%A6%2C%E8%B0%B7%E6%AD%8C%E6%90%9C%E7%B4%A2%E8%AE%B0%E5%BD%95%E5%9C%A8%E7%BA%BF%E4%BF%9D%E5%AD%98%E6%94%B6%E8%97%8F.meta.js // ==/UserScript== var jq1124 = jQuery.noConflict(true); // !!!!!!!!!!! 重要重要重要,注意:这里填写您的api Token注意不要换行,填写完毕后点“文件-》保存”否则不会生效。api Token从官网注册后,登录进个人中心获取,官网是 https://www.keywords.cool var token = "你的token填这里"; // 特别重要!!!该脚本可以单独使用,但功能有限制,目前己知百度在某些情况下不能自动向服务器推送数据。要想获得更好体验请同时安装chrome扩展(推荐)。如果你非要单独使用请打开line:107、line:108两行注释。回车或点击“百度一下”会推 // 送数据,但有些情况下不会主动推送数据,比如你选择了百度下拉推荐,或是直接在搜索框搜索没有回车,没有点按钮。所以如果你发现有些词没有保存,请点一下“百度一下”按钮。安装chrome扩展完全不用担心这个问题。因为她是监听百度xhr请求的。 // 这里是接口主地址不能修改 var restUrl = "https://www.keywords.cool/api/v1/"; GM_addStyle(` #kwc-panel-g ul li p {margin:0;word-break:break-all;} .D6j0vc, .big .D6j0vc { max-width: 1539px; display: flex; width: 1539px; } #simSearchFrame { margin-left:60px; } `); (function($) { 'use strict'; // Your code here... // 发送 http 请求的基类 class Base{ constructor(){ this.baseRequestUrl = restUrl; } request(params){ let url = this.baseRequestUrl + params.url; if(!params.type){ params.type = 'GET'; } GM_xmlhttpRequest({ method: params.type, url: url, responseType: 'json', data: params.data, headers: { "Content-Type": "application/x-www-form-urlencoded", "token": token }, onload: res => { params.sCallback && params.sCallback(res.response); } }); } } // post get 关键词的类 class Keywords extends Base { constructor(){ super(); } postWordsToServer(data, callback){ this.request({ url:'keywords/save', type: 'post', data: 'keywords='+data.keywords+'&type='+data.type, sCallback: res => { callback && callback(res) } }); } getUserKeywords(callback){ this.request({ url:'keywords/get', sCallback: res => { callback && callback(res) } }); } addToFavorite(id,callback){ this.request({ url:'keywords/favorite', type: 'post', data: 'id='+id, sCallback: res => { callback && callback(res) } }); } } // 脚本的主要部分开始 let domain = document.domain; if(domain == 'www.baidu.com'){ $(".s_form").append(`