From 15ee13ef9f07b78c31666823473fe337e413c52d Mon Sep 17 00:00:00 2001 From: Marvin Lehmann Date: Tue, 24 Jul 2018 14:35:24 +0200 Subject: [PATCH] Added support for Masterani.me and changed 'id' to 'class'... --- ani-search-enhancer.user.js | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/ani-search-enhancer.user.js b/ani-search-enhancer.user.js index 867418a..6f193a3 100644 --- a/ani-search-enhancer.user.js +++ b/ani-search-enhancer.user.js @@ -1,11 +1,12 @@ // ==UserScript== // @name aniSearch Enhancer // @namespace http://github.com/marvinlehmann/ani-search-enhancer -// @version 1.5 +// @version 1.6 // @description Adds buttons to the info site of an anime on aniSearch which links you directly to various streaming portals. // @author Marvin Lehmann -// @grant none +// @grant GM_xmlhttpRequest // @include /^https?://www.anisearch.de/anime/.*$/ +// @connect masterani.me // @require http://code.jquery.com/jquery-latest.js // @downloadURL http://raw.githubusercontent.com/marvinlehmann/ani-search-enhancer/master/ani-search-enhancer.user.js // @supportURL http://github.com/marvinlehmann/ani-search-enhancer/issues @@ -13,13 +14,36 @@ this.$ = this.jQuery = jQuery.noConflict(true); $(function() { - $('head').append(''); + $('head').append(''); const animeTitle = $('#htitle > span[itemprop=name]').text(); + const animeReleaseYear = $('#htitle > span.release_year').text().replace(/\(|\)/g, ''); if (animeTitle) { const encodedTitle = encodeURI(animeTitle).replace(/'/g, "%27"); if ($('#page-action').length === 0) $('#htitle').after(''); - $('#page-action').append(''); - $('#page-action').append(''); - $('#page-action').append(''); + $('#page-action').append(''); + $('#page-action').append(''); + $('#page-action').append(''); + + // Search for the anime on masterani.me - possibly returns url to wrong anime + GM_xmlhttpRequest({ + method: 'GET', + // Masterani's search is limited to 30 chars + // sb=true only returns the "best" results (?) + url: 'https://www.masterani.me/api/anime/search?search=' + encodedTitle.substring(0, 30) + '&sb=true', + responseType: 'json', + onload: function(data) { + if (data.response.length > 0) { + const firstResult = data.response[0]; + const masteraniPage = 'https://www.masterani.me/anime/info/' + firstResult.slug; + const $masteraniButton = $('').appendTo($('#page-action')); + + // Did we possibly get the wrong one? + if (!firstResult.started_airing_date.includes(animeReleaseYear)) { + $masteraniButton.prop('title', 'Target page may be incorrect.'); + $masteraniButton.css('opacity', 0.5); + } + } + } + }); } });