您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Добавляет фильтр по дате к видео в поиске Google
// ==UserScript== // @name Google Video Date Filter // @namespace http://tampermonkey.net/ // @version 1.1 // @author aket0r // @description Добавляет фильтр по дате к видео в поиске Google // @match https://www.google.com/search* // @grant none // @license MIT // @icon https://raw.githubusercontent.com/aket0r/Google-Video-Date-Filter/main/Google%20Video%20Date%20Filter.png // ==/UserScript== (function () { 'use strict'; function createFilterElement() { const path = document.querySelector('.crJ18e'); if (!path || document.querySelector('#sorting-by')) return; const filterElement = document.createElement('div'); filterElement.className = 'sorting-by'; filterElement.innerHTML = `<input style="border: 1px solid #444; padding: 2px 5px; font-size: 15px; outline: none; cursor: text;" title="use '0' to reset filter" type="number" id="sorting-by" placeholder="2012, 2020, 2021... ${new Date().getFullYear()}">`; path.append(filterElement); document.querySelector("#sorting-by").addEventListener("keyup", function (e) { if (this.value.trim() === '') return; if (e.code === 'Enter' || e.code === 'Space') { console.log(`%crunning with date: ${this.value} y.`, 'color: yellow'); initFilter(+this.value); } }); } function initFilter(setDate = new Date().getFullYear()) { console.log('event: initFilter'); document.querySelectorAll(".MjjYud > div").forEach(el => { let date = el.querySelector('.YrbPuc'); try { let t = date.innerText.split(' '); let currDate = +t[t.length - 1].replace('г.' || 'y.', '').trim(); if (currDate < setDate) { el.style.display = 'none'; } else if (setDate === 0) { el.style.display = 'block'; } } catch(e) { console.warn('user-script error: ', e); } }); } const observer = new MutationObserver(() => { if (document.querySelector('.crJ18e') && !document.querySelector('#sorting-by')) { createFilterElement(); } }); observer.observe(document.body, { childList: true, subtree: true }); })();