// ==UserScript== // @name 油猴酷@百度,谷歌搜索记录在线保存收藏 // @namespace www.keywords.cool // @homepage https://www.keywords.cool // @version 1.0.5 // @description 可以自动在线保存百度,谷歌搜索过的关键词,可以浏览,收藏,搜索, 删除关键字。需要配合chrome扩展使用才能体验完整的功能。本脚本对收集的用户信息,只有用户自己可见。采取完全保密的原则,完全尊重用户隐私。请大家放心使用。 // @author colin // @match *://www.baidu.com/* // @match *://www.google.com/search?* // @require https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant unsafeWindow // @downloadURL none // ==/UserScript== var jq1124 = jQuery.noConflict(true); // 重要重要重要,注意:这里填写您的api Token注意不要换行,api Token从官网登录进个人中心获取,官网是 https://www.keywords.cool var token = "replace this with your api 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;} `); (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(`