您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sorts Videos by hits over multiple pages
// ==UserScript== // @name motherless.com - sort videos by hits // @namespace https://greasyfork.org/de/scripts/10117-motherless-com-sort-videos-by-hits // @author enTiCaRD // // @description Sorts Videos by hits over multiple pages // // @include /^https?:\/\/(.+\.)?motherless\.com\/((gv\/.+)|GV.+)$/ // // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js // // @grant GM_getValue // @grant GM_setValue // // @version 0.0.1 // ==/UserScript== (function ($) { "use strict"; /*jslint browser: true, newcap: true */ /*global $, jQuery, GM_getValue, GM_setValue */ $(function () { var sortItems = function (container, items) { var dict = {}, order; $(items).each(function () { var hits = parseInt($(this).find("div.caption.right:contains('Hits')").text().split(' ')[0].replace(',', ''), 10); if (dict[hits] === undefined) { dict[hits] = [$(this)]; } else { dict[hits].push($(this)); } }); order = Object.keys(dict).sort(function (a, b) { return a - b; }); while (order.length > 0) { items = dict[order.pop()]; while (items.length > 0) { container.append(items.shift()); } } }, loadItems = function (site, max, listener) { var pages = $('<div>'), end = max + parseInt($(".pagination_link .current").last().text(), 10) - 1; pages.data('page', parseInt($(".pagination_link .current").last().text(), 10)); if (isNaN(pages.data('page'))) { pages.data('page', 1); end = 1; } pages.data('status', 'loading'); pages.data('array', []); pages.on("next", function (retries) { $("#sortinginfo").text('loading page ' + pages.data('page') + ' (' + (pages.data('page') - end + max) + '/' + max + ')'); if (typeof retries !== "number") { retries = 5; } $.get(site + "?page=" + pages.data('page'), function (data) { var jdata = $(data), tmp = pages.data('array'); jdata.find("div.thumb-container").each(function () { tmp.push(this); }); pages.data('array', tmp); //alert(jdata.find("div.pagination_link a").last().text().match(/NEXT/) === null); if (jdata.find("div.pagination_link a").last().text().match(/NEXT/) === null || pages.data('page') >= end) { pages.data('status', 'success'); pages.trigger('allready', 1); } else { pages.data('page', pages.data('page') + 1); pages.trigger('next', 5); } }).fail(function () { retries -= 1; if (retries >= 0) { loadItems(retries); } else { pages.data('status', 'incomplete'); pages.trigger('allready'); } }); }); pages.on('allready', function () { listener(pages.data('status'), pages.data('array')); }); pages.trigger('next', 5); }, pages = parseInt($($(".pagination_link a")[$(".pagination_link a").size() - 2]).text(), 10) - parseInt($(".pagination_link .current").last().text(), 10) + 1, saveValue = false; $('div.sub_menu').append($('<a href id="listlinks">Links</a><a href title="Sort videos by hits" id="sortvideos">Sort</a> <span id="sortnextinput">next <input type="text" id="sortvideosmaxpages" maxlength="2" style="width: 20px;text-align: right;"> pages.</span><span id="sortinginfo"></span>')); if (isNaN(pages)) { pages = 1; } else if (pages > GM_getValue('default_pages_to_load', 10)) { pages = GM_getValue('default_pages_to_load', 10); } $("#sortvideosmaxpages").val(pages); $("#sortvideosmaxpages").click(function () { saveValue = true; $("#sortvideosmaxpages").css('color', 'black'); }); $("#listlinks").click(function () { var a = ""; if ($("#listlinksinsert").size() > 0) { $("#listlinksinsert").remove(); } else { $(".thumb.video a.img-container").each(function () { a = a + 'http://motherless.com' + $(this).attr('href') + "\n"; }); $(".sub_menu").after($('<textarea>', { id: "listlinksinsert", style: "width: 100%; height: 50px;", text: a })); } return false; }); $("a#sortvideos").click(function () { var max = parseInt($("#sortvideosmaxpages").val(), 10), mylistener = function (e, items) { var p = max + parseInt($(".pagination_link .current").last().text(), 10), parent = $("div.thumb-container").parent(); $("div.thumb-container").remove(); sortItems(parent, items); $("#sortinginfo").html(' ' + e + '.'); $("#sortnextinput").show(); if (parseInt($($(".pagination_link a")[$(".pagination_link a").size() - 2]).text(), 10) >= p) { $("#sortinginfo").html('<a href="?page=' + p + '">goto page ' + p + '</a>'); } }; if (isNaN(max) || max <= 0) { $("#sortvideosmaxpages").css('color', 'red'); return false; } if (saveValue) { GM_setValue('default_pages_to_load', max); } $("#sortnextinput").hide(); loadItems(window.location.href.toString().split('?')[0], max, mylistener); return false; }); }); }(jQuery));