Участник:T kns/hideoldcomments.user.js — различия между версиями

Материал из Энциклопедия leprosorium.ru
Перейти к: навигация, поиск
м (ь)
м
Строка 5: Строка 5:
 
// @include    https://*.leprosorium.ru/comments/*/*
 
// @include    https://*.leprosorium.ru/comments/*/*
 
// @include    https://leprosorium.ru/comments/*/*
 
// @include    https://leprosorium.ru/comments/*/*
// @version    0.4
+
// @version    0.5
 
// @grant      none
 
// @grant      none
 
// ==/UserScript==
 
// ==/UserScript==
Строка 12: Строка 12:
 
   var debug = function () {
 
   var debug = function () {
 
     var args = Array.prototype.slice.call(arguments);
 
     var args = Array.prototype.slice.call(arguments);
     unsafeWindow.console.log('[++Old comments]\n', args.join('\n'), '\n[--Old comments]')
+
     //unsafeWindow.console.log('[++Old comments]', args.join('\n'), '\n[--Old comments]')
 +
    //unsafeWindow.console.log('[++Old comments]', arguments, '\n[--Old comments]')
 +
    unsafeWindow.console.log('[++Old comments]');
 +
    for (var i = 0; i < args.length; i++) {
 +
      unsafeWindow.console.log(args[i]);
 +
    }
 +
    unsafeWindow.console.log('[--Old comments]');
 
   }
 
   }
 +
  //debug(commentsHandler.showParent)
 +
 
   if (!/^([a-z0-9]+\.)?leprosorium\.ru$/.test(location.host) || (location.search.indexOf('unread=on') === - 1 && location.hash !== '#new')) {
 
   if (!/^([a-z0-9]+\.)?leprosorium\.ru$/.test(location.host) || (location.search.indexOf('unread=on') === - 1 && location.hash !== '#new')) {
 
     debug('wrong page')
 
     debug('wrong page')
Строка 50: Строка 58:
 
           if (parentid in hiddencomms && hiddencomms[parentid].style.display === 'none') {
 
           if (parentid in hiddencomms && hiddencomms[parentid].style.display === 'none') {
 
             debug('show', parentid);
 
             debug('show', parentid);
             hiddencomms[parentid].style.display = ''
+
             hiddencomms[parentid].style.display = '';
 +
            var commid = uplink.parentNode.parentNode.parentNode.parentNode.getAttribute('data-parent_comment_id'),
 +
            scrolltimeout = setTimeout(function () {
 +
              clearTimeout(scrolltimeout)
 +
              //debug('click', commid);
 +
              //commentsHandler.showParent(parentid, commid);
 +
              document.getElementById(parentid).scrollIntoView(true);
 +
            }, 480)
 +
            //commentsHandler.showParent(parentid, ev.id)
 
           }
 
           }
         }, false);
+
          //document.getElementById(parentid).scrollIntoView();
 +
          //return false;
 +
 
 +
         }, true);
 
       }
 
       }
 
     };
 
     };

Версия 13:15, 27 августа 2015

// ==UserScript==
// @name        Hide old comments
// @namespace   leprosorium+hideoldcomments
// @description Hides old comments in threads
// @include     https://*.leprosorium.ru/comments/*/*
// @include     https://leprosorium.ru/comments/*/*
// @version     0.5
// @grant       none
// ==/UserScript==
(function () {
  'use strict';
  var debug = function () {
    var args = Array.prototype.slice.call(arguments);
    //unsafeWindow.console.log('[++Old comments]', args.join('\n'), '\n[--Old comments]')
    //unsafeWindow.console.log('[++Old comments]', arguments, '\n[--Old comments]')
    unsafeWindow.console.log('[++Old comments]');
    for (var i = 0; i < args.length; i++) {
      unsafeWindow.console.log(args[i]);
    }
    unsafeWindow.console.log('[--Old comments]');
  }
  //debug(commentsHandler.showParent)

  if (!/^([a-z0-9]+\.)?leprosorium\.ru$/.test(location.host) || (location.search.indexOf('unread=on') === - 1 && location.hash !== '#new')) {
    debug('wrong page')
    return;
  } else {
    debug('initialized')
  }
  window.addEventListener('DOMContentLoaded', function () {
    var newcomms = document.querySelectorAll('div.comment.new');
    if (!newcomms.length) {
      debug('no new comments')
      return;
    }
    var parentlinks = document.querySelectorAll('a.c_parent');
    if (!parentlinks.length) {
      debug('no parent links')
      return;
    }
    var oldcomms = document.querySelectorAll('div.comment:not(.new)'),
    hiddencomms = {
    },
    parentlinks = document.querySelectorAll('a.c_parent'),
    hidecomm = function (el) {
      debug('hide', el.id);
      el.style.display = 'none';
      hiddencomms[el.id] = el;
    },
    listenup = function (uplink) {
      var gotoid = /#(\d+)$/.exec(uplink.href);
      //debug('wut', uplink.href);
      if (gotoid && gotoid.length) {
        var parentid = gotoid[1];
        //debug('↑', parentid);
        uplink.addEventListener('click', function (ev) {
          //debug('click', parentid);
          if (parentid in hiddencomms && hiddencomms[parentid].style.display === 'none') {
            debug('show', parentid);
            hiddencomms[parentid].style.display = '';
            var commid = uplink.parentNode.parentNode.parentNode.parentNode.getAttribute('data-parent_comment_id'),
            scrolltimeout = setTimeout(function () {
              clearTimeout(scrolltimeout)
              //debug('click', commid);
              //commentsHandler.showParent(parentid, commid);
              document.getElementById(parentid).scrollIntoView(true);
            }, 480)
            //commentsHandler.showParent(parentid, ev.id)
          }
          //document.getElementById(parentid).scrollIntoView();
          //return false;

        }, true);
      }
    };
    //debug('test')
    for (var i = 0; i < oldcomms.length; i++) {
      hidecomm(oldcomms[i]);
    }
    for (var j = 0; j < parentlinks.length; j++) {
      listenup(parentlinks[j]);
    }
  }, false);
}) ()