Users Chatvdvoem.ru

Information about the interlocutor in the chat together

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         Users Chatvdvoem.ru
// @namespace    https://chatvdvoem.ru
// @version      0.0.1
// @description  Information about the interlocutor in the chat together
// @author       KoctrX
// @match        https://chatvdvoem.ru/
// @grant        none
// ==/UserScript==

_setting = {
    nickNameLength: 10
};

if (chat.isChatStarted()) {
    _chat.connect();
}
document.body.setAttribute('onkeyup', '_chat.key(event.keyCode)');
myLog = document.getElementById('projects');
_user = {};
_me = chat.user;

document.getElementById('but-start').onclick = function () {
    _chat.connect();
};

var _tel = setInterval(function () {
    try {
        document.getElementsByClassName('but-chat-start')[0].setAttribute('onclick', '_chat.connect()');
    } catch (e) {
    }
}, 500);

_chat = {
    start: function () {
        chat.start();
        this.connect();
    },
    close: function () {
        chat.close();
    },
    key: function (key) {
        if (key === 27) {
            if (!chat.isChatStarted()) {
                this.start();
            } else {
                this.close();
            }
        }
    }, style: function () {
        var st = document.createElement('style');
        st.setAttribute('type', 'text/css');
        _style = '.cls { color: #f00; } .p { cursor:pointer; } .ctr { margin: 0 auto; }';
        _style += '.title { text-align: center;background: #515151;padding: 5px;color: #fff;margin: 5px 0;border-radius: 10px; }';
        _style += '.block { padding: 5px; font-size: 14px;}';
        st.innerHTML = _style;
        document.head.appendChild(st);
    },
    dom: function () {
        this.style();
        document.getElementById('projects').style.width = '300px';
        document.getElementById('log').style.right = '330px';
        myLog.innerHTML = '';
        myLog.appendChild(this.createClass({
            'type': 'div',
            'class': 'title p',
            'inner': 'Собеседник',
            other: 'onclick',
            res: '_chat.hidden({type: "class", name: "opponent", id:0})'
        }));
        myLog.appendChild(this.createClass({'type': 'div', 'class': 'block opponent', 'inner': ''}));
        myLog.appendChild(this.createClass({
            'type': 'div',
            'class': 'title p',
            'inner': 'Моя информация',
            other: 'onclick',
            res: '_chat.hidden({type: "class", name: "user", id:0})'
        }));
        myLog.appendChild(this.userCreateUI());
        this.settings();
    },
    settings: function () {
        settings.set("sound", false);
        $("#sound").find(".switch")[settings.sound ? "addClass" : "removeClass"]("on");
        var e = $("link.theme-link[title='grey']");
        e.siblings(".theme-link").prop("disabled", true);
        e.prop("disabled", false);
        settings.set("theme", 'grey');
    },
    userCreateUI: function () {
        myBlock = this.createClass({'type': 'div', 'class': 'block user', inner: ''});
        obj = {'type': 'div', 'class': '', inner: 'Логин: <span class="cls myLogin">' + _me.name + '</span><hr>'};
        myBlock.appendChild(this.createClass(obj));
        obj.inner = 'ОС (beta): <span  class="cls">' + this.device(_me.guid) + '</span><hr>';
        myBlock.appendChild(this.createClass(obj));
        obj.inner = 'Вход: <span  class="cls">' + _me.dataConnect + '</span><hr>';
        myBlock.appendChild(this.createClass(obj));
        myBlock.appendChild(this.createClass({
            'type': 'div',
            'class': '',
            inner: '<div class="button signin-button ctr" onclick="_chat.setRandomUserName();">Рандомный логин</div>'
        }));
        return myBlock;
    },
    hidden: function (obj) {
        function setThis(obj) {
            obj.style.display = (obj.style.display !== 'none') ? 'none' : 'block';
        }

        switch (obj.type) {
            case 'class':
                setThis(document.getElementsByClassName(obj.name)[obj.id]);
                break;
            case 'id':
                setThis(document.getElementById(obj.name));
                break;
        }
    },
    opponentReload: function (_us) {
        block = document.getElementsByClassName('opponent')[0];
        block.innerHTML = '';
        var t = {'type': 'div', 'class': ''};
        t.inner = 'Логин: <span onclick="document.getElementById(&#34;text&#34;).innerHTML+=this.innerHTML;" class="cls p">' + _us.name + '</span><hr>';
        block.appendChild(this.createClass(t));
        t.inner = 'Авторизация: <span  class="cls">' + _us.isLoggedIn + '</span><hr>';
        block.appendChild(this.createClass(t));
        // t.inner = 'GUID: <span  class="cls">' + _us.guid + '</span><hr>';
        // block.appendChild(this.createClass(t));
        // t.inner = 'UID: <span  class="cls">' + _us.uid + '</span><hr>';
        // block.appendChild(this.createClass(t));
        t.inner = 'ОС (beta): <span  class="cls">' + this.device(_us.guid) + '</span><hr>';
        block.appendChild(this.createClass(t));
        t.inner = 'Начало диалога: <span  class="cls">' + _us.connect + '</span><hr>';
        block.appendChild(this.createClass(t));
    },
    device: function (guid) {
        var arr = [{
            name: 'IOS',
            code: 'ios'
        }, {
            name: 'Android',
            code: 'droid'
        }, {
            name: 'VPN (Windows)',
            code: 'vpp'
        }, {
            name: 'Mobile browser',
            code: 'webmob'
        }];
        var device = (guid.split('-').length === 5) ? 'Windows' : 'Не определен';
        var count = arr.length - 1;
        while (count >= 0) {
            if (!guid.indexOf(arr[count].code)) {
                device = arr[count].name;
                break;
            }
            count--;
        }
        return device;
    },
    createClass: function (obj) {
        var elem = document.createElement(obj.type);
        if (obj.class.length > 0) {
            elem.setAttribute('class', obj.class);
        }
        elem.innerHTML = obj.inner;
        if (obj.other !== undefined && obj.res !== undefined) {
            elem.setAttribute(obj.other, obj.res);
        }
        return elem;
    },
    connect: function () {
        var int = setInterval(function () {
            if (chat.isChatStarted()) {
                _user = chat.opponent;
                _user.connect = _chat.time();
                //log.push(_user);
                _chat.opponentReload(_user);
                clearInterval(int);
            }
        }, 20);
    },
    parseTime: function (time) {
        return (time < 10) ? '0' + time : time;
    },
    time: function () {
        var t = new Date();
        return this.parseTime(t.getHours()) + ':' + this.parseTime(t.getMinutes()) + ':' + this.parseTime(t.getSeconds());
    },
    setUserName: function (name) {
        document.getElementsByClassName('myLogin')[0].innerHTML = name;
        settings.set("username", name);
        chat.setUsername(name);
        $("#nickname").text(name);
    },
    randomName: function (count) {
        var stringArray = 'qwertyuiopasdfghjklzxcvbnm1234567890ёйцукенгшщзхъфывапролджэячсмитьбю'.split('');
        var res = '';
        while (count >= 0) {
            var q = stringArray[this.randomize(0, stringArray.length - 1)];
            res += (this.randomize(0, 1) === 1) ? q.toUpperCase() : q.toLowerCase();
            count--;
        }
        return res;
    },
    randomize: function (x, y) {
        return Math.floor(x + Math.random() * ((y + 1) - x));
    },
    setRandomUserName: function () {
        this.setUserName(this.randomName(_setting.nickNameLength));
    }
};
_me.dataConnect = _chat.time();
_chat.dom();