NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// MAL Search Filter! // version 1.2 // 2010-06-14 // Copyright (c) 2009, Bastvera <bastvera@gmail.com> // Released under the GPL license // http://www.gnu.org/copyleft/gpl.html // ==UserScript== // @name MAL Hide future // @include *://myanimelist.net/anime.php?* // @include *://myanimelist.net/manga.php?* // @include *://myanimelist.net/topanime.php?* // @include *://myanimelist.net/topmanga.php?* // @include *://myanimelist.net/anime/genre/* // @include *://myanimelist.net/manga/genre/* // @include *://myanimelist.net/anime/producer/* // @include *://myanimelist.net/anime/season* // @include *://myanimelist.net/manga/magazine/* // @exclude *://myanimelist.net/anime.php // @exclude *://myanimelist.net/manga.php // @exclude *://myanimelist.net/anime.php?id=* // @exclude *://myanimelist.net/manga.php?id=* // @description This script hides search results that you already have on your list // @updateURL https://openuserjs.org/meta/cloudberrybob/Hide_future.meta.js // @downloadURL https://openuserjs.org/install/cloudberrybob/Hide_future.user.js // @version 1.4.1 // @license MIT // @author Bastvera <bastvera@gmail.com>, Cpt_mathix <fixed script> // @namespace https://greasyfork.org/users/16080 // ==/UserScript== var elements = document.evaluate( "//a[(contains(@class,'js-anime-watch-status') or contains(@class, 'button_edit'))]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); hideFuture(elements); function hideFuture(elements){ for (var i = 0; i < elements.snapshotLength; i++) { var element = elements.snapshotItem(i); var details = element.parentNode.parentNode.getElementsByClassName("title")[0].getElementsByClassName("detail")[0].getElementsByClassName("information")[0].innerHTML; if (isFuture(details) == true){ element.parentNode.parentNode.style.display="none"; } } } function isFuture(details){ const regex = /[A-Z]{1}[a-z]{2}[\s]{1}[0-9]{4}/g; const found = details.match(regex); if (found == null){ return true; } const month = found[0].substring(0,3); const year = Number(found[0].substring(4,8)); var monthNumber = 0; switch(month) { case "Jan": monthNumber = 1; break; case "Feb": monthNumber = 2; break; case "Mar": monthNumber = 3; break; case "Apr": monthNumber = 4; break; case "May": monthNumber = 5; break; case "Jun": monthNumber = 6; break; case "Jul": monthNumber = 7; break; case "Aug": monthNumber = 8; break; case "Sep": monthNumber = 9; break; case "Oct": monthNumber = 10; break; case "Nov": monthNumber = 11; break; case "Dec": monthNumber = 12; break; } const releaseDate = new Date(year, monthNumber, 0); const today = new Date(); if (releaseDate > today) return true; else return false; }