// ==UserScript== // @name Highlight Unread Novel // @namespace https://greasyfork.org/en/users/1264733 // @version 2024-03-20 // @description Highlight Unread Novel On Kakuyomu Narou Alphapolis Favorite Page // @author LE37 // @license MIT // @include https://kakuyomu.jp/my/antenna/works // @include https://syosetu.com/favnovelmain/list/ // @include https://www.alphapolis.co.jp/mypage/notification/index/110000* // @grant none // @downloadURL none // ==/UserScript== (()=>{ 'use strict'; // Unread Number const urNum = 3; // Unread Color const urColor = "red"; let oUnread, no; switch (location.host) { case "kakuyomu.jp": oUnread = "li.widget-antennaList-unreadEpisodeCount b"; Direct(); break; case "syosetu.com": oUnread = "span.p-up-bookmark-item__unread-num"; Direct(); break; case "www.alphapolis.co.jp": oUnread = "div.content-main"; Calculate(); break; } function Direct() { no = document.querySelectorAll(oUnread); for(let i = 0; i < no.length; i++) { if (parseInt(no[i].textContent) > urNum) { no[i].parentElement.style.color = urColor; } } } function Calculate() { no = document.querySelectorAll(oUnread); for(let i = 0; i < no.length; i++) { const total = no[i].querySelector("a.total"); const tn = parseInt(total.textContent.match(/[0-9]+/)[0]); const current = no[i].querySelector("a.disp-order"); const cn = current ? parseInt(current.textContent.match(/[0-9]+/)[0]) : 0; const alter = current ? current : no[i].querySelector("h2.title a"); if (tn - cn > urNum) { alter.style.color = urColor; } } } })();