Arthoria.de Forum

Offtopic => Sonstiges => Thema gestartet von: TheLightPrince am 10. August 2016, 20:43:52

Titel: Neues Chat Tool
Beitrag von: TheLightPrince am 10. August 2016, 20:43:52
Hallo zusammen,

ich werfe mal wieder ein neues Tool auf den "Markt". Es eignet sich vor allem für Vielchatter und Nutzer der PN Funktion.

Es wird wie immer Greasemonkey (FF) oder Tampermonkey (Chrome) benötigt. IE wird nicht unterstützt. Opera ist nicht getestet!

Features:
- Die PN Partner können 48 Stunden (und länger) gespeichert werden
- Durch Tastenkombinationen ist das Wechseln zwischen den Channels auch per Tastatur und sehr schnell möglich
- PN Chat Partner können ohne ebenfalls sehr schnell gewechselt werden
- Optional werden die Chatnachrichten von Gesprächspartnern farbig hinterlegt
- Optional werden Nachrichten hervorgehoben, die mit einem Nutzer stattfinden, dessen name überfahren wird, oder an den man gerade eine Nachricht versenden möchte.

Eine Beschreibung der Features und wie diese funktionieren finden sich in einer Hilfe nach der Installation. Einfach das [?] Zeichen rechts unter dem Chat mit der Maus überfahren, dann wird die Hilfe eingeblendet.

Das Tool kann in seiner aktuellsten Version hier heruntergeladen werden: http://arthoria.srv1-14119.srv-net.de/privateChannels.user.js
ACHTUNG: Das Tool hat keine Update Funktion. Eine neue Version muss daher stehts von euch von Hand heruntergeladen werden. Ich werde neue Versionen stets in diesem Thread announcieren.

Ich danke den Betatestern der letzten Woche für ihre Anregungen und gemeldeten Bugs!

Ich habe heute nochmal zwei neue Features eingebaut, die noch nicht ausgiebig getestet wurden. Da das Tool aber sowieso schon seine Runde gemacht hat, habe ich entschieden, es trotzdem jetzt zu veröffentlichen ohne erneute Betatestphase.

Fehler und Verbesserungsvorschläge bitte per Irrli oder Raabe an mich (ingame).

Vielen Dank und Viel Spaß mit dem Tool
TLP
Titel: Antw:Neues Chat Tool
Beitrag von: Thermo am 10. August 2016, 21:29:51
Sehr schönes tool :)
Mal ne frage, wie kann man die optionalen features aktivieren? Hab dazu leider nix gefunden.
Titel: Antw:Neues Chat Tool
Beitrag von: Penthesilea am 11. August 2016, 09:08:21
Hm... Das Fragezeichen ist da, aber das Mouseover funktioniert bei mir leider nicht.
Titel: Antw:Neues Chat Tool
Beitrag von: Penthesilea am 11. August 2016, 09:22:10
Ich nehme alles zurück. Es klappt erst, wenn man erstmals "geflüstert" hat. Jetzt ist alles da.
Titel: Antw:Neues Chat Tool
Beitrag von: TheLightPrince am 11. August 2016, 14:43:58
Zitat von: Thermo am 10. August 2016, 21:29:51
Sehr schönes tool :)
Mal ne frage, wie kann man die optionalen features aktivieren? Hab dazu leider nix gefunden.

In der Hilfe gibt es zwei checkboxen. Die eine für die Farbliche hervorhebung und die andere für das Hervorheben beim Hovern.

Lg TLP
Titel: Antw:Neues Chat Tool
Beitrag von: TheLightPrince am 11. August 2016, 15:25:26
- Kleiner Bug-Fix bei den Farben.
Titel: Antw:Neues Chat Tool
Beitrag von: Bankaifan am 05. Februar 2018, 11:06:36
Ich habe im Code ein paar Syntax-Fehler bereinigt - die sind vermutlich dem alter des Codes zuzuschreiben. Danach funktioniert bei mir das MouseOver im FireFox mit Tampermonkey wieder

// ==UserScript==
// @name        Private Channels
// @namespace   arthoria
// @include     http://arthoria.de/*
// @version     1.1
// @grant       none
// ==/UserScript==

/**
  alle Wünsche erfüllt
**/

