LINUX.ORG.RU

Баг у самоудалившихся

 ,


1

2

Хипстеры, говорите, а есть ли у вас инфраструктура для хипстования? (комментарий)

Собственно вместо deleted там по прежнему ник пользователя, в данном случае RTP. Ну и само собой через профиль удалившегося можно спокойно посмотреть все его темы и комментарии.

★★★★★

Ответ на: комментарий от anonymous

Ни железа, ни как установил, ни снимка экрана. Да лесом же!

Достаточно попросить уточнить данные.

Общение в техразделах сродни преподаванию. Если человек истеричка, закипающая от малейшего «неправильного» вопроса, то ему лучше ничего не писать в техразделах.

вся актуальная техническая инфа собирается в буржуйском english сегменте

Идите в свой english-сегмент и не портите здесь воздух.

Deleted ()

А есть где-нибудь пояснения про этот закон о забвении? Очень много Deleted вижу, как таким стать?

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

Хочешь самобан? Именно он делает юзера Deleted Заходишь в профиль -> Настройки и тыкаешь «Удаление аккаунта». Но я бы не рекомендовал такое, лучше попросить перечеркнуть ник. Да и вообще в моём профиле в списке особо отличающихся тебя нет, так что ты на ЛОР-е нормальный.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от Deleted

Идите в свой english-сегмент и не портите здесь воздух.

Сам иди в свой таджикский сегмент и не порти тут воздух.

anonymous ()
Ответ на: комментарий от RazrFalcon

Вспоминал тут про скрипт, и внезапно тоже захотелось, чтобы размытие пропадало при наведении указателя.

// ==UserScript==
// @name     LOR blocking
// @version  2
// @run-at   document-end
// @grant    none
// @include  https://www.linux.org.ru/*
// ==/UserScript==

(function() {
  var list_of_blocked = ["i-rinat"];
  var style_filter = 'blur(4pt)';
  var transition_duration = 100;

  document.querySelectorAll('article').forEach((e) => {
    var e_speaker = e.querySelector('a[itemprop=creator]');
    if (!e_speaker) {
      return;
    }

    var speaker = e_speaker.innerText;
    if (!list_of_blocked.includes(speaker)) {
      return;
    }

    e.style.filter = style_filter;

    e.onmouseleave = function() {
      e.animate([{}, {filter: style_filter}], {duration: transition_duration, iterations: 1});
      setTimeout(function() {
        e.style.filter = style_filter;
      }, transition_duration);
    }

    e.onmouseenter = function() {
      e.animate([{}, {filter: 'none'}], {duration: transition_duration, iterations: 1});
      setTimeout(function() {
        e.style.filter = 'none';
      }, transition_duration);
    }
  });
})();
i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Здравствуйте.

Попытался подкорректировать ваш скрипт, чтобы размывать анонимусов. Не работает почему-то...

(function() {
  var list_of_blocked = ["anonymous"];
  var style_filter = 'blur(4pt)';
  var transition_duration = 100;

  document.querySelectorAll('article').forEach((e) => {
    var e_speaker = e.querySelector('a[itemprop=creator]');
    if (!e_speaker) { console.log('no');  e_speaker = '<a itemprop="creator" href="/people/anonymous/profile">';
      return;
    } else {console.log('yes');}  console.log(e_speaker);

    var speaker = e_speaker.innerText;
    if (!list_of_blocked.includes(speaker)) {
      return;
    }

    e.style.filter = style_filter;

    e.onmouseleave = function() {
      e.animate([{}, {filter: style_filter}], {duration: transition_duration, iterations: 1});
      setTimeout(function() {
        e.style.filter = style_filter;
      }, transition_duration);
    }

    e.onmouseenter = function() {
      e.animate([{}, {filter: 'none'}], {duration: transition_duration, iterations: 1});
      setTimeout(function() {
        e.style.filter = 'none';
      }, transition_duration);
    }
  });
})();

Не подскажете, что не так?

tongubin ()
Последнее исправление: tongubin (всего исправлений: 2)
Ответ на: комментарий от i-rinat

Ты бы лучше diff приложил. Не сравнивать же глазами, чтобы найти, что не так.

