Скрипт для форума BlackRussia

Автоматизация обработки тем

// ==UserScript==
// @name         Скрипт для форума BlackRussia
// @namespace    http://tampermonkey.net/
// @version      2.1
// @description  Автоматизация обработки тем
// @author       Valik
// @match        https://forum.blackrussia.online/threads/*
// @icon         https://klike.net/uploads/posts/2021-12/1638345168_12.jpg
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    const PREFIXES = {
        UNACCEPT: 4,
        ACCEPT: 8,
        PIN: 2,
        SPECADM: 11,
        MAINADM: 12,
        CLOSE: 7,
        TEXY: 13,
        REALIZOVANO: 5,
        VAJNO: 1,
        OJIDANIE: 14,
        PREFIKS: 0,
        KACHESTVO: 15,
        RASSMOTRENO: 9,
        RESHENO: 10 // добавим на всякий случай
    };

    const buttons = [
        {
	title: 'Приветсвие',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'текст <br><br>' +
    'Закрыто. [/FONT][/SIZE]',
 },
{

    	title: 'Ссылку на вк',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'Приложите в следующей теме ссылку на вашу VK Страницу. <br><br>' +
    'Закрыто. [/FONT][/SIZE]',
    	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Свяжитесь со мной',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Свяжитесь со мной вконтакте: https://vk.com/77oleinik77<br><br>" +
	'На рассмотрении.[/FONT]',
	prefix: PIN_PREFIX,
	status: true,
},
{
	title: 'ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠᅠ|-(--(-(-> Жалобы на администрацию <-)-)--)-| ᅠ ᅠ ᅠ    ᅠ  ᅠ ᅠᅠ   ᅠᅠ ᅠ ᅠᅠᅠ',
},
{
	title: 'На рассмотрении',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваша жалоба взята на рассмотрение. Ожидайте ответа, просьба не создавать копии темы.<br><br>" +
	'Ожидайте ответа.[/FONT]',
	prefix: PIN_PREFIX,
	status: true,
},
{
    	title: 'Ссылку на тему',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" Приложите, пожалуйста, в следующей теме ссылку на тему.[/CODE]<br><br>" +
	'Отказано, закрыто.[/FONT][/SIZE]',

    	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
        	title: 'Ответ дан ранее',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" Ранее вам давался ответ на идентичную тему, чтобы не получить блокировку аккаунта перестаньте писать подобные темы.[/CODE]<br><br>" +
	'Отказано, закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{

        	title: 'Другой сервер',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" Составьте тему на форуме вашего сервера.<br><br>" +
	'Отказано, закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Жалоба составлена не по форме',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваша жалоба составлена не по форме. Внимательно прочитайте правила составления жалобы на Админстратрацию:[URL='https://forum.blackrussia.online/index.php?threads/Правила-подачи-жалоб-на-администрацию.3429349/']*Клик*[/URL] <br>В названии темы необходимо написать: “Nick_Name администратора | Суть жалобы <br><br>Форма для составление темы<br>[ICODE]1. Ваш Nick_Name:<br>2. Nick_Name администратора:<br>3. Дата выдачи/получения наказания:<br>4. Суть жалобы:<br>5. Доказательство:[/ICODE]<br><br>" +
	'Отказано, закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Запрос доказательств',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"У администратора были запрошены доказательства.<br><br>" +
	'На рассмотрении[/FONT]',
	prefix: PIN_PREFIX,
	status: true,
},
{
	title: 'Наказание выдано верно',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Доказательства предоставлены, наказание выдано верно.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{

    	title: 'Отсуствуют док-ва',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Приложите доказательства в следующей теме.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Ошибка Админа',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'Администратор допустил ошибку, приносим свои извинения. Наказание снято.[/SIZE]<br><br>' +
	'Закрыто.[/FONT]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
	title: 'Беседа с администратором',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"С данным администратором будет проведенна профилактическая беседа.<br><br>" +
	'Решено.[/FONT]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
	title: 'Передача ГА',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'Ваша жалоба передана Главному Администратору.<br><br>'+
	'Ожидайте ответа.[/FONT][/SIZE]',
	prefix: MAINADM_PREFIX,
	status: true,
},
{
    	title: 'Передача СА',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'Ваша жалоба передана Специальной Администрации.<br><br>'+
	'Ожидайте ответа.[/FONT][/SIZE]',
	prefix: SPECADM_PREFIX,
	status: true,
},
{
	title: 'В технический раздел',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваша тема не относиться к жалобам на администрацию, вам в технический раздел нашего сервера.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'В жалобы на тех',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Вам было выдано наказание от технического специалиста, обратитесь в раздел 'Жалобы на технических специалистов' нашего сервера.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Жалобы от 3-его лица',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Жалоба оформлена от 3-го лица.<br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Присутвуют редактирования',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Доказательства должны быть в первоначальном виде, без присутствия редактирования с помощью сторонних программ.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Нет окна блокировки',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Без окна о блокирвке тема не подлежит рассмотрению - создайте новую тему, приложив окно блокировки с фото-хостинга<br>[URL='https://yapx.ru/']yapx.ru[/URL],<br>[URL='https://imgur.com/']imgur.com[/URL],<br>[URL='https://www.youtube.com/']youtube.com[/URL],<br>[URL='https://imgbb.com']ImgBB.com[/URL]<br>(все кликабельно).<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Нет /time',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"В вашем доказательстве отсутствует /time.<br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Прошло более 48 часов',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваша жалоба рассмотрению не подлежит, так как с момента выдачи наказания прошло более 48 часов.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'В обжалования',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Обратитесь в раздел Обжалование наказаний  нашего сервера.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Доква с соц сетей не принимаются',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Доказательства путем использования соц.сетей ( ВК, Инстаграм ) запрещенны.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Не относится к разделу',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Созданная тема никоим образом не относится к назначению и задачам данного раздела.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Дублирование темы',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Данная тема является дубликатом предыдущей, при 3-ем дублировании ваш форумный аккаунт будет заблокирован.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Недостаточно доказательств',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Недостаточно доказательств на нарушение от данного администратора.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ   ᅠ ᅠ ᅠᅠ|-(--(-(-> Обжалование наказаний <-)-)--)-| ᅠ ᅠ ᅠ  ᅠ   ᅠ   ᅠ ᅠ ᅠ ᅠᅠ ᅠ ᅠᅠᅠ',
},
{
	title: 'Обжалование на рассмотрении',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваше обжалование взято на рассмотрение. Не нужно создавать копии этой темы.<br><br>" +
	'Ожидайте ответа.[/FONT]',
	prefix: MAINADM_PREFIX,
	status: true,
},
{
    	title: 'Передача ГА',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'Ваше обжалование передано Главному Администратору.<br><br>'+
	'Ожидайте ответа.[/FONT][/SIZE]',
	prefix: MAINADM_PREFIX,
	status: true,
},
{
    	title: 'Передача СА',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	'Ваше обжалование передано Специальной Администрации.<br><br>'+
	'Ожидайте ответа.[/FONT][/SIZE]',
	prefix: SPECADM_PREFIX,
	status: true,
},
{
	title: 'В жалобы на админов',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Если вы считаете что наказание было выдано неверно обратитесь в раздел жалоб на администрацию.<br><br>" +
	'Отказано.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
    	title: 'П/П/В',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Приложите скриншоты привязок аккаунта в следующей теме.<br><br>" +
	'Отказано.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{

	title: 'В жалобы на тех',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Вам было выдано наказание от технического специалиста, обратитесь в раздел 'Жалобы на технических специалистов' нашего сервера.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Жалобы от 3-его лица',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Обжалование составлено от 3-го лица.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Присутвуют редактирования',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Доказательства должны быть в первоначальном виде, без присутствия редактирования с помощью сторонних программ.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Нет окна блокировки',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Без окна о блокирвке тема не подлежит рассмотрению - создайте новую тему, приложив окно блокировки	 с фото-хостинга<br>[URL='https://yapx.ru/']yapx.ru[/URL],<br>[URL='https://imgur.com/']imgur.com[/URL],<br>[URL='https://www.youtube.com/']youtube.com[/URL],<br>[URL='https://imgbb.com']ImgBB.com[/URL]<br>(все кликабельно).<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Обжалование не по форме',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" Ваше обжалование составлено не по форме. Пожалуйста создайте новую тему соблюдая форму подачи:<br>Ваш никнейм и причина блокировки, пример:<br>Bruce_Banner | Массовый DM.<br>и форму обжалований:<br>[ICODE]1. Ваш Nick_Name:<br>2. Nick_Name администратора:<br>3. Дата выдачи/получения наказания:<br>4. Суть заявки:<br>5. Доказательство:[/ICODE]<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Доква с соц сетей не принимаются',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Доказательства с соц.сетей, не принимаются.<br>Загрузите их на фото-хостинг [URL='https://yapx.ru/']yapx.ru[/URL], [URL='https://imgur.com/']imgur.com[/URL], [URL='https://www.youtube.com/']youtube.com[/URL],[URL='https://imgbb.com']ImgBB.com[/URL](все кликабетильно).<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'В другой раздел',
	content: 	
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Созданная тема никоим образом не относится к назначению и задачам данного раздела.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
    	title: 'Бан айпи',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Воспользуйтесь VPN или смените сеть WIFI.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: CLOSE_PREFIX,
	status: false,
},
{
	title: 'Дублирование темы',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Дублирование темы. Если вы продолжите заниматься дублированием тем, ваш форумный аккаунт будет заблокирован.<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'НонРП Обман',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" Если вы готовы возместить ущерб игроку, свяжитесь с игроком для возврата имущества, затем он должен оформить обжалование.<br><br>" +
	' Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},	
{
	title: 'Наказание снято',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Рассмотрев ваше наказание, было принято решение о снятии вашего наказания.<br><br>" +
	'Одобрено, закрыто.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
    	title: 'ЧС Сервера',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Вы были вынесены из Чёрного Списка Сервера.<br><br>" +
	'Одобрено.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
        	title: 'ОЧСА',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Общий Чёрный Список Администрации снят.<br><br>" +
	'Одобрено.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
            	title: 'ОЧСП',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Общий Чёрный Список Проекта снят.<br><br>" +
	'Одобрено.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
                	title: 'ЧСДП',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Глобальная блокировка снята.<br><br>" +
	'Одобрено.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
                    	title: 'Блокировка аккаунта',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Блокировка аккаунта снята.<br><br>" +
	'Одобрено.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
	title: 'ранее был обжалован',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Вам уже было одобрено обжалование.<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Обжалованию не подлежит',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваше обжалование не будет рассматриваться и будет закрыто, так как ваше наказание соответствует причинам, которые обжалованию не подлежат: различные формы слива, продажа игровой валюты, махинации, целенаправленный багоюз, продажа, передача аккаунта, сокрытие ошибок, багов системы, использование стороннего программного обеспечения, распространение конфиденциальной информации, обман администрации.<br><br>" +
	'Отказано.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Отказано',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"В обжаловании отказано.<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
},
{
	title: 'Наказание сокращено',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Ваше обжалование было рассмотрено и принято решение о сокращении вашего наказания.<br><br>" +
	'Одобрено.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
},
{
    	title: 'Server',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Спасибо за обращение, блокировка снята.<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: RASSMOTRENO_PREFIX,
	status: false,
},
{
	title: 'В данный момент отказано',
	content: 
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" На данный момент времени ваше обжалование не имеет шансов получить положительный ответ. Спустя некоторое время подайте его повторно.<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: UNACCEPT_PREFIX,
	status: false,
    },
{
        	title: 'Слив админки (бан)',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Спасибо за обращение, администратор был снят с поста и занесён в Общий чёрный список проекта. Блокировка снята. <br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: RASSMOTRENO_PREFIX,
	status: false,
},
{
            	title: 'Слив админки (мут)',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Спасибо за обращение, администратор был снят с поста и занесён в Общий чёрный список проекта. Блокировка чата снята. <br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: RASSMOTRENO_PREFIX,
	status: false,
},
{
                	title: 'Слив админки (варн)',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Спасибо за обращение, администратор был снят с поста и занесён в Общий чёрный список проекта. Предупреждение снято. <br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: RASSMOTRENO_PREFIX,
	status: false,
},
{
    title: 'Смена ника',
    content:
        '[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
        'Аккаунт разблокирован. У вас есть 24 часа на смену игрового никнейма. После смены, пожалуйста, предоставьте скриншот в этой теме. Тема остаётся открытой.<br><br>' +
        'На рассмотрении.[/FONT][/SIZE]',
    prefix: MAINADM_PREFIX,
    status: true,
    close: false // Явно указываем, что тему НЕ закрывать
},
{

  	title: 'ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ   ᅠ ᅠ ᅠᅠ ᅠ ᅠ ᅠᅠ|-(--(-(-> Жалобы на игроков <-)-)--)-| ᅠ ᅠ ᅠ  ᅠ      ᅠ ᅠ ᅠ  ᅠ ᅠᅠ   ᅠᅠ ᅠ ᅠᅠᅠ',
},
{
    	title: 'Игрок будет наказан',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	"Игрок получит соответсвующее наказание.<br><br>" +
	'Закрыто.[/FONT][/SIZE]',
	prefix: ACCEPT_PREFIX,
	status: false,
    },
{
	title: 'Не по форме',
	content:
	'[SIZE=4][FONT=Verdana]Здравствуйте.<br><br>' +
	" Ваша жалоба составлена не по форме. Пожалуйста создайте новую тему соблюдая форму подачи:<br>Ваш никнейм и никнейм нарушителя, пример:<br>Timofei_Oleinik | OOC Обман.<br>и форму жалоб на игроков:<br>[ICODE]1. Ваш Nick_Name:<br>2. Nick_Name игрока:<br>3. Суть жалобы:<br>4. Доказательство:[/ICODE]<br><br>" +
	'Закрыто.[/FONT]',
	prefix: UNACCEPT_PREFIX,
	status: false,
}, 
 ];

    $(document).ready(() => {
        // Загрузка Handlebars
        $('body').append('<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>');

        // Добавление кнопок
        const buttonList = [
            ['На рассмотрение', 'pin', PREFIXES.PIN],
            ['Отказано⛔', 'unaccept', PREFIXES.UNACCEPT],
            ['Одобрено✅', 'accepted', PREFIXES.ACCEPT],
            ['Специальному Администратору💥', 'specadm', PREFIXES.SPECADM, true],
            ['Главному Администратору💥', 'mainadm', PREFIXES.MAINADM, true],
            ['Теху', 'Texy', PREFIXES.TEXY],
            ['Закрыто⛔', 'Zakrito', PREFIXES.CLOSE],
            ['Решено✅', 'Resheno', PREFIXES.RESHENO],
            ['Реализовано💫', 'Realizovano', PREFIXES.REALIZOVANO],
            ['Рассмотрено✅', 'Rassmotreno', PREFIXES.RASSMOTRENO],
            ['Ожидание', 'Ojidanie', PREFIXES.OJIDANIE],
            ['Без префикса⛔', 'Prefiks', PREFIXES.PREFIKS],
            ['Проверено контролем качества', 'Kachestvo', PREFIXES.KACHESTVO],
            ['Ответы💥', 'selectAnswer']
        ];

        buttonList.forEach(([label, id]) => addButton(label, id));

        const threadData = getThreadData();

        buttonList.forEach(([label, id, prefix, pin = false]) => {
            if (prefix !== undefined) {
                $(`button#${id}`).click(() => editThreadData(prefix, pin, false));
            }
        });

        $(`button#selectAnswer`).click(() => {
            XF.alert(buttonsMarkup(buttons), null, 'Выберите ответ:');
            buttons.forEach((btn, id) => {
                $(`button#answers-${id}`).click(() => pasteContent(id, threadData));
            });
        });
    });

    function addButton(name, id) {
        $('.button--icon--reply').before(
            `<button type="button" class="button rippleButton" id="${id}" style="margin: 3px;">${name}</button>`
        );
    }

    function buttonsMarkup(buttons) {
        return `<div class="select_answer">${buttons
            .map((btn, i) =>
                `<button id="answers-${i}" class="button--primary button rippleButton" style="margin:5px">
                    <span class="button-text">${btn.title}</span>
                 </button>`)
            .join('')}</div>`;
    }

    function pasteContent(id, data = {}) {
        const btn = buttons[id];
        const template = Handlebars.compile(btn.content);

        if ($('.fr-element.fr-view p').text() === '')
            $('.fr-element.fr-view p').empty();

        $('span.fr-placeholder').empty();
        $('div.fr-element.fr-view p').append(template(data));
        $('a.overlay-titleCloser').trigger('click');

        if ('prefix' in btn) {
            editThreadData(btn.prefix, btn.status || false, btn.close || false);
            $('.button--icon.button--icon--reply.rippleButton').trigger('click');
        }
    }

    function getThreadData() {
        const authorID = $('a.username')[0]?.dataset.userId || '';
        const authorName = $('a.username').html() || '';
        const hours = new Date().getHours();
        return {
            user: {
                id: authorID,
                name: authorName,
                mention: `[USER=${authorID}]${authorName}[/USER]`,
            },
            greeting: () =>
                hours <= 11 ? 'Доброе утро' :
                hours <= 15 ? 'Добрый день' :
                hours <= 21 ? 'Добрый вечер' :
                'Доброй ночи',
        };
    }

    function editThreadData(prefix, pin = false, close = false) {
        const threadTitle = $('.p-title-value')[0]?.lastChild?.textContent || document.title;

        const payload = {
            prefix_id: prefix,
            title: threadTitle,
            _xfToken: XF.config.csrf,
            _xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
            _xfWithData: 1,
            _xfResponseType: 'json'
        };

        if (pin) payload.sticky = 1;
        if (close) payload.discussion_open = 0;

        fetch(`${document.URL}edit`, {
            method: 'POST',
            body: getFormData(payload),
        }).then(() => location.reload());
    }

    function getFormData(data) {
        const formData = new FormData();
        Object.entries(data).forEach(([key, value]) => formData.append(key, value));
        return formData;
    }
})();