获取网站的cookie,支持字符串,json,netcscpe标准格式
// ==UserScript== // @name get-cookies // @namespace https://github.com/mudssky/get-cookies // @version 0.2 // @author mudssky // @description 获取网站的cookie,支持字符串,json,netcscpe标准格式 // @grant GM_registerMenuCommand // @grant GM_setClipboard // @match *://*/* // @run-at document-start // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // ==/UserScript== "use strict"; function getCookiesStr() { return document.cookie; } function getCookieObj() { var cookieObj = {}; var cookieStr = getCookiesStr(); var pairList = cookieStr.split(';'); for (var _i = 0, pairList_1 = pairList; _i < pairList_1.length; _i++) { var pair = pairList_1[_i]; var _a = pair.trim().split('='), key = _a[0], value = _a[1]; cookieObj[key] = value; } return cookieObj; } function getCookiesJson() { var cookieObj = getCookieObj(); return JSON.stringify(cookieObj); } function convertNetScopeCookies(copyFromChrome) { var cookieStr = ''; var header = [ '# Netscape HTTP Cookie File\n', '# generate by get-cookies userscript! Do not edit.\n\n', ]; cookieStr += header.join(''); var cookieslines = copyFromChrome.split('\n'); console.log(cookieslines); console.log(copyFromChrome); for (var _i = 0, cookieslines_1 = cookieslines; _i < cookieslines_1.length; _i++) { var cookie = cookieslines_1[_i]; var _a = cookie.split('\t'), name_1 = _a[0], value = _a[1], domain = _a[2], path = _a[3], expiration = _a[4], httpOnly = _a[6]; if (!name_1) continue; if (domain.charAt(0) !== '.') domain = '.' + domain; httpOnly = httpOnly === '✓' ? 'TRUE' : 'FALSE'; if (expiration === 'Session') { expiration = '' + new Date(Date.now() + 86400 * 1000).getTime() / 1000; } else { expiration = '' + Math.floor(new Date(expiration).getTime()); } cookieStr += [domain, 'TRUE', path, httpOnly, expiration, name_1, value].join('\t') + '\n'; } return cookieStr; } function copyCookieJson() { var cookieJson = getCookiesJson(); GM_setClipboard(cookieJson, { type: 'text', mimetype: 'text/plain' }); } function copyCookieString() { GM_setClipboard(getCookiesStr(), { type: 'text', mimetype: 'text/plain' }); } function createConfigUI() { var div = document.createElement('div'); div.innerHTML = "\n <textarea rows=\"20\" cols=\"100\" id=\"configUITextArea\"></textarea>\n <div>\n <button id=\"configUIConvert\">\u8F6C\u6362</button>\n <button id=\"configUIcancel\">\u53D6\u6D88</button>\n </div>\n "; div.id = 'configUIdiv'; div.style.cssText = 'display:none'; document.body.appendChild(div); var cancelBtn = document.querySelector('#configUIcancel'); cancelBtn.onclick = hideConfigUI; var convertBtn = document.querySelector('#configUIConvert'); convertBtn.onclick = excuteConvert; } function hideConfigUI() { var div = document.querySelector('#configUIdiv'); div.style.cssText = 'display:none'; } function showConfigUI() { var div = document.querySelector('#configUIdiv'); div.style.cssText = 'width:800px;height:600px;position:fixed;left:0;right:0;top:0;bottom:0;margin:auto;'; } function excuteConvert() { var cookieStr = document.querySelector('#configUITextArea').value; GM_setClipboard(convertNetScopeCookies(cookieStr), { type: 'text', mimetype: 'text/plain', }); } ; (function () { function main() { createConfigUI(); GM_registerMenuCommand('copy cookies string', copyCookieString); GM_registerMenuCommand('copy cookies json', copyCookieJson); GM_registerMenuCommand('convert cookies netscape', showConfigUI); } setTimeout(main, 3000); })();