Ergebnis 1 bis 5 von 5

Thema: [Script] NGB Ignore Everyone | alternative Ignorieren-Funktion

  1. #1

    [Script] NGB Ignore Everyone | alternative Ignorieren-Funktion

    Nutzer können wahlweise durch eine statische Konfiguration ignoriert werden oder durch eine Cookie-gestützte Liste.

    Statische Listen Cookie Liste
    Vorteile
    • Die Liste kann nicht "verloren" gehen.
    • Die NGB-Forensoftware kann diese Liste nicht manipulieren.
    • Es können zwei Listen zum Ausblenden von Beiträgen verwaltet werden:
      Ausblenden mit bzw. Ausblenden ohne Hinweis
    • Die Liste kann direkt über das Foreninterface verwaltet werden.
    • Das Ein- und Ausblenden der Beiträge geschieht völlig automatisch.
    Nachteile
    • Das Anpassen der Liste ist nur direkt über Modifikation des Programmcodes möglich.
    • Die Liste kann beim Löschen von Cookies verloren gehen.
    • Die NGB-Forensoftware kann die Liste erkennen und manipulieren.

    Zur statischen Konfiguration den Abschnitt config ausfüllen:
    Benutzernamen in Anführungszeichen und durch Komma getrennt in die eckigen Klammern hinter fullHide bzw. hintHide eintragen.
    Beispiel:

    Code (JavaScript):
    1. var config = {
    2.     fullHide: ['Nutzer1', 'Nutzer2'],
    3.     hintHide: ['Nutzer3', 'Nutzer4', 'Nutzer5']
    4. };
    Die Konfiguration mit Hilfe eines Cookies erfolgt mit Hilfe der angezeigten Buttons "ban" und "unban", die sich jeweils in unmittelbarer Nähe zu einem Beitrag befinden.


    Das Script kann mit jedem gebräuchlichen Browser/ Scriptmanager verwendet werden.

    Code (JavaScript):
    1. // ==UserScript==
    2. // @name         NGB Ignore Everyone
    3. // @namespace    accc/ngb.to/ignoreeveryone
    4. // @version      1.2
    5. // @description Erlaubt das Ignorieren beliebiger Nutzer
    6. // @author       accC
    7. // @match        https://ngb.to/threads/*
    8. // @grant        none
    9. // ==/UserScript==
    10.  
    11. var config = {
    12.     fullHide: [],
    13.     hintHide: [],
    14.     cookieName: 'ngb_ignore_everyone'
    15. };
    16.  
    17. (function(config) {
    18.     'use strict';
    19.  
    20. function init(){initCookie(),initIgnoreSystem()}function initCookie(){var e=getCookie(config.cookieName);""==e&&setCookie(config.cookieName,JSON.stringify([]),36500)}function initIgnoreSystem(){for(var e=getPosts(),t=[],n=[],o=0;o<e.length;o++){var i=e[o];addIgnoreLink(i);var r=extractUser(i);switch(isBanned(r)){case 1:t.push(i);break;case 2:n.push(i)}}removeNodes(t),hideNodes(n)}function addIgnoreLink(e){var t=extractUser(e),n=(document.location.origin,document.createElement("button")),o=e.getElementsByClassName("userinfo")[0];o.appendChild(n),n.innerHTML="ban",n.setAttribute("class","newcontent_textcontrol"),n.addEventListener("click",function(){if(window.confirm("Möchtest du wirklich "+t+" ignorieren?")){var n=JSON.parse(getCookie(config.cookieName));n.push(t),setCookie(config.cookieName,JSON.stringify(n),36500),hideNode(e)}})}function hideNodes(e){for(var t=[],n=0;n<e.length;n++){var o=e[n];t[n]=hideNode(o)}return t}function hideNode(e){var t=extractUser(e),n=e.getElementsByClassName("postdetails")[0],o=e.getElementsByClassName("postfoot")[0];n.setAttribute("style","display:none"),o.setAttribute("style","display:none");var i=e,r=document.createElement("button");r.setAttribute("class","newcontent_textcontrol"),r.innerHTML="unban",e.getElementsByClassName("date")[0].innerHTML+=" <b>"+t+"</b> wird ignoriert.",e.appendChild(r),r.addEventListener("click",function(){window.confirm("Bist du sicher, dass du "+t+" nicht mehr ignorieren möchtest?")&&(unBanUser(t),showNode(i),removeNode(r))})}function showNode(e){var t=e.getElementsByClassName("postdetails")[0],n=e.getElementsByClassName("postfoot")[0];t.setAttribute("style","display:block"),n.setAttribute("style","display:block")}function removeNodes(e){for(var t=[],n=0;n<e.length;n++){var o=e[n];t[n]=removeNode(o)}return t}function removeNode(e){var t=e.parentNode;return null!=t?(t.removeChild(e),!0):!1}function isBanned(e){var t=JSON.parse(getCookie(config.cookieName));return inArray(e,config.fullHide)?1:inArray(e,config.hintHide)||inArray(e,t)?2:0}function unBanUser(e){for(var t=JSON.parse(getCookie(config.cookieName)),n=[],o=0;o<t.length;o++)t[o]!=e&&n.push(t[o]);setCookie(config.cookieName,JSON.stringify(n),36500)}function extractUser(e){var t=e.getElementsByClassName("username")[0].firstChild.innerHTML;return t}function getPosts(){for(var e=[],t=document.getElementById("posts").childNodes,n=0;n<t.length;n++)1===t[n].nodeType&&e.push(t[n]);return e}function inArray(e,t){for(var n=t.length,o=0;n>o;o++)if(t[o]==e)return!0;return!1}function setCookie(e,t,n){var o=new Date;o.setTime(o.getTime()+24*n*60*60*1e3);var i="expires="+o.toUTCString();document.cookie=e+"="+t+"; "+i}function getCookie(e){for(var t=e+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var i=n[o];" "==i.charAt(0);)i=i.substring(1);if(0==i.indexOf(t))return i.substring(t.length,i.length)}return""}init();
    21. })(config);
    Todos:
    • Codeoptimierung:
      • Geschickterer Zugriff auf Attribute/ Node-Style
      • Vereinfachung
    • Optische Überarbeitung
    • Ignorieren privater Nachrichten
    Für diesen Beitrag bedankt sich virtusreturns

  2. #2
    SYS64738

    Moderator

    Avatar von thom53281
    Registriert seit
    Jul 2013
    Beiträge
    4.902
    ngb:news Artikel
    44

    Re: [Script] NGB Ignore Everyone | alternative Ignorieren-Funktion

    Zitat Zitat von accCreturns Beitrag anzeigen
    Ignorieren privater Nachrichten
    Halte das für keine gute Idee, da auch mal Ansagen oder Verwarnungen per PN eintrudeln können. Gleiches gilt auch für Ansagen im Thread. Wenn moderative Ansagen wissentlich ignoriert oder ausblendet werden, dann braucht man sich später auch nicht zu wundern, wenn der Banhammer zuschlägt. You have been warned.

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Aug 2016
    Beiträge
    2

    Re: [Script] NGB Ignore Everyone | alternative Ignorieren-Funktion

    Wenn ihr eine Möglichkeit bietet moderative Inhalte und normalen, von Moderatoren erstellten Content, zu trennen, könnte ich eine Weiche einbauen.
    Solange sich bei den Moderatoren die Inhalte vermischen, ist eine automatisierte Unterscheidung nicht möglich.
    Für diesen Beitrag bedankt sich notvirtus

  4. #4
    Board-Schneehase

    Administrator

    Avatar von Lokalrunde
    Registriert seit
    Jul 2013
    Ort
    im Tiefschnee
    Beiträge
    56.875
    ngb:news Artikel
    517

    Re: [Script] NGB Ignore Everyone | alternative Ignorieren-Funktion

    Wundert mich nur, wieso Du dafür einen Account erstellt hast, mit dem es eigentlich keine Notwendigkeit gibt, irgendjemanden zu ignorieren, da die einzigen beiden Beiträge hier in dem Thread verfasst wurden. Dein Hauptaccount wurde ja auf eigenen Wunsch gesperrt, aber den zweiten hättest Du auch nehmen können, hättest keinen neuen gebraucht. Aber hey, kann ja jeder machen, wie er will...

    Jeder Mod darf - genau wie jeder User auch - seine Meinung posten. Wir verbieten sicher auch niemandem die Benutzung des Scripts aus dem Startbeitrag, sollte es dadurch dann jedoch zu Konflikten mit Verwarnungen oder moderativen Anweisungen kommen, war's eben Pech - nicht für uns, sondern für den betreffenden User.
    ║ ► ♫ ZehnVorne - Die ngb-Bar ♫ ◄ ║ ► Lokalrundes Fun-Blog: wieder online ◄ ║
    The cold never bothered me anyway

    “Every autumn now my thoughts return to snow. Snow is something I identify myself with. Like my father, I am a snow person.” (Charlie English)


  5. #5
    OutOfOrder

    Moderator

    Avatar von Larius
    Registriert seit
    Jul 2013
    Beiträge
    5.792

    Re: [Script] NGB Ignore Everyone | alternative Ignorieren-Funktion

    @accCreturns: Gleich vorweg, das ist meine private Meinung zu der ganzen Thematik:

    Die Forensoftware ist nicht dafür vorgesehen, dass man Moderativen Content und normalen Content mit dem gleichen Account trennen kann. Selbst wenn wir nachträglich etwas einbauen - was verdammt viel Aufwand für wenig Nutzen bedeutet - bedeutet das nicht, dass es zu 100% sicher ist.

    Persönlich halte ich das Script für Schwachsinn. Es gibt eine boardinterne Ignore Funktion und es gibt auch gute Gründe, warum man Moderatoren nicht ignorieren sollte. Natürlich kann man das Script verwenden, aber dann muss man halt auch mit den Konsequenzen leben wenn man einen Moderator ignoriert und dessen Hinweise nicht sieht. Benutzung auf eigene Gefahr, wie es so schön heisst.

    Ich weiß halt echt nicht, was so schwer ist, sich mal selbst zusammen zu reißen und einen Beitrag auch so zu ignorieren. Mach ich laufend - ansonsten hätte ich wohl das ein oder andere Magengeschwür...
    Für diesen Beitrag bedankt sich pspzockerscene
    How's my spelling? Call 1-800-SUKRAM

    Asseon zur Monopoly Diskussion: "Monopoly ist die Regenbogenstrecke unter den Breitspielen"

    Mathemathik by Seedy: "10 Bier sind immerhin 5 Bier."

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •