🏠 Home 

Sonarr Search Helper

给Sonarr加了个动画搜索的建议,在没有搜到任何结果的情况下 会显示bangumi以及MAL的搜索结果


Install this script?
// ==UserScript==
// @name         Sonarr Search Helper
// @version      0.5
// @namespace    sonarrhelper
// @author       DeQxJ00
// @description  给Sonarr加了个动画搜索的建议,在没有搜到任何结果的情况下 会显示bangumi以及MAL的搜索结果
// @include      http://yoursonarrip/*
// @grant        GM_xmlhttpRequest
// @license      GPL
// @icon         https://www.google.com/s2/favicons?sz=64&domain=sonarr.tv
// ==/UserScript==
(function() {
'use strict';
const path = "";//如果有path的域名 写上带path的url的绝对路径 不带path的不用管
const showlimit = 3;//bgm和mal显示个数限制
const r###ltcount = 7;//有搜索结果时候 但是搜索结果较少 也会显示补充内容
const config = { attributes: true, childList: true, subtree: true };
const callback = function(mutationsList, observer) {
for(const mutation of mutationsList) {
if (mutation.type === 'childList') {
if (mutation.target.classList.length > 0) {
//console.log(mutation.target.classList[0]);
if (mutation.target.classList[0].startsWith('PageContentBody-innerContentBody-V-w79')) {
var adiv=$(mutation.target).find('div#add');
var divs=$(mutation.target).find('div.AddNewSeries-message-3EQNm');
var divs_append=divs;
//有搜索结果 结果较少的情况。
if(divs.length == 0){//有搜索结果时候
var divs2=$(mutation.target).find('div.AddNewSeriesSearchR###lt-searchR###lt-2y3MD');
if(divs2.length <= r###ltcount){//有搜索结果时候 但是搜索结果较少
divs = divs2;
divs_append = $(mutation.target).find('div.AddNewSeries-searchR###lts-3wUPw');;
}
}//else无结果的时候
if(divs.length>0 && adiv.length==0){
divs_append.append("<div id='add'>======================================</br><a>搜索名建议 建议先点日文搜索 不行再用英文的</a></div>");
var searchbox=document.getElementsByClassName('AddNewSeries-searchInput-3EW99 TextInput-input-20YDM Input-input-25Gr2')[0];
var searchvalue=searchbox.value;
$.getJSON('https://api.bgm.tv/search/subject/'+searchvalue+'?type=2', function(data) {
//console.log(data.list);
var table = "<div><table border='1' style='float:left'>";
$.each(data.list, function(i, field){
if(i >= showlimit){
return false;
}
table+=("<tr>");
var imgurl = "";
if(field.images!=null){
imgurl=field.images.medium;
}
table+=("<td><img src="+imgurl+"></td>");
table+=("<td>"+
"JP <a href='"+path+"/add/new?term="+field.name+"'>"+field.name+"</a></br>"+
"CN <a href='"+path+"/add/new?term="+field.name_cn+"'>"+field.name_cn+"</a></br>"+
"</br>"+
"<a target='_blank' href="+field.url+">Bangumi Link</a></br>"+
"</td>");
table+=("</tr>");
});
table+="</table></div>"
divs_append.append(table);
});
GM_xmlhttpRequest({
method: 'GET',
url: 'https://myanimelist.net/search/prefix.json?type=anime&v=1&keyword='+searchvalue,
headers:{"Content-Type": "application/json"},
onload: response => {
if (response.status == 200) {
var data = JSON.parse(response.responseText);
//console.log(data.categories[0].items);
var table = "<div><table border='1' style='margin-left:10px;float:left'>";
$.each(data.categories[0].items, function(i, field){
if(i >= showlimit){
return false;
}
table+=("<tr>");
table+=("<td><img src="+field.image_url+"></td>");
table+=("<td>"+
"EN <a href='"+path+"/add/new?term="+field.name.replaceAll(' ','%20')+"'>"+field.name+"</a></br>"+
field.payload.aired+"</br>"+
"</br>"+
"<a target='_blank' href="+field.url+">MAL Link</a></br>"+
"</td>");
table+=("</tr>");
});
table+="</table></div>"
divs_append.append(table);
}
}
});
}
}
}
}
}
};
const observer = new MutationObserver(callback);
observer.observe(document.body, config);
//observer.disconnect();
})();