您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Список аниме-сериалов
当前为
// ==UserScript== // @name AnimeList // @version 1.3 // @author Fenion // @description Список аниме-сериалов // @match https://online.anidub.com/* // @require https://unpkg.com/sweetalert/dist/sweetalert.min.js // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js // @namespace https://greasyfork.runtimutd.eu.org/ru/scripts/383705-animelist // ==/UserScript== var debug = false; var start = Date.now(); $(function(){ var imgMeta = getMeta('og:image'); var animes = localStorage.getItem('animes'); var url = window.location.href; var restr = 100; $('body').append('<div id="al"></div>'); $('#al').append('<a href="javascript: void(0)" class="mbtn"></a>'); $('.mbtn').css({ 'width': '40px', 'height': '40px', 'opacity': '0.3', 'position': 'fixed', 'bottom': '50px', 'left': '150px', 'display': 'inline', 'z-index': '500', 'text-indent': '-9999px', 'background': 'url("https://raw.githubusercontent.com/Fenion/AnimeList/master/icon.png") no-repeat' }); $('body').append('<div id="anime-list"><div class="q"></div><div class="list"><div class="animes"><a id="close" href="javascript: void(0)">X</a><h1>Список просматриваемых аниме</h1><hr></div></div></div>'); $('body').append('<style>a.addbtns {color: #fff; text-decoration: none; user-select: none; background: rgb(212,75,56); padding: .1em 1.5em; outline: none;}a.addbtns:hover { background: rgb(232,95,76); } a.addbtns:active { background: rgb(152,15,0); } .swal-overlay{background-color:rgba(43, 165, 137, 0.45)} .cnt {text-align: center;} .q {display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(43, 165, 137, 0.45); opacity: 0.6; z-index: 150;} .list {display: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; text-align: center; padding: 20px; z-index: 1000;} .animes { display: none; border-radius: 5px; width: 100%; overflow-y: auto; max-height: 80%; min-width: 200px; position: relative; background-color: #FAFAFA; z-index: 300; padding: 60px 0;} .anime{position: relative; width: 100%; margin: 0px; padding-box: 0px; z-index: 400} .img{position: relative; width: 100%; height: 200px; padding: 0px;} .kartinka{position: absolute; height: 200px; left: 10px;} .nme{position: absolute; top: 10%; left: 200px; width: 80%; } .del{position: absolute; top: 45%; right: 10%; width: 115px; height: 15px; color: #fff; text-decoration: none; user-select: none; background: rgb(212,75,56); padding: .7em 1.5em; outline: none;} ::-webkit-scrollbar {width: 12px;} ::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px;} ::-webkit-scrollbar-thumb {border-radius: 10px; -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);} #close{position: fixed; top: 30px; right: 40px; z-index: 1000; color: #fff; text-decoration: none; user-select: none; background: rgb(255, 82, 82); padding: .1em .5em; outline: none;} .srs{position: absolute; width: 100%; bottom: 20%;} .red{position: absolute; right: 38px; bottom: 10%; color: #fff; text-decoration: none; user-select: none; background: rgb(255,165,0); padding: .01em .3em; outline: none;} .plus{position: absolute; bottom: 10%; color: #fff; text-decoration: none; user-select: none; background: rgb(0,155,0); padding: .1em .5em; outline: none;} .min{position: absolute; bottom: 10%; left: 5%; color: #fff; text-decoration: none; user-select: none; background: rgb(212,75,56); padding: .1em .6em; outline: none;} .seriesbtn{position: relative; width: 40px; left: 49%; bottom: 19px;}</style>'); var wrap = $('#anime-list'); var btn = $('.mbtn'); var modal = $('.q, .list, .animes'); function getMeta(metaName) { const metas = document.getElementsByTagName('meta'); for (let i = 0; i < metas.length; i++) { if (metas[i].getAttribute('property') === metaName) { return metas[i].getAttribute('content'); } } return ''; } function no_anime() { swal({ icon: 'error', text: 'В вашем списке ещё нет аниме!', button: "Ok!", }); } function addAnime() { if (animes >= restr) { swal({ icon: 'error', text: 'Список аниме заполнен!', button: 'Ok!', }); } else { let title = getMeta('og:title'), r = title.match(/[^[\]]+(?=])/g).join(), t = r.split(' '); for (var f = 1; f <= restr; f++) { let src = localStorage.getItem('src' + f); if (src == null) { localStorage.setItem('animes', ++animes); localStorage.setItem('src' + f, url); localStorage.setItem('series' + f, '0'); let s = localStorage.getItem('series' + f); $('.animes').append('<div id="' + f + '" class="anime"><a href="' + url + '"><h3 class="srs">Просмотрено: ' + s + ' из ' + Number(t[0]) + '</h3><div class="img"><img src="' + imgMeta + '" class="kartinka" width="160"></img></div><div class="nme"><h2>' + title + '</h2></div></a><a href="javascript: void(0)" class="del" id="' + f + '">Удалить</a><div class="seriesbtn"><a href="javascript: void(0)" class="red" id="' + a + '">✎</a><a href="javascript: void(0)" id="' + f + '" class="plus">+</a><a href="javascript: void(0)" id="' + f + '" class="min" style="display: none;">-</a></div><hr></div>'); swal({ icon: 'success', text: 'Аниме добавлено в список!', button: 'Ok!', }); if(debug){ console.log('%c' + title + ' added to the list successfully!', 'background: green; color: white;'); } break; } } } } function delAnime(num) { localStorage.removeItem('src' + num); localStorage.removeItem('series' + num); localStorage.setItem('animes', --animes); let id = ('#' + num); $('.anime' + id).remove(); swal({ icon: 'success', text: 'Аниме удалено из списка!', button: 'Ok!' }); if(debug){ console.log('%cAnime #' + num + ' deleted succesfully!', 'background: green; color: white;'); } } $(document).on("click", ".del", function() { let id = $(this).attr("id"); delAnime(id); }); function ajaxReq(a, q) { $.ajax({ url: q, async: true, success: function(data, textStatus, jqXHR) { var title = $(data).filter("meta[property='og:title']").attr("content"), img = $(data).find("meta[property='og:image']").attr("content"), series = title.match(/[^[\]]+(?=])/g).join(), h = series.split(' '), sP = '', sM = ''; let s = localStorage.getItem('series' + a); if(Number(s) >= Number(h[0])){ sP = 'style = "display:none;"'; sM = 'style = "display:auto;"'; } else if(s == 0) { sM = 'style = "display:none;"'; sP = 'style = "display:auto;"'; } else if(s == 1) { sM = 'style = "display:none;"'; sP = 'style = "display:auto;"'; } else { sP = 'style = "display:auto;"'; sM = 'style = "display:auto;"'; } $('.animes').append('<div id="' + a + '" class="anime"><h3 class="srs">Просмотрено: ' + s + ' из ' + Number(h[0]) + '</h3><a href="' + q + '"><div class="img"><img src="' + img + '" class="kartinka" width="160"></img></div><div class="nme"><h2>' + title + '</h2></div></a><a href="javascript: void(0)" class="del" id="' + a + '">Удалить</a><div class="seriesbtn"><a href="javascript: void(0)" class="red" id="' + a + '">✎</a><a href="javascript: void(0)" id="' + a + '" class="min" '+ sM +'>-</a><a href="javascript: void(0)" id="' + a + '" class="plus" '+ sP +'>+</a></div><hr></div>'); if(debug){ console.log('%cCool! Ajax request sent successfully! ['+ jqXHR.status +']', 'background: green; color: white;'); } }, error: function(jqXHR) { if(debug){ console.log('%cOops! Something went wrong with Ajax! ['+ jqXHR.status +']', 'background: red; color: white;'); } } }); } if (!animes) { } else if (animes == 0) { } else if (animes > 0) { for (var a = 1; a <= restr; a++) { var q = localStorage.getItem('src' + a); if (q == null) {} else { ajaxReq(a, q); } } } if (!imgMeta) {} else { $('.poster_img').append('<a href="javascript: void(0)" class="addbtns">Добавить в список</a>'); } if (!animes) { localStorage.setItem('animes', 0); } function redSeries(ser, aydi){ var a = $('#' + aydi + '.anime').find(".srs"), b = $(a).html().split(' '); let p = $('#' + aydi + '.anime').find('.plus'), m = $('#' + aydi + '.anime').find('.min'); if(!ser){ } else if(ser > Number(b[3])) { } else if (ser < 0) { } else if(Number(ser)){ let c = b[1] = [ser], d = b.join(' '); localStorage.setItem('series' + aydi, ser); $(a).text(d); if(debug){ console.log(d); console.log(ser); console.log(Number(b[1])); } if(c >= b[3]){ p.css({'display':'none'}); m.css({'display':'auto'}); } else if(c == 0) { m.css({'display':'none'}); p.css({'display':'auto'}); } else if(c == 1) { m.css({'display':'none'}); p.css({'display':'auto'}); } else { p.css({'display':'block'}); m.css({'display':'block'}); } } else { alert('Пожалуйста введите число!'); } } $('.addbtns').click(addAnime); btn.click(function() { if (animes == 0) { no_anime(); } else if (!animes) { no_anime(); } else { modal.fadeIn(); } }); $('#close').click(function() { modal.fadeOut(); }); $(document).on('click','.red' ,function() { let id = $(this).attr('id'); swal('Введите кол-во просмотренных серий', { content: "input", }).then((value) => { redSeries(value, id); }); }); $(document).on('click', '.plus', function(){ let id = $(this).attr('id'), d = localStorage.getItem('series' + id), v = ++d; redSeries(v, id); }); $(document).on('click', '.min', function(){ let id = $(this).attr('id'), d = localStorage.getItem('series' + id), v = --d; redSeries(v, id); }); var end = Date.now(); var time = end - start; if(debug){ console.log('%cScript started in ' + time + 'ms', 'background: green; color: white;'); } });