(function() {
    var unsafeWindow = unsafeWindow || window,
        $ = unsafeWindow.$;
    jQuery.expr[':']['starts-with'] = function(a, i, m) {
        return jQuery(a).text().toUpperCase()
            .indexOf(m[3].toUpperCase()) == 0;
    };
    var oldHijack = unsafeWindow.startChat,
        partnerList,
        partnerListSorted,
        $interface,
        $nameSelection,
        chat,
        lastReceivedXMLData = unsafeWindow.chatXML,
        filterNames = [],
        tabCounterStatus = {
            val:0,
            lA:Date.now(),
            handle:null
        },
        colors = ['red', 'green', 'grey', 'lightblue', 'silver', '#10fc03', '#eb14eb', '#fff900'],
        coloring = true,
        hoverOverName,
        hoveringOverName = true;
    var borderColor = $('.mentd').css('borderTopColor'),
        backgroundImage = $('.mentd').css('backgroundImage'),
        imageColor = borderColor=='rgb(0, 0, 0)'?'dark':'light';

    var images = {
        pinned:{
            dark:'data:image/png;base64,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',
            light:'data:image/png;base64,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'
        },
        unpinned:{
            dark:'data:image/png;base64,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',
           
Titel: Antw:Neues Chat Tool
Beitrag von: Bankaifan am 05. Februar 2018, 11:06:53
Teil 2 - da Text zu lang

light:'data:image/png;base64,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'
        }
    };

    // Chrome hack
    setTimeout(function() {
        unsafeWindow.startChat = function() {
            if(typeof oldHijack != 'function') return;
            oldHijack();
            loadChatpartnerList();
            loadInterface();
            chatExistsNow();
        };
        unsafeWindow.startChat();
    },0);
    function loadChatpartnerList(/* optional */xml) {
        loadFromLocalStorage();
        var $xml = $(unsafeWindow.chatXML);
        $xml.find('m').each(xmlEntryToPartnerListEntry);
        if(xml) {
            var $xmlStr = $((new XMLSerializer()).serializeToString(xml));
            $xmlStr.find('m').each(xmlEntryToPartnerListEntry);
        }
        partnerList = partnerList.filter(checkChatPartnerOutOfTime);
        saveToLocalStorage();
    }
    function checkChatPartnerOutOfTime(vO) {
        if(vO.pinned) return true;
        var d = parseInt(Date.now()/1000,10);
        var keep = vO.lastAction+2*86400 > d;
        if(!keep && (idx = filterNames.findIndex(function(el) { return el==vO.name;})) > -1) {
            filterNames.splice(idx, 1);
            saveToLocalStorage();
        }
        return keep;
    }
    function xmlEntryToPartnerListEntry() {
        var obj = {
            name:       unsafeWindow.charID == parseInt($(this).attr('m'),10) ? $(this).attr('a') : $(this).attr('r'),
            lastAction: parseInt($(this).attr('t'), 10),
            pinned:     false
        };
        if(obj.name == 'Wirt') return;
        if(obj.name == 'Juwel der Erfahrung') return;
        if(obj.name == 'System') return;
        if($(this).attr('c') == 'pn' && !checkIfPartnerIsAlreadyInList(obj.name)) {
            partnerList.push(obj);
        } else if(checkIfPartnerIsAlreadyInList(obj.name)) {
            var o = partnerList.filter(function(el) { return el.name==obj.name; })[0];
            o.lastAction = Math.max(obj.lastAction, o.lastAction);
        }
    }
    function loadInterface() {
        $interface = $('<div><ul></ul></div>').css({
            width:'100%',
            position:'relative'
        }).children('ul').css({'list-style': 'none', 'padding':'0px', 'margin':'0px'}).end();
        $('#chatmessage').after($interface);
        $('<style type="text/css"></style>').text('p.ch1, p.ch1 > a { color:black !important; } h4{ text-decoration:underline; } .chatPartner { -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } .selected { opacity:0.9; font-weight:bold; } .hovered { text-decoration:underline;}').appendTo('head');
    }
    function updateList() {
        partnerList.sort(function(a, b) {
            if(a.lastAction == b.lastAction) return 0;
            return a.lastAction < b.lastAction ? 1 : -1;
        });
        $interface.children('ul').children('li').remove();
        $.each(partnerList, function(k, v) {
            $interface.children('ul').append(createListItem(v, v.name==chat.config.PN));
        });
        if(!$('div:contains([?])').length) {
            var marginTop = cpos==1?0:-600;
            var width = cpos==1?700:1000;
            var $infoDiv = $('<div style="overflow-y:scroll;display:none;position:absolute;margin-top:20px;padding:20px;background-color:white;color:black;width:0;height:0;z-index:1000;"></div>').mouseenter(function(evt) {
                $infoDiv.css({
                    top:evt.pageY,
                    right:$('body').width()-parseInt(evt.pageX,10)
                });
                $(this).stop().animate({
                    width:width,
                    height:'600px',
                    opacity:1.0,
                    display:'block',
                    marginTop:marginTop
                },500);
            }).mouseleave(function() {
                $(this).stop().animate({
                    width:0,
                    height:0,
                    opacity:0.0,
                    display:'none',
                    marginTop:0
                },500);
            }).html('<h3>Kurz Anleitung</h3><h4>Im chat</h4>- [Shift] + Linksklick auf einen Namen: SpielerIn ins Tool aufnehmen<h4>Im Tool</h4>- Klick: Flüstermodus mit der Person starten<br>- [Ctrl] + Klick: Aus Tool entfernen (geht nur, falls kein aktives Gespräch mit der Person stattfindet)<br>- Doppelklick: Chat nach Nachrichten dieser Person filtern<br>- [Ctrl] + Doppelklick: Nachrichten dieser Person aus dem Chat filtern<h4>Im Tool - Fokus im Eingabefeld</h4>- [Tab]: Wechsel des Flüstermodus zu anderer Person<br>- [Ctrl] + A: Wechsel zum Alle-Chat<br>- [Ctrl] + G: Wechsel zum Gilde-Chat<br>- [Ctrl] + F: Wechsel zum Fraktion-Chat<br>- [Ctrl] + P: Wechsel zum PN-Chat<br>- [Ctrl] + R: Wechsel zum RP-Chat<br>- [Ctrl] + M: Wechsel zum Mod-Chat<br>- [Ctrl] + N: Aufheben des Flüstermodus (Alternative zum Klick auf das Briefsymbol)<br><br>- Klick auf das Pin-Icon: Pinned einen Spieler / eine Spielerin fest (verschwindet nicht nach 48 Stunden)<br>- Hover über das Pin-Icon: Ansicht, wann der Spieler / die Spielerin aus der Liste verschwindet<br>- Hover über einen Namen: Im Chat werden die PN-Nachrichten(!!) hervorgehoben und alles andere etwas blasser<br><br><input type="checkbox" name="coloring" '+(coloring?'checked="checked"':'')+'> Chatpartnern verschiedene Farben zuweisen<br><input type="checkbox" name="hoveringOverName" '+(hoveringOverName?'checked="checked"':'')+'> Schaltet das Highlighting beim Tippen an und aus, sowie beim Überfahren von Namen').children('input:checkbox[name=coloring]').click(function() {
    coloring = $(this).is(':checked');
    updateList();
    chat.printMessages('#chat');
    saveToLocalStorage();
}).end().children('input:checkbox[name=hoveringOverName]').click(function() {
    hoveringOverName = $(this).is(':checked');
    updateList();
    $('#chatmessage').keyup();
    saveToLocalStorage();
}).end();

            var $infoDivIcon = $('<div>[?]</div>').css({'font-weight':'bold','cursor':'pointer','position':'absolute',top:0,right:0}).mouseover(function(evt) {
                $infoDiv.css({
                    top:evt.pageY,
                    right:$('body').width()-parseInt(evt.pageX,10)
                });
                $infoDiv.stop().animate({
                    width:width,
                    height:'600px',
                    opacity:1.0,
                    display:'block',
                    marginTop:marginTop
                },500);
            }).mouseout(function() {
                $infoDiv.stop().animate({
                    width:0,
                    height:0,
                    opacity:0.0,
                    display:'none',
                    marginTop:0
                },500);
            });
            $interface.append($infoDivIcon);
            $('body').append($infoDiv);
        }
    }
    function chatExistsNow() {
        chat = unsafeWindow.chat;
        $('#cresd').bind('click',function(event) { chat.resizeT(-1,event);});
        var hijacks = [chat.update, chat.filter, chat.resPN, chat.printMessages];
        chat.printMessages = function() {
            hijacks[3].apply(chat, arguments);
            var $ps = $('#chat');
            if(coloring) {
                $interface.find('li').each(function() {
                    $('p.ch1:has(a:starts-with('+$(this).children('span').text()+'))', $ps).css('background-color', $(this).data('color'));
                });
            }
            if(hoveringOverName) {
                if(hoverOverName) {
                    $('#chat').children('p').css('opacity', 0.5);
                    $('#chat').children('p:has(a:starts-with('+hoverOverName+'))').css('opacity', 1);
                }
            }
        };
        chat.update = function(xml) {
            hijacks[0].apply(chat, arguments);
            lastReceivedXMLData = (new XMLSerializer()).serializeToString(xml);
            loadChatpartnerList(xml);
            chat.printMessages('#chat');
            updateList();
        };
        chat.filter = function(msgID) {
            var parts = [
                hijacks[1].apply(chat, arguments),
                (
                    filterNames.length && !(filterNames.indexOf(this.messages[msgID].aN) > -1 || filterNames.indexOf(this.messages[msgID].toN) > -1) && filterNames.filter(function(el) { return el.substring(0,1)!='!'; }).length
                ),
                (
                    filterNames.length && (filterNames.indexOf('!'+this.messages[msgID].aN) > -1 || filterNames.indexOf('!'+this.messages[msgID].toN) > -1)
                )
            ];
            return parts.reduce(function(c, i) { return c || i; }, false);
        };
        chat.resPN = function() {
            hijacks[2].apply(chat, arguments);
            updateList();
        };
        $('#chat a[href*="p=showprofile&i="]').live('click', function(e) {
            if(e.shiftKey) {
                e.preventDefault();
                var obj = {
                    name:       $.trim($(this).text()),
                    lastAction: parseInt(Date.now()/1000,10),
                    pinned:     false
                };
                if(!checkIfPartnerIsAlreadyInList(obj.name)) {
                    partnerList.push(obj);
                } else {
                    var o = partnerList.filter(function(el) { return el.name==obj.name; })[0];
                    o.lastAction = Math.max(obj.lastAction, o.lastAction);
                }
                saveToLocalStorage();
                updateList();
            }
        });
        $('#chatmessage').keydown(function(e) {
            if(e.keyCode==9) { // [TAB]
                e.preventDefault();
                if(tabCounterStatus.lA+750 < Date.now()) {
                    tabCounterStatus.val = 0;
                } else {
                    tabCounterStatus.val = (tabCounterStatus.val+1) % $('li.chatPartner').size();
                }
                $('li.chatPartner').removeClass('hovered');
                if(tabCounterStatus.handle)
                    clearTimeout(tabCounterStatus.handle);
                if(!$('li.chatPartner').eq(tabCounterStatus.val).hasClass('selected')) {
                    $('li.chatPartner').eq(tabCounterStatus.val).addClass('hovered');
                    tabCounterStatus.handle = setTimeout(function() {
                        $('li.chatPartner').removeClass('hovered');
                        $('li.chatPartner').eq(tabCounterStatus.val).click();
                    }, 800);
                }
                tabCounterStatus.lA = Date.now();
            }
            if(e.ctrlKey && (cchan = ['A'.charCodeAt(), 'G'.charCodeAt(), 'F'.charCodeAt(), 'P'.charCodeAt(), 'R'.charCodeAt(), 'M'.charCodeAt(), 'N'.charCodeAt()].indexOf(e.keyCode)) > -1 ) {
                e.preventDefault();
                if(cchan < 6)
                    chat.changeChannel(cchan);
                else
                    chat.resPN();
            }
        }).keyup(function(e) {
            if(!hoveringOverName) return;
            if(this.value.length == 0 || e.keyCode == 13) {
                hoverOverName = null;
                $('#chat').children('p').css('opacity', 1);
                return;
            } else if(['@', '/'].indexOf(this.value.substr(0,1)) == -1 && chat.config.PN) {
                hoverOverName = chat.config.PN;
            } else if(['@'].indexOf(this.value.substr(0,1)) > -1) {
                hoverOverName = this.value.substring(1, this.value.indexOf(' ')==-1?this.value.length:this.value.indexOf(' '));
            } else if(['/'].indexOf(this.value.substr(0,1)) > -1) {
                hoverOverName = null;
                $('#chat').children('p').css('opacity', 1);
                return;
            }
            $('#chat').children('p').css('opacity', 0.5);
            $('#chat').children('p:has(a:starts-with('+hoverOverName+'))').css('opacity', 1);
        });
        $('li.chatPartner').live('click', function(e) {
            $(this).data('doubleClicked', false);
            var self = this;
            setTimeout(function() {
                if($(self).data('doubleClicked')) return;
                var name = $(self).data('name');
                if(!name) return;
                if(e.ctrlKey) {
                    if((idx1 = filterNames.indexOf(name)) > -1 || (idx2 = filterNames.indexOf('!'+name)) > -1)
                        removeFilter(idx1>-1?idx1:idx2);
                    var idx = partnerList.findIndex(function(el) { return el.name==name; });
                    partnerList.splice(idx,1);
                } else {
                    chat.setPN(name);
                    partnerList.filter(function(el) { return el.name==name; })[0].lastAction = parseInt(Date.now()/1000,10);
                }
                saveToLocalStorage();
                $('#chatmessage').focus();
                updateList();
            }, 200);
        });
        $('li.chatPartner').live('dblclick', function(e) {
            e.preventDefault();
            $(this).data('doubleClicked', true);
            toggleFilter((e.ctrlKey?'!':'')+$(this).text());
        });
        updateList();
        chat.printMessages('#chat');
    }
    function toggleFilter(name) {
        var pureName = name.substring(0,1)=='!'?name.substring(1):name;
        var idx = filterNames.findIndex(function(el) { return (el.substring(0,1)=='!'?el.substring(1):el)==pureName; });
        var nameFromArray = idx>-1?filterNames[idx]:null;
        if(idx==-1) {
            filterNames.push(name);
            $('li.chatPartner:contains('+pureName+')').css('border-color', pureName==name?'green':'red');
            chat.printMessages('#chat');
        } else {
            if(name==nameFromArray) {
                removeFilter(idx);
            } else {
                filterNames[idx] = name;
                $('li.chatPartner:contains('+pureName+')').css('border-color', pureName==name?'green':'red');
                chat.printMessages('#chat');
            }
        }
        saveToLocalStorage();
    }
    function removeFilter(idx) {
        var name = filterNames[idx];
        var pureName = name.substring(0,1)=='!'?name.substring(1):name;
        filterNames.splice(idx,1);
        saveToLocalStorage();
        $('li.chatPartner:contains('+pureName+')').css('border-color', borderColor);
        chat.printMessages('#chat');
    }

    function checkIfPartnerIsAlreadyInList(value) {
        return partnerList.filter(function(v) { return v.name==value; }).length?true:false;
    }
    function createListItem(obj, selected) {
        // design dependend scheme
        var idx = filterNames.findIndex(function(el) { return (el.substring(0,1)=='!'?el.substring(1):el)==obj.name; });
        var correctBorderColor = idx==-1?borderColor:(filterNames[idx].substring(0,1)=='!'?'red':'green');
        var secondsLeft = parseInt(Date.now()/1000,10)-obj.lastAction;
        partnerListSorted = partnerList.slice();
        partnerListSorted.sort(function(a, b) {
            return a.name > b.name;
        });
        var idxInDom = partnerListSorted.findIndex(function(el) { return el.name==obj.name; });
        var $pin =  $('<img />').css({'width': '13px', margin:'0px 5px 1px 0', verticalAlign:'middle'}).attr('src', obj.pinned?images.pinned[imageColor]:images.unpinned[imageColor]).click(function() {
            obj.pinned = !obj.pinned;
            obj.lastAction = parseInt(Date.now()/1000,10);
            saveToLocalStorage();
            updateList();
        }).attr('title', obj.pinned?'Pinned!':'Verschwindet in '+secToCountdown(secondsLeft)).css('background-color', coloring?colors[idxInDom%colors.length]:'transparent');
        var $span = $('<span />').text(obj.name);
        var $li = $('<li></li>').css({
            border:'1px solid '+borderColor,
            backgroundImage:backgroundImage,
            padding:'2px 5px',
            margin:'1px 2px',
            display:'inline-block',
            opacity:1,
            cursor:'pointer',
            borderColor:correctBorderColor,
            opacity:obj.pinned?1:(1-((secondsLeft)/(2*24*60*60)))*0.8+0.2 // berechne einen opacity-wert zwischen 0.2 und 1
        }).data('name', obj.name).addClass('chatPartner').append($pin).append($span);
        $li.data('color', colors[idxInDom%colors.length]);
        if(hoveringOverName) {
            $li.hover(function() {
                hoverOverName = $(this).children('span').text();
                $('#chat').children('p').css('opacity', 0.5);
                $('#chat').children('p:has(a:contains('+hoverOverName+'))').css('opacity', 1);
            }, function() {
                $('#chat').children('p').css('opacity', 1);
                hoverOverName = null;
            });
        }
        if(selected)
            $li.addClass('selected');
        return $li;
    }
    function saveToLocalStorage() {
        localStorage.chatpartnerList = JSON.stringify(partnerList);
        localStorage.filterNames = JSON.stringify(filterNames);
        localStorage.coloring = JSON.stringify(coloring);
        localStorage.hoveringOverName = JSON.stringify(hoveringOverName);
    }
    function loadFromLocalStorage() {
        partnerList = JSON.parse(localStorage.chatpartnerList || '[]');
        filterNames = JSON.parse(localStorage.filterNames || '[]');
        coloring = JSON.parse(localStorage.coloring || true);
        hoveringOverName = JSON.parse(localStorage.hoveringOverName || true);
    }

    function secToCountdown(seconds) {
        seconds = 2*86400 - seconds;
        var days = parseInt(seconds/86400,10);
        var hours= parseInt((seconds%86400)/3600,10);
        var mins = parseInt((seconds%3600)/60,10);
        var secs = seconds%60;
        hours= ('0'+hours).substr(-2);
        mins = ('0'+mins).substr(-2);
        secs = ('0'+secs).substr(-2);

        return (days>0?days+' Tag ':'')+hours+':'+mins+':'+secs;
    }
})();
Titel: Antw:Neues Chat Tool
Beitrag von: TheLightPrince am 06. Februar 2018, 13:57:47
hi bankaifan,

