// ==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;
}
})();