// ==UserScript== // @name 京东ck获取并提交到青龙_后台 // @namespace jdck // @version 0.1.0 // @description 获取京东的ck并提交到青龙面板,需要提交时点击一次运行脚本,需要配置面板client // @author 王一之 // @grant GM_cookie // @grant GM_addValueChangeListener // @grant GM_setValue // @grant GM_getValue // @grant GM_notification // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @connect jd.com // @background // ==/UserScript== /* ==UserConfig== 青龙配置: url: title: 青龙面板地址 description: '青龙面板地址,例如: http://127.0.0.1:1080' clientId: title: clientId description: 请在 系统设置->应用设置 添加应用,然后复制client id值 clientSecret: title: clientSecret description: 请在 系统设置->应用设置 添加应用,然后复制client secret值 ckName: title: ck变量名称 description: 京东ck的变量名称 default: JD_COOKIE ==/UserConfig== */ function getCk() { return new Promise((resolve, reject) => { let jdCookie = ''; GM_cookie('list', { domain: '.jd.com', name: "pt_key" }, (item) => { if (item.length == 0) { return reject(); } jdCookie = "pt_key=" + item[0].value; GM_cookie('list', { domain: '.jd.com', name: "pt_pin" }, (item) => { if (item.length == 0) { return reject(); } jdCookie += ";pt_pin=" + item[0].value + ";"; resolve(jdCookie); }); }); }); } function ajax(method, url, data) { return Promise((resolve, reject) => { GM_xmlhttpRequest({ url: url, method: method, data: data, onload(resp) { console.log(resp); let code = xhr.response.code || 'unknow'; let msg = xhr.response.message || 'unknow'; if (code == 200) { resolve(resp.response); } else { reject(resp.response); } }, onerror(resp) { console.log(resp); } }); }); } function setQlCk(ck) { //获取青龙token let url = GM_getValue('青龙配置.url'); if (!url) { return reject('请配置青龙地址'); } let clientId = GM_getValue('青龙配置.clientId'); let clientSecret = GM_getValue('青龙配置.clientSecret'); await ajax('get',); } return new Promise(async (resolve, reject) => { GM_addValueChangeListener('push-ck', (name, oldval, newval) => { getCk().then(ck => { GM_setClipboard(ck); GM_setValue('jdck', ck); GM_notification({ title: '京东ck获取并提交到青龙', text: '以将ck复制到了剪辑版,请确定是否还要继续自动提交到青龙面板', buttons: [{ title: '提交', }, { title: '取消' }], onclick(id, index) { if (index === 0) { //获取client并推送到青龙 } } }); }).catch(res => { GM_notification({ title: '京东ck获取并提交到青龙', text: '京东ck获取失败,请确定是否登录', }); }); }); });