/*
!!! ОСТОРОЖНО !!!
Кнопки записывают предупреждения и отправляют запрос на ЗКАБ сразу, без
предупреждений и диалогов. Ссылка нажата -> действие выполнено.
Для отключения перехода к странице обсуждения участника, добавьте следующую
строчку в ваш common.js, после строки импорта этого крипта:
userwarner_noredirect = true;
*/
var userwarner_ls_warn = `Пожалуйста, не используйте Ваши [[Служебная:MyPage|личную страницу]] и [[Служебная:MyTalk|страницу обсуждения]] для размещения энциклопедических статей и черновиков. Эти две страницы должны служить Вашим средством общения с другими участниками по вопросам, касающимся совместной работы над энциклопедией (подробнее с их назначением и допустимым содержимым можно ознакомиться в разделе правил [[ВП:Личная страница участника]]). Энциклопедические статьи следует размещать в [[ВП:Пространство имён|основном пространстве имён]] Википедии, то есть, например, статья про ООО «Рога и копыта» должна называться ''«Рога и копыта (контора)»'', а не ''«Участник:Рога и копыта (контора)»'' и не ''«Обсуждение участника:Рога и копыта (контора)»''. Для размещения черновиков можно использовать [[ВП:ЛП|подстраницы участника]] вида <code>Участник:Имя'''/название'''</code>. Например, перейдя по специальной ссылке <code>[[Служебная:Mypage/Черновик|Участник:{{<includeonly>subst:</includeonly>PAGENAME}}/Черновик]]</code>, Вы сможете создать у себя подстраницу <code style="white-space:nowrap">/Черновик</code>. Кроме того, начинающие авторы могут воспользоваться [[ВП:ИНК|Инкубатором]] — проектом, предназначенным для помощи новичкам в написании их первых статей и ознакомления с основными принципами Википедии.
Обратите внимание, что статьи в Википедии должны удовлетворять определённым [[ВП:Значимость|критериям значимости]] и не содержать [[ВП:Спам|рекламы]]. Страницы, не соответствующие этим требованиям, будут [[ВП:КУ|предложены к удалению]] или даже [[ВП:КБУ|удалены без обсуждения]].
Мы рады приветствовать Вас в нашем проекте, где Вы можете внести свой вклад в создание энциклопедии. Возможно, Вам будет полезно познакомиться с некоторыми правилами работы в Википедии:
* [[Википедия:Как создать статью]]
* [[Википедия:Правила и указания]]
* [[Википедия:Как править статьи]]
* [[Википедия:Оформление статей]]
* [[Википедия:Личная страница участника]]
Спасибо за понимание.`;
var userwarner_bel_warn = `Здравствуйте! Пожалуйста, не заменяйте название государства «Белоруссия» → «Беларусь», так как в Википедии принято использовать первый вариант. Подробнее об этом Вы можете прочитать на странице '''[[Википедия:Список рекомендованных вариантов написания#Государства]]'''. По этой причине Ваши правки будут отменены.
: Подробнее о работе и правилах в Википедии Вы можете посмотреть здесь:
* [[Википедия:Первые шаги]]
* [[Википедия:Пять столпов]]
* [[Википедия:Список рекомендованных вариантов написания]]
Спасибо за понимание.`;
var userwarner_types = {
ls: {
sectionname: 'Личная страница участника',
message: userwarner_ls_warn,
summary: 'Нецелевая ЛС',
link_text: "Нецелевая ЛС"
},
auto: {
sectionname: 'Написание статей о себе',
message: "Здравствуйте. Хочу Вас уведомить, что написание статей о себе в Википедии не приветствуется согласно правилу [[ВП:АВТО]]. Спасибо за понимание.",
summary: 'Написание статей о себе',
link_text: "Написание статей о себе"
},
recreation: {
sectionname: 'Воссоздание удалённых страниц',
message: "Здравствуйте. Пожалуйста, не воссоздавайте только что удалённые страницы. Это не приведёт ни к чему, кроме их повторного удаления. Если Вы не согласны с удалением, можете оставить сообщение удалившему участнику на его странице обсуждения. Спасибо за понимание.",
summary: 'Воссоздание удалённых страниц',
link_text: "Воссоздание страниц"
},
bel: {
sectionname: '«Белоруссия» → «Беларусь»',
message: userwarner_bel_warn,
summary: 'Не Беларусь',
link_text: "Не Беларусь"
},
biog1: {
sectionname: 'Предупреждение от {' + '{подст:сегодня}' + '}: биографии современников',
message: '{{uw-biog1}}',
summary: 'Биографии современников',
link_text: "Без АИ в СОВР"
},
v1: {
sectionname: 'Сообщение от {' + '{подст:сегодня}' + '}',
message: '{{uw-vandalism1}}',
summary: 'Вандализм (мягкое)',
link_text: "Ванд ПДН"
},
v2: {
sectionname: 'Предупреждение от {' + '{подст:сегодня}' + '}: вандализм',
message: '{{uw-vandalism2}}',
summary: 'Вандализм',
link_text: "Ванд"
},
v3: {
sectionname: 'Предупреждение от {' + '{подст:сегодня}' + '}: вандализм',
message: '{{uw-vandalism3}}',
summary: 'Вандализм (последнее)',
link_text: "Ванд последнее"
},
v4im: {
sectionname: 'Предупреждение от {' + '{подст:сегодня}' + '}: вандализм',
message: '{{uw-vandalism4im}}',
summary: 'Вандализм (первое и последнее)',
link_text: "Ванд первое и последнее"
},
report: {
link_text: "На ЗКАБ"
}
};
function userwarner_waiting_html(text) {
return `<div style="align-items: center;position: fixed;\
display: flex;justify-content: center;top: 50%;left: 50%;width: 300px;\
height: 80px;margin: -40px 0 0 -150px;\
background-color: #ffe8bf;font-size: 14px;font-style: italic;\
border-radius: 5px;z-index: 10000000;" id="userwarner-waiting-box">${ text }\
</div>`;
}
function userwarner_report_warn_text(username) {
const reason = window.prompt("Пояснение", "Вандализм");
return `<onlyinclude>
{{ЗКА:Быстрый запрос|
<!-- Не редактируйте строку ниже, если не являетесь администратором -->
| статус =
<!-- Формат при редактировании этого поля:
• u/Jimmy Wales — участник или IP-адрес;
• название страницы — без префикса.
-->
| вопрос = u/${ username }
<!-- Дополнительные действия для выполнения запроса, пояснения администраторам и т. п. -->
| пояснение = ${ reason }
<!-- Не редактируйте строку ниже -->
| автор = {{под` + `ст:зкаб|}}
<!-- Администраторам: вставьте {{под` + `ст:зкаб|}} -->
| администратор =
}}
</onlyinclude>`
}
if(mw.config.get('wgCanonicalSpecialPageName') === 'Contributions' || mw.config.get('wgNamespaceNumber') === 3) {
mw.loader.using('mediawiki.util').done( function () {
let menu = "";
for(const item in userwarner_types) {
menu += `<li><a id="uw-link-${ item }" href="javascript:userwarner_send('${ item }')"><span>${ userwarner_types[item].link_text }</span></a></li>`;
}
$('#p-search').before('<nav class="mw-portlet vector-menu vector-menu-dropdown vector-menu-dropdown-noicon vectorMenu"><h3><span>UW</span></h3><div class="vector-menu-content"><ul class="vector-menu-content-list">' + menu + '</ul></div></nav>');
$('#uw-link-report').css("color", "#ad0606");
});
}
function userwarner_send(type) {
$.getJSON(mw.config.get('wgScriptPath') + '/api.php?action=query&meta=tokens&type=csrf&format=json', function (resp) {
if(!resp || resp.query) {
return;
}
var user_talk_addr = '';
var username = '';
var report_page_addr = 'Википедия:Запросы_к_администраторам/Быстрые';
var currently_in_talk = false;
if(mw.config.get('wgCanonicalSpecialPageName') === 'Contributions') {
username = mw.config.get('wgPageName').split('/', 2)[1];
user_talk_addr = 'Обсуждение_участника:' + username;
} else if(mw.config.get('wgNamespaceNumber') === 3) {
user_talk_addr = mw.config.get('wgPageName');
username = user_talk_addr.split(":", 2)[1];
currently_in_talk = true;
}
//const user_talk_addr = 'Участник:Skmp/Песочница/2';
var post_options = {};
if(type === "report") {
$("body").append(userwarner_waiting_html("Записываем запрос на ЗКАБ..."));
post_options = {
action: 'edit',
title: report_page_addr,
token: resp.query.tokens.csrftoken,
summary: 'Новый запрос: ' + username + ' ([[У:Skmp/userwarner.js|UW]])',
section: 'new',
sectiontitle: "u/{{под" + "ст:зкаб|" + username + "}}",
appendtext: userwarner_report_warn_text(username)
};
} else {
$("body").append(userwarner_waiting_html("Записываем предупреждение..."));
post_options = {
action: 'edit',
title: user_talk_addr,
token: resp.query.tokens.csrftoken,
summary: 'Предупреждение участника с помощью [[У:Skmp/userwarner.js|UW]] — ' + userwarner_types[type].summary,
section: 'new',
sectiontitle: userwarner_types[type].sectionname,
appendtext: userwarner_types[type].message + ' ~~' + '~~'
};
}
$.post(mw.config.get('wgScriptPath') + '/api.php', post_options, function() {
if(currently_in_talk) {
if(type !== "report") window.location = mw.config.get('wgServer') + '/wiki/' + user_talk_addr;
} else if(window.userwarner_noredirect) {
$("#userwarner-waiting-box").text("Готово!");
$("#userwarner-waiting-box").css("background-color", "#caffbf");
setTimeout(function () { $("#userwarner-waiting-box").remove(); }, 1000);
} else {
if(type !== "report") window.location = mw.config.get('wgServer') + '/wiki/' + user_talk_addr;
}
});
});
}