Load the next page automatically and endlessly. You just need to scroll down to the page bottom. Now there's no need to click on the "next page" button ever again!
当前为
// ==UserScript==
// @name Endless MAL Search Pages
// @description Load the next page automatically and endlessly. You just need to scroll down to the page bottom. Now there's no need to click on the "next page" button ever again!
// @version 0.0.6
// @author hacker09
// @namespace Endless MAL
// @match https://myanimelist.net/featured*
// @match https://myanimelist.net/*/genre/*
// @match https://myanimelist.net/profile/*
// @match https://myanimelist.net/clubs.php*
// @match https://myanimelist.net/anime.php?*
// @match https://myanimelist.net/manga.php?*
// @match https://myanimelist.net/people.php*
// @match https://myanimelist.net/reviews.php*
// @match https://myanimelist.net/topanime.php*
// @match https://myanimelist.net/topmanga.php*
// @match https://myanimelist.net/character.php*
// @match https://myanimelist.net/forum/?board=*
// @match https://myanimelist.net/*/*/stats?m=all=*
// @match https://myanimelist.net/forum/?clubid=*
// @match https://myanimelist.net/forum/?animeid=*
// @match https://myanimelist.net/anime/producer/*
// @match https://myanimelist.net/manga/magazine/*
// @match https://myanimelist.net/watch/promotion*
// @match https://myanimelist.net/comments.php?id=*
// @match https://myanimelist.net/users.php?cat=user&q=*
// @match https://myanimelist.net/recommendations.php?s=recentrecs&t=*
// @exclude https://myanimelist.net/clubs.php?cid=*
// @exclude https://myanimelist.net/clubs.php?action=*
// @exclude https://myanimelist.net/watch/promotion/popular
// @exclude https://myanimelist.net/reviews.php?st=mosthelpful
// @require https://cdnjs.cloudflare.com/ajax/libs/findAndReplaceDOMText/0.4.6/findAndReplaceDOMText.min.js
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
var pagenum = 1;
var increaseby = 1;
var nextpagenum = 1;
var page = '&show=';
var callFunction = true;
var nextpage,CommentsID;
var pagenumincreaseby = 1;
var url = window.location.pathname.split('/');
var numberofthenextpage = document.createElement("center");
numberofthenextpage.setAttribute("style","font-size:14px;");
if (document.querySelector('div.mauto.clearfix.pt24') !== null) document.querySelector('div.mauto.clearfix.pt24').style.width = null;
if (url[1] === 'users.php') (increaseby = 24,nextpagenum = 0);
if (url[1] === 'comments.php') (increaseby = 20,nextpagenum = 0);
if (url[1] === 'recommendations.php') (increaseby = 100,nextpagenum = 0);
if (url[2] === 'genre' || url[2] === 'producer' || url[2] === 'magazine') (page = '?page=')
if (url[1] === 'character.php' || url[1] === 'people.php' && location.href.match("\\?letter=")) (increaseby = 50,nextpagenum = 0);
if (url[1] === 'topanime.php' || url[1] === 'topmanga.php' && location.href.match("type")) (page = '&limit=',increaseby = 50,nextpagenum = 0);
if (location.href === "https://myanimelist.net/featured" || location.href === "https://myanimelist.net/clubs.php" || url[2] === 'promotion') (page = '?p=')
if (location.href.match("featured/search") || location.href.match("clubs.php\\?sort=") || location.href.match("clubs.php\\?cat=") || url[1] === 'reviews.php') (page = '&p=')
if (url[1] === 'anime.php' || url[1] === 'manga.php' || location.href.match("clubid=") || location.href.match("forum/\\?board=") || location.href.match("forum/\\?animeid=") ) (increaseby = 50,nextpagenum = 0);
if (location.href === "https://myanimelist.net/topanime.php" || location.href === "https://myanimelist.net/topmanga.php" || location.href === "https://myanimelist.net/character.php" || location.href === "https://myanimelist.net/people.php") (page = '?limit=',increaseby = 50,nextpagenum = 0);
if (location.href.match("stats\\?m=all#members")) {var fetchpage = location.href.replace("#members",''+ page),increaseby = 75,nextpagenum = 0} else {fetchpage = location.href + page;}
if (url[1] === 'profile') (CommentsID = document.querySelector("a[href*='comments']").href.replace('https://myanimelist.net/comments.php?id=', ''),fetchpage = 'https://myanimelist.net/comments.php?id='+CommentsID+'' + page,increaseby = 20,nextpagenum = 0,document.querySelector("div.pt16.pb8.ac").setAttribute("style", "text-align: left !important;"));
async function requestNextPage() //Creates a function to get the next page
{ //Starts the function
nextpagenum += increaseby;
pagenum += pagenumincreaseby;
const response = await fetch(fetchpage + nextpagenum); //Fetch
const html = await response.text(); //Gets the fetch response
const newDocument = new DOMParser().parseFromString(html, 'text/html'); //Parses the fetch response
numberofthenextpage.innerHTML = '■■■■■■■■■■■■■■■■■■■■■■■■■■■■Page ' + pagenum + ' ⬇️■■■■■■■■■■■■■■■■■■■■■■■■■■■■';
if (url[2] === 'promotion') {
document.querySelector('div.pagination.pagination-numbers.di-b.ac').append(numberofthenextpage);
nextpage = newDocument.querySelector('div.watch-anime-list.watch-video.ml12.clearfix');
document.querySelector('div.pagination.pagination-numbers.di-b.ac').append(nextpage);
}
if (url[1] === 'featured') {
document.querySelector('div.news-list').append(numberofthenextpage);
nextpage = newDocument.querySelector('div.news-list');
document.querySelector('div.news-list').append(nextpage);
}
if (url[1] === 'users.php') {
document.querySelectorAll('div.spaceit')[1].append(numberofthenextpage);
nextpage = newDocument.querySelectorAll('table')[1];
document.querySelectorAll('div.spaceit')[1].append(nextpage);
}
if (location.href.match("stats\\?m=all#members")) {
document.querySelector('table.table-recently-updated').nextElementSibling.append(numberofthenextpage);
nextpage = newDocument.querySelector('table.table-recently-updated');
document.querySelector('table.table-recently-updated').nextElementSibling.append(nextpage);
}
if (url[1] === 'profile') {
document.querySelector("div.pt16.pb8.ac").append(numberofthenextpage);
nextpage = newDocument.querySelector('div#content');
document.querySelector("div.pt16.pb8.ac").append(nextpage);
}
if (location.href.match("comments.php\\?id=")) {
document.querySelector('div#content').append(numberofthenextpage);
nextpage = newDocument.querySelector('div#content');
document.querySelector('div#content').append(nextpage);
}
if (url[1] === 'reviews.php' || url[1] === 'recommendations.php') {
document.querySelector('div.mauto.clearfix.pt24').append(numberofthenextpage);
nextpage = newDocument.querySelector('div#content');
nextpage.querySelector('div.breadcrumb').remove();
nextpage.querySelector('div#horiznav_nav').remove();
document.querySelector('div.mauto.clearfix.pt24').append(nextpage);
}
if (url[1] === 'anime.php' || url[1] === 'manga.php' || url[2] === 'genre' || url[2] === 'producer' || url[2] === 'magazine') {
document.querySelector("[class*='js-block-list']").append(numberofthenextpage);
nextpage = newDocument.querySelector("[class*='js-block-list']");
document.querySelector("[class*='js-block-list']").append(nextpage);
}
if (url[1] === 'clubs.php' || url[1] === 'topanime.php' || url[1] === 'topmanga.php' || url[1] === 'character.php' || url[1] === 'people.php' || location.href.match("clubid=") || location.href.match("forum/\\?board=") || location.href.match("forum/\\?animeid=")) {
document.querySelector('div.mauto.clearfix.pt24').append(numberofthenextpage);
nextpage = newDocument.querySelector('table');
document.querySelector('div.mauto.clearfix.pt24').append(nextpage);
}
if (document.body.innerText.search("null") > -1)
{
findAndReplaceDOMText(document.body, {find: 'null',replace: "There's no next page..."});
}
} //Finishes the async function
window.onscroll = async function() {
if (callFunction && window.scrollY * 1.1 >= document.querySelector('div#myanimelist').offsetHeight - window.innerHeight) {
callFunction = false;
await requestNextPage();
setTimeout(function() {
document.body.innerText.search("There's no next page...") > -1 ? callFunction = false : callFunction = true;
}, 700);
}
};
})();