您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
- // ==UserScript==
- // @name IGDB List Extra Info
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description try to take over the world!
- // @author You
- // @match https://www.igdb.com/users/*/lists/*
- // @grant none
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
- // ==/UserScript==
- //$('.validation_ticker').remove();
- (function() {
- 'use strict';
- // Your code here...
- //api urls
- var apikey = 'a219bebccdba1921822242709439c6e4';
- var apiurl = 'https://api-2445582011268.apicast.io';
- var req = '/games/?search=';
- var reqid = '/games/1942?fields=*';
- var corsproxy = 'https://cors-anywhere.herokuapp.com/';
- var pageDivs = document.getElementsByClassName("media-body");
- var gametextarray = [];
- var genresnodearray = [];
- var keywordsnodearray = [];
- var ratingnodearray = [];
- var promises = [];
- var sequence = Promise.resolve();
- //set header for apikey and json
- var myheaders = new Headers();
- myheaders.append('user-key', apikey);
- //myheaders.append('Accept', 'application/json');
- //for every element "media-body" do
- for(var i = 0; i < pageDivs.length;i++)
- //for (var i = 0; i < 1; i++)
- {
- //add a textnode
- // modify with .nodeValue=
- //set some elements
- // var filler = document.createTextNode(' | ');
- var genrestext = document.createTextNode('Genres: ');
- var genresspan = document.createElement('span');
- genresspan.style.fontSize= 'medium';
- genresspan.style.textDecoration = 'underline';
- genresspan.appendChild(genrestext);
- pageDivs[i].appendChild(genresspan);
- var genresnode = document.createTextNode('loading..');
- pageDivs[i].appendChild(genresnode);
- genresnodearray.push(genresnode);
- pageDivs[i].appendChild(document.createTextNode(' | '));
- var keywordstext = document.createTextNode('Keywords: ');
- var kwspan = document.createElement('span');
- kwspan.style.fontSize= 'medium';
- kwspan.style.textDecoration = "underline";
- kwspan.appendChild(keywordstext);
- pageDivs[i].appendChild(kwspan);
- var keywordsnode = document.createTextNode('loading..');
- pageDivs[i].appendChild(keywordsnode);
- keywordsnodearray.push(keywordsnode);
- pageDivs[i].appendChild(document.createTextNode(' | '));
- var ratingtext = document.createTextNode('Rating: ');
- var rtspan = document.createElement('span');
- rtspan.style.fontSize= 'medium';
- rtspan.style.textDecoration = "underline";
- rtspan.appendChild(ratingtext);
- pageDivs[i].appendChild(rtspan);
- var ratingnode = document.createTextNode('loading..');
- pageDivs[i].appendChild(ratingnode);
- ratingnodearray.push(ratingnode);
- //get the game name
- var gametext = 'test';
- var span1 = pageDivs[i].getElementsByTagName('span');
- gametext = span1[0].innerHTML;
- gametextarray.push(corsproxy + apiurl + req + gametext);
- console.log(gametext);
- // var ref = pageDivs[i].getElementsByClassName("link-dark");
- // text = document.createTextNode(ref[0].href);
- }
- // console.log(gametextarray);
- // console.log(content2);
- // console.log(content2);
- // console.log(response);
- // var gameid = response.text();
- // var xhmr = httpGetAsync(req,function(response){
- // console.log(xhmr);
- // console.log(gameid);
- //execute multiple fetch promises
- //first fetch the game-id for a given name
- Promise.all(
- gametextarray.map(
- (url, index) => fetch(url, {
- headers: myheaders
- })
- .then(res => res.json())
- .then(data => {
- var gameidnum = data[0].id;
- var gameid = gameidnum.toString();
- //generate new url with id to query for the data
- var newurl = (corsproxy + apiurl + '/games/' + gameid + '?fields=*');
- return fetch(newurl, {
- headers: myheaders
- });
- })
- .then(res2 => res2.json())
- .then(data2 => {
- var rating = data2[0].rating;
- ratingnodearray[index].nodeValue = Math.round(rating);
- var genresid = data2[0].genres;
- var keywordsid = data2[0].keywords;
- //concat all genrenames. fetch for all genre-ids at once
- var genresurl = corsproxy + apiurl + '/genres/' + data2[0].genres.toString();
- fetch(genresurl, {
- headers: myheaders
- })
- .then(resgenre => resgenre.json())
- .then(datagenre => {
- var newgenres = '';
- datagenre.forEach((tgenre, genreindex) => {
- newgenres = newgenres.concat(tgenre.name);
- if (genreindex < datagenre.length - 1) {
- newgenres = newgenres.concat('; ');
- }
- });
- genresnodearray[index].nodeValue = newgenres;
- });
- //concat all keywords. fetch for all keyword-ids at once
- var keywordsurl = corsproxy + apiurl + '/keywords/' + data2[0].keywords.toString();
- fetch(keywordsurl, {
- headers: myheaders
- })
- .then(reskey => reskey.json())
- .then(datakey => {
- var newkeys = '';
- datakey.forEach((tkey, keyindex) => {
- newkeys = newkeys.concat(tkey.name);
- if (keyindex < datakey.length - 1) {
- newkeys = newkeys.concat('; ');
- }
- });
- keywordsnodearray[index].nodeValue = newkeys;
- });
- })
- )
- );
- /*
- promises = gametextarray.map(function(x){
- return fetch(x,{headers:myheaders});
- });
- promises.forEach(curpromise => {
- sequence = sequence.then(
- () => curpromise
- ).then(res => res.json())
- .then(data => console.log(data))
- ;
- }
- );
- */
- })();