您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Highlight notifications pertaining to yourself on GitHub and place them at the top of the home feed.
当前为
- // ==UserScript==
- // @name GitHub Notifications Highlight
- // @namespace https://github.com/GooglyBlox
- // @version 1.4
- // @description Highlight notifications pertaining to yourself on GitHub and place them at the top of the home feed.
- // @author GooglyBlox
- // @match https://github.com/
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- function highlightNotifications() {
- const notifications = document.querySelectorAll('.js-feed-item-component');
- let importantContainer = document.querySelector('#important-notifications');
- if (!importantContainer) {
- importantContainer = document.createElement('div');
- importantContainer.id = 'important-notifications';
- importantContainer.style.border = '2px solid #f39c12';
- importantContainer.style.padding = '10px';
- importantContainer.style.marginBottom = '20px';
- importantContainer.style.backgroundColor = '#594b00';
- importantContainer.style.marginTop = '20px';
- const importantTitle = document.createElement('h3');
- importantTitle.textContent = 'Important Notifications';
- importantContainer.appendChild(importantTitle);
- const homeTitle = document.querySelector('h2[data-target="feed-container.feedTitle"]');
- if (homeTitle) {
- const parentContainer = homeTitle.parentElement;
- parentContainer.insertAdjacentElement('afterend', importantContainer);
- }
- }
- const processedNotifications = new Set();
- notifications.forEach(notification => {
- const notificationId = notification.id;
- if (!notificationId || processedNotifications.has(notificationId)) {
- return;
- }
- const header = notification.querySelector('header');
- if (!header) return;
- const notificationText = header.textContent.toLowerCase();
- const isImportant = (
- notificationText.includes('starred') && notificationText.includes('your repository') ||
- notificationText.includes('forked') && notificationText.includes('your repository') ||
- notificationText.includes('started following')
- );
- if (isImportant && !notification.closest('#important-notifications')) {
- importantContainer.appendChild(notification);
- processedNotifications.add(notificationId);
- }
- });
- }
- const feedContainer = document.querySelector('.news');
- if (feedContainer) {
- const observer = new MutationObserver(() => {
- setTimeout(highlightNotifications, 500);
- });
- observer.observe(feedContainer, { childList: true, subtree: true });
- }
- window.addEventListener('load', () => {
- highlightNotifications()
- });
- })();