// ==UserScript==
// @name Оформление логов для лучших Бродяг
// @namespace https://logs.blackrussia.online/
// @version 1.0
// @description Бродягам
// @author От Бродяг
// @match https://logs.blackrussia.online/gslogs/*
// @icon https://freepngimg.com/thumb/eagle/20-eagle-black-siluet-png-image-download-thumb.png
// @license Lukky
// ==/UserScript==
(function () {
'use strict';
scriptInit();
function createStyleButton(element) {
const styleToggle = document.createElement('button');
styleToggle.className = 'style-button';
styleToggle.id = 'style-modal-toggle';
styleToggle.href = '#!';
styleToggle.tabIndex = '0';
styleToggle.dataset.bsToggle = 'modal';
styleToggle.dataset.bsTarget = '#container-background';
styleToggle.textContent = 'STYLE';
const replaceElement = document.querySelector(element);
replaceElement.replaceWith(styleToggle);
}
function createStyleContainerBg(element) {
const containerBg = document.createElement('div');
containerBg.className = 'modal fade';
containerBg.id = 'container-background';
containerBg.tabIndex = '-1';
containerBg.style.dispaly = 'none';
containerBg.ariaHidden = 'true';
const parentElement = document.querySelector(element);
parentElement.parentNode.insertBefore(containerBg, parentElement);
const containerContent = document.createElement('div');
containerContent.className = 'modal-dialog modal-dialog-centered';
containerContent.id = 'style-container-content';
containerBg.appendChild(containerContent);
const styleContainer = document.createElement('div');
styleContainer.className = 'modal-content';
containerContent.appendChild(styleContainer);
const styleContHead = document.createElement('div');
const styleContBody = document.createElement('div');
styleContHead.className = 'modal-header';
styleContBody.className = 'modal-body';
styleContBody.style.display = 'flex';
styleContBody.style.flexDirection = 'column';
styleContainer.appendChild(styleContHead);
styleContainer.appendChild(styleContBody);
const styleTitleBadge = document.createElement('span');
styleTitleBadge.className = 'badge bg-success';
styleTitleBadge.textContent = 'STYLE';
styleTitleBadge.style.fontSize = '16px';
styleContHead.appendChild(styleTitleBadge);
const styleTitleText = document.createElement('span');
styleTitleText.className = 'style-title-text';
styleTitleText.textContent = 'Переключатель Тем';
styleContHead.appendChild(styleTitleText);
const styleClose = document.createElement('button');
styleClose.type = 'button';
styleClose.className = 'btn-close';
styleClose.dataset.bsDismiss = 'modal';
styleClose.ariaLabel = 'Close';
styleContHead.appendChild(styleClose);
const switchStyleBlock = document.createElement('label');
switchStyleBlock.className = 'switch';
switchStyleBlock.innerHTML = `
<input type="checkbox" id="styleToggleCheck">
<span class="slider round" style="padding-right: 20px;"></span>
<div class="addingText tooltip-style" style="display: block; width: max-content; margin: 5px; margin-left: 50px">Включить Переливание Текста
<span class="tooltip-style-text">Добавляет анимированный градиент на некоторые элементы (повышается нагрузка)</span></div>
</span>
`;
styleContBody.appendChild(switchStyleBlock);
const styleToggleCheck = document.getElementById('styleToggleCheck');
if (localStorage.getItem('styleThemeEnabled') === 'true') {
styleToggleCheck.checked = true;
applyTextGradient();
}
styleToggleCheck.addEventListener('change', function () {
if (styleToggleCheck.checked) {
applyTextGradient();
localStorage.setItem('styleThemeEnabled', 'true');
} else {
removeTextGradient();
localStorage.setItem('styleThemeEnabled', 'false');
}
});
const switchNumsBlock = document.createElement('label');
switchNumsBlock.className = 'switch';
switchNumsBlock.innerHTML = `
<input type="checkbox" id="switchNumsCheck">
<span class="slider round" style="padding-right: 20px;"></span>
<div class="addingText tooltip-style" style="display: block; width: max-content; margin: 5px; margin-left: 50px">Включить Разряды Чисел
<span class="tooltip-style-text">Переключает способ отображения чисел (1000 => 1 000)<br>Требуется Перезагрузка</span><img src='https://cdn-icons-png.flaticon.com/512/25/25429.png' style='width: 15px; height: 15px; filter: invert(1)'></img></div>
</span>
`;
switchNumsBlock.style.marginTop = '20px';
styleContBody.appendChild(switchNumsBlock);
const switchNumsCheck = document.getElementById('switchNumsCheck');
if (localStorage.getItem('numsSeparateEnabled') === 'true') {
switchNumsCheck.checked = true;
applyNumsSeparate();
}
switchNumsCheck.addEventListener('change', function () {
if (switchNumsCheck.checked) {
applyNumsSeparate();
localStorage.setItem('numsSeparateEnabled', 'true');
location.reload();
} else {
localStorage.setItem('numsSeparateEnabled', 'false');
location.reload();
}
});
const switchCopyBankBlock = document.createElement('label');
switchCopyBankBlock.className = 'switch';
switchCopyBankBlock.innerHTML = `
<input type="checkbox" id="switchBankCopyCheck">
<span class="slider round" style="padding-right: 20px;"></span>
<div class="addingText tooltip-style" style="display: block; width: max-content; margin: 5px; margin-left: 50px">Включить Режим Доказательств
<span class="tooltip-style-text">Копирование описания транзакций всех категорий (кроме Бизнесы/Фракции) в без системной информации<br>Требуется перезагрузка</span><img src='https://cdn-icons-png.flaticon.com/512/25/25429.png' style='width: 15px; height: 15px; filter: invert(1)'></img></div>
</span>
`;
switchCopyBankBlock.style.marginTop = '20px';
styleContBody.appendChild(switchCopyBankBlock);
const switchCopyBank = document.getElementById('switchBankCopyCheck');
if (localStorage.getItem('bankCheckEnabled') === 'true') {
switchCopyBank.checked = true;
applyCopyDocs();
}
switchCopyBank.addEventListener('change', function () {
if (switchCopyBank.checked) {
applyCopyDocs();
localStorage.setItem('bankCheckEnabled', 'true');
location.reload();
} else {
localStorage.setItem('bankCheckEnabled', 'false');
location.reload();
}
});
const fontSelectorBlock = document.createElement('label');
fontSelectorBlock.className = 'font-selector-block';
styleContBody.appendChild(fontSelectorBlock);
const fontSelector = document.createElement('select');
fontSelector.className = 'selector';
fontSelector.id = 'font-selector';
const storedFont = localStorage.getItem('selectedFont') || 'Roboto';
const fonts = ['Bad Script', 'Comfortaa', 'Fira Sans', 'Marmelad', 'Montserrat', 'Neucha', 'Play', 'Roboto', 'Sofia Sans', 'Ubuntu'];
fonts.forEach(font => {
const option = document.createElement('option');
option.value = font;
option.textContent = font;
if (font === storedFont) {
option.selected = true;
document.body.style.fontFamily = font;
}
fontSelector.appendChild(option);
});
fontSelector.addEventListener('change', function () {
const selectedFont = this.value;
document.body.style.fontFamily = selectedFont;
localStorage.setItem('selectedFont', selectedFont);
});
fontSelectorBlock.appendChild(fontSelector);
const fontSelectorText = document.createElement('span');
fontSelectorText.className = 'addingText';
fontSelectorText.textContent = 'Выбор Шрифта';
fontSelectorBlock.appendChild(fontSelectorText);
const colorSelectorBlock = document.createElement('label');
colorSelectorBlock.className = 'color-selector-block';
styleContBody.appendChild(colorSelectorBlock);
const colorSelector = document.createElement('select');
colorSelector.className = 'selector';
colorSelector.id = 'color-selector';
const storedColor = localStorage.getItem('selectedColor') || 'WHITE';
const colors = ['-------МЯГКИЕ-------', 'PINK', 'KHAKI', 'SKYBLUE', 'PALEGREEN', '', '-------ЯРКИЕ-------', 'RED', 'LIME', 'CYAN', 'WHITE', 'YELLOW', 'MAGENTA', 'DEEPPINK',];
const colorCodes = {
'PINK': '#FFC0CB',
'KHAKI': '#F0E68C',
'SKYBLUE': '#87CEEB',
'PALEGREEN': '#98FB98',
'RED': '#FF0000',
'LIME': '#00FF00',
'CYAN': '#00FFFF',
'WHITE': '#FFFFFF',
'YELLOW': '#FFFF00',
'MAGENTA': '#FF00FF',
'DEEPPINK': '#FF1493'
};
colors.forEach(color => {
const option = document.createElement('option');
option.value = color;
option.textContent = color;
if (color === storedColor) {
option.selected = true;
applySelectedStyle(colorCodes[color]);
}
colorSelector.appendChild(option);
});
colorSelector.addEventListener('change', function () {
if (this.value !== '-------МЯГКИЕ-------' && this.value !== '' && this.value !== '-------ЯРКИЕ-------') {
const selectedColor = this.value;
localStorage.setItem('selectedColor', selectedColor);
applySelectedStyle(colorCodes[selectedColor]);
}
});
colorSelectorBlock.appendChild(colorSelector);
const colorSelectorText = document.createElement('span');
colorSelectorText.className = 'addingText';
colorSelectorText.textContent = 'Выбор Цвета';
colorSelectorBlock.appendChild(colorSelectorText);
const brightnessSliderBlock = document.createElement('label');
brightnessSliderBlock.className = 'brightness-slider-block';
styleContBody.appendChild(brightnessSliderBlock);
const storedBright = localStorage.getItem('savedBrightness') || '100';
const htmlContent = document.querySelector('html');
const brightnessSlider = document.createElement('input');
htmlContent.style.filter = `brightness(${storedBright}%)`
brightnessSlider.id = 'brightness-slider';
brightnessSlider.type = 'range';
brightnessSlider.min = '30';
brightnessSlider.max = '100';
brightnessSlider.style.marginTop = '30px';
brightnessSlider.style.marginRight = '10px';
brightnessSlider.value = storedBright;
brightnessSlider.addEventListener('input', function () {
const brightnessValue = this.value;
localStorage.setItem('savedBrightness', brightnessValue);
htmlContent.style.filter = `brightness(${brightnessValue}%)`;
});
brightnessSliderBlock.appendChild(brightnessSlider);
const brightnessSliderText = document.createElement('span');
brightnessSliderText.className = 'addingText';
brightnessSliderText.textContent = 'Выбор Яркости';
brightnessSliderBlock.appendChild(brightnessSliderText);
const nickColorBlock = document.createElement('label');
nickColorBlock.className = 'color-picker-nickname';
styleContBody.appendChild(nickColorBlock);
const colorNickElement = document.createElement('input');
const nickColor = localStorage.getItem('playerNameColor') || '#ff8800';
colorNickElement.className = 'color-picker';
colorNickElement.type = 'color';
colorNickElement.value = nickColor;
colorNickElement.addEventListener('input', function () {
const selectedColor = colorNickElement.value;
const tdElements = document.querySelectorAll('td.td-player-name[data-v-2d76ca92=""]');
localStorage.setItem('playerNameColor', selectedColor);
tdElements.forEach(function (td) {
const playerNick = td.querySelector('a');
if (playerNick) {
playerNick.style.color = selectedColor;
playerNick.style.textShadow = '0px 0px 1px' + selectedColor;
}
});
});
nickColorBlock.appendChild(colorNickElement);
const colorNickText = document.createElement('span');
colorNickText.className = 'addingText';
colorNickText.textContent = 'Цвет Никнеймов';
nickColorBlock.appendChild(colorNickText);
const categoryColorBlock = document.createElement('label');
nickColorBlock.className = 'color-picker-category';
styleContBody.appendChild(categoryColorBlock);
const colorCategoryElement = document.createElement('input');
const categoryColor = localStorage.getItem('categoryColor') || '#0088ff';
colorCategoryElement.className = 'color-picker';
colorCategoryElement.type = 'color';
colorCategoryElement.value = categoryColor;
colorCategoryElement.addEventListener('input', function () {
const selectedColor = colorCategoryElement.value;
const tdElements = document.querySelectorAll('td.td-category[data-v-2d76ca92=""]');
localStorage.setItem('categoryColor', selectedColor);
tdElements.forEach(function (td) {
const category = td.querySelector('a');
if (category) {
category.style.color = selectedColor;
category.style.textShadow = '0px 0px 1px' + selectedColor;
}
});
});
categoryColorBlock.appendChild(colorCategoryElement);
const colorCategoryText = document.createElement('span');
colorCategoryText.className = 'addingText';
colorCategoryText.textContent = 'Цвет Категорий';
categoryColorBlock.appendChild(colorCategoryText);
const bugReportBlock = document.createElement('label');
bugReportBlock.className = 'bug-report-block';
styleContBody.appendChild(bugReportBlock);
const bugReportTG = document.createElement('a');
bugReportTG.href = 'https://t.me/solukky'
bugReportTG.target = '_blank';
bugReportTG.innerHTML = `<img class="bug-report-button" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Telegram_logo.svg/512px-Telegram_logo.svg.png"></img>`;
bugReportBlock.appendChild(bugReportTG);
const bugReportVK = document.createElement('a');
bugReportVK.href = 'https://vk.me/solukky'
bugReportVK.target = '_blank';
bugReportVK.innerHTML = `<img class="bug-report-button" src="https://cdn-icons-png.flaticon.com/512/145/145813.png"></img>`;
bugReportBlock.appendChild(bugReportVK);
const bugReportGF = document.createElement('a');
bugReportGF.href = 'https://greasyfork.org/ru/scripts/475162-theme-font-changer/feedback'
bugReportGF.target = '_blank';
bugReportGF.innerHTML = `<img class="bug-report-button" src="https://raw.githubusercontent.com/JasonBarnabe/greasyfork/master/public/images/blacklogo512.png"></img>`;
bugReportBlock.appendChild(bugReportGF);
const bugReportText = document.createElement('span');
bugReportText.className = 'addingText';
bugReportText.textContent = 'Баг / Предложение';
bugReportBlock.appendChild(bugReportText);
}
function applyNumsSeparate() {
function formatNumbersInTable() {
const tableCells = document.querySelectorAll('td.td-transaction-amount, td.td-balance-after');
tableCells.forEach(cell => {
const text = cell.textContent.trim();
if (!isNaN(text.replace(/,/g, ''))) {
const originalValue = parseInt(text.replace(/,/g, ''));
const formattedValue = originalValue.toLocaleString('ru');
cell.textContent = formattedValue.toString();
cell.addEventListener('copy', function (event) {
event.clipboardData.setData('text/plain', formattedValue.replace(/\s/g, ''));
event.preventDefault();
});
}
});
}
window.onload = function () {
formatNumbersInTable();
};
const observer = new MutationObserver(function (mutationsList) {
formatNumbersInTable();
});
const config = {
childList: true,
subtree: true
};
observer.observe(document.body, config);
}
function applyCopyDocs() {
function formatTransactionsInTable() {
const tableRows = document.querySelectorAll('tr.second-row');
tableRows.forEach(row => {
const transactionCell = row.querySelector('.td-transaction-desc');
const playerName = row.previousSibling.querySelector('.td-player-name a').textContent;
const categoryName = row.previousSibling.querySelector('.td-category a').textContent;
const transactionAmount = row.previousSibling.querySelector('.td-transaction-amount').textContent;
const transactionDate = row.previousSibling.querySelector('.td-time').textContent.replace(/\s/g, ' | ');
const originalText = transactionCell.textContent;
transactionCell.addEventListener('copy', function (event) {
const selection = window.getSelection().toString();
if (selection.length >= transactionCell.textContent.length) {
function replaceData(expected = '', regex = '') {
if (regex != '') {
var final = originalText.replace(regex, expected);
} else {
var final = expected;
}
event.clipboardData.setData('text/plain', final);
event.preventDefault();
}
function notSupported() {
alert('Данная строка не поддерживается скриптом, отправьте эту строку автору скрипта');
event.clipboardData.setData('text/plain', originalText);
event.preventDefault();
}
if (categoryName === 'BlackPass') {
if (originalText.includes('Получил')) {
replaceData(`[BlackPass | ${transactionDate}] ${playerName} - $1`, /(Получил .+)/,);
} else if (originalText.includes('+ Выдача')) {
replaceData(`[BlackPass | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей`);
}
} else if (categoryName === 'Helper чат') {
if (originalText) {
replaceData(`[Helper чат | ${transactionDate}] ${playerName} - Написал "$1"`, /^(.*)$/);
}
} else if (categoryName == 'NonRP чат') {
if (originalText) {
replaceData(`[NonRP чат | ${transactionDate}] ${playerName} - Написал "$1"`, /^(.*)$/);
}
} else if (categoryName == 'RP чат') {
if (originalText) {
replaceData(`[RP чат | ${transactionDate}] ${playerName} - Написал "$1"`, /^(.*)$/);
}
} else if (categoryName == 'VIP чат') {
if (originalText) {
replaceData(`[VIP чат | ${transactionDate}] ${playerName} - Написал "$1"`, /^(.*)$/);
}
} else if (categoryName == 'Админ-блокировки') {
if (originalText) {
replaceData(`[Админ-блокировки | ${transactionDate}] ${playerName} - "$1"`, /^(.*)$/);
}
} else if (categoryName == 'Админ-действия') {
if (originalText) {
replaceData(`[Админ-действия | ${transactionDate}] ${playerName} - "$1"`, /^(.*)$/);
}
} else if (categoryName == 'Админ-общий-чат') {
if (originalText) {
replaceData(`[Глобальный чат (/msg) | ${transactionDate}] ${playerName} - Написал "$1"`, /^(.*)$/);
}
} else if (categoryName == 'Админ-супердействия') {
if (originalText) {
replaceData(`[Админ-супердействия | ${transactionDate}] ${playerName} - "$1"`, /^(.*)$/);
}
} else if (categoryName == 'Админ-чат') {
if (originalText) {
replaceData(`[Админ-чат | ${transactionDate}] ${playerName} - Написал "$1"`, /^(.*)$/);
}
} else if (categoryName == 'Аккаунт игрока') {
if (originalText.includes('законопослушности')) {
replaceData(`[Законопослушность | ${transactionDate}] ${playerName} - Изменение законопослушности, итог: $1. Причина: $2`, /^.*значение: (.*). Причина: (.*)/);
} else if (originalText.includes('уровень')) {
replaceData(`[Уровень игрока | ${transactionDate}] ${playerName} - $1`, /^(.*)$/);
} else if (originalText.includes('Сменил пароль')) {
replaceData(`[Пароль | ${transactionDate}] ${playerName} - $1`, /^(.*)$/);
} else if (originalText.includes('EXP:')) {
replaceData(`[Опыт (EXP) | ${transactionDate}] ${playerName} - $1`, /^(.*)$/);
} else if (originalText.includes('Привязал аккаунт')) {
replaceData(`[Аккаунт | ${transactionDate}] ${playerName} - $1`, /^\+ (.*)$/);
}
} else if (categoryName == 'Античит') {
if (originalText) {
replaceData(`[Античит | ${transactionDate}] ${playerName} - Подозрение на чит: $1`, /^.*: (.*) \|.*$/);
}
} else if (categoryName == 'Аренда транспорта') {
if (originalText) {
replaceData(`[Аренда Транспорта | ${transactionDate}] ${playerName} $1 за ${transactionAmount.replace('-', '')} рублей`, /^(.*)$/);
}
} else if (categoryName == 'Аукцион') {
if (originalText.includes('Выставил')) {
replaceData(`[Аукцион | ${transactionDate}] ${playerName} - $1 рублей`, /^(.*)$/);
} else if (originalText.includes('Выиграл')) {
replaceData(`[Аукцион | ${transactionDate}] ${playerName} - $1`, /^(.*)$/);
} else if (originalText.includes('Продал')) {
replaceData(`[Аукцион | ${transactionDate}] ${playerName} - Продал $1 и получил ${transactionAmount} рублей`, /^.*аукционе (.*) \(возвращено.*$/);
} else if (originalText.includes('Вернул')) {
replaceData(`[Аукцион | ${transactionDate}] ${playerName} - $1`, /^(.*)$/);
} else if (originalText.includes('Ставка')) {
replaceData(`[Аукцион | ${transactionDate}] ${playerName} $1, сумма: ${transactionAmount.replace('-', '')} рублей`, /^(.*)$/);
} else if (originalText.includes('Возвращена')) {
replaceData(`[Аукцион | ${transactionDate}] ${playerName} - Возвращена ставка, сумма: ${transactionAmount} рублей`);
}
} else if (categoryName == 'Банковская система') {
if (originalText.includes('Пополнил счет')) {
replaceData(`[Банк | ${transactionDate}] ${playerName} - Пополнил свой счет на ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Пополнил банк. счет')) {
replaceData(`[Банк | ${transactionDate}] ${playerName} - Пополнил свой дополнительный счет на ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('руб в банкомате')) {
replaceData(`[Банк | ${transactionDate}] ${playerName} - Снял ${transactionAmount} рублей в банкомате`);
} else if (originalText.includes('Продлил аренду')) {
replaceData(`[Банк | ${transactionDate}] ${playerName} - Продлил аренду имущества на ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Перевел на счет')) {
replaceData(`[Банк | ${transactionDate}] ${playerName} - Перевел ${transactionAmount} рублей на банковский счет, владелец $1`, /^.*владелец (.*) \[sql:.*$/);
}
} else if (categoryName == 'Взаимодействие с игроками') {
if (originalText.includes('Получение денег')) {
replaceData(`[Передача денег | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей от игрока $1`, /^.*от (.*) \(.*$/);
} else if (originalText.includes('Передача денег')) {
replaceData(`[Передача денег | ${transactionDate}] ${playerName} - Передал ${transactionAmount.replace('-', '')} рублей игроку $1`, /^.*игроку (.*) \(.*$/);
}
} else if (categoryName == 'Взаимодействие с казино') {
if (originalText.includes('Вышел из казино')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Вышел из казино и получил ${transactionAmount} рублей`);
} else if (originalText.includes('Сделал ставку в казино')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Поставил ${transactionAmount.replace('-', '')} рублей на игру "Кости"`);
} else if (originalText.includes('Проиграл в казино (пред. ставка)')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Проиграл поставленную на игру "Кости" ставку`);
} else if (originalText.includes('Получил выигрыш в казино набрав')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Выиграл ${transactionAmount} рублей в игре "Кости"`);
} else if (originalText.includes('Получил процент')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Получил процент в размере ${transactionAmount} рублей в качестве Крупье`);
} else if (originalText.includes('Блекджек (ставка')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Поставил ${transactionAmount.replace('-', '')} рублей на игру "BlackJack"`);
} else if (originalText.includes('Победил Блекджек')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Выиграл ${transactionAmount} рублей в игре "BlackJack"`);
} else if (originalText.includes('Ничья Блекджек')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Вернул ${transactionAmount} рублей из-за Ничьи в игре "BlackJack"`);
} else if (originalText.includes('Ставка на миниигру')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Поставил ${transactionAmount.replace('-', '')} рублей на игру "Дурак"`);
} else if (originalText.includes('Проиграл в казино дурак')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Проиграл поставленную ставку на игру "Дурак"`);
} else if (originalText.includes('Выиграл в казино дурак')) {
replaceData(`[Казино | ${transactionDate}] ${playerName} - Выиграл ${transactionAmount} рублей в игре "Дурак"`);
}
} else if (categoryName == 'Восстановления') {
if (originalText) {
replaceData(`[Восстановление | ${transactionDate}] ${playerName} - Восстановил $2 игроку $1`, /^игроку (.*) \[.*\] (.*)$/);
}
} else if (categoryName == 'Донат') {
if (originalText.includes('Конвертировал')) {
replaceData(`[Донат | ${transactionDate}] ${playerName} - Конвертировал Black Coins в игровую валюту и получил ${transactionAmount} рублей`);
} else if (originalText.includes('Выиграл')) {
replaceData(`[Донат | ${transactionDate}] ${playerName} - Выиграл ${transactionAmount} рублей при открытии кейса`);
}
} else if (categoryName == 'Жалобы/Вопросы') {
if (originalText.includes('Жалоба от')) {
replaceData(`[Репорт | ${transactionDate}] ${playerName} - Ответил на жалобу игрока $1; "$2"`, /^Жалоба от (.*) \[.*\]\: (.*)$/);
} else if (originalText.includes('Вопрос от')) {
replaceData(`[Вопрос | ${transactionDate}] ${playerName} - Ответил игроку $2; Вопрос: "$1", Ответ: "$3"`, /^Вопрос (.*)\[.*\].*игроку (.*)\[.*\] ответ (.*)$/);
}
} else if (categoryName == 'Имущество игрока') {
if (originalText.includes('Получил из промокода')) {
replaceData(`[Промо | ${transactionDate}] ${playerName} - $1`, /^(.*?)$/);
} else if (originalText.includes('Приобрел улучшение для дома')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Приобрел улучшение для своего дома за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Приобрел дом')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Приобрел дом за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Приобрел подвальное помещение')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Приобрел подвал для своего дома за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Продажа своего дома')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Продал свой дом государству за $1 рублей`, /^.*итого: (.*) рублей.*$/);
} else if (originalText.includes('Продажа дома')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Продал дом игроку $1 за ${transactionAmount}`, /^.*игроку (.*)$/);
} else if (originalText.includes('Слетел дом')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Дом слетел и игрок получил ${transactionAmount} рублей`);
} else if (originalText.includes('Слетел гараж')) {
replaceData(`[Гараж | ${transactionDate}] ${playerName} - Гараж слетел и игрок получил ${transactionAmount} рублей`);
} else if (originalText.includes('Продажа гаража')) {
replaceData(`[Гараж | ${transactionDate}] ${playerName} - Продал свой гараж государству за ${transactionAmount} рублей`);
} else if (originalText.includes('Покупка гаража')) {
replaceData(`[Гараж | ${transactionDate}] ${playerName} - Купил гараж за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Улучшение гаража')) {
replaceData(`[Гараж | ${transactionDate}] ${playerName} - Купил улучшение для гаража за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Купил гараж')) {
replaceData(`[Гараж | ${transactionDate}] ${playerName} - Купил гараж за ${transactionAmount.replace('-', '')} рублей у игрока $1`, /^игрока (.*). .*$/);
} else if (originalText.includes('Продал гараж')) {
replaceData(`[Гараж | ${transactionDate}] ${playerName} - Продал гараж за ${transactionAmount} рублей игроку $1`, /^.*игроку (.*). .*$/);
} else if (originalText.includes('Приобрел улучшение для подвала')) {
replaceData(`[Дом | ${transactionDate}] ${playerName} - Улучшил подвал своего дома за ${transactionAmount.replace('-', '')} рублей`);
}
} else if (categoryName == 'Квесты') {
if (originalText) {
replaceData(`[Квесты | ${transactionDate}] ${playerName} - Выполнил $1 квест и получил ${transactionAmount}`, /^\+ Выполнение (.*) квеста$/);
}
} else if (categoryName == 'Контейнеры') {
if (originalText.includes('Продал содержимое')) {
replaceData(`[Контейнеры | ${transactionDate}] ${playerName} - Продал содержимое контейнера $1 и получил ${transactionAmount} рублей`, /^.*содержимое (.*) контейнера.*$/);
} else if (originalText.includes('Победа в торгах')) {
replaceData(`[Контейнеры | ${transactionDate}] ${playerName} - Выиграл торги за контейнер за ${transactionAmount.replace('-', '')}`);
} else if (originalText.includes('Выиграл')) {
replaceData(`[Контейнеры | ${transactionDate}] ${playerName} - Получил $1 ($2) после победы на торгах за контейнер`, /^Выиграл (.*) в .*: (.*) \(.*$/);
}
} else if (categoryName == 'Купоны') {
if (originalText) {
replaceData(`[Купон | ${transactionDate}] ${playerName} - Получил купон: ID $1`, /^.*ID (.*)$/);
}
} else if (categoryName == 'Лицензии') {
if (originalText.includes('Оплата экзамена')) {
replaceData(`[Лицензии | ${transactionDate}] ${playerName} $1 за ${transactionAmount.replace('-', '')} рублей`, /^(.*?)$/);
} else if (originalText.includes('Приобрел в правительстве')) {
replaceData(`[Лицензии | ${transactionDate}] ${playerName} $1 за ${transactionAmount.replace('-', '')} рублей`, /^(.*?)$/);
} else if (originalText.includes('Лицензия анулирована')) {
replaceData(`[Лицензии | ${transactionDate}] ${playerName} - $1`, /^(.*?)$/);
}
} else if (categoryName == 'Личное транспортное средство') {
if (originalText.includes('Купил изменение')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Купил изменение "$1" на автомобиль $2 за ${transactionAmount.replace('-', '')} рублей`, /^.*изменение "(.*)" на авто (.*) \[.*$/);
} else if (originalText.includes('Купил деталь')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Купил деталь "$1" на автомобиль $2 за ${transactionAmount.replace('-', '')} рублей`, /^.*деталь "(.*)".* на авто (.*) \[.*$/);
} else if (originalText.includes('Установил номерные')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Установил номер $1 на свой автомобиль`, /^.*знаки (.*) \(.*$/);
} else if (originalText.includes('Снял номерные')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Снял номер $1 со своего автомобиля`, /^.*знаки (.*) \(.*$/);
} else if (originalText.includes('Отметил свое')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Отметил свой автомобиль по GPS`);
} else if (originalText.includes('Продажа транспорта')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Продал автомобиль $1 игроку $2 за ${transactionAmount} рублей`, /^.* транспорта (.*) \(.*\) для игрока (.*) \[.*$/);
} else if (originalText.includes('Продал транспортное')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Продал автомобиль $1 государству за ${transactionAmount} рублей`, /^.*средство (.*) \(.*\)$/);
} else if (originalText.includes('Покупка транспорта') && originalText.includes('у игрока')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Купил автомобиль $1 у игрока $2 за ${transactionAmount.replace('-', '')} рублей`, /^.* Покупка транспорта (.*) \(.*$/);
} else if (originalText.includes('Покупка транспорта') && originalText.includes('в автосалоне')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Купил автомобиль $1 в автосалоне за ${transactionAmount.replace('-', '')} рублей`, /^.* Покупка транспорта (.*) \(.*$/);
} else if (originalText.includes('Обменялся')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Обменял свой автомобиль $3 на автомобиль $2 игрока $1 без доплаты`, /^Обменялся с (.*) \(Авто (.*) \(.*\) на Авто (.*) \(.*$/);
} else if (originalText.includes('+ Доплата за обмен')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Обменял свой автомобиль $3 на автомобиль $2 игрока $1 с доплатой ${transactionAmount.replace('-', '')}`, /^.*обмен от (.*) \(Авто (.*) \(.*\) на Авто (.*) \(.*$/);
} else if (originalText.includes('- Доплата за обмен')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Обменял свой автомобиль $3 на автомобиль $2 игрока $1 с доплатой ${transactionAmount.replace('-', '')}`, /^.*игроку (.*) \(Авто (.*) \(.*\) на Авто (.*) \(.*$/);
} else if (originalText.includes('Выиграл')) {
replaceData(`[Транспорт | ${transactionDate}] ${playerName} - Выиграл автомобиль $1 в BlackPass`, /^.*blackpass: (.*) \[.*$/);
}
} else if (categoryName == 'Лотерея') {
if (originalText.includes('Приобрел')) {
replaceData(`[Лотерея | ${transactionDate}] ${playerName} - Приобрел лотерейный билет, число $1`, /^.*число: (.*)$/);
} else if (originalText.includes('Выигрыш')) {
replaceData(`[Лотерея | ${transactionDate}] ${playerName} - Выиграл ${transactionAmount} рублей в лотерею, $1`, /^.*совпали (.*)$/);;
}
} else if (categoryName == 'Мероприятия') {
if (originalText.includes('Выдача денег')) {
replaceData(`[BlackPass | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей из BlackPass`);
} else if (originalText.includes('Аренда лодки')) {
replaceData(`[Аренда | ${transactionDate}] ${playerName} - Арендовал лодку за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('За отметку')) {
replaceData(`[GPS | ${transactionDate}] ${playerName} - Отметил дом на GPS за ${transactionAmount.replace('-', '')} рублей`);
}
} else if (categoryName == 'Мобильный телефон') {
if (originalText.includes('Пополнил')) {
replaceData(`[Телефон | ${transactionDate}] ${playerName} - Пополнил счет телефона на ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Приобрел смену')) {
replaceData(`[Телефон | ${transactionDate}] ${playerName} - Сменил номер за ${transactionAmount.replace('-', '')} рублей. Новый номер: $1`, /^.*Новый номер: (.*)$/);
}
} else if (categoryName == 'Начальные работы') {
if (originalText.includes('кладо')) {
replaceData(`[Кладоискатель | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей, затраченное время: $1`, /^.*выполнил за (.*)\)$/);
} else if (originalText.includes('электрик')) {
replaceData(`[Электрик | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за выполнение вызова`);
} else if (originalText.includes('капитану')) {
replaceData(`[Водолаз | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за продажу предмета`);
} else if (originalText.includes('заказа инкассатор')) {
replaceData(`[Инкассация | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за выполнение заказа`);
} else if (originalText.includes('транспорта инкассатор')) {
replaceData(`[Инкассатор | ${transactionDate}] ${playerName} - Арендовал рабочий транспорт за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Арендовал прицеп')) {
replaceData(`[Транспортная Компания | ${transactionDate}] ${playerName} - Арендовал прицеп`);
} else if (originalText.includes('Выполнил заказ за')) {
replaceData(`[Транспортная Компания | ${transactionDate}] ${playerName} - Выполнил заказ за $1 секунд и получил ${transactionAmount} рублей`, /^.*заказ за (\d+) секунд.$/);
} else if (originalText.includes('[ТК] Аренда Т/О')) {
replaceData(`[Транспортная Компания | ${transactionDate}] ${playerName} - Арендовал фуру за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Загрузил груз')) {
replaceData(`[Транспортная Компания | ${transactionDate}] ${playerName} - Загрузил груз в прицеп`);
} else if (originalText.includes('Дошел к разгрузке')) {
replaceData(`[Транспортная Компания | ${transactionDate}] ${playerName} - Дошел к разгрузке за $1 секунд`, /^.*разгрузке за (.*) секунд$/);
} else if (originalText.includes('+ Механик, починка')) {
replaceData(`[Механик | ${transactionDate}] ${playerName} - Починил автомобиль игроку $1 за ${transactionAmount} рублей`, /^.*игроку (.*)$/);
} else if (originalText.includes('- Починка')) {
replaceData(`[Механик | ${transactionDate}] ${playerName} - Починил автомобиль у игрока $1 за ${transactionAmount.replace('-', '')} рублей`, /^.*механика (.*)$/);
} else if (originalText.includes('Зарплата водителем автобуса')) {
replaceData(`[Автобус | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за маршрут`);
} else if (originalText.includes('Аредовал автобус')) {
replaceData(`[Автобус | ${transactionDate}] ${playerName} - Арендовал автобус за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('шахтер')) {
replaceData(`[Шахта | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за смену`);
} else if (originalText.includes('в МЧС')) {
replaceData(`[МЧС | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за задание`);
} else if (originalText.includes('курьера')) {
replaceData(`[Курьер | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за заказ`);;
} else if (originalText.includes('газовика')) {
replaceData(`[Газовик | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за заказ`);
} else if (originalText.includes('такси')) {
replaceData(`[Такси | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за заказ`);
} else if (originalText.includes('завод')) {
replaceData(`[Завод | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за смену`);
}
} else if (categoryName == 'Номера') {
if (originalText.includes('Купил')) {
replaceData(`[Номер | ${transactionDate}] ${playerName} - Купил номер $1 за ${transactionAmount.replace('-', '')} рублей`, /^.*транспорта (.*) \(.*$/);
} else if (originalText.includes('Обновил')) {
replaceData(`[Номер | ${transactionDate}] ${playerName} - Обновил номер при покупке за ${transactionAmount.replace('-', '')}`);
}
} else if (categoryName == 'Обмен баллов') {
if (originalText.includes('+')) {
replaceData(`[E-Points | ${transactionDate}] ${playerName} - $1`, /^\+ (.*).$/);
}
} else if (categoryName == 'Объявления') {
if (originalText.includes('Отправил')) {
replaceData(`[СМИ | ${transactionDate}] ${playerName} - Отправил объявление "$1" за ${transactionAmount.replace('-', '')} рублей`, /^.*объявление: (.*)$/)
} else if (originalText.includes('Отредактировал')) {
replaceData(`[СМИ | ${transactionDate}] ${playerName} - Отредактировал объявление игрока $1 за ${transactionAmount} рублей, текст: "$2"`, /^.*объявление (\w+): (.*) \(.*$/);
}
} else if (categoryName == 'Остальное') {
if (originalText.includes('Переместил')) {
replaceData(`[Инвентарь | ${transactionDate}] ${playerName} - $1`, /^(.*)$/);
}
} else if (categoryName == 'Охота') {
if (originalText.includes('Приобрел')) {
replaceData(`[Охота | ${transactionDate}] ${playerName} - $1 за ${transactionAmount.replace('-', '')} рублей`, /^- (.*)$/);
} else if (originalText.includes('Получил за продажу')) {
replaceData(`[Охота | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за продажу животного`);
} else if (originalText.includes('вознаграждение')) {
replaceData(`[Охота | ${transactionDate}] ${playerName} - Получил вознаграждение: $1`, /^.*\((.*)\)$/);
}
} else if (categoryName == 'Подключения/Отключания') {
if (originalText.includes('подключился')) {
replaceData(`[Сервер | ${transactionDate}] ${playerName} - Подключился к серверу, ID: ${transactionAmount}`);
} else if (originalText.includes('отключился')) {
replaceData(`[Сервер | ${transactionDate}] ${playerName} - Отключился от сервера, ID: ${transactionAmount}`);
}
} else if (categoryName == 'Пожертвования') {
if (originalText.includes('Пожертвовал')) {
replaceData(`[Пожертвования | ${transactionDate}] ${playerName} - Пожертвовал ${transactionAmount.replace('-', '')} рублей в банке`);
}
} else if (categoryName == 'Покупка кустов с наркотиками') {
if (originalText.includes('Приобрел')) {
replaceData(`[Покупка кустов | ${transactionDate}] ${playerName} - Купил $1 кустов за ${transactionAmount.replace('-', '')} рублей`, /^.*. \((.*).\)$/);
}
} else if (categoryName == 'Покупка предметов в магазине') {
if (originalText.includes('Приобрел')) {
replaceData(`[Покупка в магазине | ${transactionDate}] ${playerName} - Купил $1 за ${transactionAmount.replace('-', '')} рублей`, /^- Приобрел (.*) в бизнесе .*$/);
}
} else if (categoryName == 'Попрошайничество') {
if (originalText.includes('Получил')) {
replaceData(`[Попрошайничество | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за попрошайничество`);
}
} else if (categoryName == 'Промокоды') {
if (originalText.includes('Получил за введенный')) {
replaceData(`[Промо | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за введенный промокод "$1"`, /^.*\((.*)\)$/);
} else if (originalText.includes('Получил за введенные')) {
replaceData(`[Промо | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за введенные промокоды (/checkpromo)`);
} else if (originalText.includes('Создал')) {
replaceData(`[Промо | ${transactionDate}] ${playerName} - Создал промокод "$1" за ${transactionAmount.replace('-', '')} рублей`, /^.*промокод (.*)$/);
}
} else if (categoryName == 'Реклама') {
if (originalText.includes('Получил')) {
replaceData(`[Реклама | ${transactionDate}] ${playerName} - Получил мут за повторение сообщения "$1"`, /^.*Текст: (.*)$/);
} else if (originalText.includes('подозревается')) {
replaceData(`[Промо | ${transactionDate}] ${playerName} - Подозревается в рекламе. Текст: "$1"`, /^.*рекламе! \[(.*)\]$/);
}
} else if (categoryName == 'Реферальная система') {
if (originalText.includes('Получил вознаграждение')) {
replaceData(`[Рефералы | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за реферера (пригласившего)`);
} else if (originalText.includes('Получил деньги')) {
replaceData(`[Реферала | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за реферала (приглашенного)`);
}
} else if (categoryName == 'Рулетка') {
if (originalText.includes('Забрал')) {
replaceData(`[Рулетка | ${transactionDate}] ${playerName} - Забрал выигрыш из рулетки: $1`, /^.*выигрыш: (.*)$/);
}
} else if (categoryName == 'Рыболовство') {
if (originalText.includes('Продал')) {
replaceData(`[Рыболовство | ${transactionDate}] ${playerName} - Продал рыбу в рыболовном магазине`);
}
} else if (categoryName == 'Свадьба') {
if (originalText.includes('Покупка')) {
replaceData(`[Свадьба | ${transactionDate}] ${playerName} - Купил обручальные кольца за ${transactionAmount.replace('-', '')} рублей`);
} else if (originalText.includes('Арендовал')) {
replaceData(`[Свадьба | ${transactionDate}] ${playerName} - Арендовал свадебный $1 за ${transactionAmount.replace('-', '')} рублей`, /^.*средство: (.*)$/);
}
} else if (categoryName == 'Семейный чат') {
if (originalText) {
replaceData(`[Семейный чат | ${transactionDate}] ${playerName} - Написал "$1"`, /^.*\]: (.*)$/);
}
} else if (categoryName == 'Семьи') {
if (originalText.includes('Взял') || originalText.includes('Положил в сейф') || originalText.includes('Выдал') || originalText.includes('Выгнал') || originalText.includes('Принял')) {
replaceData(`[Семьи | ${transactionDate}] ${playerName} - $1`, /^.*\)\] (.*)$/);
} else if (originalText.includes('Покинул')) {
replaceData(`[Семьи | ${transactionDate}] ${playerName} - Покинул свою семью`);
} else if (originalText.includes('Снял')) {
replaceData(`[Семьи | ${transactionDate}] ${playerName} - Снял ${transactionAmount} рублей со счета семьи`);
} else if (originalText.includes('Положил')) {
replaceData(`[Семьи | ${transactionDate}] ${playerName} - Положил ${transactionAmount.replace('-', '')} рублей на счет семьи`);
}
} else if (categoryName == 'Склад фракции') {
if (originalText.includes('Положил')) {
replaceData(`[Склад фракции | ${transactionDate}] ${playerName} - Положил ${transactionAmount.replace('-', '')} рублей на склад фракции`);
} else if (originalText.includes('Взял')) {
replaceData(`[Склад фракции | ${transactionDate}] ${playerName} - Взял ${transactionAmount} рублей со склада фракции`);
}
} else if (categoryName == 'Смена имени') {
if (originalText) {
replaceData(`[Смена имени | ${transactionDate}] ${playerName} - Сменил имя на $1`, /^.*на (.*) \(.*$/);
}
} else if (categoryName == 'Сообщения') {
if (originalText) {
replaceData(`[SMS | ${transactionDate}] ${playerName} - Написал игроку $1: "$2"`, /^Для (.*)\[.*\]: (.*)$/);
}
} else if (categoryName == 'Телефонные звонки') {
if (originalText) {
replaceData(`[Звонок | ${transactionDate}] ${playerName} - Написал игроку $1: "$2"`, /^.* > (.*)\[.*\]: (.*)$/);
}
} else if (categoryName == 'Трейды') {
if (originalText.includes('начат')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Начал трейд`);
} else if (originalText.includes('не завершился')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Обмен отменен`);
} else if (originalText.includes('успешно закончен')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Обмен завершен`);
} else if (originalText.includes('добавил предмет')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Добавил предмет $1 в обмен`, /^.*предмет (.*) \(.*$/);
} else if (originalText.includes('добавил') && originalText.includes('рублей')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Добавил $1 рублей в обмен`, /^.*добавил (.*) рублей$/);
} else if (originalText.includes('написал')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Написал "$1" в чате обмена`, /^.*написал: (.*)$/);
} else if (originalText.includes('+ Доплата')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей после обмена с игроком $1`, /^.*с игроком (.*) \[.*$/);
} else if (originalText.includes('- Доплата')) {
replaceData(`[Трейды | ${transactionDate}] ${playerName} - Доплатил ${transactionAmount.replace('-', '')} рублей за обмен с игроком $1`, /^.*с игроком (.*) \[.*$/);
}
} else if (categoryName == 'Ферма') {
if (originalText.includes('Арендовал на ферме')) {
replaceData(`[Ферма | ${transactionDate}] ${playerName} - Арендовал $1 за ${transactionAmount.replace('-', '')} рублей`, /^.*: (.*)$/);
} else if (originalText.includes('Арендовал') && originalText.includes('минут')) {
replaceData(`[Ферма | ${transactionDate}] ${playerName} - Арендовал $1 за ${transactionAmount.replace('-', '')} рублей`, /^.*Арендовал (.*)$/);
} else if (originalText.includes('Получил')) {
replaceData(`[Ферма | ${transactionDate}] ${playerName} - Получил ${transactionAmount} рублей за работу на ферме`);
}
} else if (categoryName == 'Штрафы') {
if (originalText.includes('Оплатил')) {
replaceData(`[Штрафы | ${transactionDate}] ${playerName} - Оплатил штраф(-ы) на сумму ${transactionAmount.replace('-', '')} рублей`);
}
}
else {
event.clipboardData.setData('text/plain', originalText);
event.preventDefault();
}
}
});
});
}
window.onload = function () {
formatTransactionsInTable();
};
const observer = new MutationObserver(function (mutationsList) {
formatTransactionsInTable();
});
const config = {
childList: true,
subtree: true
};
observer.observe(document.body, config);
}
function applySelectedStyle(color) {
function darkenColor(hexCode, percent) {
percent = Math.max(0, Math.min(100, percent));
var r = parseInt(hexCode.substring(1, 3), 16);
var g = parseInt(hexCode.substring(3, 5), 16);
var b = parseInt(hexCode.substring(5, 7), 16);
r = Math.round(r * (100 - percent) / 100);
g = Math.round(g * (100 - percent) / 100);
b = Math.round(b * (100 - percent) / 100);
var result = '#' + (r < 16 ? '0' : '') + r.toString(16)
+ (g < 16 ? '0' : '') + g.toString(16)
+ (b < 16 ? '0' : '') + b.toString(16);
return result;
}
const darkColor80 = darkenColor(color, 80);
const darkColor50 = darkenColor(color, 50);
const darkColor20 = darkenColor(color, 20);
const currentStyleElement = document.getElementById('customStyle');
if (currentStyleElement) {
currentStyleElement.remove();
}
const styleElement = document.createElement('style');
styleElement.id = 'customStyle';
styleElement.textContent = `
/* Selected Font Accent Stylesheet */
/* In development */
h1, h2, h3, h4, h5, h6 {
color: ${color} !important;
text-shadow: 0px 0px 10px ${color} !important;
}
#log-filter[data-v-2d76ca92] .form-label[data-v-2d76ca92] {
color: ${color} !important;
text-shadow: 0px 0px 2px ${color} !important;
}
#log-filter-section[data-v-2d76ca92] {
border: 1px solid ${color} !important;
}
.navbar-dark .navbar-nav .nav-link {
color: ${color} !important;
text-shadow: 0px 0px 2px ${color} !important;
}
#log-table[data-v-2d76ca92]>:not(:last-child)>:last-child>*, .table>:not(:last-child)>:last-child>* {
color: ${color} !important;
border-bottom: 1px solid ${color} !important;
}
#log-table[data-v-2d76ca92] .first-row[data-v-2d76ca92] td[data-v-2d76ca92] {
color: ${color} !important;
text-shadow: 0px 0px 2px ${color} !important;
}
#log-table[data-v-2d76ca92]>:not(caption)>*>*, .table-borderless>:not(caption)>*>* {
border-bottom: 1px solid ${color} !important;
}
#log-table[data-v-2d76ca92] .second-row[data-v-2d76ca92] td[data-v-2d76ca92] {
color: ${color} !important;
text-shadow: 0px 0px 2px ${color} !important;
}
.form-control {
color: ${color} !important;
border: 1px solid ${color} !important;
}
.form-control:focus {
box-shadow: 0px 0px 10px ${color} !important;
}
.multiselect.is-open.is-active {
box-shadow: 0px 0px 10px ${color} !important;
}
.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4), .input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu), .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3), .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
color: ${color} !important;
border: 1px solid ${color} !important;
background: ${darkColor80} !important;
}
.autoComplete_wrapper>input {
border: 1px solid ${color} !important;
}
.dp__input {
border: 1px solid ${color} !important;
color: ${color} !important;
}
.dp__calendar_header_item {
color: ${color} !important;
}
.dp__month_year_row {
color: ${color} !important;
}
.dp__overlay_cell_pad {
color: ${color} !important;;
}
body::-webkit-scrollbar-track {
background: ${darkColor80} !important;
}
body::-webkit-scrollbar-thumb {
background: linear-gradient(${darkColor80}, ${color}, ${darkColor80}) !important;
}
.style-button {
box-shadow: 0px 0px 10px ${darkColor20} !important;
border-color: ${darkColor20} !important;
color: ${darkColor20} !important;
}
.style-button:hover {
background: ${darkColor80} !important;
box-shadow: 0px 0px 10px ${color} !important;
border-color: ${color} !important;
color: ${color} !important;
}
.modal-content {
box-shadow: 0 0 10px ${color} !important;
}
.modal-header {
border: 1px solid ${color} !important;
}
.modal-body {
border: 1px solid ${color} !important;
color: ${color} !important;
}
.style-title-text {
color: ${color} !important;
}
.bg-success {
border: 1px solid ${color} !important;
box-shadow: 0px 0px 10px ${color} !important;
color: ${color} !important;
}
.bug-report-block {
border: 2px solid ${color} !important;
box-shadow: 0 0 5px ${color} !important;
}
.bug-report-button {
border: 2px solid ${color} !important;
box-shadow: 0 0 5px ${color} !important;
}
.bi-funnel {
color: ${color} !important;
}
.selector {
border: 1px solid ${color} !important;
box-shadow: 0 0 5px ${color} !important;
color: ${color} !important;
background: ${darkColor80} !important;
}
.selector:hover {
background: ${darkColor50} !important;
}
.selector option {
background: ${darkColor80} !important;
}
input[type=range] {
box-shadow: 0px 0px 5px ${color} !important;
}
input[type=range]::-webkit-slider-runnable-track {
border: 2px solid ${color} !important;
background-color: ${darkColor80} !important;
}
input[type=range]::-webkit-slider-runnable-track:hover {
background-color: ${darkColor50} !important;
}
input[type=range]::-webkit-slider-thumb {
background: ${darkColor80} !important;
}
input[type=range]::-webkit-slider-thumb:hover {
background: ${darkColor50} !important;
}
input[type="color"] {
border: 2px solid ${color} !important;
box-shadow: 0px 0px 5px ${color} !important;
}
input[type="color"]:hover {
box-shadow: 0px 0px 10px 2px ${color} !important;
}
.show-filter-btn[data-v-2d76ca92] {
background: ${darkColor80} !important;
}
.navbar-brand {
color: ${darkColor20} !important;
}
.navbar-brand:hover {
color: ${color} !important;
}
.bi-arrow-bar-right {
color: ${color} !important;
}
#next-page-btn[data-v-2d76ca92], .btn-secondary, .close-btn, .icon-btn, .show-filter-btn {
border-color: ${color} !important;
color: ${color} !important;
}
#prev-page-btn[data-v-2d76ca92], .btn-outline-secondary {
border-color: ${color} !important;
color: ${color} !important;
}
.bi-sort-down::before {
color: ${color} !important;
text-shadow: 0px 0px 2px ${color} !important;
}
.slider {
background-color: ${darkColor20} !important;
box-shadow: 0 0 5px ${darkColor20} !important;
transition: all .4s ease;
}
.slider:hover{
background-color: ${darkColor50} !important;
}
.slider:before {
background-color: ${color} !important;
}
input:checked + .slider {
background-color: ${darkColor80} !important;
}
input:checked + .slider:hover {
background-color: ${darkColor50} !important;
}
` ;
document.head.appendChild(styleElement);
}
function applyTextGradient() {
const textGradient = document.createElement('style');
textGradient.id = 'text-gradient';
textGradient.textContent = `
/* Text Gradient Stylesheet */
/* Gradient Keyframes (Animation) */
@keyframes gradientCategory {
0% {background-position: 0% 100%;}
100% {background-position: 1200% 100%;}
}
/* Table Nickname & Category Gradient */
.td-category[data-v-2d76ca92] a[data-v-2d76ca92] {
background: linear-gradient(45deg, #00ffff, #0045ff, #00ffff);
background-size: 150% 150%;
animation: gradientCategory 5s linear infinite;
color: transparent !important;
-webkit-background-clip: text;
font-style: italic;
font-weight: 700;
text-decoration: none;
text-shadow: 0px 0px 10px #08f;
padding-right: 3px;
}
.td-player-name[data-v-2d76ca92] a[data-v-2d76ca92] {
background: linear-gradient(45deg, #ffff00, #ff4400, #ffff00);
background-size: 150% 150%;
animation: gradientCategory 5s linear infinite;
color: transparent !important;
-webkit-background-clip: text;
font-style: italic;
font-weight: 700;
text-decoration: none;
text-shadow: 0px 0px 10px #f80;
padding-right: 3px;
}
/* "Black Logs" Gradient */
.navbar-brand {
background: linear-gradient(45deg, #00ccff, #ff4400, #00ccff);
background-size: 150% 150%;
animation: gradientCategory 5s linear infinite;
color: transparent !important;
-webkit-background-clip: text;
font-style: italic;
font-weight: 700;
text-decoration: none;
text-shadow: 0px 0px 10px #888;
padding-right: 3px;
}
`;
document.head.appendChild(textGradient);
}
function removeTextGradient() {
var textGradient = document.querySelector('#text-gradient');
document.head.removeChild(textGradient);
}
function applyMenuStyles() {
const pseudoClasses = document.createElement('style');
pseudoClasses.id = 'elements-pseudo-classes';
pseudoClasses.textContent = `
/* Style Menu Elements Stylesheet */
/* Style Button CSS + Pseudo Classes */
.style-button {
color: #ffffff;
background: transparent;
border: 3px solid #ffffff;
border-radius: 10px;
box-shadow: 0px 0px 10px #ffffff;
width: 10%;
transition-duration: 0.5s;
}
.style-button:hover {
background: #222;
box-shadow: 0px 0px 10px #aaaaff;
border-color: #aaaaff;
color: #aaaaff;
}
/* Style Title Text CSS */
.style-title-text {
font-size: 24px;
color: #fff;
font-weight: 600;
}
/* Switch CSS + Pseudo Classes */
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
padding-left: 20px;
}
.switch input { display: none; }
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #aaaaaa;
box-shadow: 0 0 5px #aaaaaa;
transition: all .4s ease;
}
.slider:hover{
background-color: #666666;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: #cccccc;
box-shadow: 0 0 5px #000000;
transition: all .4s ease;
}
input:checked + .slider {
background-color: #222222;
}
input:checked + .slider:hover {
background-color: #666666;
}
input:focus + .slider {
box-shadow: 0 0 5px #222222;
background-color: #444444;
}
input:checked + .slider:before {
transform: translateX(26px);
}
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}
/* Tooltip CSS */
.tooltip-style {
position: relative;
display: inline-block;
border-bottom: 1px dotted;
}
.tooltip-style .tooltip-style-text {
visibility: hidden;
background-color: #222222;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px;
position: absolute;
z-index: 1;
width: 300px;
bottom: 100%;
left: 50%;
margin-left: -150px;
margin-bottom: 10px;
transition: opacity 0.3s;
opacity: 0;
font-size: 16px;
}
.tooltip-style:hover .tooltip-style-text {
visibility: visible;
opacity: 0.95;
}
/* Selector CSS + Pseudo Classes */
.selector {
background: #222222;
border: 1px solid #cccccc;
border-radius: 20px;
box-shadow: 0 0 5px #cccccc;
color: #cccccc;
cursor: pointer;
font-size: 18px;
margin-right: 10px;
margin-top: 25px;
padding: 4px;
text-align: center;
width: 40%;
transition-duration: 0.5s;
}
.selector:hover {
background: #444444;
color: #ffffff;
box-shadow: 0 0 5px #ffffff;
}
.selector option{
background: #222222;
}
/* Slider CSS + Pseudo Classes */
input[type=range] {
width: 40%;
border-radius: 10px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
box-shadow: 0px 0px 5px #cccccc;
}
input[type=range]::-webkit-slider-runnable-track {
border-radius: 10px;
height: 10px;
border: 2px solid #cccccc;
background-color: #222222;
transition-duration: 0.5s;
}
input[type=range]::-webkit-slider-runnable-track:hover {
border-radius: 10px;
height: 10px;
border: 2px solid #cccccc;
background-color: #444444;
}
input[type=range]::-webkit-slider-thumb {
background: #222222;
border: 1px solid #cccccc;
box-shadow: 0px 0px 2px #cccccc;
border-radius: 25px;
cursor: pointer;
width: 15px;
height: 30px;
-webkit-appearance: none;
margin-top: -10px;
transition-duration: 0.5s;
}
input[type=range]::-webkit-slider-thumb:hover {
background: #444444;
border: 1px solid #ffffff;
box-shadow: 0px 0px 2px #000000;
border-radius: 25px;
cursor: pointer;
width: 20px;
height: 40px;
-webkit-appearance: none;
margin-top: -15px;
}
input[type=range]::-moz-range-track {
border-radius: 10px/100%;
height: 5px;
border: 1px solid cyan;
background-color: #fff;
}
input[type=range]::-moz-range-thumb {
background: #ecf0f1;
border: 1px solid cyan;
border-radius: 10px/100%;
cursor: pointer;
}
/* Color Pickers CSS + Pseudo Classes */
.color-picker {
margin-top: 25px;
margin-right: 10px;
width: 40%;
vertical-align: bottom;
}
input[type="color"]::-webkit-color-swatch-wrapper {
padding: 2px;
}
input[type="color"]::-webkit-color-swatch {
border: none;
border-radius: 20px;
}
input[type="color"] {
-webkit-appearance: none;
border: 2px solid #ffffff;
background: #000;
border-radius: 20px;
overflow: hidden;
outline: none;
cursor: pointer;
box-shadow: 0px 0px 5px #ffffff;
transition-duration: 0.5s;
}
input[type="color"]:hover {
-webkit-appearance: none;
border: 2px solid #ffffff;
background: #444444;
border-radius: 20px;
overflow: hidden;
outline: none;
cursor: pointer;
box-shadow: 0px 0px 10px 2px #ffffff;
}
/* Adding Text CSS */
.addingText {
font-size: 20px;
font-style: italic;
font-weight: 800;
vertical-align: middle;
}
/* Bug Report CSS */
.bug-report-block {
margin-top: 25px;
margin-bottom: 5px;
padding: 10px;
border: 2px solid #fff;
border-radius: 20px;
box-shadow: 0 0 5px #fff;
}
.bug-report-button {
width: 7%;
margin-right: 5%;
transition-duration: 0.5s;
border: 2px solid #fff;
border-radius: 50%;
box-shadow: 0 0 5px #fff;
}
.bug-report-button:hover {
filter: brightness(0.5);
}
`;
document.head.appendChild(pseudoClasses);
}
function applySavedColors() {
const savedNick = localStorage.getItem('playerNameColor');
const savedCategory = localStorage.getItem('categoryColor');
const savedColors = document.createElement('style');
savedColors.id = 'stored-NickCategory-Colors';
savedColors.textContent = `
/* Saved Nickname & Category Stylesheet */
/* Nickname */
.td-player-name[data-v-2d76ca92] a[data-v-2d76ca92] {
color: ${savedNick};
text-shadow: 0px 0px 1px ${savedNick};
}
/* Category */
.td-category[data-v-2d76ca92] a[data-v-2d76ca92] {
color: ${savedCategory};
text-shadow: 0px 0px 1px ${savedCategory};
}
`;
document.head.appendChild(savedColors);
}
function applyBodyStyle() {
const bodyStyle = document.createElement('style');
bodyStyle.id = 'main-body-theme';
bodyStyle.textContent = `
/* Main Page Stylesheet */
/* Page Heading */
h1,
h2,
h3,
h4,
h5,
h6 {
color: #fff;
text-shadow: 0px 0px 10px #fff;
}
.navbar-dark .navbar-brand,
.navbar-dark .navbar-brand:focus,
.navbar-dark .navbar-brand:hover {
color: #fff;
font-weight: 900;
transition-duration: 0.5s;
}
.bg-success {
background: #000 !important;
border: 1px solid #fff;
box-shadow: 0px 0px 10px #fff;
}
.badge {
border-radius: 7px;
color: #fff;
font-weight: 500;
}
.navbar-dark .navbar-nav .nav-link {
color: #fff;
text-shadow: 0px 0px 10px #fff;
}
.bi-arrow-left::before {
color: #fff;
}
.show-filter-btn[data-v-2d76ca92] {
background: #333;
border-bottom-left-radius: 10px;
}
.alert[data-v-0c0e47d2] {
border-radius: 20px;
box-shadow: 0 0 10px 2px #f00;
}
/* Page Body */
.bg-dark {
bs-bg-opacity: 0;
background: #000 !important;
}
#game-logs-app {
background: #000;
}
body {
background-color: #000;
background-size: 100%;
}
body::-webkit-scrollbar {
width: 16px;
}
body::-webkit-scrollbar-track {
background: #222;
}
body::-webkit-scrollbar-thumb {
background: #fff;
}
.accessible-servers .page-intro {
color: #0ff;
text-align: center;
text-shadow: 0px 0px 10px #fff;
}
.accessible-servers .game-logs-link {
font-size: 1.5rem;
text-shadow: 0px 0px 10px #f0f;
transition-duration: 0.5s;
}
a {
color: #faf;
text-decoration: none;
}
a:hover {
color: #f0f;
}
/* Page Footer */
#next-page-btn[data-v-2d76ca92],
.btn-secondary,
.close-btn,
.icon-btn,
.show-filter-btn {
background-color: #222;
border-color: #fff;
color: #fff;
}
#next-page-btn[data-v-2d76ca92]:hover,
.btn-secondary:hover,
.close-btn:hover,
.icon-btn:hover,
.show-filter-btn:hover {
background-color: #444;
border-color: #aaa;
color: #fff;
}
#prev-page-btn[data-v-2d76ca92],
.btn-outline-secondary {
border-color: #fff;
color: #fff;
}
#prev-page-btn[data-v-2d76ca92]:hover,
.btn-outline-secondary:hover {
background-color: #444;
border-color: #aaa;
color: #fff;
}
/* Logs Table - Main */
#log-table[data-v-2d76ca92]>:not(:last-child)>:last-child>*,
.table>:not(:last-child)>:last-child>* {
border: 1px solid #111;
border-bottom: 1px solid #fff;
background: #111;
color: #fff;
}
#log-table[data-v-2d76ca92] .first-row[data-v-2d76ca92] td[data-v-2d76ca92] {
text-align: center;
background: #111;
color: #fff;
text-shadow: 0px 0px 2px #fff;
}
#log-table[data-v-2d76ca92] .second-row[data-v-2d76ca92] td[data-v-2d76ca92] {
padding: 0.5rem 0.5rem 0.5rem 1.5rem;
background: #000;
color: #fff;
text-shadow: 0px 0px 2px #fff;
}
#log-table[data-v-2d76ca92]>:not(caption)>*>*,
.table-borderless>:not(caption)>*>* {
border: 1px solid rgba(0, 0, 0, 0);
border-bottom: 1px solid #fff;
}
#log-table[data-v-2d76ca92] .first-row[data-v-2d76ca92] td[data-v-2d76ca92] {
border: 1px solid rgba(0, 0, 0, 0);
text-align: center;
}
/* Logs Table - Strokes */
.td-category[data-v-2d76ca92] a[data-v-2d76ca92] {
color: #08f;
-webkit-background-clip: text;
font-style: italic;
font-weight: 700;
text-decoration: none;
text-shadow: 0px 0px 1px #08f;
padding-right: 3px;
}
.td-player-name[data-v-2d76ca92] a[data-v-2d76ca92] {
color: #f80;
-webkit-background-clip: text;
font-style: italic;
font-weight: 700;
text-decoration: none;
text-shadow: 0px 0px 1px #f80;
padding-right: 3px;
}
.td-index[data-v-2d76ca92] {
background: linear-gradient(90deg, rgba(51, 51, 51, 1) 0%, rgba(17, 17, 17, 1) 100%) !important;
color: #fff;
}
.bi-sort-down::before {
color: #f90;
text-shadow: 0px 0px 2px #f90;
}
.bi-sort-up::before {
color: #f90;
text-shadow: 0px 0px 2px #f90;
}
/* Logs Filter - Main */
#log-filter-section[data-v-2d76ca92] {
background: #000;
border: 1px solid #fff;
border-radius: 25px;
height: 1000px;
}
#log-filter[data-v-2d76ca92] .form-label[data-v-2d76ca92] {
color: #fff;
font-weight: 500;
}
#log-filter[data-v-2d76ca92] .close-btn[data-v-2d76ca92] {
height: 41px;
background: #000;
border-bottom-left-radius: 10px;
border: 1px solid #000;
}
.btn-primary,
.submit-btn {
background-color: #000;
border: 3px solid #0af;
border-radius: 10px;
color: #0ff;
}
.btn-primary:hover,
.submit-btn:hover {
background-color: #033;
border-color: #fff;
color: #fff;
transition: all .2s ease-in-out;
}
.btn-outline-danger {
border: 3px solid #f00;
color: #f00;
border-radius: 10px;
}
.btn-outline-danger:hover {
background-color: #900;
border-color: #fff;
color: #fff;
transition: all .2s ease-in-out;
}
.bi-question-circle-fill::before {
color: #666;
text-shadow: 0px 0px 10px #000;
}
strong {
color: #0ff;
}
/* Logs Filter - Strokes */
.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),
.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),
.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),
.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
background: #111;
color: #fff;
border: 1px solid #fff;
}
.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback):not(.field-error) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
margin-left: -1px;
background: #000;
color: #fff;
}
.multiselect-search {
background: #000;
border: 0;
bottom: 0;
box-sizing: border-box;
color: #fff;
left: 0;
outline: none;
width: 100%;
}
.multiselect-option {
align-items: center;
box-sizing: border-box;
cursor: pointer;
background: #000;
text-decoration: none;
}
.multiselect .multiselect-option.is-pointed {
background-color: #222;
color: #fff;
}
.multiselect .multiselect-option.is-pointed.is-selected {
background-color: #666;
color: #fff;
}
.multiselect .multiselect-option.is-selected {
background-color: #444;
color: #fff;
}
.multiselect-dropdown::-webkit-scrollbar {
width: 12px;
}
.multiselect-dropdown::-webkit-scrollbar-track {
background: #222;
border-left: 1px solid #fff;
}
.multiselect-dropdown::-webkit-scrollbar-thumb {
background-color: #fff;
border-radius: 20px;
border: 1px solid #222;
}
.multiselect.is-open.is-active {
box-shadow: 0px 0px 10px #fff;
}
.dropdown-menu {
background-color: #222;
}
.dropdown-menu show {
position: absolute;
inset: 0px auto auto 0px;
margin: 0px;
transform: translate(-1px, 40px);
background: #333;
}
.dropdown-item:focus,
.dropdown-item:hover {
background-color: #444;
color: #1e2125;
}
.autoComplete_wrapper>input {
background-color: #000;
background-origin: border-box;
background-position: left 1.05rem top 0.8rem;
background-repeat: no-repeat;
background-size: 1.4rem;
border: 1px solid #fff;
border-radius: 4px;
box-sizing: border-box;
color: #f90;
outline: none;
transition: all .4s ease;
width: 100%;
}
.autoComplete_wrapper>input:focus {
border: 1px solid #f90;
color: #f90;
}
.autoComplete_wrapper>input:hover {
color: #a60;
transition: all .3s ease;
}
.autoComplete_wrapper>ul>li {
background-color: #000;
color: #fff;
transition: all .2s ease;
}
.autoComplete_wrapper>ul>li:hover,
.autoComplete_wrapper>ul>li[aria-selected=true] {
background-color: #222;
}
.autoComplete_wrapper>ul>li mark {
background-color: transparent;
color: #f90;
font-weight: 700;
}
.autoComplete_wrapper>ul::-webkit-scrollbar {
width: 12px;
}
.autoComplete_wrapper>ul::-webkit-scrollbar-track {
background: #222;
border-left: 1px solid #fff;
}
.autoComplete_wrapper>ul::-webkit-scrollbar-thumb {
background-color: #fff;
border-radius: 20px;
border: 1px solid #222;
}
.form-control {
background-color: #000;
border: 1px solid #fff;
color: #fff;
font-weight: 400;
transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
width: 100%;
}
.form-control:focus {
background-color: #000;
border-color: #fff;
box-shadow: 0px 0px 10px #fff;
color: #fff;
}
textarea.form-control {
min-height: 100px;
resize: none;
}
.lookup-symbol[data-v-2d76ca92] {
color: #fff;
font-weight: 500;
text-shadow: 0px 0px 10px #fff;
}
.lookup-comment[data-v-2d76ca92] {
color: #fff;
font-weight: 400;
text-shadow: 0px 0px 10px #fff;
}
.dp__input {
background-color: #111;
border: 1px solid #fff;
border-radius: 5px;
color: #fff;
transition: border-color .2s cubic-bezier(.645, .045, .355, 1);
width: 100%;
}
.dp__input_icons {
color: #0ff;
}
.dp__month_year_row {
background: #111;
color: #fff;
}
.dp__inner_nav svg {
color: #0ff;
}
.dp__calendar_header,
.dp__calendar_wrap {
background: #111;
}
.dp__calendar_header_item {
color: #fff;
}
.dp__cell_inner {
color: #fff;
}
.dp__active_date,
.dp__range_end,
.dp__range_start {
background: #666;
color: #fff;
}
.dp__date_hover:hover,
.dp__date_hover_end:hover,
.dp__date_hover_start:hover {
background: #444;
color: #fff;
transition: all .5s ease-in-out;
}
.dp__cell_disabled,
.dp__cell_offset {
color: #444;
}
.dp__button {
background: #222;
}
.dp__button_bottom {
background: #222;
color: #0ff;
}
.dp__button:hover {
background: #333;
color: #077;
transition: all .5s ease-in-out;
}
.dp__month_year_select:hover {
background: #222;
color: #fff;
transition: all .5s ease-in-out;
}
.dp__overlay_cell,
.dp__overlay_cell_active {
background: #444;
}
.dp__overlay_container {
background: #000;
}
.dp__overlay_cell_disabled,
.dp__overlay_cell_disabled:hover {
background: #111;
color: #444;
}
.dp__time_display {
color: #aaa;
}
.dp__time_display:hover {
background: #111;
color: #fff;
transition: all .3s ease-in-out;
}
.dp__inc_dec_button:hover {
background: #222;
color: #0ff;
transition: all .3s ease-in-out;
}
.dp__cell_in_between,
.dp__overlay_cell:hover {
background: #666;
color: #fff;
transition: all .3s ease-in-out;
}
.dp__overlay_cell_pad {
padding: 10px 0;
color: #999;
}
.dp__inner_nav:hover {
background: #333;
color: #fff;
transition: all .3s ease-in-out;
}
.dp__today {
border: 1px solid #fff;
}
#playerNameInput::placeholder {
color: #a60;
}
/* Loading Overlay */
#loading-overlay[data-v-173ec149] {
height: 100%;
width: 100%;
}
#loading-overlay-heading[data-v-173ec149] {
font-weight: 500;
letter-spacing: 1px;
text-align: center;
text-transform: uppercase;
background: linear-gradient(90deg, #ffffff, #444444, #ffffff);
background-size: 150% 150%;
background-clip: text;
-webkit-background-clip: text;
color: transparent !important;
filter: saturate(0);
animation: textGradient 5s linear infinite;
text-shadow: none !important;
}
#loading-overlay[data-v-173ec149] .spinner[data-v-173ec149] {
border-width: 0.375rem;
color: #fff;
height: 4rem;
width: 4rem;
}
#loading-overlay-container[data-v-173ec149] {
background-color: #000;
height: 100%;
justify-content: center;
width: 100%;
}
/* Modal Dialog */
.modal [type=button],
.modal [type=submit] {
margin-left: 0.5rem;
filter: invert(1);
}
.modal-header {
background: #000;
border: 1px solid #fff;
align-items: center;
border-bottom: 1px solid #dee2e6;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
}
.modal-body {
background: #000;
border: 1px solid #fff;
color: #fff;
position: relative;
border-bottom-left-radius: 25px;
border-bottom-right-radius: 25px;
}
.modal-content {
border-radius: 25px;
box-shadow: 0 0 10px #fff;
}
.modal-open {
padding-right: 0px !important;
}
.modal-backdrop {
height: 100%;
width: 100%;
}
.modal.fade.show {
padding-right: 80px !important;
padding-left: 80px !important;
}
.alert-danger,
.alert-modal.failure .modal-content,
.default-error-page .exception {
background-color: #000;
border: 5px solid #f11;
border-radius: 50px;
color: #fff;
}
.fade {
transition: opacity .15s linear;
backdrop-filter: blur(5px);
}
/* Media & Gradient */
@keyframes textGradient {
0% {
background-position: 0% 50%;
}
100% {
background-position: 1200% 50%;
}
}
#placeholder-pic[data-v-9c1e68e2] {
display: block;
opacity: 0;
margin: auto;
}
#placeholder-msg[data-v-9c1e68e2] {
color: #0aa;
text-align: center;
}
#content-placeholder[data-v-9c1e68e2] {
background-image: url(https://snipboard.io/8kBudo.jpg);
background-repeat: no-repeat;
background-size: contain;
background-position: center;
}
`;
document.head.appendChild(bodyStyle);
}
function applyNewFonts() {
const fontStyles = document.createElement('style');
fontStyles.id = 'import-fonts';
fontStyles.textContent = `
/* Import Fonts Stylesheet */
/* Imported Fonts:
--- Bad Script ---
--- Comfortaa ---
--- Fira Sans ---
--- Marmelad ---
--- Montserrat ---
--- Neucha ---
--- Play ---
--- Roboto ---
--- Sofia Sans ---
--- Ububntu --- */
/* Powered by Google Fonts API */
@import url('https://fonts.googleapis.com/css2?family=Bad+Script&family=Comfortaa&family=Fira+Sans&family=Marmelad&family=Montserrat&family=Neucha&family=Play&family=Roboto:ital@1&family=Sofia+Sans&family=Ubuntu&display=swap');`;
document.head.appendChild(fontStyles);
}
function replaceTableHeading() {
const titleElement = document.querySelector('div.container-fluid span.badge.bg-success');
const tableHeading = document.querySelector('#log-table-heading');
if (titleElement && tableHeading) {
tableHeading.textContent += ' - ' + titleElement.textContent;
};
}
function replaceSpinnerImage() {
const spinnerElement = document.querySelector('div.spinner.spinner-border[data-v-173ec149=""]');
if (spinnerElement) {
const gifImageUrl = 'https://rb.ru/media/upload_tmp/2018/d1.gif';
const gifImage = document.createElement('img');
gifImage.id = 'replaced-loading-image';
gifImage.src = gifImageUrl;
gifImage.style.width = '160px';
gifImage.style.height = '120px';
gifImage.style.filter = 'saturate(0)';
spinnerElement.replaceWith(gifImage);
}
}
function addListenersAttributes() {
const inputNameElement = document.querySelector('#playerNameInput');
const transactionData = document.querySelector('#log-filter-form__transaction-desc');
const playerIdElement = document.querySelector('#log-filter-form__player-id');
const playerIpElement = document.querySelector('#log-filter-form__player-ip');
const transactionAmountElement = document.querySelector('#log-filter-form__transaction-amount');
const transactionAfterElement = document.querySelector('#log-filter-form__balance-after');
const otherElement = document.querySelector('.btn.btn-primary');
inputNameElement.addEventListener('keydown', function (event) {
if (event.key === 'Enter' || event.key === 'Tab') {
const otherElement = document.querySelector('.btn.btn-primary');
otherElement.click();
}
});
transactionData.addEventListener('keydown', function (event) {
if (event.key === 'Enter' || event.key === 'Tab') {
event.preventDefault();
otherElement.click();
};
});
playerIdElement.setAttribute('autocomplete', 'off');
playerIpElement.setAttribute('autocomplete', 'off');
transactionAmountElement.setAttribute('autocomplete', 'off');
transactionAfterElement.setAttribute('autocomplete', 'off');
}
function setPageTitle() {
const titleElement = document.querySelector('div.container-fluid span.badge.bg-success');
document.title += ' - ' + titleElement.textContent;
}
function scriptInit() {
setPageTitle();
replaceTableHeading();
applyNewFonts();
applyBodyStyle();
replaceSpinnerImage();
applySavedColors();
const styleButton = createStyleButton('div.container-fluid span.badge.bg-success');
const styleContainerBg = createStyleContainerBg('main');
applyMenuStyles();
addListenersAttributes();
}
})();