T411 Shoutbox - Bouton Répondre

Ajoute un bouton répondre dans la shoutbox de T411

Versión del día 09/12/2015. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name         T411 Shoutbox - Bouton Répondre
// @namespace    https://www.t411.io
// @version      1.3.4
// @description  Ajoute un bouton répondre dans la shoutbox de T411
// @author       Micdu70
// @include      http://www.t411.in/chati/*
// @include      https://www.t411.in/chati/*
// @exclude      http://www.t411.in/chati/history.php*
// @exclude      https://www.t411.in/chati/history.php*
// @grant        none
// ==/UserScript==
function ButtonCheck(check, username) {
  if (check === true) {
    ButtonDisplay(null);
  } else {
    ButtonDisplay(username);
  }
}
function ButtonDisplay(check) {
  if (check === null) {
    document.getElementById('messages').addEventListener('DOMNodeInserted', function (event) {
      if (event.target.parentNode.id == 'messages') {
        var elems_show = document.getElementsByTagName('a');
        for (var i = 0; i < elems_show.length; i++) {
          elems_show[i].style.visibility = 'visible';
        }
      }
    }, false);
  } else {
    document.getElementById('messages').addEventListener('DOMNodeInserted', function (event) {
      if (event.target.parentNode.id == 'messages') {
        var elems_hide = document.getElementsByClassName(check);
        for (var i = 0; i < elems_hide.length; i++) {
          elems_hide[i].style.visibility = 'hidden';
        }
      }
    }, false);
  }
}
function ButtonClicked(x, username) {
  document.getElementById('text-input').focus();
  var text = document.getElementById('text-input').value;
  if (!text.match(/\s$/)) {
    if (text.charAt(0) != '@') {
      document.getElementById('text-input').value = x + ': ' + text;
    } else {
      document.getElementById('text-input').value = x + text;
    }
  } else {
    if (text.match(/@\S+\s:\s/g)) {
      var last = text.substr(text.lastIndexOf('@'));
    if (last.match(/@\S+\s:\s\S+/g)) {
      text = text;
    } else {
      text = text.replace(/(@\S+\s)(:\s)/g, '$1');
    }
      document.getElementById('text-input').value = text + x + ': ';
    } else {
      document.getElementById('text-input').value = text + x;
    }
  }
  var elems_hide = document.getElementsByClassName(username);
  for (var i = 0; i < elems_hide.length; i++) {
    elems_hide[i].style.visibility = 'hidden';
  }
  ButtonCheck(false, username);
}
function BuildLink(message, libelle, libelleColor, respondItem) {
  link = document.createElement('a');
  link.setAttribute('class', respondItem);
  link.setAttribute('style', 'color:' + libelleColor + ';a:hover{text-decoration:underline;};cursor:pointer;position:relative;right:1px;display:block;');
  link.addEventListener('click', function () {
    ButtonClicked(this.className, respondItem);
  }, false);
  newText = document.createTextNode(libelle);
  link.appendChild(newText);
  emplacement_0 = message;
  emplacement_1 = emplacement_0.getElementsByTagName('div') [0];
  emplacement_1.appendChild(link);
}
function AnswerItems() {
  document.getElementById('messages').addEventListener('DOMNodeInserted', function (event)
  {
    if (event.target.parentNode.id == 'messages') {
      var element = document.getElementsByClassName(event.target.className) [0];
      var _first = element.getElementsByTagName('div') [0];
      var _second = _first.getElementsByTagName('div') [0];
      var third = _second.getElementsByClassName('button-delete').length;
      var pv = element.className.split(' ') [1];
      if ((third === 0) && (pv !== 'private')) {
        var element2 = element.getElementsByTagName('a') [0];
        var user_url_split = element2.href.split('/');
        var name_user = user_url_split[5];
        BuildLink(_first, 'Répondre', '#777', '@' + name_user + ' ');
      }
    }
  }, false);
}
function INIT() {
  document.getElementById('send').onclick = function () {
    var elems_show = document.getElementsByTagName('a');
    for (var i = 0; i < elems_show.length; i++) {
      elems_show[i].style.visibility = 'visible';
    }
    ButtonCheck(true, null);
  };
  document.styleSheets[0].insertRule('#messages .data>a {display:block !important;}', 0);
  var messages_childs = document.getElementById('messages').getElementsByTagName('div');
  for (i = - 2; i < messages_childs.length; i = i + 3) {
    if (i == - 2 || i == - 1) {
      continue;
    }
    message = messages_childs[i];
    user_written_message = message.getElementsByClassName('button-delete').length;
    if (user_written_message === 0) {
      element2 = message.getElementsByTagName('a') [0];
      user_url_split = element2.href.split('/');
      name_user = user_url_split[5];
      BuildLink(message, 'Répondre', '#777', '@' + name_user + ' ');
    }
  }
}
function addClearButton() {
  var clear_button = document.createElement('input');
  clear_button.setAttribute('type', 'button');
  clear_button.setAttribute('class', 'button');
  clear_button.setAttribute('id', 'clear');
  clear_button.setAttribute('value', 'Effacer @pseudo');
  var history_button = document.getElementById('history');
  var parentDiv = history_button.parentNode;
  parentDiv.insertBefore(clear_button, history_button);
  clear_button.addEventListener('click', function () {
    clearText();
  }, false);
}
function clearText() {
  var elems_show = document.getElementsByTagName('a');
  for (var i = 0; i < elems_show.length; i++) {
    elems_show[i].style.visibility = 'visible';
  }
  ButtonCheck(true, null);
  document.getElementById('text-input').focus();
  var text = document.getElementById('text-input').value;
  var newtext = text.replace(/@\S+(\s:\s|\s:|\s)?/gi, '');
  document.getElementById('text-input').value = newtext;
}
addClearButton();
INIT(this);
AnswerItems(this);
长期地址
遇到问题?请前往 GitHub 提 Issues。