das ist nicht die neuste version des tools, was hier noch online ist, also es kann sich etwas verändert haben.

wenn das geht schick mir die veränderte datei doch per email zu, dann füge ich die fixes insofern noch nicht verändert ein und lade es als neuste version auf den Server :)

Lg TLP
Titel: Antw:Neues Chat Tool
Beitrag von: TheLightPrince am 10. April 2018, 22:29:57
Neue Version online. Ich hoffe, ich habe alles übernehmen können, sodass es weiterhin auch im Tampermonkey in FF läuft. Außerdem wurde der Shortcut verändert um das Flüstern abzubrechen und die Farben wurden etwas angepasst für bessere Lesbarkeit. Weiterhin läuft das Tool nun auch wieder im Greasemonkey.

Lg TLP
Titel: Antw:Neues Chat Tool
Beitrag von: Husena am 15. Mai 2018, 22:15:41
Ich werde die neue Version gerne testen. Mal sehen, wie dieses neue Tool bei mir abschneidet. Danke dafür!
Titel: Antw:Neues Chat Tool
Beitrag von: TheLightPrince am 15. Mai 2018, 23:30:37
Zitat von: Husena am 15. Mai 2018, 22:15:41
Ich werde die neue Version gerne testen. Mal sehen, wie dieses neue Tool bei mir abschneidet. Danke dafür!
Die geupdatete Version ist noch nicht wieder online. Aber du kannst die "alte" Version gerne testen. Die lief eigentlich auch gut, soweit ich weiß ;)
Titel: Antw:Neues Chat Tool
Beitrag von: TheLightPrince am 21. November 2019, 19:01:25
*push* Bitte updaten, damit es nach der Umstellung von Xeri wieder läuft.
Titel: Antw:Neues Chat Tool
Beitrag von: AlphaWoman am 22. November 2019, 11:05:34
Huhu TLP


Update geht bei mir.