您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hide starred repos in trending and remove slob
// ==UserScript== // @name GitHub: Undiscovered Trending // @namespace shiftgeist // @icon https://github.com/fluidicon.png // @match https://github.com/trending* // @grant none // @version 20250422 // @author shiftgeist // @description Hide starred repos in trending and remove slob // @license GNU GPLv3 // ==/UserScript== function log(...params) { if (localStorage.getItem('undiscovered-debug') === 'true') { console.log('[undiscovered]', ...params) } } function createIgnoreButton(ignoredRepos, urlToIgnore, onclick) { const button = document.createElement('button') button.className = 'Button--secondary Button--small Button ml-2 ignore-button' button.innerText = 'Ignore' button.onclick = () => { ignoredRepos.push(urlToIgnore) onclick() localStorage.setItem('undiscovered-ignored', JSON.stringify(ignoredRepos)) } return button } function main() { log('start of main') setTimeout(() => { log('delay done') const ignoredRepos = JSON.parse(localStorage.getItem('undiscovered-ignored') || '[]') const articles = document.querySelectorAll('article') const parent = document.querySelector('[data-hpc=""]') for (const article of articles) { const url = article.querySelector('h2 a').getAttribute('href') const hasButton = article.querySelector('.ignore-button') const buttonsContainer = article.querySelector('.float-right.d-flex') if (!hasButton) { function onclick() { article.remove() main() } const button = createIgnoreButton(ignoredRepos, url, onclick) buttonsContainer.append(button) } if ( // Already starred article.querySelector('.starred-button-icon').getClientRects().length > 0 || // Ignored ignoredRepos.includes(url) || // Contains AI [ ' ai ', 'ai assistant', 'ai chat', 'ai models', 'ai-powered', 'crypto', 'deepseek', 'defi', 'gemini', 'gpt', 'llm', 'mcp', 'ollama', 'openai', 'qwenlm', ].findIndex(e => article.innerText.toLowerCase().includes(e)) >= 0 ) { article.remove() } } // no repos dispalyed if (parent.childElementCount === 0) { const empty = document.createElement('article') empty.className = 'Box-row' empty.innerText = 'Nothing to discover' parent.append(empty) } }, 100) } log('init') let previousUrl = '' const observer = new MutationObserver(function (mutations) { if (location.href !== previousUrl) { previousUrl = location.href main() } }) const config = { subtree: true, childList: true } observer.observe(document, config)
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址