您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A userscript that changes the document title if there are unread messages
当前为
- // ==UserScript==
- // @name GitHub Title Notification
- // @version 1.0.1
- // @description A userscript that changes the document title if there are unread messages
- // @license https://creativecommons.org/licenses/by-sa/4.0/
- // @namespace http://github.com/Mottie
- // @include https://github.com/*
- // @run-at document-idle
- // @grant GM_registerMenuCommand
- // @grant GM_getValue
- // @grant GM_setValue
- // @author Rob Garrison
- // ==/UserScript==
- /* jshint unused:true, esnext:true */
- (function() {
- "use strict";
- let timer,
- // indicator added to document title (it will be wrapped in parentheses)
- indicator = GM_getValue("indicator", "♥"),
- // check every 30 seconds
- interval = GM_getValue("interval", 30);
- function hasClass(el, name) {
- if (el) {
- return el.classList ? el.classList.contains(name) : new RegExp("\\b" + name + "\\b").test(el.className);
- }
- return false;
- }
- function check() {
- let title = document.title,
- hasUnread = hasClass(document.querySelector(".mail-status"), "unread");
- //
- if (!/^\(\d+\)/.test(title)) {
- title = title.replace(/^\([^)]+\)\s/, "");
- }
- document.title = hasUnread ? "(" + indicator + ") " + title : title;
- }
- function setTimer() {
- clearInterval(timer);
- if (document.querySelector(".mail-status")) {
- timer = setInterval(function() {
- check();
- }, interval * 1000);
- check();
- }
- }
- // Add GM options
- GM_registerMenuCommand("Set GitHub Title Notification Indicator", function() {
- indicator = prompt("Indicator Value (it will be wrapped in parentheses)?", indicator);
- GM_setValue("indicator", indicator);
- check();
- });
- GM_registerMenuCommand("Set GitHub Title Notification Interval", function() {
- interval = prompt("Interval Value (in seconds)?", interval);
- GM_setValue("interval", interval);
- setTimer();
- });
- setTimer();
- })();