Adds a button to a YouTube channel's videos page which sorts recent uploads by views
当前为
// ==UserScript==
// @name YouTube Uploads Sorter Button
// @namespace http://tampermonkey.net/
// @version 0.12
// @description Adds a button to a YouTube channel's videos page which sorts recent uploads by views
// @author Lex
// @include /^https?:\/\/(www\.)?youtube\.com\/(channel|user)\//
// @require https://code.jquery.com/jquery-3.2.1.min.js
// @grant none
// ==/UserScript==
(function($) {
'use strict';
function addButton() {
if ($("#sortViewButton").length == 0) {
$("<button>").attr("id", "sortViewButton").html("Sort by Views").click(sortByViews).prependTo("#sort-menu");
}
}
function getViews(e) {
try {
let viewsTitle = $(e).find("a[aria-label]").attr("aria-label");
if (viewsTitle.search(/No views$/) > -1) // video has no views yet
return 0;
else
return parseInt(/([\d,]+) views$/.exec(viewsTitle)[1].replace(/,/g, ""));
} catch(err) {
return 0;
}
}
function sortByViews() {
let container = $("#page-manager #primary #items:visible");
let items = container.children();
items.sort(function(a, b) {
return getViews(a) < getViews(b);
});
items.detach().appendTo(container);
}
addButton(); // try to add the button immediately
$("#sub-menu:visible").on("DOMNodeInserted", addButton); // but also add button whenever the #sub-menu is changed
})(window.jQuery);