您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
// ==UserScript== // @name Filmografie IMDb>WP // @namespace http://tampermonkey.net/ // @version 0.3 // @description try to take over the world! // @author You // @match https://www.imdb.com/name/* // @grant GM.xmlHttpRequest // ==/UserScript== var el = document.getElementsByClassName('filmo-category-section')[0].children; var expa=[]; var expo=""; for (var i = 0; i<el.length;i++){ var year=el[i].getElementsByClassName('year_column')[0].innerText.trim().split('/')[0].replace('-','–'); var title=el[i].getElementsByTagName('a')[0].innerText.replace('-','–'); var type=el[i].innerHTML.split('</b>')[1].split('<br>')[0].trim().replace('TV Series','Fernsehserie').replace('TV Mini-Series','Miniserie').replace('Short','Kurzfilm').replace('TV Movie','Fernsehfilm').replace('(Video)',''); if(!type.includes("in_production")){ var id = el[i].getAttribute("id").split('-')[1]; var fetchWD = function getWB(id){ GM.xmlHttpRequest({ method: "GET", url: "https://www.wikidata.org/w/api.php?action=query&format=json&list=search&srsearch=haswbstatement:P345="+id, onload: function(response) { if(response.responseText.length > 0) { var jsonString = response.responseText; var jsonObj = JSON.parse(jsonString); var tempImdb = response.finalUrl.split('P345=')[1].split('&')[0]; if (jsonObj.query.searchinfo.totalhits==1){ var tempWd = jsonObj.query.search[0].title; expo=expo.replace(tempImdb,tempWd); fetchWP(tempImdb,tempWd); expo=deleteLooseEnds(expo); }else{ expo=expo.replace('[['+tempImdb+'|',''); expo=deleteLooseEnds(expo); } //console.clear(); //console.log(expo); } }, onerror: function(response) { console.log("Error in fetching contents: " + response.responseText); } }); } var fetchWP = function getWP(imdbid,wdid){ GM.xmlHttpRequest({ method: "GET", url: "https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&props=sitelinks&sitefilter=dewiki&ids="+wdid+"&imdbid="+imdbid, onload: function(response) { if(response.responseText.length > 0) { var jsonString = response.responseText; var jsonObj = JSON.parse(jsonString); var tempImdb = response.finalUrl.split('imdbid=')[1].split('&')[0]; var tempWd = response.finalUrl.split('ids=')[1].split('&')[0]; if(jsonString.includes("title")){ var tempWp = jsonString.split("\"title\":\"")[1].split("\"")[0].replace("\\u2026",'…').replace("\\u2019","’").replace('\\u2013','–').replace('\\u00e4','ä').replace('\\u00c4','Ä').replace('\\u00f6','ö').replace('\\u00d6','Ö').replace('\\u00fc','ü').replace('\\u00dc','Ü').replace('\\u00df','ß'); expo=expo.replace(tempWd,tempWp); }else{ expo=expo.replace('[['+tempWd+'|',''); //expo=deleteLooseEnds(expo); } //console.clear(); //console.log(expo); } }, onerror: function(response) { console.log("Error in fetching contents: " + response.responseText); } }); } fetchWD(id); if(type=="(Fernsehserie)"||type=="(Miniserie)"){ var number=0;var arr=el[i].getElementsByClassName('filmo-episodes'); for(var j=0;j<arr.length;j++){if (!arr[j].innerText.includes('credit only')){number++};}; if (number==1){ expa.push('* '+year+': [['+id+'|'+title+']] '+type.split(')')+' eine Folge)'+'\n'); }else{ expa.push('* '+year+': [['+id+'|'+title+']] '+type.split(')')+' '+number+' Folgen)'+'\n'); }}else{ expa.push('* '+year+': [['+id+'|'+title+']] '+type+'\n'); }}}; expo="";expa.sort().forEach(function(entry) {expo+=entry;}); function deleteLooseEnds(text){ var temp=""; text.split('\n').sort().forEach(function(entry) { if(!entry.includes('[[')){ entry=entry.replace(']]','').trim(); }else{ if (entry.split('[[')[1].split(']]')[0].split('|')[0]==entry.split('[[')[1].split(']]')[0].split('|')[1]){ entry=entry.replace(entry.split('[[')[1].split(']]')[0].split('|')[1]+'|',''); } } temp+=entry+'\n';}); return temp.trim(); } setTimeout(function() { expo=deleteLooseEnds(expo); setTimeout(function() { expo=correctRest(expo); console.log(expo); console.log(expo); }, 3000); }, 7000); function correctRest(text){ var temp=""; text.split('\n').sort().forEach(function(entry) { if(entry.includes('|')){ entry=entry.replace('|'+entry.split('[[')[1].split(']]')[0].split('|')[1],'|').trim(); } temp+=entry+'\n';}); return temp.trim(); }