diff глючит. Вот вывод:

11c3
<   var list_of_blocked = [i-rinat];
---
>   var list_of_blocked = [anonymous];
18c10
<     }
---
>     } else {console.log('yes');}  console.log(e_speaker);

Сравнил онлайн-сравнивалкой. Результат:

строка 2

var list_of_blocked = ["i-rinat"];
-----------------------------
var list_of_blocked = ["anonymous"];

строка 8-10

if (!e_speaker) {
return;
}
------------------------------
if (!e_speaker) {
console.log('no'); e_speaker = '<a itemprop="creator" href="/people/anonymous/profile">';
return;
}
else {
console.log('yes');
}
console.log(e_speaker);
tongubin ()
Последнее исправление: tongubin (всего исправлений: 1)
Ответ на: комментарий от tongubin

Ты специально пытаешься усложнить жизнь тем, кто тебе пытается помочь, да? Лет двадцать уже как дефолтный формат diff’а устарел. Про редактор ed, под который формат создавался, уже и не помнит никто.

В общем, сравнил я оригинальный код и твою версию. Все твои правки сводятся к изменению списка list_of_blocked, и поэтому поломать это ничего не должно.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Ты специально пытаешься усложнить жизнь тем, кто тебе пытается помочь, да?

нет, зачем мне это делать?

Лет двадцать уже как дефолтный формат diff’а устарел. Про редактор ed, под который формат создавался, уже и не помнит никто.

Да кто бы сказал?

В общем, сравнил я оригинальный код и твою версию. Все твои правки сводятся к изменению списка list_of_blocked, и поэтому поломать это ничего не должно.

Чем вы сравнивали?

строка 8-10

if (!e_speaker) {
return;
}

if (!e_speaker) {
console.log('no'); e_speaker = '<a itemprop="creator" href="/people/anonymous/profile">';
return;
}
else {
console.log('yes');
}
console.log(e_speaker);
tongubin ()
Ответ на: комментарий от tongubin

Чем вы сравнивали?

Мозгом.

console.log не влияет на исполнение, их можно выбросить. Ветка else оказывается пустой, её можно выбросить. Присваивание e_speaker нового значения не имеет смысла, потому что сразу за ним идёт return. Так что присваивание тоже можно выбросить. И всё, код эквивалентен оригинальному.

Да кто бы сказал?

Подавляющее большинство патчей в интернете — в унифицированном формате. По-моему, информации достаточно, чтобы самому понять. Если тебе требуется всё объяснять, то программирование это не твоё. В разработке программ очень часто приходится добывать знания. Никто тебе не будет объяснять, как разбираться с каждой проблемой.

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Спасибо, убрал return. Но почему-то все равно не работает

tongubin ()
Ответ на: комментарий от i-rinat

Немного адаптировал скрипт под себя, т.к. не хочется каждый раз, чтобы добавить/удалить пользователя, лезть править игнор-лист в скрипте (на всех устройствах по-отдельности). Скрипт ищет слово-маркер (!blur!) в комментариях к пользователю:

// ==UserScript==
// @name     LOR blocking
// @version  3
// @run-at   document-end
// @grant    none
// @include  https://www.linux.org.ru/*
// ==/UserScript==

(function() {
  const STYLE_FILTER = 'blur(4pt)';
  const TRANSITION_DURATION = 100;
  const BLUR_MARK = '!blur!';
  
  document.querySelectorAll('article').forEach((articleNode) => {
    const userRemarkNode = articleNode.getElementsByClassName('user-remark')[0];

    if (!userRemarkNode) {
      return;
    }
    
    if (!userRemarkNode.innerText.includes(BLUR_MARK)) {
      return;
    }
    
    const animate = (styleFilter) => () => {
      articleNode.animate([{}, {filter: styleFilter}], {duration: TRANSITION_DURATION, iterations: 1});
      
      setTimeout(() => {
        articleNode.style.filter = styleFilter;
      }, TRANSITION_DURATION);
    }

    articleNode.style.filter = STYLE_FILTER;

    articleNode.onmouseleave = animate(STYLE_FILTER);
    articleNode.onmouseenter = animate('none');
  });
})();
theNamelessOne ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.