// ==UserScript== // @name Aniscripts // @namespace http://tampermonkey.net/ // @version 3.32 // @description Change stuff on Anilist.co // @author hoh // @match https://anilist.co/* // @grant none // @downloadURL none // ==/UserScript== (function(){ scriptVersion = "3.32"; /* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License (not provided) along with this program. If not, see . */ /* Aniscripts, sometimes just "the userscript", is modular and contains of several independet functions The URL matching controller can be found near the bottom of this file. Due to the dynamic nature of how Anilist pages load, these functions are run on a clock. Functionallity provided by all of these functions are suplemental, so the clock frequenzies are kept slow to not impact performance. */ //a shared style node for all the modules. All classes are prefixed by "hoh" to avoid collisions with native Anilist classes var style = document.createElement('style'); style.type = 'text/css'; //most of these are used by the notification module //The default colour is rgb(var(--color-blue)) provided by Anilist, but rgb(var(--color-green)) is preferred for things related to manga style.innerHTML = ` .hohTime{ position: static; float: right; margin-right: 20px; margin-top: 10px; margin-left: auto; } .hohUnread{ border-right: 8px; border-color: rgba(var(--color-blue)); border-right-style: solid; } .hohNotification{ margin-bottom: 10px; background: rgb(var(--color-foreground)); border-radius: 4px; justify-content: space-between; line-height: 0; min-height: 72px; } .hohNotification *{ line-height: 1.15; } .hohUserImageSmall{ display: inline-block; background-position: 50%; background-repeat: no-repeat; background-size: cover; position: absolute; } .hohUserImage{ height: 72px; width: 72px; display: inline-block; background-position: 50%; background-repeat: no-repeat; background-size: cover; position: absolute; } .hohMediaImage{ height: 70px; margin-right: 5px; } .hohMessageText{ position: absolute; margin-top: 30px; margin-left: 80px; max-width: 330px; } .hohMediaImageContainer{ vertical-align: bottom; margin-left: 400px; display: inline; position: relative; display: inline-block; min-height: 70px; } .hohMediaImageContainer > a{ height: 70px; line-height: 0!important; } span.hohMediaImageContainer{ line-height: 0!important; } .hohCommentsContainer{ margin-top: 5px; } .hohCommentsArea{ margin: 10px; display: none; padding-bottom: 2px; margin-top: 5px; width: 95%; } .hohComments{ float: right; display: none; margin-top: -30px; margin-right: 15px; cursor: pointer; margin-left: 600px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .hohCombined .hohComments{ display: none!important; } .hohQuickCom{ padding: 5px; background-color: rgb(var(--color-background)); margin-bottom: 5px; position: relative; } .hohQuickComName{ margin-right: 15px; color: rgb(var(--color-blue)); } .hohQuickComName::after{ content: ":"; } .hohQuickComContent{ margin-right: 40px; display: block; } .hohQuickComContent > p{ margin: 1px; } .hohQuickComLikes{ position: absolute; right: 5px; bottom: 5px; display: inline-block; } .hohQuickComContent img { max-width: 100%; } .hohSpoiler::before{ color: rgb(var(--color-blue)); cursor: pointer; background: rgb(var(--color-background)); border-radius: 3px; content: "Spoiler, click to view"; font-size: 1.3rem; padding: 0 5px; } .hohSpoiler.hohClicked::before{ display: none; } .hohSpoiler > span{ display: none; } .hohMessageText > span > div.time{ display: none; } .hohUnhandledSpecial > div{ margin-top: -20px; } .hohMonospace{ font-family: monospace; } .hohSocialTabActivityCompressedContainer{ min-width: 480px; } .hohSocialTabActivityCompressedStatus{ vertical-align: middle; padding-bottom: 7px; } .hohSocialTabActivityCompressedName{ vertical-align: middle; margin-left: 3px; } .hohForumHider{ margin-right: 3px; cursor: pointer; font-family: monospace; } .hohForumHider:hover{ color: rgb(var(--color-blue)); } .hohBackgroundCover{ height: 70px; width: 50px; display: inline-block; background-repeat: no-repeat; background-size: cover; margin-top: 1px; line-height: 0; margin-bottom: 1px; } #hohDescription{ width: 280px; height: 150px; float: left; color: rgb(var(--color-blue)); } .hohStatsTrigger{ cursor: pointer; border-radius: 3px; color: rgb(var(--color-text-lighter)); display: block; font-size: 1.4rem; margin-bottom: 8px; padding: 5px 10px; } .hohActive{ background: rgba(var(--color-foreground),.8); color: rgb(var(--color-text)); font-weight: 500; } #hohFavCount{ position: absolute; right: 30px; color: rgba(var(--color-red)); top: 10px; font-weight: 400; } .hohShamelessLink{ display: block; margin-bottom: 5px; } .hohSlidePlayer{ display: block; position: relative; width: 500px; } .hohSlide{ position: absolute; top: 0px; font-size: 500%; height: 100%; display: flex; align-items: center; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; opacity:0.5; } .hohSlide:hover{ background-color: rgb(0,0,0,0.4); cursor: pointer; opacity:1; } .hohRightSlide{ right: 0px; padding-left: 10px; padding-right: 20px; } .hohLeftSlide{ left: 0px; padding-left: 20px; padding-right: 10px; } .hohShare{ position: absolute; right: 12px; top: 30px; cursor: pointer; color: rgb(var(--color-blue-dim)); } .activity-entry{ position: relative; } .hohEmbed{ border-style: solid; border-color: rgb(var(--color-text)); border-width: 1px; padding: 15px; position: relative; } .hohEmbed .avatar{ border-radius: 3px; height: 40px; width: 40px; background-position: 50%; background-repeat: no-repeat; background-size: cover; display: inline-block; } .hohEmbed .name{ display: inline-block; height: 40px; line-height: 40px; vertical-align: top; color: rgb(var(--color-blue)); font-size: 1.4rem; margin-left: 12px !important; } .hohEmbed .time{ color: rgb(var(--color-text-lighter)); font-size: 1.1rem; position: absolute; right: 12px; top: 12px; } .hohRecsLabel{ color: rgb(var(--color-blue)) !important; } .hohRecsItem{ margin-top: 5px; margin-bottom: 10px; } .hohTaglessLinkException{ display: block; } .hohTaglessLinkException::after{ content: ""!important; } .hohStatValue{ color: rgb(var(--color-blue)); } .markdown-editor > [title="Image"], .markdown-editor > [title="Youtube Video"], .markdown-editor > [title="WebM Video"]{ color: rgba(var(--color-red)); } .hohBackgroundUserCover{ height: 70px; width: 70px; display: inline-block; background-position: 50%; background-repeat: no-repeat; background-size: cover; margin-top: 1px; margin-bottom: 1px; } .history-day.lv-9{ z-index:1!important } .hohRegularTag{ border-style: solid; border-width: 1px; border-radius: 3px; padding: 2px; margin-right: 3px; } .hohCross{ cursor: pointer; margin-left: 2px; color: red; } #dubNotice { font-size: 12px; font-weight: 500; text-align: center; text-transform: capitalize; background: rgb(var(--color-foreground)); margin-top: 0em; margin-bottom: 16px; border-radius: 3px; padding: 8px 12px; } `; document.getElementsByTagName('head')[0].appendChild(style); //Todo: find out how to parse API headers for an accurate result document.APIcallsUsed = 0;//this is NOT a reliable way to figure out how many more calls we can use, just a way to set some limit var pending = {}; var APIcounter = setTimeout(function(){ document.APIcallsUsed = 0; },60*1000);//reset counter every minute function lsTest(){//localStorage is great for not having to fetch the api data every time var test = "test"; try{ localStorage.setItem(test,test); localStorage.removeItem(test); return true; } catch(e){ return false; } }; var localStorageAvailable = lsTest(); if(localStorageAvailable){ var aniscriptsUsed = localStorage.getItem("aniscriptsUsed"); if(aniscriptsUsed === null){ aniscriptsUsed = { keys : [] }; } else{ aniscriptsUsed = JSON.parse(aniscriptsUsed); }; localStorage.setItem("aniscriptsUsed",JSON.stringify(aniscriptsUsed)); }; var useScripts = {//most modules are turned on by default notifications : true, socialTab : true, forumComments : true, staffPages : true, tagDescriptions : true, completedScore : true, moreStats : true, characterFavouriteCount : true, CSSfavs : true, CSScompactBrowse : true, CSSmangaGreen: false, CSSfollowCounter: true, CSSsubmissionCounter: false, CSSprofileClutter: false, CSSdecimalPoint: false, CSSverticalNav: false, hideLikes: false, dubMarker: false, CSSstudioStats: true, CSSsmileyScore: true, dubMarkerLanguage: "English" }; var forceRebuildFlag = false; if(localStorageAvailable){ var localStorageItem = localStorage.getItem("hohSettings"); if(localStorageItem != null && localStorageItem != ""){ var useScriptsSettings = JSON.parse(localStorageItem); for(key in useScriptsSettings){//this is to keep the default settings if the version in local storage is outdated useScripts[key] = useScriptsSettings[key]; }; }; localStorage.setItem("hohSettings",JSON.stringify(useScripts)); }; try{//use later for some scripts var whoAmI = document.getElementById("nav").children[0].children[1].children[1].href.match(/[a-zA-Z0-9-]*\/$/)[0].slice(0,-1);//looks at the nav } catch(err){ var whoAmI = ""; }; Element.prototype.remove = function(){//more comfy way to remove DOM elements this.parentElement.removeChild(this); } NodeList.prototype.remove = HTMLCollection.prototype.remove = function() { for(var i = this.length - 1; i >= 0; i--) { if(this[i] && this[i].parentElement) { this[i].parentElement.removeChild(this[i]); }; }; }; var svgAssets = { likeIcon : "", envelope : "✉", cross : "✕", replyIcon : "", frown : "", meh : "", smile : "", star : "", angleDown : "" }; var moreStyle = document.createElement('style'); moreStyle.type = 'text/css'; if(localStorageAvailable){ var localStorageItem = localStorage.getItem("titleAliases"); if(localStorageItem != null && localStorageItem != ""){ var titleAliases = JSON.parse(localStorageItem); for(var i=0;i span,.media-embed" + dataSelect + " .title,.status > a" + dataSelect + "{visibility: hidden;font-size:10%;}"; moreStyle.innerHTML += ".title > a" + dataSelect + "::before,a.title" + dataSelect + "::before,.relations .media-preview-card a.title" + dataSelect + "::before,.quick-search-results .el-select-dropdown__item a" + dataSelect + " > span::before,.media-embed" + dataSelect + " .title::before,.status > a" + dataSelect + "::before{content:'" + titleAliases[i][1].substring(0,Math.min(100,titleAliases[i][1].length)) + "';visibility: visible;font-size:1000%;}"; }; }; }; }; if(useScripts.CSSfavs){ moreStyle.innerHTML += ` .favourites > div > .wrap > div, .favourites > div > .wrap > a{ /*make the spaces in the grid even*/ margin-bottom: 0px!important; margin-right: 0px!important; column-gap: 10px!important; } .user .overview{ grid-template-columns: 460px auto!important; } .favourites > div > .wrap{ padding: 0px!important; display: grid; grid-gap: 10px; column-gap: 10px!important; grid-template-columns: repeat(auto-fill,85px); grid-template-rows: repeat(auto-fill,115px); background: rgb(0,0,0,0) !important; width: 470px; } .favourite.studio{ cursor: pointer; min-height: 115px; font-size: 15px; display: grid; grid-gap: 10px; padding: 2px!important; padding-top: 8px!important; background-color: rgba(var(--color-foreground))!important; text-align: center; align-content: center; } .site-theme-dark .favourite.studio{ background-color: rgb(49,56,68)!important; } .favourite.studio::after{ display: inline-block; background-repeat: no-repeat; content:""; margin-left:5px; background-size: 76px 19px; width: 76px; height: 19px; } /*adds a logo to most favourite studio entries. Add more if needed */ .favourite.studio[href="/studio/11/MADHOUSE"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Madhouse_studio_logo.svg/300px-Madhouse_studio_logo.svg.png"); } .favourite.studio[href="/studio/4/BONES"]::after{ background-image: url("https://i.stack.imgur.com/7pRQn.png"); } .favourite.studio[href="/studio/14/Sunrise"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/8/8c/Sunrise_company_logo.svg/220px-Sunrise_company_logo.svg.png"); } .favourite.studio[href="/studio/32/Manglobe"]::after{ background-image: url("https://i.stack.imgur.com/alV3I.gif"); } .favourite.studio[href="/studio/287/David-Production"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/7/75/David_production.jpg/220px-David_production.jpg"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/6/Gainax"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/a/a8/Gainax_logo.svg/220px-Gainax_logo.svg.png"); } .favourite.studio[href="/studio/150/Sanrio"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/4/41/Sanrio_logo.svg/220px-Sanrio_logo.svg.png"); } .favourite.studio[href="/studio/18/Toei-Animation"]::after{ background-image: url("https://i.stack.imgur.com/AjzVI.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/34/Hal-Film-Maker"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/0/09/Hal_film_maker_logo.gif/220px-Hal_film_maker_logo.gif"); } .favourite.studio[href="/studio/68/Mushi-Productions"]::after{ background-image: url("https://i.stack.imgur.com/HmYdT.jpg"); } .favourite.studio[href="/studio/21/Studio-Ghibli"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/c/ca/Studio_Ghibli_logo.svg/220px-Studio_Ghibli_logo.svg.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/13/Studio-4C"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/e/ec/Studio_4C_logo.png"); } .favourite.studio[href="/studio/2/Kyoto-Animation"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/b/bf/Kyoto_Animation_logo.svg/250px-Kyoto_Animation_logo.svg.png"); } .favourite.studio[href="/studio/44/Shaft"]::after{ background-image: url("https://i.stack.imgur.com/tuqhK.png"); } .favourite.studio[href="/studio/803/Trigger"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Trigger_Logo.svg/220px-Trigger_Logo.svg.png"); } .favourite.studio[href="/studio/7/JC-Staff"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/J.C.Staff_Logo.svg/220px-J.C.Staff_Logo.svg.png"); } .favourite.studio[href="/studio/102/FUNimation-Entertainment"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Funimation_2016.svg/320px-Funimation_2016.svg.png"); background-size: 76px 15px; height: 15px; width: 76px; } .favourite.studio[href="/studio/132/PA-Works"]::after{ background-image: url("https://i.stack.imgur.com/7kjSn.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/6145/Science-SARU"]::after{ background-image: url("https://i.stack.imgur.com/zo9Fx.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/22/Nippon-Animation"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/b/b4/Nippon.png/200px-Nippon.png"); } .favourite.studio[href="/studio/73/TMS-Entertainment"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/TMS_Entertainment_logo.svg/220px-TMS_Entertainment_logo.svg.png"); } .favourite.studio[href="/studio/65/Tokyo-Movie-Shinsha"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/2/22/Tokyo_Movie_Shinsha.png"); } .favourite.studio[href="/studio/8/Artland"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/a/ae/Artland_logo.gif/200px-Artland_logo.gif"); } .favourite.studio[href="/studio/569/MAPPA"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/MAPPA_Logo.svg/220px-MAPPA_Logo.svg.png"); } .favourite.studio[href="/studio/314/White-Fox"]::after{ background-image: url("https://i.stack.imgur.com/lwG1T.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/10/Production-IG"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Production_I.G_Logo.svg/250px-Production_I.G_Logo.svg.png"); } .favourite.studio[href="/studio/112/Brains-Base"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Brain%27s_Base_logo.png/200px-Brain%27s_Base_logo.png"); } .favourite.studio[href="/studio/561/A1-Pictures"]::after{ background-image: url("https://i.stack.imgur.com/nBUYo.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/43/ufotable"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/5/56/Ufotable-Logo.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/858/Wit-Studio"]::after{ background-image: url("https://i.stack.imgur.com/o3Rro.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/47/Studio-Khara"]::after{ background-image: url("https://i.stack.imgur.com/2d1TT.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/1/Studio-Pierrot"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/1/10/Studio_Pierrot.jpg/220px-Studio_Pierrot.jpg"); } .favourite.studio[href="/studio/436/AIC-Build"]::after, .favourite.studio[href="/studio/48/AIC"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/AIC_logo.png/220px-AIC_logo.png"); } .favourite.studio[href="/studio/3/GONZO"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Gonzo_company.png/220px-Gonzo_company.png"); } .favourite.studio[href="/studio/300/SILVER-LINK"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Silver_Link_Logo.svg/220px-Silver_Link_Logo.svg.png"); } .favourite.studio[href="/studio/456/Lerche"]::after{ background-image: url("https://i.stack.imgur.com/gRQPc.png"); } .favourite.studio[href="/studio/291/CoMix-Wave"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Cwflogo.png/150px-Cwflogo.png"); } .favourite.studio[href="/studio/95/Doga-Kobo"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Doga_Kobo_Logo.svg/220px-Doga_Kobo_Logo.svg.png"); } .favourite.studio[href="/studio/290/Kinema-Citrus"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/c/c0/Kinema_Citrus_logo.png"); background-size: 76px 25px; height: 25px; width: 76px; } .favourite.studio[href="/studio/333/TYO-Animations"]::after{ background-image: url("https://i.stack.imgur.com/KRqAp.jpg"); background-size: 76px 25px; height: 25px; width: 76px; } .favourite.studio[href="/studio/41/Satelight"]::after{ background-image: url("https://i.stack.imgur.com/qZVQg.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/6069/Studio-3Hz"]::after{ background-image: url("https://i.stack.imgur.com/eD0oe.jpg"); } .favourite.studio[href="/studio/911/Passione"]::after{ background-image: url("https://i.stack.imgur.com/YyEGg.jpg"); } .favourite.studio[href="/studio/418/Studio-Gokumi"]::after{ background-image: url("https://i.stack.imgur.com/w1y22.png"); } .favourite.studio[href="/studio/51/diomeda"]::after{ background-image: url("https://i.stack.imgur.com/ZHt3T.jpg"); } .favourite.studio[href="/studio/91/feel"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/0/07/Feel_%28company%29_logo.png/220px-Feel_%28company%29_logo.png"); background-size: 76px 25px; height: 25px; width: 76px; } .favourite.studio[href="/studio/36/Studio-Gallop"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/3/37/Studio_Gallop.png"); } .favourite.studio[href="/studio/537/SANZIGEN"]::after{ background-image: url("https://i.stack.imgur.com/CkuqH.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/35/Seven-Arcs"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/a/ac/Seven_Arcs_logo.png"); background-size: 76px 25px; height: 25px; width: 76px; } .favourite.studio[href="/studio/6222/CloverWorks"]::after{ background-image: url("https://i.stack.imgur.com/9Fvr7.jpg"); } .favourite.studio[href="/studio/144/Pony-Canyon"]::after{ background-image: url("https://i.stack.imgur.com/9kkew.png"); } .favourite.studio[href="/studio/493/Aniplex-of-America"]::after, .favourite.studio[href="/studio/17/Aniplex"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Aniplex_logo.svg/220px-Aniplex_logo.svg.png"); } .favourite.studio[href="/studio/555/Studio-Chizu"]::after{ background-image: url("http://www.studio-chizu.jp/images/logo.gif"); } .favourite.studio[href="/studio/37/Studio-DEEN"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Studio_Deen_logo.svg/220px-Studio_Deen_logo.svg.png"); } .favourite.studio[href="/studio/159/Kodansha"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Kodansha.png/200px-Kodansha.png"); } .favourite.studio[href="/studio/437/Kamikaze-Douga"]::after{ background-image: url("https://img7.anidb.net/pics/anime/178777.jpg"); } .favourite.studio[href="/studio/459/Nitroplus"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/0/09/Nitroplus_logo.png/220px-Nitroplus_logo.png"); } .favourite.studio[href="/studio/166/Movic"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/f/f3/Movic_logo.png"); } .favourite.studio[href="/studio/38/Arms"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Arms_Corporation.png/200px-Arms_Corporation.png"); } .favourite.studio[href="/studio/247/ShinEi-Animation"]::after{ background-image: url("https://i.stack.imgur.com/b2lcL.png"); } .favourite.studio[href="/studio/6235/SEK-Studio"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Flag_of_North_Korea.svg/125px-Flag_of_North_Korea.svg.png"); background-size: 74px 25px; height: 25px; width: 74px; } .favourite.studio[href="/studio/58/Square-Enix"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Square_Enix_logo.svg/230px-Square_Enix_logo.svg.png"); } .favourite.studio[href="/studio/503/Nintendo-Co-Ltd"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Nintendo.svg/220px-Nintendo.svg.png"); } .favourite.studio[href="/studio/167/Sega"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Sega_logo.svg/200px-Sega_logo.svg.png"); } .favourite.studio[href="/studio/193/Idea-Factory"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/e/eb/Idea_factory.gif"); } .favourite.studio[href="/studio/6077/Orange"]::after{ background-image: url("http://www.orange-cg.com/img/common/logo.gif"); } .favourite.studio[href="/studio/309/GoHands"]::after{ background-image: url("https://i.stack.imgur.com/pScIZ.jpg"); } .favourite.studio[href="/studio/104/Lantis"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/3/39/Lantis_logo.png"); } .favourite.studio[href="/studio/6071/Studio-Shuka"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/f/fa/Shuka_studio.jpg"); } .favourite.studio[href="/studio/53/Dentsu"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Dentsu_logo.svg/200px-Dentsu_logo.svg.png"); } .favourite.studio[href="/studio/143/Mainichi-Broadcasting"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Mainichi_Broadcasting_System_logo.svg/200px-Mainichi_Broadcasting_System_logo.svg.png"); } .favourite.studio[href="/studio/376/Sentai-Filmworks"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Sentai_Filmworks_Official_Logo.jpg/220px-Sentai_Filmworks_Official_Logo.jpg"); } .favourite.studio[href="/studio/681/ASCII-Media-Works"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/ASCII_Media_Works_logo.svg/220px-ASCII_Media_Works_logo.svg.png"); } .favourite.studio[href="/studio/334/Ordet"]::after{ background-image: url("https://i.stack.imgur.com/evr12.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/238/ATX"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/AT-X_logo.svg/150px-AT-X_logo.svg.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/66/Key"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Key_Visual_Arts_Logo.svg/167px-Key_Visual_Arts_Logo.svg.png"); background-size: 76px 30px; height: 30px; width: 76px; } .favourite.studio[href="/studio/145/TBS"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/TBS_logo.svg/200px-TBS_logo.svg.png"); } .favourite.studio[href="/studio/108/Media-Factory"]::after{ background-image: url("https://i.stack.imgur.com/rR7yU.png"); background-size: 76px 25px; height: 25px; width: 76px; } .favourite.studio[href="/studio/346/Hoods-Entertainment"]::after{ background-image: url("https://i.stack.imgur.com/p7S0I.png"); } .favourite.studio[href="/studio/6142/Geno-Studio"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/thumb/f/f4/Genostudio.jpg/220px-Genostudio.jpg"); height: 25px; } .favourite.studio[href="/studio/113/Kadokawa-Shoten"]::after, .favourite.studio[href="/studio/262/Kadokawa-Pictures-USA"]::after, .favourite.studio[href="/studio/352/Kadokawa-Pictures-Japan"]::after{ background-image: url("https://i.stack.imgur.com/ZsUDR.gif"); } .favourite.studio[href="/studio/4418/8bit"]::after{ background-image: url("https://upload.wikimedia.org/wikipedia/en/e/ea/8-Bit_Animation_Studio.png"); } `; }; if(useScripts.CSScompactBrowse){ moreStyle.innerHTML += ` .search-page-unscoped.container{ padding-left: 10px; padding-right: 0px; } .search-page-unscoped .description{ display:none; } body,.search-page-unscoped .preview-section{ counter-reset: ranking; } .search-page-unscoped .data::before { left:2px; opacity:0.4; font-size:70%; position:absolute; counter-increment: ranking; content: counter(ranking); } .search-page-unscoped .media-card{ min-width:150px!important; grid-template-columns: 150px auto!important; height: 297px!important; width: 150px !important; } .search-page-unscoped .cover .overlay{ padding-left:8px!important; padding-right:8px!important; padding-top:4px!important; } .search-page-unscoped .grid-wrap > .media-card{ margin-left:30px; } .search-page-unscoped .media-card .cover{ width:150px; height:215px; margin-top:53px; z-index: 100; } .search-page-unscoped .data{ margin-left: -150px; } .search-page-unscoped .genres{ min-height:29px; z-index: 101; padding: 8px 5px!important; padding-bottom: 2px !important; font-size: 1rem!important; line-height: 1.15; } .search-page-unscoped .list-edit{ z-index: 101; } .search-page-unscoped .airing-countdown{ padding: 5px!important; } .search-page-unscoped .grid-wrap{ grid-template-columns: repeat(auto-fill, 150px) !important; } .search-page-unscoped .media{ grid-template-columns: repeat(auto-fill, 150px) !important; width:100%; } .search-page-unscoped .overlay .studio{ margin-top: 2px!important; margin-bottom: -8px!important; } .search-page-unscoped .list-status{ width: 20px!important; height: 20px!important; } .search-page-unscoped .media-card:nth-child(5){ display: inline-grid!important; } `; }; if(useScripts.CSSsubmissionCounter){ moreStyle.innerHTML += ` .submissions-wrap{ counter-reset: acceptedCount partialCount pendingCount rejectedCount; } .submissions-wrap .submission .status.accepted{ counter-increment: acceptedCount; } .submissions-wrap .submission .status.accepted::after{ content: counter(acceptedCount); } .submissions-wrap .submission .status.pending{ counter-increment: pendingCount; } .submissions-wrap .submission .status.pending::after{ content: counter(pendingCount); } .submissions-wrap .submission .status.partially_accepted{ counter-increment: partialCount; } .submissions-wrap .submission .status.partially_accepted::after{ content: counter(partialCount); } .submissions-wrap .submission .status.rejected{ counter-increment: rejectedCount; } .submissions-wrap .submission .status.rejected::after{ content: counter(rejectedCount); } .submissions-wrap::after{ content: "pending: " counter(pendingCount) ", accepted: " counter(acceptedCount) ", partially accepted: " counter(partialCount) ", rejected: " counter(rejectedCount); } `; }; if(useScripts.CSSprofileClutter){ moreStyle.innerHTML += ` .overview .list-stats > .footer{ display: none; } .overview > .section > .desktop:nth-child(2){ display: none; } .overview > .section > .desktop:nth-child(3){ display: none; } .overview > .section > .desktop.favourites{ display: inherit; } `; }; if(useScripts.CSSfollowCounter){ moreStyle.innerHTML += ` .user-social .user-follow > div.wrap{ grid-template-columns: repeat(auto-fill,75px)!important; grid-template-rows: repeat(auto-fill,75px)!important; } body{ counter-reset: followCount; } .user-social .user-follow .user{ counter-increment: followCount; } .user-social .user-follow .user:nth-child(10n), .user-social .user-follow .user:last-child{ overflow: visible!important; } .user-social .user-follow .user:last-child::after{ content: "Total: " counter(followCount); position: relative; left: 85px; top: -48px; opacity: 0.5; } `; }; if(useScripts.CSSgreenManga){ moreStyle.innerHTML += ` .activity-manga_list > div > div > div > div > .title{ color: rgba(var(--color-green))!important; } .media .relations .cover[href^="/manga/"] + div div{ color: rgba(var(--color-green)); } .media .relations .cover[href^="/anime/"] + div div{ color: rgba(var(--color-blue)); } .media .relations .cover[href^="/manga/"]{ border-bottom-style: solid; border-bottom-color: rgba(var(--color-green)); border-bottom-width: 2px; } .media .relations.small .cover[href^="/manga/"]::after{ position:absolute; left:1px; bottom:3px; content:""; border-style: solid; border-color: rgba(var(--color-green)); border-width: 2px; } .media .relations .cover[href^="/anime/"]{ border-bottom-style: solid; border-bottom-color: rgba(var(--color-blue)); border-bottom-width: 2px; } .media .relations .cover div.image-text{ margin-bottom: 2px!important; border-radius: 0px!important; padding-bottom: 8px!important; padding-top: 8px!important; font-weight: 500!important; } `; }; if(useScripts.CSSverticalNav){ moreStyle.innerHTML += ` .logo{ margin-left: -60px!important; /*the compact layout uses more of the space to the side, so we line up the logo to the left*/ } .footer{ margin-top: 0px !important; /*less space wasted over the footer*/ } .container{ padding-left: 10px; padding-right: 0px; } .hide{ top: 0px!important; /*stop that top bar from jumping all over the place*/ } .notification{ margin-bottom: 10px!important; } /*Dropdown menus are site theme based*/ .quick-search .el-select .el-input .el-input__inner, .quick-search .el-select .el-input.is-focus .el-input__inner, .el-select-dropdown, .el-dropdown-menu, .el-dropdown-menu__item--divided::before{ background: rgba(var(--color-foreground)); } .el-select-dropdown__item.hover, .el-select-dropdown__item:hover{ background: rgba(159, 173, 189, .2); } .el-dropdown-menu__item--divided{ border-color: rgba(var(--color-background)); } .el-select-group__wrap:not(:last-of-type)::after{ background: rgba(var(--color-foreground)); } .el-popper[x-placement^="bottom"] .popper__arrow, .el-popper[x-placement^="bottom"] .popper__arrow::after{ border-bottom-color: rgba(var(--color-foreground)); } .el-popper[x-placement^="top"] .popper__arrow, .el-popper[x-placement^="top"] .popper__arrow::after{ border-top-color: rgba(var(--color-foreground)); } /*Additions to dark theme dropdown*/ .site-theme-dark .quick-search.el-select .el-input.el-input__inner, .site-theme-dark .quick-search .el-select .el-input.is-focus .el-input__inner, .site-theme-dark .el-select-dropdown, .site-theme-dark .el-dropdown-menu, .site-theme-dark .el-dropdown-menu__item--divided::before{ background: rgba(17, 22, 29); } .site-theme-dark .el-select-group__wrap:not(:last-of-type)::after{ background: rgba(17, 22, 29); } .site-theme-dark .el-popper[x-placement^="bottom"] .popper__arrow, .site-theme-dark .el-popper[x-placement^="bottom"] .popper__arrow::after{ border-bottom-color: rgba(17, 22, 29); opacity: 1; } .site-theme-dark .el-popper[x-placement^="top"] .popper__arrow, .site-theme-dark .el-popper[x-placement^="top"] .popper__arrow::after{ border-top-color: rgba(17, 22, 29); opacity: 1; } /*--------------VERTICAL-NAV----------------*/ /*code by Kuwabara: https://userstyles.org/styles/161017/my-little-anilist-theme-can-not-be-this-cute*/ div#nav { width: 65px; height: 100%; position: fixed!important; top: 0!important; left: 0!important; transition: none!important; } div#nav.transparent { background: rgba(var(--color-nav))!important; } .nav .wrap .links { font-size: 1rem; height: 355px; margin-left: 0px; padding-left: 0px; width: 65px; flex-direction: column; } .nav .wrap .links .link { width: 65px; padding: 5px 0px; margin-bottom: 10px; text-align: center; /*color: rgba(var(--color-blue),0.6);*/ transition: 0.3s; } .nav .wrap .links .link:hover { background: rgba(var(--color-blue),0.1); } .nav .wrap .links .link::before { display: block; content: ''; height: 24px; width: 65px; background-size: 24px; margin-left: 0; margin-bottom: 3px; background-repeat: no-repeat; background-position: center; } .nav .link[href="/home"]::before { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAPFBMVEX////Nzc3MzMzMzMzMzMzMzMzNzc3Ozs7MzMzOzs7Nzc3Pz8/Nzc3Ozs7MzMzMzMzMzMzMzMz////MzMxhQh83AAAAFHRSTlMAkAWq/wrBFc8f4DDqP/VV+mkBjLrki9AAAADdSURBVHgB7dPVYcQAEMTQvfOa2e6/1jBnwgrPa0Bfil/IzOxwCIxwLDKLYwiMssozVRkEoW7yQlPHp2i7vNK1Ebx+yBtDH7hxyjumMWDzkvcsc6DWfGQNzransJN7ScWR20urSm4vram5vbSu5fbShp7bS5tGbi9tmcG9tBXcS9vRvfRy5F56OXIvvRy5l16O3EsvR+6llyP30suBe2kruJe2o3vp5ci99HLkXno5ci+9HLmXXo7cSy9H7qWXQ/d6+3L5TqE54MCfCcQDDjjggAMOOOCAA38wYGZmdgrh0DDL6hLpfgAAAABJRU5ErkJggg==); } .nav .link[href*="/user/"]::before { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAACeUlEQVR4Ae3bM7gcYRTG8Ylt22YT9XHSxnbS31vHtq0qdhPbOe/g7sS2bZ704XybnZ0zT87zry9+y48WxzwFKEABClCAAhQQZgpIVEImDtIL4jT3AgeRmaj0TwC/IG3BN+Lowjfa4hdMEnA5Dzzi6IN3OU9SACwhlhGWJAFATXwVA/iKmsYAmkgsqInGALiSAPCMAfReEoDemgNYVgpQQMwAT2mZ05Hq+gUvFPLqoDMtw7P4AG7awynXT+Oq3PZwuh0HwNbreX/3O6/nxSbpgNls/TnMFAzADs72NwBnwzahANyh/EHmUJQfd0QC7L5sBcvuKxCA65w9KICz0zV5gJlsBQ+z5AHamQCorTiAW9sE4NYWB7hc2ARwubA4gF/QBOAX1JdQqgHU1gTgtBEHwAwTAGbIA1w3AQj8IiNG78CPf++4D+buSh1Obws0nN4R7wnNrFhPKWlrLCb1NIJy/bzbQCPodoyWVbAcnanuhULyl1VCSAEKUIACFPAAx3GQdmEeRtEYWo1j9CAOgNvYiKnoapf69SjUbWB3xyK6IBCAS1hEbYOuzfllMRQnpABe0hyvDlvmeXVoDj2JFIAPmHe+BFvJdzmPPRA3ogF8wrhA/3wABEbRp3QDLrgN2EpdbgNy0gnIMn/sAzwPa9MEwI1EGbZSH+XC3jQA8M1pylY4JcrQi/ABy9kKL5oUOsBuFSbAbR46IKtYmICsYqED2Ao3IQAFKECnlApQwCtRgFf/39FjTBYFmGwMsKtIOn5PlZO5ALFYDGBJsldQ3FhfQWHLL4jNUV8CwmazS0A/RZUpI5prWHSAMqiyXoQTkALEpgAFKEABClDAd65sWJtplkTeAAAAAElFTkSuQmCC); } .nav .link[href*="/animelist"]::before { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEX////MzMw46qqDAAAAAXRSTlMAQObYZgAAAB1JREFUeAFjAIFR8P8//38Q+DAcOBAwGgajYTAKAIVtfpATE/21AAAAAElFTkSuQmCC); } .nav .link[href*="/mangalist"]::before { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEX////MzMw46qqDAAAAAXRSTlMAQObYZgAAAB1JREFUeAFjAIFR8P8//38Q+DAcOBAwGgajYTAKAIVtfpATE/21AAAAAElFTkSuQmCC); } .nav .link[href="/search/anime"]::before { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEX////MzMw46qqDAAAAAXRSTlMAQObYZgAAACRJREFUeAFjAIFR8P//h/8g8IFUzigHEoCkcSCIeM4ohzwwCgAUe7MQS689CwAAAABJRU5ErkJggg==); } .nav .link[href*="/forum"]::before { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAANlBMVEX////U1NTNzc3MzMzMzMzS0tLMzMzOzs7MzMzNzc3MzMzNzc3MzMzMzMzNzc3MzMzNzc3R0dEFv6PyAAAAEnRSTlMAGLPs/xHmFaCi6+Wh7bIZgBYCtFDnAAAAw0lEQVR4Ae3VhW0EQRTAUN8t80//xYZxRaOJHPxu4IlNlmXvulybtqLmeqGorm8r6wdKGtvqJkqa64GZktpP9JOABBJIIIHTIwTg9AgRaCcbmG2g/XIggQQSSCCBBBJYbGCVgb5TgW0/qAGC8mqAwAUCFwhcIHCBwAUCFwhcIHiuragACFwgcIHABQIXCFwgcIFABs4tNjDawE0vAxz7JgD1xRmwBWwBW8AWsAVsAVvAFrAFbAFbwBawBWwBueC1LMvuACDgQjDhWhbNAAAAAElFTkSuQmCC); } div#nav.transparent { background: #1f2631!important; /*background: rgba(var(--color-nav))!important;*/ } #app { margin-top: 0; padding-left: 65px; } .nav .user { position: fixed; top: 0; display: grid; grid-gap: 40px; width: 65px; grid-template-rows: 50px 20px; } .search .dropdown.el-dropdown { font-size: 10px; } .search .el-dropdown-link svg { width: 65px; height: 23px; padding: 5px 0; background: rgba(0, 0, 0, 0.2); } .nav .search { width: 65px; margin: 0; text-align: center; position: fixed; top: 56px; } .quick-search-results { z-index: 999!important; top: 136px!important; } .user .avatar:hover+.chevron { opacity: 0!important; } .hide { top:0px!important; } /*-------------------*/ ::selection { background: rgba(var(--color-blue),0.4); } ::-webkit-selection { background: rgba(var(--color-blue),0.4); } ::-moz-selection { background: rgba(var(--color-blue),0.4); } ::-webkit-scrollbar { width: 7px; height: 7px; } ::-webkit-scrollbar-thumb { background: #4e4e4e!important; } #app{ overflow:unset; } .user .header-wrap{ position: sticky; top: -332px; z-index: 100; } .list-stats{ margin-bottom:0px!important; } .activity-feed-wrap{ margin-top:25px; } .logo{ position: absolute; margin-bottom: -500px; display:none!important; margin-left: 0px !important; } /*home stuff*/ .reply .header a.name[href="/user/Abyss/"]::after{ content: "Prima Undine"; margin-left:10px; padding:3px; border-radius:2px; animation-duration: 20s; animation-iteration-count: infinite; animation-name: rainbow; animation-timing-function: ease-in-out; color: rgba(var(--color-white)); } .reply .header a.name[href="/user/Taluun/"]::after{ content: "Best Friend"; margin-left:10px; padding:3px; border-radius:2px; animation-duration: 20s; animation-iteration-count: infinite; animation-name: rainbow; animation-timing-function: ease-in-out; color: rgba(var(--color-white)); } .details > .donator-badge{ left:105px!important; padding:2px!important; top: 100%!important; -ms-transform: translate(0px, -34px); -webkit-transform: translate(0px, -34px); transform: translate(0px, -34px); } .activity-text > div > div > div > .donator-badge{ position:relative!important; display:inline-block!important; left:0px!important; top:-10px!important; -ms-transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } .activity-replies{ margin-top:5px!important; margin-left:30px!important; margin-right:0px!important; } .activity-entry{ margin-bottom: 10px!important; } .list-preview{ grid-gap: 10px!important; padding:0px!important; background: rgb(0,0,0,0)!important; } .home{ grid-column-gap: 30px!important; margin-top: 20px!important; grid-template-columns: auto 470px!important; } .activity-feed .reply{ padding:8px!important; margin-bottom: 5px!important; } .list .details{ padding-left:10px!important; padding-top:5px!important; padding: 10px 16px!important; padding-bottom: 7px !important; } .search{ margin-top:0px!important; } .emoji-spinner{ display:none!important; } .wrap{ border-radius: 2px!important; } .name{ margin-left: 0px!important; } .activity-text > div > div > div > .name{ margin-left: 12px!important; } .button{ margin-right: 5px!important; } .actions{ margin-bottom: 5px!important; bottom: 0px!important; } .status{ display: inline-block!important; } .avatar{ display: block!important; } /*https://anilist.co/activity/29333544*/ .activity-entry .header a:nth-child(1){ display: inline-block!important; } .wrap > .list{ min-height: 80px!important; grid-template-columns: 60px auto!important; } .popper__arrow{ display: none!important; } .media-preview{ grid-gap: 10px!important; padding: 0px!important; background: rgb(0,0,0,0)!important; } .media-preview-card{ display: inline-grid!important; } .replies > .count{ color: rgba(var(--color-blue)); } .action.likes{ color: unset; } .like-wrap > .button:hover{ color: rgba(var(--color-red)); } .replies > *:nth-child(2){ color: rgba(var(--color-blue)); } .actions{ cursor: default; } .activity-manga_list > div > div > div > div > .title{ color: rgba(var(--color-green))!important; } .markdown-editor > [title="Image"], .markdown-editor > [title="Youtube Video"], .markdown-editor > [title="WebM Video"]{ color: rgba(var(--color-red)); } .markdown-editor > div > svg{ min-width: 1em!important; } .feed-select .toggle > div.active[data-v-f37b0a84]{ color: rgba(var(--color-blue))!important; } .home .details .status:first-letter, .social .details .status:first-letter { text-transform:lowercase; } .activity-edit .markdown-editor, .activity-edit .input{ margin-bottom: 10px!important; } .activity-edit .actions{ margin-bottom: 25px!important; } .like-wrap .users{ overflow-y: scroll!important; } .page-content .container .home.full-width{ grid-template-columns: unset !important; } .activity-text .text { border-left: solid 5px rgba(var(--color-blue)); } .section-header{ padding-left:0px!important; } .cover[href="/anime/440/Shoujo-Kakumei-Utena/"] + .details{ border-color: #eb609e; border-width: 4px; border-style: solid; border-left-width: 0px; } .sticky .avatar, .sticky .body-preview, .sticky .categories, .sticky .name{ display: none!important; } .search > .filter, .search > .preview{ margin-top: 20px; } `; }; if(useScripts.CSSdecimalPoint){ moreStyle.innerHTML += ` .medialist.POINT_10_DECIMAL .score[score="10"]::after, .medialist.POINT_10_DECIMAL .score[score="9"]::after, .medialist.POINT_10_DECIMAL .score[score="8"]::after, .medialist.POINT_10_DECIMAL .score[score="7"]::after, .medialist.POINT_10_DECIMAL .score[score="6"]::after, .medialist.POINT_10_DECIMAL .score[score="5"]::after, .medialist.POINT_10_DECIMAL .score[score="4"]::after, .medialist.POINT_10_DECIMAL .score[score="3"]::after, .medialist.POINT_10_DECIMAL .score[score="2"]::after, .medialist.POINT_10_DECIMAL .score[score="1"]::after{ margin-left:-4px; content: ".0"; } `; }; if(useScripts.CSSsmileyScore){ moreStyle.innerHTML += ` .fa-frown{ color: red; } .fa-smile{ color: green; } `; }; if(useScripts.CSSstudioStats){ moreStyle.innerHTML += ` .stats-wrap .row a[href="/studio/34/Hal-Film-Maker"], .stats-wrap .row a[href="/studio/18/Toei-Animation"], .stats-wrap .row a[href="/studio/11/MADHOUSE"], .stats-wrap .row a[href="/studio/1/Studio-Pierrot"], .stats-wrap .row a[href="/studio/37/Studio-DEEN"], .stats-wrap .row a[href="/studio/14/Sunrise"], .stats-wrap .row a[href="/studio/7/JC-Staff"], .stats-wrap .row a[href="/studio/6/Gainax"], .stats-wrap .row a[href="/studio/44/Shaft"], .stats-wrap .row a[href="/studio/2/Kyoto-Animation"], .stats-wrap .row a[href="/studio/65/Tokyo-Movie-Shinsha"], .stats-wrap .row a[href="/studio/10/Production-IG"], .stats-wrap .row a[href="/studio/561/A1-Pictures"], .stats-wrap .row a[href="/studio/21/Studio-Ghibli"], .stats-wrap .row a[href="/studio/68/Mushi-Productions"], .stats-wrap .row a[href="/studio/48/AIC"], .stats-wrap .row a[href="/studio/200/Tezuka-Productions"], .stats-wrap .row a[href="/studio/43/ufotable"], .stats-wrap .row a[href="/studio/291/CoMix-Wave"], .stats-wrap .row a[href="/studio/73/TMS-Entertainment"], .stats-wrap .row a[href="/studio/829/Studio-Jack"], .stats-wrap .row a[href="/studio/28/Oriental-Light-and-Magic"], .stats-wrap .row a[href="/studio/27/Xebec"], .stats-wrap .row a[href="/studio/3/GONZO"], .stats-wrap .row a[href="/studio/112/Brains-Base"], .stats-wrap .row a[href="/studio/300/SILVER-LINK"], .stats-wrap .row a[href="/studio/51/diomeda"], .stats-wrap .row a[href="/studio/314/White-Fox"], .stats-wrap .row a[href="/studio/22/Nippon-Animation"], .stats-wrap .row a[href="/studio/196/Production-Reed"], .stats-wrap .row a[href="/studio/199/Studio-Nue"], .stats-wrap .row a[href="/studio/803/Trigger"], .stats-wrap .row a[href="/studio/132/PA-Works"], .stats-wrap .row a[href="/studio/95/Doga-Kobo"], .stats-wrap .row a[href="/studio/287/David-Production"], .stats-wrap .row a[href="/studio/8/Artland"], .stats-wrap .row a[href="/studio/569/MAPPA"], .stats-wrap .row a[href="/studio/858/Wit-Studio"], .stats-wrap .row a[href="/studio/41/Satelight"], .stats-wrap .row a[href="/studio/456/Lerche"], .stats-wrap .row a[href="/studio/91/feel"], .stats-wrap .row a[href="/studio/290/Kinema-Citrus"], .stats-wrap .row a[href="/studio/32/Manglobe"], .stats-wrap .row a[href="/studio/4418/8bit"], .stats-wrap .row a[href="/studio/555/Studio-Chizu"], .stats-wrap .row a[href="/studio/45/Pink-Pineapple"], .stats-wrap .row a[href="/studio/47/Studio-Khara"], .stats-wrap .row a[href="/studio/13/Studio-4C"], .stats-wrap .row a[href="/studio/103/Tatsunoko-Production"], .stats-wrap .row a[href="/studio/6071/Studio-Shuka"], .stats-wrap .row a[href="/studio/839/LIDENFILMS"], .stats-wrap .row a[href="/studio/25/Milky-Animation-Label"], .stats-wrap .row a[href="/studio/6222/CloverWorks"], .stats-wrap .row a[href="/studio/309/GoHands"], .stats-wrap .row a[href="/studio/911/Passione"], .stats-wrap .row a[href="/studio/418/Studio-Gokumi"], .stats-wrap .row a[href="/studio/365/PoRO"], .stats-wrap .row a[href="/studio/292/AIC-Plus"], .stats-wrap .row a[href="/studio/38/Arms"], .stats-wrap .row a[href="/studio/6069/Studio-3Hz"], .stats-wrap .row a[href="/studio/541/Seven"], .stats-wrap .row a[href="/studio/6145/Science-SARU"], .stats-wrap .row a[href="/studio/4/BONES"]{ color:rgba(var(--color-blue)) } `; }; document.getElementsByTagName('head')[0].appendChild(moreStyle); var queryMediaList = ` query ($name: String!, $listType: MediaType) { MediaListCollection (userName: $name, type: $listType) { lists { entries { ... mediaListEntry } } } } fragment mediaListEntry on MediaList { mediaId status progress progressVolumes repeat notes startedAt { year month day } media { episodes chapters volumes duration nextAiringEpisode { episode } format title { romaji } tags { name } } scoreRaw: score (format: POINT_100) } `; var queryActivity = "query ($id: Int!) { Activity(id: $id) { ... on TextActivity { id userId type replyCount text createdAt user { id name avatar { large } } likes { id name avatar { large } } replies { id text(asHtml: true) createdAt user { id name avatar { large } } likes { id name avatar { large } } } } ... on ListActivity { id userId type status progress replyCount createdAt user { id name avatar { large } } media { coverImage { large } id title { userPreferred } } likes { id name avatar { large } } replies { id text(asHtml: true) createdAt user { id name avatar { large } } likes { id name avatar { large } } } } ... on MessageActivity { id type replyCount createdAt messenger { id name avatar { large } } likes { id name avatar { large } } replies { id text(asHtml: true) createdAt user { id name avatar { large } } likes { id name avatar { large } } } } } }";//untangle this some day? var activityCache = {};//reduce API calls even if localStorage is not available. var handleResponse = function(response){//generic handling of API responses return response.json().then(function(json){ return response.ok ? json : Promise.reject(json); }); }; var handleError = function(error){ console.error(error);//not much more we can do. As most modules are independent an non-critical, it's better to just log the error and keep stuff running. }; var url = 'https://graphql.anilist.co';//Current Anilist API location var listActivityCall = function(query,variables,callback,vars,cache){ /* query, graphql request vars, just, values to pass on to the callback function cache::true, use cached data if available cache::false, allways fetch new data */ var handleData = function(data){ pending[variables.id] = false; if(localStorageAvailable){ localStorage.setItem(variables.id + "",JSON.stringify(data)); aniscriptsUsed.keys.push(variables.id); if(aniscriptsUsed.keys.length > 1000){//don't hog to much of localStorage for(var i=0;i<10;i++){ localStorage.removeItem(aniscriptsUsed.keys[0]); aniscriptsUsed.keys.shift(); }; }; localStorage.setItem("aniscriptsUsed",JSON.stringify(aniscriptsUsed)); } else{ activityCache[variables.id] = data;//still useful even if we don't have localstorage }; callback(data,vars); }; var options = {//generic headers provided by API examples method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', }, body: JSON.stringify({ query: query, variables: variables }) }; if(localStorageAvailable && cache){ var localStorageItem = localStorage.getItem(variables.id + ""); if(!(localStorageItem === null)){ callback(JSON.parse(localStorageItem),vars); console.log("localStorage cache hit"); return; }; } else if(activityCache.hasOwnProperty(variables.id) && cache){ callback(activityCache[variables.id],vars); console.log("cache hit"); return; }; fetch(url,options).then(handleResponse).then(handleData).catch(handleError); ++document.APIcallsUsed; console.log("fetching new data");//silence this some day? }; var generalAPIcall = function(query,variables,callback){//has no cache stuff to worry about, use this for all other calls to the API var handleData = function(data){ callback(data,variables); }; var options = { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', }, body: JSON.stringify({ query: query, variables: variables }) }; fetch(url,options).then(handleResponse).then(handleData).catch(handleError); ++document.APIcallsUsed; console.log("fetching new data");//silence this some day? }; var enhanceSocialTab = function(){ var perform = function(){ if(!document.URL.match(/https:\/\/anilist\.co\/(anime|manga)\/\d*\/[0-9a-zA-Z-]*\/social/)){ return; }; var listOfActs = document.getElementsByClassName("activity-entry"); for(var i=0;i 1) ){ listOfActs[i].marked = true; listOfActs[i].children[0].children[0].children[0].remove();//remove cover image var elements = listOfActs[i].children[0].children[0].children[0].children; elements[2].parentNode.insertBefore(elements[2],elements[0]);//move profile picture to the beginning of the line elements[0].parentNode.parentNode.style.minHeight = "70px"; elements[0].parentNode.classList.add("hohSocialTabActivityCompressedContainer"); elements[0].style.verticalAlign = "bottom"; elements[0].style.marginTop = "0px"; elements[1].classList.add("hohSocialTabActivityCompressedName"); elements[2].classList.add("hohSocialTabActivityCompressedStatus"); listOfActs[i].style.marginBottom = "10px"; }; }; /*add average score to social tab*/ var listOfFollowers = document.getElementsByClassName("follow"); var averageScore = 0; var averageCount = 0; for(var i=0;i 1){ parentComment.parentNode.children[1].style.display = "none"; }; } else{ this.innerHTML = "[-]"; parentComment.children[1].style.display = "block"; if(parentComment.parentNode.children.length > 1){ parentComment.parentNode.children[1].style.display = "block"; }; }; }; comments[i].children[0].children[0].insertBefore( hider, comments[i].children[0].children[0].children[0] ); }; }; }; var tryAgain = function(){//loop the forum script until we leave that page setTimeout(function(){ perform(); if(document.URL.match(/https:\/\/anilist\.co\/forum\/thread\/.*/)){ tryAgain() } else{ activeScripts.forumComments = false; } },100); }; activeScripts.forumComments = true; perform(); tryAgain(); }; var dubMarker = function(){ if(!document.URL.match(/https:\/\/anilist\.co\/anime\/.*/)){ return; }; if(document.getElementById("dubNotice")){ return; }; var variables = { id: document.URL.match(/\/anime\/(\d+)\//)[1], page: 1, language: useScripts.dubMarkerLanguage.toUpperCase() }; var query = ` query ($id: Int!, $type: MediaType, $page: Int = 1, $language: StaffLanguage) { Media(id: $id, type: $type) { characters(page: $page, sort: [ROLE], role: MAIN) { edges { node { id } voiceActors (language: $language) { language } } } } } `; var dubCallback = function(data){ var dubNoticeLocation = document.getElementsByClassName("sidebar"); if(!dubNoticeLocation.length && document.URL.match(/https:\/\/anilist\.co\/anime\/.*/)){ setTimeout(function(){ dubCallback(data); },200); return; }; var dubFlag = false; for(var i=0;i 0){ dubFlag = true; break; }; }; if(dubFlag){ var dubNotice = document.createElement("p"); dubNotice.id = "dubNotice"; dubNotice.innerText = useScripts.dubMarkerLanguage + " dub available"; dubNoticeLocation[0].insertBefore(dubNotice,dubNoticeLocation[0].firstChild); }; }; generalAPIcall(query,variables,dubCallback); } var enhanceStaff = function(){//currently only adds a favourite count if(!document.URL.match(/https:\/\/anilist\.co\/staff\/.*/)){ return; }; var filterGroup = document.getElementsByClassName("content"); if(!filterGroup.length){ setTimeout(function(){ enhanceStaff(); },200);//may take some time to load return; }; filterGroup = filterGroup[0]; var favCount = document.createElement("span"); favCount.id = "hohFavCount"; favCount.innerText; filterGroup.appendChild(favCount); var variables = {id: document.URL.match(/\/staff\/(\d+)\//)[1]}; var query = "query($id: Int!){Staff(id: $id){favourites}}"; var favCallback = function(data){ var favButton = document.getElementsByClassName("favourite"); if(data.data.Staff.favourites == 0 && favButton[0].classList.contains("isFavourite")){//safe to assume document.getElementById("hohFavCount").innerText = data.data.Staff.favourites+1; } else{ document.getElementById("hohFavCount").innerText = data.data.Staff.favourites; }; if(favButton.length){ favButton[0].onclick = function(){ var favCount = document.getElementById("hohFavCount"); if(this.classList.contains("isFavourite")){ favCount.innerText = Math.max(parseInt(favCount.innerText)-1,0);//0 or above, just to avoid looking silly } else{ favCount.innerText = parseInt(favCount.innerText)+1; }; }; }; }; generalAPIcall(query,variables,favCallback); }; //todo: link the relevant status post var addCompletedScores = function(){ var perform = function(){ if(!document.URL.match(/https:\/\/anilist\.co\/(home|user|activity)\/?([a-zA-Z0-9-]+)?\/?$/)){ return; }; var status = document.getElementsByClassName("status"); for(var i=0;i 100){//horrible test, but we have not markup to go from. Assumes the tag dropdown is the only one with more than 100 children bestGuess = i; }; }; if(bestGuess == false){ return; }; if(possibleTagContainers[bestGuess].hasOwnProperty("hohMarked")){ return; } else{ possibleTagContainers[bestGuess].hohMarked = true; }; var superBody = document.getElementsByClassName("el-dialog__body")[0]; var descriptionTarget = document.createElement("span"); descriptionTarget.id = "hohDescription"; superBody.insertBefore(descriptionTarget,superBody.children[2]); for(var i=0;i