// ==UserScript== // @name 修改 Yandex 搜索引擎的 cookie // @namespace https://scriptcat.org/zh-CN/users/157252 // @author Aloazny && deepseek // @version 1.3.8 // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAO8SURBVGiBzZo9aBxHFMd/tiMsIRO2VGHQKoEoTcI2dgxutnY+7kjlctUJ2STbRO2dS3dqQiDGsJVLs+Ai6nSqEpFCCw5BBiVaoUbG2DdnSLjCZl3MrrS3H9Luztyd/vC4u7l57/3f7Myb2Zm5hB58CnwF3AJuxt+L8Ecsf8af/2ry3whXgRXgORA1lOeAA8xMkvg88CNwpEA8K0fAD7HtseEasA680kg8K6+An2JfWvElEI6ReFYOgGVd5L8G/p8g+UQGwHeq5O8B76ZAPpF3yPHWCO4UiWfFrUv+W+D9BSCeyHugXZX8MvDfBSCdFUHBwL6U+f0xsAN8Xhad4zgsLi6OlG1vb9Pr9c5slSwsy6LVao2UHR4e4nneWWp7yFn+bVmFLue0hOu6URZbW1u1W9TzvJwd13Wr6HbLyH8GDM8zYBhGJITIObdtuzJ50zRz+kKIyDCMKvpD4HpC+nIqgDXk+uZMCCHY2NjIlbtu9UThOE6uzPM8hBBV1K8C97OFBjUmK8Mwci0YRVFkmmYl3X6/30g3Ja+BuXQAqzWUS/uw53nn6jmOk9Pzfb9JVlpNBxDUNVDUj6u0ZBiGSuMnJUFCfqGBculT6Ha7pfXb7XaufhAEjXzHsgByhmtkwLbtHKF+v1+aTXq9Xq6+4zgqAbQBHioYKCRVlM+LulwYhirko5g7mypGirrFwcGBcnerKJsA+4pGCgdmumuUpd2KE9dZsg9wrBpAUWrc3d09+b/b7eb+r5JyK8gxVFg+NH0KSXosWnrUnLjKZPgRmuB5Hp1OZ6Ss0+kQBAHtdn4pH4ahLtcINDyBskWeZVk6Wrq0C11BTsmGaisMh0NmZ2exbXukfG5uDt/3Vc2X4SUoptG0NF1eKMjmFeAL4LaO5hBCsLS0hGVZI+WDwaD2G1tFPAW4i8ZWKXoKRRObJmkDmLoN+74/qcG8cBm5ZfhX9ad2PoIgyJWZpqnTBUjOx8kr5WPd1rPIjgsN+BlO34k94I1uD2NEH3gCpwEI4NHU6NTHr8R7Q+ldiV+mw6URTrimAzgEHkyeS208QHIFRgMAuev1YqJ06uFvMjtz2QAAWsg9oouGAfB9tjC7uZvgG+BZU0+maebyfhiGqkvoO8BvdRQu0gHHWpOIQR7vTPuI6V5T8gnuIHPupMm/jX1rwTLy6HNS5PeQ2/1acQ15CD3ug+51xnDQncZ87ER5OyYlR8jxNtarBlnMIC9qqF72WEHhskfZPFAXnyCv2tyIP2+V1NsBfkdet9kB/lF1/AHARK9LUX9T5wAAAABJRU5ErkJggg== // @description 自用脚本,为 Yandex 搜索选择性地注入 Cookie。 // @match http*://*yandex.*/* // @match http*://ya.ru/* // @match http*://yandex.*/* // @match http*://yandex.by/* // @match http*://yandex.com.by/* // @match http*://yandex.com.eu/* // @match http*://yandex.com.fr/* // @match http*://yandex.com.kz/* // @match http*://yandex.com.lv/* // @match http*://yandex.com.net/* // @match http*://yandex.com.ru/* // @match http*://yandex.com.tr/* // @match http*://yandex.com.ua/* // @match http*://yandex.com.uz/* // @match http*://yandex.com/* // @match http*://yandex.eu/* // @match http*://yandex.fr/* // @match http*://yandex.kz/* // @match http*://yandex.lv/* // @match http*://yandex.net/* // @match http*://yandex.ru/* // @match http*://yandex.tr/* // @match http*://yandex.ua/* // @match http*://yandex.uz/* // @run-at document-start // @license MIT // @grant none // ==/UserScript== (function() { 'use strict'; const COOKIE_ENTRIES = { 'receive-cookie-deprecation': '1', 'gpb': 'yandex_gid.90#ygo.84%3A90#ygu.0', 'yandex_gid': '90', 'KIykI': '1', 'my': 'YycCAAMrAVoA', 'is_gdpr': '0', 'is_gdpr_b': 'CI2uORC1sQIoAg==', 'yp': '1791962047.dafs.24-3#1763356501.dlp.1#2077928979.pcs.0#1794104599.sp.family:0:shst:1#1794104979.swntab.0#1775618089.sz.904x407x3#1762914389.szm.3:904x407:407x822:0#1762741476.ygo.21320:90#1765160676.ygu.0' }; const EXPIRY_DAYS = 3650; const COOKIE_DEBUG = true; function extractCookieDomain(hostname) { const parts = hostname.split('.'); const yandexIndex = parts.findIndex(part => part === 'yandex' || part === 'ya' ); if (yandexIndex !== -1) { return '.' + parts.slice(yandexIndex).join('.'); } if (parts.length <= 2) { return '.' + hostname; } const tld = parts.pop(); const domain = parts.pop(); return '.' + domain + '.' + tld; } function getCurrentCookies() { return Object.fromEntries( document.cookie.split(';') .map(cookie => { const [name, ...valueParts] = cookie.trim().split('='); return [name, valueParts.join('=')]; }) .filter(([name]) => name && COOKIE_ENTRIES.hasOwnProperty(name)) ); } function setCookie(name, value, domain) { const expires = new Date(); expires.setTime(expires.getTime() + EXPIRY_DAYS * 86400000); const isSecure = window.location.protocol === 'https:'; const sameSite = isSecure ? 'None' : 'Lax'; const secureFlag = isSecure ? '; secure' : ''; const cookieStr = `${name}=${value}` + `; domain=${domain}` + `; path=/` + `; expires=${expires.toUTCString()}` + `${secureFlag}` + `; SameSite=${sameSite}`; try { document.cookie = cookieStr; return true; } catch (error) { if (COOKIE_DEBUG) console.error(`设置Cookie ${name}失败:`, error); return false; } } function main() { const hostname = window.location.hostname; const cookieDomain = extractCookieDomain(hostname); const currentCookies = getCurrentCookies(); let updatedCount = 0; Object.entries(COOKIE_ENTRIES).forEach(([name, value]) => { if (currentCookies[name] !== value) { if (setCookie(name, value, cookieDomain)) { updatedCount++; if (COOKIE_DEBUG) console.log(`已更新Cookie: ${name}`); } } }); if (COOKIE_DEBUG && updatedCount > 0) { console.log(`[Cookie脚本] 已更新 ${updatedCount} 个Cookie,域名: ${cookieDomain}`); } } try { main(); } catch (error) { if (COOKIE_DEBUG) console.error('[Cookie脚本] 执行出错:', error); } })();