Reddit Deep Thread Expander

Expand "Continue this thread" links inline

2014-10-08 기준 버전입니다. 최신 버전을 확인하세요.

​​// ==UserScript==
// @name           Reddit Deep Thread Expander
// @description    Expand "Continue this thread" links inline
// @author         James Skinner <[email protected]> https://github.com/spiralx
// @license        BSD
// @namespace      http://spiralx.org/
// @version        0.0.2
// @match          http://*.reddit.com/r/*/comments/*
// @grant          GM_getResourceURL
// @grant          GM_addStyle
// @resource       spinner data:image/gif;base64,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
// @resource       expand data:image/gif;base64,R0lGODlhCwALAPcAABcXF6WlpaenqRkZGaamqKenpxgYGP7+/qampv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAALAAsAAAhIABEEEFhAIIICBREkWMgwwYEECBQ6ZPgQokSHABY+jEjRQMMCAhYaMACA5EIEBBpmZIggJEOPLFM6fEjzAMqGFU8SiMizZ4GAADs=
// ==/UserScript==


var spinnerUrl = GM_getResourceURL('spinner'),
    expandUrl = GM_getResourceURL('expand');
    
GM_addStyle('.side-closed .side { width: 10px } ' +
    '.side-closed .panestack-title, .side-closed .commentarea .menuarea { margin-right: 20px !important; }');

var func = function(spinnerUrl, expandUrl) {

  //var $side = $('.side');

  jQuery('span.deepthread > a').each(function() {
    var $a = jQuery(this),
        $span = $a.parent(),
        href = $a.prop('href');
    
    //console.log(href);
    
    jQuery('<img src="' + expandUrl + '">')
      .css({
        display: 'inline-block',
        position: 'relative',
        top: '1px',
        marginRight: '4px',
        visibility: 'visible'
      })
      .prependTo($span);
    
    $a
      .css('font-size', '1.1em')
      .one('click', function() {
        $span
          .removeClass('deepthread')
          .html('<img src="' + spinnerUrl + '">');
        
        jQuery.get(href, function(data) {
          var $page = jQuery(data),
              $child = jQuery('.nestedlisting > .comment > .child', $page);
          
          $span
            .parentsUntil('.comment')
            .last()
            .replaceWith($child);
            
          //$('body').addClass('side-closed');
          $('.side').hide();
        });
        
        return false;
      });
  });
}


var se = document.createElement('script');
se.textContent = '(' + func + ')("' + spinnerUrl + '", "' + expandUrl + '")';
document.body.appendChild(se);
document.body.removeChild(se);