Greasy Fork 还支持 简体中文。

HideComment

скрипт ведения игнор-листа на ИноСМИ

目前為 2014-12-19 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @id InoSMI_HideComments
  3. // @name HideComment
  4. // @version 1.01
  5. // @namespace MIT
  6. // @author
  7. // @description скрипт ведения игнор-листа на ИноСМИ
  8. // @include http://inosmi.ru/*
  9. // @require http://code.jquery.com/jquery.min.js
  10. // ==/UserScript==
  11.  
  12. //прототип очистки массива
  13. Array.prototype.clean = function() {
  14. // сортировка массива
  15. this.sort();
  16. // очистка массива от пустых переменных
  17. for (var i = this.length - 1; i > 0; i--) {
  18. if (this[i] == "")
  19. this.splice( i, 1);
  20. }
  21. // очистка массива от повторяющихся элементов
  22. for (var i = this.length - 1; i > 0; i--) {
  23. if (this[i] == this[i-1])
  24. this.splice( i, 1);
  25. }
  26. return this;
  27. };
  28.  
  29. var to_hide = new Array();
  30.  
  31. $(document).ready(function() {
  32. //инициируем и считываем массив игноров
  33. if (localStorage.getItem('to_hide')) {
  34. to_hide = localStorage.getItem('to_hide').split(",");
  35. }
  36. else {
  37. to_hide.push('u_193012875');
  38. to_hide.push('u_207772399');
  39. }
  40. to_hide.clean();
  41.  
  42. //скрываем комментарии после загрузки страницы
  43. DoHideComment();
  44. });
  45.  
  46. //отслеживаем событие добавления нового контента (разворачивание веток)
  47. $("li[id*='comment_']").bind("DOMSubtreeModified", DoHideComment);
  48.  
  49. //функция скрытия комментариев
  50. function DoHideComment() {
  51. if (to_hide.length != 0) {
  52. $.each(to_hide, function() {
  53. var obj = $("span[id*="+this+"]").parent();
  54. obj.html('Комментарий "'+$("span[id*="+this+"]").html()+'" скрыт скриптом');
  55. obj.append('<br><a class="unhide" id="'+this+'">Снять игнор</a>');
  56. obj.next().hide();
  57. obj.next().next().hide();
  58. });
  59. }
  60. //снимаем событие "click" с элементов
  61. $("span[id*='u_']").unbind("click");
  62. $(".unhide").unbind("click");
  63. //отслеживаем клик по нику для добавления в игнор
  64. $("span[id*='u_']").click(function() {
  65. var obj = $(this).attr("id").substr(0,11);
  66. if (confirm('Добавить пользователя ID='+obj+' в игнор-лист?')) {
  67. to_hide.push(obj);
  68. localStorage.setItem('to_hide', to_hide);
  69. DoHideComment();
  70. }
  71. });
  72. //остлеживаем событие снятия игнора
  73. $(".unhide").one("click", function() {
  74. var obj = $(this).attr("id");
  75. if (confirm('Вы действительно хотите снять игнор c пользователя?')) {
  76. to_hide.splice($.inArray(obj, to_hide), 1);
  77. localStorage.setItem('to_hide', to_hide);
  78. location.reload();
  79. }
  80. });
  81. }