您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Marks Subscription items as up to date on MangaSee if latest chapter has been read & Opens links for newly released chapters
当前为
// ==UserScript== // @name MUTD MangaSee Subscriptions // @version 1.91 // @description Marks Subscription items as up to date on MangaSee if latest chapter has been read & Opens links for newly released chapters // @author Null-Cat // @match https://mangasee123.com/user/subscription.php // @icon https://www.google.com/s2/favicons?domain=mangasee123.com // @require https://code.jquery.com/jquery-3.6.0.min.js // @grant window.focus // @license MIT // @namespace http://greasyfork.icu/users/926659 // ==/UserScript== const sleep = (milliseconds) => { return new Promise(resolve => setTimeout(resolve, milliseconds)) } function MarkUpToDate() { var listOfSubscriptionElements = document.getElementsByClassName("top-10 bottom-5 ng-scope"); for (var i = 0; i <= (listOfSubscriptionElements.length - 1); i++) { if (listOfSubscriptionElements[i].getElementsByClassName("UpToDateNotif")[0] == undefined) { //Duplication prevention let currentRowFlexElement = listOfSubscriptionElements[i].getElementsByClassName("row")[1]; let latestChapterReleased = parseFloat(listOfSubscriptionElements[i].getElementsByClassName("ng-binding")[1].getInnerHTML().replace("Chapter", "").trim()); let latestChapterUserRead = parseFloat(listOfSubscriptionElements[i].getElementsByClassName("ng-binding")[3].getInnerHTML().replace("Chapter", "").trim()); currentRowFlexElement.style.justifyContent = "center"; currentRowFlexElement.style.alignItems = "center"; if (latestChapterReleased === latestChapterUserRead) { //Match Last Read and Latest Chapter currentRowFlexElement.append(upToDate.cloneNode(true)); } else if (listOfSubscriptionElements[i].getElementsByClassName("ng-binding")[3].getInnerHTML().trim() === "Ongoing (Scan)") { //N/A as the Last Read Chapter upToDate.style.color = "#dc3545"; upToDate.innerHTML = "NOT STARTED"; currentRowFlexElement.append(upToDate.cloneNode(true)); upToDate.style.color = "#2588ff"; upToDate.innerHTML = "UP TO DATE"; } else { //Display how many chapters the user is behind in let chapterDifference = (latestChapterReleased - latestChapterUserRead).toFixed(1); if (chapterDifference == 1) { upToDate.style.color = "rgb(232 230 227)"; upToDate.style.backgroundColor = "rgb(200 150 0)"; upToDate.innerHTML = "NEW CHAPTER"; listOfLinksToOpen.push(listOfSubscriptionElements[i].getElementsByClassName("ng-binding")[0].href); } else if (chapterDifference < 0) { upToDate.style.color = "rgb(232 230 227)"; upToDate.style.backgroundColor = "#dc3545"; upToDate.innerHTML = "MISMATCH"; listOfLinksToOpen.push(listOfSubscriptionElements[i].getElementsByClassName("ng-binding")[0].href); } else if (chapterDifference < 1) { upToDate.style.color = "rgb(232 230 227)"; upToDate.style.backgroundColor = "rgb(200 150 0)"; upToDate.innerHTML = "<1 CHAPTER(S)"; listOfLinksToOpen.push(listOfSubscriptionElements[i].getElementsByClassName("ng-binding")[0].href); } else { upToDate.style.color = "#dc3545"; upToDate.innerHTML = parseInt(chapterDifference) + " CHAPTERS"; } currentRowFlexElement.append(upToDate.cloneNode(true)); upToDate.style.color = "#2588ff"; upToDate.style.backgroundColor = "" upToDate.innerHTML = "UP TO DATE"; } } if (listOfLinksToOpen.length === 0) { buttonText.innerHTML = " Open New Chapters (UP TO DATE)"; } else { buttonText.innerHTML = ` Open New Chapters (${listOfLinksToOpen.length})`; } } } async function Init() { await sleep(100); var optionsMenu = document.getElementsByClassName("col-sm-7 col-5")[0]; //Open New Chapters Button Creation var openAllChaptersButton = document.createElement("button"); openAllChaptersButton.className = "btn btn-sm btn-outline-primary"; let buttonIcon = document.createElement("i"); buttonIcon.className = "fas fa-external-link-alt"; openAllChaptersButton.append(buttonIcon); openAllChaptersButton.append(buttonText); optionsMenu.append(openAllChaptersButton); openAllChaptersButton.addEventListener("click", function(){ for (let i = 0; i < listOfLinksToOpen.length; i++) { window.open(listOfLinksToOpen[listOfLinksToOpen.length - 1 - i]); window.focus(); } }); } var listOfLinksToOpen = new Array(); var upToDate = document.createElement("div"); //Up to date element creation upToDate.style.color = "#2588ff"; upToDate.style.fontWeight = "500"; upToDate.style.borderRadius = ".2rem"; upToDate.style.border = "1px solid transparent"; upToDate.style.padding = ".25rem .5rem"; upToDate.style.width = "95%"; upToDate.style.textAlign = "center"; upToDate.className = "UpToDateNotif"; upToDate.innerHTML = "UP TO DATE"; var buttonText = document.createElement("span"); buttonText.className = "d-none d-sm-inline"; buttonText.innerHTML = " Open New Chapters"; async function CheckSubsLoaded() { if(document.getElementsByClassName("col-sm-7 col-5")[0] == undefined) { window.setTimeout(CheckSubsLoaded, 100); //This checks the flag every 100 milliseconds } else { await Init(); MarkUpToDate(); } } CheckSubsLoaded(); window.onscroll = async function (e) { if($(window).scrollTop() + $(window).height() >= $(document).height() - 200) { //Executes when reaches a certain scroll point await sleep(100); MarkUpToDate(); } }