Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » Ru-Board Helper. Игнор-лист и другие полезные фичи

Модерирует : batva, DimoN

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Ke



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
// ==UserScript==
// @name          IgnoreList for RuBoard
// @version       2.1 (21Jan10 11:02:29)
// @include       http://forum.ru-board.com/*
// ==/UserScript==
 
(function() {
  var IgnName       = 'Ignore';
  var FrndsName     = 'Friends';
  var Delim1        = ',';
  var IgnCnt        = -1;
  var SrchInPth     = 'topic.cgi';
  var IgnM          = new Array();
  var UseNickSearch = true; // false;
  var UseFriends    = true; // false;
  var FriendsColor  = '#cfffcf';
  var IgnS          =  '';
 
  function main(IgnS, AddLinks, Reverse, FriendsList) {
 
    function HideText(NickName, TrTag) {
      DivTag = TrTag.getElementsByTagName('div');
      if ((DivTag.length > 0) && (DivTag[0].id.indexOf('Ignor') == 0)) {
      } else {
        IgnCnt       = IgnCnt +1;
        IgnM[IgnCnt] = TrTag.innerHTML;
        TrTag.innerHTML = '<div ID=Ignor' +IgnCnt  
          +'><font class=tit>&nbsp;User <b>' +NickName +'</b> ignored. '
          +'<a Name=' +IgnCnt +' ID=AIgnor' +IgnCnt  
          +' href=javascript:UnIgn("Ignor' +IgnCnt  
          +'")><u>Show message</u></a></font></div>';
         document.getElementById('AIgnor' +IgnCnt).addEventListener("click",  
           function() {UnIgn(this.name)}, false);
      }
    }
 
    if (IgnS == undefined) {IgnS = ''}
    var Ign    = IgnS.split(Delim1);
    var TrT    = document.getElementsByTagName('tr');
    for (var i = 0; i < TrT.length ; i++) {  
      var Btag = TrT[i].getElementsByTagName('b');
      if (Btag.length == 0) continue;
      if (AddLinks == 1) {
        var TdTag    = TrT[i].getElementsByTagName('td');
        if (TdTag.length >= 3) {
          if (TdTag[2].className=="tpc") {
            var s2 = ''
             +'<a class="tpc" title="Add or remove ' +"'" +Btag[0].innerHTML
             +"'" +' from Ignore List" name="' +Btag[0].innerHTML +'"'
             +' ID=IgnorLink' +i
             +' href=javascript:AddDelIgn("IgnorLink' +i +'")>Ignore'
             +'</a> | ';
            if (UseFriends) {
             s2 = s2  
             +'<a class="tpc" title="Add or remove ' +"'" +Btag[0].innerHTML
             +"'" +' in Friends List" name="' +Btag[0].innerHTML +'"'
             +' ID=FriendsLink' +i
             +' href=javascript:AddDelFrnd("FriendsLink' +i +'")>Friend'
             +'</a> | ';
            }
            TdTag[2].innerHTML = ''
             +s2
             +TdTag[2].innerHTML;
            document.getElementById('IgnorLink' +i).addEventListener("click",  
             function() {AddDelIgn(this.id)}, false);
            if (UseFriends) {
              document.getElementById('FriendsLink' +i).addEventListener("click",  
               function() {AddDelFrnd(this.id)}, false);
            }
          }
        }
      }
      if (Reverse) {
        var HrT = TrT[i].getElementsByTagName('hr');
        if (HrT.length <= 1) continue;  
        var Find1 = 0;
        var k1    = 0;
        for (var j = 0; j < Ign.length; j++) {  
          if (Btag[0].innerHTML != Ign[j]) {
            Find1 = 1;
            break;
          }
        }
        if (Find1 == 1) {HideText(Btag[0].innerHTML, TrT[i])}  
      } else {
        for (var j = 0; j < Ign.length; j++) {  
          if (Btag[0].innerHTML == Ign[j]) {
            HideText(Ign[j], TrT[i]);  
          break;
          }
        }
      }
    }
    if (Reverse) {
      for (var i = IgnCnt; i >= 0; i--){
        var DivTag1 = document.getElementById('Ignor' +i);
        if (DivTag1 == null) continue;
        var BTag2 = DivTag1.getElementsByTagName('b');
        if (BTag2.length <= 0) continue;
        for (var j = 0; j < Ign.length; j++) {  
          if (BTag2[0].innerHTML == Ign[j]) {UnIgn(i)}
        }
      }
    } else {
      for (var i = IgnCnt; i >= 0; i--){
        var DivTag1 = document.getElementById('Ignor' +i);
        if (DivTag1 == null) continue;
        var BTag2 = DivTag1.getElementsByTagName('b');
        if (BTag2.length <= 0) continue;
        var Find1 = 0;
        for (var j = 0; j < Ign.length; j++) {  
          if (BTag2[0].innerHTML == Ign[j]) {
            Find1 = 1;
            break;
          }
        }
        if (Find1==0) {UnIgn(i)}
      }
    }
    IgnLinkColor();
    if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
  }
 
  if (document.location.pathname.indexOf(SrchInPth) > -1) {
    main(getCookie(IgnName), 1, false);
  }
 
  function SetFriendsColor(FriendsList) {
    if ((FriendsList != undefined) && (UseFriends)) {
      var TrT  = document.getElementsByTagName('tr');
      var Frnd = FriendsList.split(Delim1);
      for (var i = 0; i < TrT.length ; i++) {  
        var Btag = TrT[i].getElementsByTagName('b');
        if (Btag.length == 0) continue;
        var TdTag    = TrT[i].getElementsByTagName('td');
        if (TdTag.length >= 3) {
          if (TdTag[2].className=="tpc") {
            if ((FriendsList != undefined) && (UseFriends)) {
               var Find2 = false;
               for (var j = 0; j < Frnd.length ; j++) {  
                 if (Btag[0].innerHTML == Frnd[j]) {
                   Find2 = true;
                   break;
                 }
               }
               if (Find2) {
                 TdTag[1].bgColor = FriendsColor;
               } else {
                 TdTag[1].bgColor = TdTag[2].bgColor;
               }
            }
          }
        }
      }
    }
  }
 
  function IgnLinkColor(){
    var TrT  = document.getElementsByTagName('tr');
    var Ign2 = getCookie(IgnName);
    if (Ign2 == undefined) {Ign2 = ''}
    for (var i = 0; i < TrT.length ; i++) {  
      var ATag = document.getElementById('IgnorLink' +i);
      if (ATag==null) continue;
      if (IsTextInStr(ATag.name, Ign2, Delim1)) {
        ATag.innerHTML = '<font Color=#FF0000>Ignore</font>'
      } else {
        ATag.innerHTML = 'Ignore'
      }
    }
  }
 
  function UnIgn(IgnCnt){
    var PrTag1 = document.getElementById('Ignor' +IgnCnt).parentNode;
    PrTag1.innerHTML = IgnM[IgnCnt];
    IgnLinkColor();
    if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
    var Tgs1 = PrTag1.getElementsByTagName('a');
    for (var i = 0; i < Tgs1.length ; i++) {  
      if (Tgs1[i].id.indexOf('IgnorLink') == 0) {
        Tgs1[i].addEventListener("click", function() {AddDelIgn(this.id)}, false);
        break;
      }
    }
    if (UseFriends) {  
      for (var i = 0; i < Tgs1.length ; i++) {  
        if (Tgs1[i].id.indexOf('FriendsLink') == 0) {
          Tgs1[i].addEventListener("click", function() {AddDelFrnd(this.id)}, false);
          break;
        }
      }
    }
  }
 
  function EditIgn() {
    var s = getCookie(IgnName);
    if (s == undefined) {s = ''}
    if (s==null) {s='';}
    s = prompt('Ignore editor. Put enimies here. Example: Freak Troll', s.replace(/^,/g,""));
    if(s!=null){
      setCookie(IgnName,s.replace(/\./g,",").replace(/[, ]+/g,",").replace(/^,/g,""),"")
      main(getCookie(IgnName), 0);
    }
  };
 
  function EditFrnds() {
    var s = getCookie(FrndsName);
    if (s == undefined) {s = ''}
    if (s==null) {s='';}
    s = prompt('Ignore editor. Put friends here. Example: Me Mine Myself', s.replace(/^,/g,""));
    if(s!=null){
      setCookie(FrndsName,s.replace(/\./g,",").replace(/[, ]+/g,",").replace(/^,/g,""),"")
      SetFriendsColor(getCookie(FrndsName));
    }
  };
 
  if (document.location.pathname.indexOf(SrchInPth) > -1) {
    var Td2T    = document.getElementsByTagName('td');
    for (var i = 0; i < Td2T.length ; i++) {  
      if ((Td2T[i].className=="dats") && (Td2T[i].align=="right")){  
        var s1 = '';
        if (UseNickSearch) {
          s1 = ''
           +'<div Title="Example: ' +"'" +'MyNick, Friend, Etc'  
           +"'" +'. Empty line - reset">Nick search '
           +'<input Type=text ID=NickEdit '
           +' onkeydown="javascript:if(event.keyCode==13)'
           +'document.getElementById('  +"'NickBtn'" +').click();"'
           +'>'
           +'<button Type=button Name=NickBtn ID=NickBtn OnClick=javascript:NickSrch()>&gt;</button></div>'
           ;
        }
        s1 = s1 +''
         +'&nbsp;<a ID=IgnEditor title="Ignore List editor" '
         +'href=javascript:EditIgn()>Ignore Editor</a> | '  
        if (UseFriends) {
          s1 = s1 +''
           +'<a ID=IgnFriends title="Friends List editor" '
           +'href=javascript:EditFrnds()>Friends Editor</a> | '  
        }
        Td2T[i].innerHTML = s1 +Td2T[i].innerHTML;
        document.getElementById('IgnEditor').addEventListener("click",  
          function() {EditIgn()}, false);
        if (UseNickSearch) {
          document.getElementById('NickBtn').addEventListener("click",  
            function() {NickSrch()}, false);
        }
        if (UseFriends) {
          document.getElementById('IgnFriends').addEventListener("click",  
            function() {EditFrnds()}, false);
        }
        break;
      }
    }
  }
 
  function NickSrch() {
    var s = document.getElementById('NickEdit').value;
    if (s==null) {
      main(getCookie(IgnName), 0)
    } else {
      s = s.replace(/\./g,",").replace(/[, ]+/g,",").replace(/^,/g,"");
      if (s=='') {  
        main(getCookie(IgnName), 0);
      } else {
        main(s, 0, true);
      }
    }
  };
 
  function IsTextInStr(Name, List, Delimetr) {
    if (List==undefined) {return false} else {
      var s = List.split(Delimetr);
      var Find1 = 0;
      for (var j = s.length -1; j >= 0; j--) {
        if (s[j] == Name) {
          s.splice(j, 1);
          Find1 = 1;
          break;
        }
      }
      return Find1==1 ? true : false;
    }
  }
 
  function AddDelIgn(IgnTagName){
    var aTag   = document.getElementById(IgnTagName);
    var sName1 = aTag.name;
    var s1 = getCookie(IgnName);
    if (s1 == undefined) {s1 = ''}
    if (IsTextInStr(sName1, s1, Delim1)) {
      if (confirm('(-) Remove "' +sName1 + '" from Ignore?')) {
        var sl1 = s1.split(Delim1);
        var Find1 = 0;
        for (var j = sl1.length -1; j >= 0; j--) {
          if (sl1[j] == sName1) {
            sl1.splice(j, 1);
            Find1 = 1;
          }
        }
        if (Find1==1) {
          s1 = sl1.join(Delim1);
          setCookie(IgnName, s1, "");
          main(s1, 0);
        }
      }
    } else {
      if (confirm('(+) Add "' +sName1 + '" to Ignore?')) {
        s1 = s1 +Delim1 +sName1;
        setCookie(IgnName, s1, "");
        main(s1, 0);
      }
    }
  }
 
  function AddDelFrnd(FrndTagName){
    var aTag   = document.getElementById(FrndTagName);
    var sName1 = aTag.name;
    var s1     = getCookie(FrndsName);
    if (s1 == undefined) {s1 = ''}
    if (IsTextInStr(sName1, s1, Delim1)) {
      if (confirm('(-) Remove "' +sName1 + '" from Friends?')) {
        var sl1 = s1.split(Delim1);
        var Find1 = 0;
        for (var j = sl1.length -1; j >= 0; j--) {
          if (sl1[j] == sName1) {
            sl1.splice(j, 1);
            Find1 = 1;
          }
        }
        if (Find1==1) {
          s1 = sl1.join(Delim1);
          setCookie(FrndsName, s1, "");
          if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
        }
      }
    } else {
      if (confirm('(+) Add "' +sName1 + '" to Friends?')) {
        s1 = s1 +Delim1 +sName1;
        setCookie(FrndsName, s1, "");
        if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
      }
    }
  }
 
  function getCookie(name) {
    var matches = document.cookie.match(new RegExp(
      "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
    ))
    return matches ? decodeURIComponent(matches[1]) : undefined  
  }
  function setCookie(name, value, props) {
    props = props || {}
    var exp = props.expires
    if (typeof exp == "number" && exp) {
        var d = new Date()
        d.setTime(d.getTime() + exp*1000)
        exp = props.expires = d
    }
    if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }
 
    value = encodeURIComponent(value)
    var updatedCookie = name + "=" + value
    for(var propName in props){
        updatedCookie += "; " + propName
        var propValue = props[propName]
        if(propValue !== true){ updatedCookie += "=" + propValue }
    }
    document.cookie = updatedCookie
  }
  function deleteCookie(name) {setCookie(name, null, { expires: -1 })}
})();
 

Всего записей: 970 | Зарегистр. 29-11-2004 | Отправлено: 11:28 21-01-2010 | Исправлено: Ke, 01:42 03-02-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » Ru-Board Helper. Игнор-лист и другие полезные фичи


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru