Geenstijl: bare naked

Strip all unnecessary crap from geenstijl, make it bare naked.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        Geenstijl: bare naked
// @namespace   http://twitter.com/depositado
// @description Strip all unnecessary crap from geenstijl, make it bare naked.
// @include     http://www.geenstijl.nl
// @include     http://www.geenstijl.nl/*
// @version     1.4.3.1
// @grant       none
// ==/UserScript==

if (typeof console == "undefined") {
    window.console = {
        log: function () {}
    };
}


// script details/updates
var us_176442_Name      = GM_info.script.name;
var us_176442_Version   = GM_info.script.version;

// first run?
function firstRun(){
    if( $.cookie('us_176442_name') == null){
        //set cookies
        $.cookie('us_176442_name',    us_176442_Name, {expires: 365, path: '/'});
        $.cookie('us_176442_version', us_176442_Version, {expires: 365, path: '/'});    
        console.info('Hi, thanks for using userscript: '+us_176442_Name+' v'+us_176442_Version);
    }
}
function checkIfUpdated(){
    if( $.cookie('us_176442_version') != us_176442_Version){
        //re-set cookies
        $.cookie('us_176442_name',    us_176442_Name, {expires: 365, path: '/'});
        $.cookie('us_176442_version', us_176442_Version, {expires: 365, path: '/'});
        console.info('Userscript updated to version: '+us_176442_Version);
        
        alert('Userscript '+us_176442_Name+' is updated. \n\n You can now use your keyboard to toggle the stylesheets with the T-key.');
        
    }
}

function setActiveCookie(){
    console.info('setActiveCookie()');
    if( $.cookie('us_176442_active') == null){
        console.log('cookie us_176442_active not set');
        //set cookie
        $.cookie('us_176442_active', 'true', {path: '/'}); // session
        console.log('cookie us_176442_active set to true');
    }
}


function responsiveEmbeds(){
    
    console.info('responsiveEmbeds()');
    
    if($.fn.fitVids == undefined) {
        $.getScript('//cdnjs.cloudflare.com/ajax/libs/fitvids/1.0.1/jquery.fitvids.min.js', function(data, textStatus, jqxhr) {
            console.log('Loaded: "fitvids"');
            $('div.embed').fitVids();
        });
    }
}

function convertCommentLinks(){
    
    console.info('convertCommentLinks()');
    
    $('.commentlist a[rel=nofollow]').each(function(e) {
        $(this).html($(this).attr('href'));
    });
}

function linkPreviews(){
    
    console.info('linkPreviews()');
    
    var thumbPrefix,
        previewURL,
        thumbSrc;
    
    if ($('#linkPreviewThumb').length === 0) {
        $('body').append('<div id="linkPreviewThumb"></div>');
    }
    
    $('.artikel a:not(footer a)').hover(
        function () {
            thumbPrefix = 'http://search-geenstijl.thruhere.net/ajax.aspx?q=urlthumb/';
            previewURL = $(this).attr('href');
            thumbSrc = thumbPrefix + encodeURIComponent(previewURL);
            $('#linkPreviewThumb').html('<img class="previewThumb" src="'+thumbSrc+'" />');
        },
        function () {
            $('#linkPreviewThumb img').remove();
        }
    );
}

function loadFullArticle(){
    
    console.info('loadFullArticle()');
    
    var moreLink,
        currArticle;

    $('.artikel a.more').click(function(e) {
            
        e.preventDefault();
        currArticle = $(this).closest('.artikel').attr('id');
        moreLink = $(this).attr('href');
        $(this).before('<p class="loadingArticle" id="more-'+currArticle+'">bezig met laden volledig artikel...</p>');
        
        $('#'+currArticle).load(moreLink+' #content .artikel > *', function() {
            console.log('article loaded');
            linkPreviews();
            responsiveEmbeds();
        });
        
    });

}

function loadComments(){
    
    console.info('loadComments()');
    
    var commentsLink,
        currArticle,
        closeCommentsLink;
      
    $('.artikel a.comments').click(function(e) {
            
        e.preventDefault();
        currArticle = $(this).closest('.artikel').attr('id');
        commentsLink = $(this).attr('href');
        
        console.log('load comments from: '+commentsLink);
        
        closeCommentsLink = '<a href="javascript:;" data-article="'+currArticle+'" data-target="comments-'+currArticle+'" class="close-comments">&#10008; sluit comments</a>';
        
        $(this).closest('.artikel').append('<div class="loadedComments" id="comments-'+currArticle+'"></div>');
        
        $('#comments-'+currArticle).load(commentsLink+' #comments', function() {
            console.log('comments loaded');
            convertCommentLinks();
            linkPreviews();
            $(this).closest('.loadedComments').prepend(closeCommentsLink).append(closeCommentsLink); 
        });
        
    });
}


function toggleScript(){
    
    console.info('toggleScript()');

    if( $.cookie('us_176442_active') == 'true'){
        console.log('active = true, set to false');
        $.cookie('us_176442_active', 'false', {path: '/'}); // session
        
        $('link[rel=stylesheet]').removeAttr('disabled');
        $('link[id=us_176442_css]').attr('disabled', 'disabled');
    } else {
        console.log('active = false, set to true');
        $.cookie('us_176442_active', 'true', {path: '/'}); // session
        
        $('link[rel=stylesheet]').attr('disabled', 'disabled');
        $('link[id=us_176442_css]').removeAttr('disabled');
    }
}


$(function() {  
    
    console.log('userscript loaded: "Geenstijl: bare naked"');
    
    firstRun();
    checkIfUpdated();
    setActiveCookie();
    
    console.info('jQuery: '+jQuery.fn.jquery);
    
    // homepage
    if ($('body.home').length > 0) {
        
        console.log('body.home');
        
        $('link[rel=stylesheet]').attr('disabled', 'disabled');
        //$('link[rel=stylesheet]').remove();
        $('head').append("<link href='//dl.dropboxusercontent.com/u/3899/userscripts/geenstijl-bare-naked/v1.4.min.css' id='us_176442_css' rel='stylesheet' type='text/css'>");
        
        loadFullArticle();
        loadComments();
        
        $('.artikel').delegate('a.close-comments', 'click', function() {
            console.info('close comments:'+ $(this).data('target'));
            $('#'+$(this).data('target')).remove();            
            $('html, body').animate({
                scrollTop: $('#'+$(this).data('article')).offset().top
            }, 500);            
        });
        
        
        if( $.cookie('us_176442_active') == 'false'){
            console.log('us_176442_active = false, disable us styles');
            $('link[rel=stylesheet]').removeAttr('disabled');
            $('link[id=us_176442_css]').attr('disabled', 'disabled');
        }
        
        // hotkey support
    	$(document).keydown(function(e){
    		if (e.keyCode == 84) {  // keyCode: 84 (T)
    			console.debug('keydown (T): '+e.keyCode);
    			toggleScript();
    		}    		
    	});
        
    }
    
    // artikel
    /*
    if ($('body.artikel').length > 0) {        
        console.log('body.artikel');        
        $('link[rel=stylesheet]').attr('disabled', 'disabled');
        $('link[rel=stylesheet]').remove();        
        $('head').append("<link href='//dl.dropboxusercontent.com/u/3899/userscripts/geenstijl-bare-naked/v1.4.min.css' rel='stylesheet' type='text/css'>");       

    }
    */
    
    // onload, maar wél op 't laatst om de boel niet op te houden
    linkPreviews();
    //responsiveEmbeds();
    
    // je klikt maar gewoon
    //setTimeout(function(){ loadMeerrrr(); }, 5000);

});