Anastasia_Soboleva / SaveMePls

// ==UserScript==
// @name         SaveMePls
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  You'll be a little bit happier. Or not. Who knows?
// @author       Zlat
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @include      /https:\/\/\w?\.?catwar\.su\/.*/
// @license      MIT
// @copyright    2021-2023 (c) Злат
// @updateURL    https://openuserjs.org/meta/Anastasia_Soboleva/SaveMePls.meta.js


// ==/UserScript==

//ЧТО ЭТА ШТУКА УМЕЕТ
// 1. Сузит окно просмотра нанимателя на 40%, теперь вы не заработаете косоглазие (но это не точно)
// 2. Покажет возраст игрока в профиле по дате регистрации
// 3. Добавит немного полезных сведений и ссылок перед сообщением игрока
// 4. Даст быстрые шаблоны для отправки. Никаких больше неудачных копипаст!
// 5. Считает баллы отдельно
(function (window, document, $) {
    'use strict';
    if (typeof $ === 'undefined') return;

    // do not run in frames
    if (window.self != window.top){
        return;
    }
    if (/https:\/\/(.\.)?catwar\.su/.test(window.location.href)){


        if (window.location.href.indexOf("https://catwar.su/settings") != -1) {
            $("#branch").append("<br><b>Настройки для Нанимателя</b><br><form id=\"setts\" name=\"setts\"><label><input type=\"checkbox\" id=\"zhmykh\" name=\"zhmykh\">Наниматель теперь на 40% стройнее</label><br/><label><input type=\"checkbox\" id=\"get_age\" name=\"get_age\">Показать возраст (грешит на +/- 1 день)</label><br><label><input type=\"checkbox\" id=\"send_pattern\" name=\"send_pattern\">Добавить кнопки с шаблонами, ID игрока и ссылкой на ИСКАТЬ</label><br></form>");
        }

        if (JSON.parse(localStorage.getItem("zhmykh"))){
            if (window.location.href.indexOf("https://catwar.su/employer") != -1) {
                $("#branch").css({"width" : "50%"});
                $("#site_table").css({"margin-left" : "20%"});
                $("#zhmykh").prop("checked", true);
            }
        }

        if (JSON.parse(localStorage.getItem("get_age"))) {
            $("#get_age").prop("checked", true);
        }

        if (JSON.parse(localStorage.getItem("send_pattern"))) {
            $("#send_pattern").prop("checked", false);
        }

        $('#zhmykh').on('change', function () {
            if ($(this).is(':checked')) {
                let t = true;
                localStorage.setItem("zhmykh", JSON.stringify(t));

            } else {
                let f = false;
                localStorage.setItem("zhmykh", JSON.stringify(f));
            }
        });

        $('#get_age').on('change', function () {
            if ($(this).is(':checked')) {
                let t = true;
                localStorage.setItem("get_age", JSON.stringify(t));
            } else {
                let f = false;
                localStorage.setItem("get_age", JSON.stringify(f));
            }
        });

        $('#send_pattern').on('change', function () {
            if ($(this).is(':checked')) {
                let t = true;
                localStorage.setItem("send_pattern", JSON.stringify(t));

            } else {
                let f = false;
                localStorage.setItem("send_pattern", JSON.stringify(f));
            }
        });


        if (window.location.href.indexOf("https://catwar.su/employer") != -1) {
            let s = $("div.messages:first");

            while($(s).text()){

                let b = $(s).prev().html();
                let x = b.match(/\d{1,7}/);

                if (!!JSON.parse(localStorage.getItem("send_pattern"))) {
                    if(x) {
                        $(s).prepend("<div class='inf' id='i" + x[0] +"'><span class=\"id\"><b>ID: </b>" + x[0] + "</span> | <span class=\"mult\"><a href=\"https://catwar.su/top?search=" + x[0] + "\" target=\"_blank\" >ИСКАТЬ</a></span></div><br>");
                    }

                    $("#i"+ x[0]).after("<div class='patterns'>Шаблоны: <span class='refuse'>отказ</span>, <span class='success'>вы приняты</span></div> ");

                    $(".refuse").click(function () {
                        $(this).parent().next().next().children().eq(2).val("Здравствуйте,\nОчень жаль, но ваша кандидатура нам не подходит. Не расстраивайтесь, вы сможете поучаствовать в грядущих наборах!\nС уважением, Наниматель");
                    });

                    $(".success").click (function () {
                        $(this).parent().next().next().children().eq(2).val("Здравствуйте,\nВы прошли первый этап, поздравляем! В конце общего приёма резюме ожидайте ссылки на экзамен.\nС уважением, Наниматель");
                    });
                }

                s = $(s).parent().next().children().eq(1);
            }

        }

        if (window.location.href.indexOf("https://catwar.su/cat") != -1) {
            function date_transform (dd) {
                let date = Date.parse(dd);
                let now = Date.now();
                let dif = new Date(now-date);
                let data = dif.getDate()-2;
                let months = dif.getMonth();
                let years = dif.getFullYear() - 1970;
                let str = years.toString() + " г. " + months.toString() + " мес. " + data.toString() + " д. ";
                return str;
            }

            if (!!JSON.parse(localStorage.getItem("get_age"))) {
                let posAge = $("table#moder_info").children().eq(0).children().eq(1).children().eq(1);
                let age = $(posAge).text();
                age = age.replace(/(\d{4}-\d{2}-\d{2}).+/ui, "$1");
                age = new Date (age);
                let dif = date_transform(age);
                $(posAge).prepend("Возраст: " + dif + "<br>");
            }
        }
        if (window.location.href.indexOf("https://catwar.su/logs/exam?n=") != -1) {
            /*var answers = [
                [[[0]],[[0]]],
                [
                    [[0,0,1],[1,0,0],[1,0,0,0],[0,1,0,0],[0,1,0]],
                    [[0,1,0,0],[0,1,0,0],[1,0,0,0]],
                    [[0,0,0,1],[0,0,0,1],[0,0,1,0],[0,1,0,0]],
                    [[0,0,0,1],[0,1,0],[0,0,0,1,0],[0,1,0,0,0]],
                    [[0,0,0,1],[1,0,0],[0,1,0,0],[0,0,1],[1,0,0],[0,0,1]],
                    [[0,0,0,1],[1,0,0],[0,0,0,1],[0,1,0],[1,0,0]],
                    [[0,1,0],[0,1,0],[0,1,0],[0,1,0],[0,1,0,0]],
                    [[1,0,0],[1,0,0],[0,1,0],[1,0,0]],
                    [[1,0,0],[0,1,0],[0,1,0],[0,1,0]],
                    [[0,1,0],[1,0,0],[1,0,0]]
                ],
                [[[0]]],
                [
                    [[1,0,0],[0,1,0,0],[0,1,0,0]],
                    [[1,0,0,0],[0,0,1],[1,0,0]],
                    [[1,0,0],[0,1,0]],
                    [[1,0,0],[1,0,0]],
                    [[1,0,0],[0,0,1,0,0],[0,0,1,0]],
                    [[0,0,1],[0,1,0],[0,0,1]],
                    [[0,1],[0,1,0],[0,1,0]],
                    [[0,1,0],[0,1,0],[0,0,1]],
                    [[0,1,0],[0,1]],
                    [[0,1,0],[0,1,0]]
                ],
                [[[0]]]
            ];*/
            $('img').attr('width', '30%');
            $('body').css({"width" : "50%"});
            $("body").css({"margin-left" : "25%"});
            $('body').append('<a name="down"> </a><br><hr><a href=\"#up\">Наверх</a><hr><br><div id=\"res\"></div>');
            $('div').eq(0).after('<a name="up"> </a><br><hr><a href=\"#down\">Вниз</a><hr><br>');
            /*let body = document.body.innerHTML;
            body = body.replace(/(№\d\|)\s/uig, '$1X ');
            let matches = body.match(/\(№0\|0 №0\|0 №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №\d\|(\d|X) №0\|0 №0\|(0|)/uig);
            let l = matches.length;
            let idMatch = body.match(/\(<a href="\/cat(\d{1,7})">.{1,35}<\/a>,.{1,8} лун\) набрал в части A/uig);
            for (let currentMatch = 0; currentMatch < l; currentMatch++) {
                let id = idMatch[currentMatch].replace(/\(<a href="\/cat(\d{1,7})">.+<\/a>,.+ лун\) набрал в части A/uig, '$1');
                let moderAnswers = matches[currentMatch].match(/№\d\|(\d|X)/uig);
                let len = 23;
                let sumModer = 0;
                let sumTsenzor = 0;
                for (let moderAnswer = 2; moderAnswer < len; moderAnswer++) {
                    let qNumber0 = moderAnswers[moderAnswer].replace(/№(\d)\|\d/uig, '$1');
                    let qNumber = Number(qNumber0);
                    let qAnswer0 = moderAnswers[moderAnswer].replace(/№\d\|(\d|X)/uig, '$1');
                    let qAnswer = Number(qAnswer0);
                    if(qAnswer0 != 'X' ) {
                        if (moderAnswer <12) {
                            if (answers[1][moderAnswer-2][qNumber][qAnswer]) {
                                sumModer++;
                            }
                        }
                    }

                    if (!isNaN(qAnswer) && moderAnswer > 12) {
                        if (answers[3][moderAnswer-13][qNumber][qAnswer]) {
                            sumTsenzor++;
                        }
                    }
                }
                $('#res').append('Модероэкз игрока с ID ' + id + '<br>');
                $('#res').append('Цензорочасть: ' + sumTsenzor + '<br>');
                $('#res').append('Модерочасть: ' + sumModer + '<br>');
                $('#res').append('Всего за часть А: ' + (sumTsenzor + sumModer) + '<br><br>');
            }
            */
        }
    }
})(window, document, jQuery);