Voat Enhancement

A simple script to provide some basic enhancement for voat (auto pagination so far).

当前为 2015-06-29 提交的版本,查看 最新版本

// ==UserScript==
// @name        Voat Enhancement
// @namespace   septus.info
// @include     https://voat.co*
// @version     1.0.1
// @grant       none
// @description:en A simple script to provide some basic enhancement for voat (auto pagination so far).
// @description A simple script to provide some basic enhancement for voat (auto pagination so far).
// ==/UserScript==

$(document).ready(function(){
	
	var isFrontPage = false;
	var subvoat = "";
	var sorting = "";
	var urlHandled = false;

	var match = window.location.href.match(/^https?:\/\/[^\/]+(\/new)?\/?$/);
	if(!urlHandled && match != null){
		console.log(match)
		isFrontPage= true;
		if(match[1]){
			sorting = match[1];
		}
		urlHandled = true;
	}
	
	match = window.location.href.match(/^https?:\/\/[^\/]+\/v\/([^\/]+)(\/new|\/top)?\/?$/);
	if(!urlHandled && match != null){
		subvoat = match[1];
		if(match[2]){
			sorting = match[2];
		}
		urlHandled = true;
	}
	
	if(!urlHandled){
		return;
	}
	
	var url = "";
	var currentPage = 0;
	var contentLoading = false;
	var morePages = true;
	
	if(! ($("li.btn-whoaverse-paging > a[rel^='next']")[0])){
		morePages = false;
	}
	
	if(isFrontPage){
		url = "/"+sorting;
	}
	else{
		url = "/v/" + subvoat +"/" + sorting;
	}
	console.log(url);
	$(document).on("scroll", function(event){
		var distanceToNewPage = $("div.pagination-container").offset().top - 
			(window.pageYOffset + $(window).height()) - 600;
		//console.log(distanceToNewPage);
		
		if(distanceToNewPage < 0 && !contentLoading && morePages){
			
			contentLoading = true;
			currentPage++;
			console.log("Loading page " + currentPage);
			
			$.get( url, {page: currentPage} )
				.done(function( data ) {
					var loadedDocument = $(data);
					var loadedSubmissions = null;
					
					if(isFrontPage){
						loadedSubmissions = loadedDocument.find("div.sitetable > div.submission");
						var paginationContainer = $("div.pagination-container");
						for(var i = 0; i < loadedSubmissions.length; i++){
							paginationContainer.before(loadedSubmissions[i]);
						}
					}
					else{
						loadedSubmissions = loadedDocument.find("div.linklisting > div.submission");
						var linklisting = $("div.linklisting");
						for(var i = 0; i < loadedSubmissions.length; i++){
							linklisting.append(loadedSubmissions[i]);
						}
					}
					
					if(!loadedDocument.find("li.btn-whoaverse-paging > a[rel^='next']")[0]){
						morePages = false;
					}
					contentLoading = false;
				})
				.fail(function(error) {
					console.log( error );
				});
		}
	});
});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址