Auto show more for YouTube

This plugin press "Show more" button when display it on your browser by scroll.

目前为 2017-01-30 提交的版本。查看 最新版本

// ==UserScript==
// @name           Auto show more for YouTube
// @name:ja        YouTubeの「もっと見る」ボタンを自動で押す
// @description    This plugin press "Show more" button when display it on your browser by scroll.
// @description:ja YouTube.comの「もっと見る」ボタンが、スクロールによって画面に表示された瞬間、自動で押されます。
// @namespace      https://twitter.com/sititou70
// @include        /https*:\/\/www\.youtube\.com\/.*/
// @require        https://code.jquery.com/jquery-3.0.0.min.js
// @version        1.2.0
// @grant          none
// ==/UserScript==

jQuery.noConflict();
(function($){
	//get scroll value
	var get_scroll_value = function(){
		return $(window).scrollTop();
	};
	
	//get button y position
	var get_button_position = function(selector){
		return $(selector).offset().top;
	};
	
	//it is called when the scrolls
	$(window).scroll(function(){
		buttons.forEach(function(obj){
			if(obj.press_num <= 0 || $(obj.selector).length === 0)return;
			if(get_button_position(obj.selector) - $(window).height() < get_scroll_value() + adjust_scroll_px){
				var userAgent = window.navigator.userAgent.toLowerCase();
				if( userAgent.match(/(msie|MSIE)/) || userAgent.match(/(T|t)rident/) ) {
					$(obj.selector)[0].fireEvent("onclick");
				} else {
					var event = document.createEvent("MouseEvents");
					event.initEvent("click", true, true);
					$(obj.selector)[0].dispatchEvent(event);
				}
				obj.press_num--;
			}
		});
	});
	
	$(document).on("click", "a", function(){
		$.extend(true, buttons, default_buttons);
	});
	
	var buttons = [
		{
			name: "Video show more button",
		    selector: "button.load-more-button",
		    press_num: Infinity
		},
		{
			name: "Comment show more button",
			selector: "#comment-section-renderer > button",
			press_num: Infinity
		},
		{
			name: "Watch more related button",
			selector: "#watch-more-related-button",
			press_num: 1
		},
		{
			name: "Video info show more button",
			selector: "button.yt-uix-button-expander:nth-child(2)",
			press_num: 0
		}
	];
	var adjust_scroll_px = 0;
	
	var default_buttons = {};
	$.extend(true, default_buttons, buttons);
})(jQuery);