// ==UserScript== // @name Aniscripts // @namespace http://tampermonkey.net/ // @version 0.1 // @description Change stuff on Anilist.co // @author hoh // @match https://anilist.co/* // @grant none // @downloadURL none // ==/UserScript== (function(){ var activityCache = {};//reduce API calls var handleResponse = function(response){ return response.json().then(function(json){ return response.ok ? json : Promise.reject(json); }); }; var handleError = function(error){ //alert("Error, check console"); //fixme console.error(error); }; var url = 'https://graphql.anilist.co'; var listActivityCall = function(query,variables,callback,vars){ var handleData = function(data){ activityCache[variables.id] = data; callback(data,vars); }; var options = { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', }, body: JSON.stringify({ query: query, variables: variables }) }; if(activityCache.hasOwnProperty(variables.id)){ callback(activityCache[variables.id],vars); } else{ fetch(url,options).then(handleResponse).then(handleData).catch(handleError); }; }; var enhanceNotifications = function(){ var perform = function(){ var notifications = document.getElementsByClassName("notification"); var activities = []; for(var i=0;i