User:DoorkBot/global.js

//—————————————————————————————— ! ! ! ———————————————————————————————// /* Import scripts. NOTE: Place scripts configurations above this line */

/* Delay and var */ var cvGlobalMatching = 'unchecked'; var cvCaseSensitive = 'checked'; var cvEnableRegex = 'checked'; massCategorizationDelay = massBlockDelay = massProtectDelay = massUserRightsDelay = LinkSweeperDelay = massRenameDelay = 500; window.ajaxPages = ["Special:RecentChanges","Special:Watchlist","Special:Log","Special:Contributions","Special:WikiActivity"]; window.ajaxIndicator = 'http://images2.wikia.nocookie.net/__cb20100609110347/software/images/a/a9/Indicator.gif'; window.ajaxRefresh = 1; window.AjaxRCRefreshText = 'Auto-refresh'; window.AjaxRCRefreshHoverText = 'Automatically refresh the page'; massRenameSummary = 'Renaming the page. (automatic)';

/* Scripts */ $(window).load(function {   importArticles({ type: "script", articles: [ 'u:dev:MediaWiki:ViewRemoved/code.js', 'u:dev:AjaxDelete/code.js', 'u:dev:MediaWiki:MassRename/code.js', 'u:dev:MediaWiki:RedirectManagement/code.js', 'u:dev:MediaWiki:CleanWantedFiles/code.js', 'u:dev:MediaWiki:Rollback/code.js', 'u:dev:MediaWiki:View_Source/code.js', 'u:dev:MediaWiki:WallGreetingButton/code.js', 'u:dev:MediaWiki:PurgeButton/code.js', 'u:dev:MediaWiki:DupImageList/code.js', 'u:dev:MediaWiki:RevealAnonIP/usercode.js', 'u:dev:MediaWiki:DisplayClock/code.js', 'u:dev:MediaWiki:WHAM/code.2.js', 'u:dev:MediaWiki:ExternalImageLoader/code.js', 'u:dev:MediaWiki:ListFiles/code.js', 'u:dev:MediaWiki:MultipleFileDelete/code.js', 'u:dev:MediaWiki:QuickComments/code.js', 'u:dev:MediaWiki:UnsafeScripts/code.js', 'u:dev:MediaWiki:QuickThreads/code.js', 'u:shining-armor:MediaWiki:ChatTags/code.js', 'u:dev:MediaWiki:ChatAnnouncements/code.js', 'u:dev:MediaWiki:ChatOptions/code.js', 'u:dev:MediaWiki:PrivateMessageAlert/code.js', 'u:dev:MediaWiki:MessageBlocker/code.js', 'u:dev:MediaWiki:!ban/code.js', 'u:dev:MediaWiki:AjaxBlock/code.js', 'u:dev:MediaWiki:AjaxBatchUndelete/code.js', 'u:dev:MediaWiki:AjaxBatchDelete/code.js', 'u:dev:MediaWiki:AjaxThreadUnfollow/code.js', 'u:dev:MediaWiki:MassCategorization/code.js', 'u:dev:MediaWiki:MassBlock/code.js', 'u:dev:MediaWiki:MassProtect/code.js', 'u:dev:AjaxRC/code.js', 'u:dev:MediaWiki:MassUserRights/code.js', 'u:dev:Linksweeper/code.js' ]   }); });

/* * MassEdit * Allows for quick editing/creation of a list of pages * @author: Count of Howard (http://dev.wikia.com/wiki/User:Count_of_Howard) */ (function {   if ($('#me-item').length) {        return;    }    //Cache mw variables    var mwVariables = mw.config.get([ 'skin', 'wgUserLanguage', 'wgUserGroups', 'wgLegalTitleChars' ]);   //Language stuff; remember to leave $1 in your translations    var i18n = {        'en': { //English            itemTitle: 'MassEdit',            modalTitle1: 'Select Action',            modalTitle2: 'Enter Content',            modalTitle3: 'Enter Pages',            dropdownPrepend: 'Prepend content to page(s)',            dropdownAppend: 'Append content to page(s)',            buttonCancel: 'Cancel',            buttonCreate: 'Submit',            buttonClear: 'Clear',            modalTemplateplaceholder: 'Page content may take the form of text, wikitext, or HTML.',            modalPagesplaceholder: 'Example 1\nExample 2\nExample 3',            modalHeader: 'Notice: To prevent abuse, use of MassEdit is limited to local staff, Fandom Staff, Fandom Helpers, and VSTF.',            modalLog: 'MassEdit log',            loading: 'Editing...',            noOptionSelected: 'Error: Please select an action to perform before submitting.', editSuccess: 'Success: $1 successfully edited!', editFailure: 'Error: $1 not edited. Please try again.', modalError: 'Error: Use of some characters is prohibited for security reasons.', modalUserRights: 'Error: Incorrect user rights group.', meEditSummary: 'Editing page content', meScript: 'script' },       'be': { //Belarusian itemTitle: 'MassEdit', modalTitle1: 'Выберыце дзею', modalTitle2: 'Пакажыце кантэнт', modalTitle3: 'Пакажыце старонкі', dropdownPrepend: 'Кантэнт, што дадаецца на старонку(і)', dropdownAppend: 'Даданне кантэнту на старонку(і)', buttonCancel: 'Скасаванне', buttonCreate: 'Стварыць', buttonClear: 'Ачысціць', modalTemplateplaceholder: 'Змесціва старонкі можа быць пададзена ў выглядзе тэксту, вікі-тэксту ці HTML-кода.', modalPagesplaceholder: 'Пример 1\nПример 2\nПример 3', modalHeader: 'Нататка: для прадухіленні злоўжыванняў у выніку выкарыстання дадзенай прылады на яго выкарыстанне накладзена абмежаванне, што кантралюецца адміністрацыяй вікі, супрацоўнікамі Фэндома, памочнікамі Фэндома ды VSTF.', modalLog: 'Часопіс MassEdit', loading: 'Загрузка…', noOptionSelected: 'Абмыла: калі ласка, выберыце дзеянне, якое трэба зрабіць перад захаваннем.', editSuccess: '$1 паспяхова адрэдагавана!', editFailure: 'Абмыла: $1 не адрэдагавана. Калі ласка, паспрабуйце зноў.', modalError: 'Абмыла: выкарыстанне некаторых знакаў забаронена па меркаваннях бяспекі.', modalUserRights: 'Абмыла: няправільныя групы праў удзельнікаў.', meEditSummary: 'Старонка рэдагавання кантэнту', meScript: 'скрыпт' },       'nl': { //Dutch itemTitle: 'MassEdit', modalTitle1: 'Actie selecteren', modalTitle2: 'Inhoud invoeren', modalTitle3: 'Pagina\'s opgeven', dropdownPrepend: 'Inhoud boven aan de pagina\'s toevoegen', dropdownAppend: 'Inhoud onderaan aan de pagina\'s toevoegen', buttonCancel: 'Annuleren', buttonCreate: 'Opslaan', buttonClear: 'Leegmaken', modalTemplateplaceholder: 'Paginainhoud kan tekst, wikitekst of HTML zijn.', modalPagesplaceholder: 'Voorbeeld 1\nVoorbeeld 2\nVoorbeeld 3', modalHeader: 'Let op: Om misbruik te voorkomen, is het gebruik van MassEdit beperkt tot lokale beheerders, Fandom Staf, Fandom Helpers, en de VSTF.', modalLog: 'MassEdit logboek', loading: 'Bewerken...', noOptionSelected: 'Fout: Selecteer een actie om uit te voeren alvorens op te slaan.', editSuccess: 'Succes: $1 succesvol bewerkt!', editFailure: 'Fout: $1 niet bewerkt. Probeer het opnieuw.', modalError: 'Fout: Gebruik van sommige karakters is niet toegestaan vanwege veiligheidsredenen.', modalUserRights: 'Fout: Onjuiste gebruikersgroep.', meEditSummary: 'Paginainhoud bewerkt', meScript: 'script' },       'ru': { //Russian itemTitle: 'MassEdit', modalTitle1: 'Выберите действие', modalTitle2: 'Укажите контент', modalTitle3: 'Укажите страницы', dropdownPrepend: 'Контент, добавляемый на страницу(ы)', dropdownAppend: 'Добавление контента на страницу(ы)', buttonCancel: 'Отмена', buttonCreate: 'Создать', buttonClear: 'Очистить', modalTemplateplaceholder: 'Содержимое страницы может быть представлено в виде текста, вики-текста или HTML-кода.', modalPagesplaceholder: 'Пример 1\nПример 2\nПример 3', modalHeader: 'Примечание: для предотвращения злоупотреблений в результате использования данного инструмента на его использование наложено ограничение, контролируемое администрацией вики, сотрудниками Фэндома, помощниками Фэндома и VSTF.', modalLog: 'Журнал MassEdit', loading: 'Загрузка…', noOptionSelected: 'Ошибка: пожалуйста, выберите действие, которое нужно сделать перед сохранением.', editSuccess: '$1 успешно отредактировано!', editFailure: 'Ошибка: $1 не отредактировано. Пожалуйста, попробуйте снова.', modalError: 'Ошибка: использование некоторых символов запрещено по соображениям безопасности.', modalUserRights: 'Ошибка: неправильные группы прав участников.', meEditSummary: 'Страница редактирования контента', meScript: 'скрипт' },       'uk': { //Ukrainian itemTitle: 'MassEdit', modalTitle1: 'Виберіть дію', modalTitle2: 'Вкажіть вміст', modalTitle3: 'Вкажіть сторінки', dropdownPrepend: 'Вміст, доданий на сторінку(и)', dropdownAppend: 'Додавання вмісту на сторінку(и)', buttonCancel: 'Скасування', buttonCreate: 'Створити', buttonClear: 'Очистити', modalTemplateplaceholder: 'Вміст сторінки може бути представлено у вигляді тексту, вікі-тексту або HTML-коду.', modalPagesplaceholder: 'Приклад 1\nПриклад 2\nПриклад 3', modalHeader: 'Примітка: для запобігання зловживань в результаті використання даного інструменту на його використання накладено обмеження, контрольоване адміністрацією вікі, співробітниками Фендому, помічниками Фендому та VSTF.', modalLog: 'Журнал MassEdit', loading: 'Завантаження…', noOptionSelected: 'Помилка: будь ласка, виберіть дію, яку потрібно зробити перед збереженням.', editSuccess: '$1 успішно відредаговано!', editFailure: 'Помилка: $1 не відредаговано. Будь ласка, спробуйте знову.', modalError: 'Помилка: використання деяких символів заборонено з міркувань безпеки.', modalUserRights: 'Помилка: неправильні групи прав користувачів.', meEditSummary: 'Сторінка редагування вмісту', meScript: 'скрипт' }   },    lang = i18n[mwVariables.wgUserLanguage] || i18n[mwVariables.wgUserLanguage.split('-')[0]] || i18n.en; //Security stuff - This script can cause a lot of damage if abused, so users and input values are restricted var userGroups = /(bureaucrat|sysop|content-moderator|rollback|staff|helper|vstf)/.test(mwVariables.wgUserGroups.join(' ')), chars = new RegExp('^[' + mwVariables.wgLegalTitleChars + ']*$'); var modalHTML = '' + ' ' + lang.modalHeader + ' ' + ' ' +       ' ' +        ' ' +            ' ' + lang.modalTitle1 + ' ' +               '' + ' ' + lang.modalTitle1 + ' ' + ' ' + lang.dropdownPrepend + ' ' + ' ' + lang.dropdownAppend + ' ' + ' ' +               ' ' +            ' ' +            ' ' +            ' ' + lang.modalTitle2 + ' ' +               '' + ' ' +           ' ' +            ' ' +            ' ' + lang.modalTitle3 + ' ' +               '' + ' ' +           ' ' +        ' ' +        ' ' +        ' ' +    ' ' +    ' ' + lang.modalLog + ' ' + ' ';   //Appends to toolbar and opens modal on click function init { //Toolbar items var meItem = mw.html.element('li', {           class: 'overflow',            id: 'me-item'        }), meItemLink = mw.html.element('a', {           href: '#'        }, lang.itemTitle); //Item placement switch (mwVariables.skin) { case 'oasis': case 'wikia': $(meItem).appendTo('.toolbar .tools'); break; case 'monobook': case 'uncyclopedia': case 'wowwiki': $(meItem).appendTo('#p-tb ul'); break; }       $(meItemLink).appendTo('#me-item'); modal; }   //Modal window function modal { mw.util.addCSS(           '#me-dropdown { ' +                'width: 100%;' +            '}' +            '#me-content-value,' +            '#me-pages-value {' +                'height: 100px;' +                'width: 100%;' +                'padding: 0;' +                'overflow: scroll;' +            '}' +            '#me-log {' +                'height: 100px;' +                'width: 98%;' +                'border: 1px solid black;' +                'font-family: monospace;' +                'background: #fff;' +                'color: #aeaeae;' +                'overflow: scroll;' +                'padding:5px;' +            '}'        ); $('#me-item').click(function {           if ($('#me-modal-window').length) {                $('#me-modal-window')[0].remove;            }            $.showCustomModal(lang.itemTitle, modalHTML, { id: 'me-modal-window', width: 500, buttons: [{ message: lang.buttonCancel, handler: function { $('#me-modal-window').closeModal; }               }, {                    message: lang.buttonClear, handler: function { $("#me-modal-form")[0].reset; }               }, {                    message: lang.buttonCreate, handler: handler }]           });        });    }    //Handles "Submit" button click events function handler { if (!userGroups) { $("#me-modal-form")[0].reset; $('#me-log').append(lang.modalUserRights + ' '); return; } else { var selectedIndex = $("#me-dropdown")[0].selectedIndex; var inputContent = $('#me-content-value')[0].value; var inputPages = $('#me-pages-value')[0].value.split(/[\n]+/); switch (selectedIndex) { case 0: //No action selected $("#me-modal-form")[0].reset; $('#me-log').append(lang.noOptionSelected + ' '); break; case 1: case 2: //Edit methods var desiredAction; $('#me-log').append(lang.loading + ' '); if (selectedIndex === 1) { desiredAction = 'prepend'; } else { desiredAction = 'append'; }                   for (var i = 0; i < inputPages.length; i++) { var checkedPage = checkPage(inputPages[i]); if (checkedPage !== false) { editPage(inputContent, checkedPage, desiredAction); }                   }                    break; }       }    }    //Runs page against regex function checkPage(page) { if(!chars.test(page)) { $("#me-modal-form")[0].reset; $('#me-log').append(lang.modalError + ' '); return false; } else { return page; }   }    function editPage(content, page, editAction) { var params = { //May need to add 'bot: true,' here sometime action: 'edit', minor: true, title: mw.util.wikiUrlencode(page), summary: lang.meEditSummary, token: mw.user.tokens.get('editToken') };       //A bit of a janked way to add key/value pairs if (editAction === 'prepend') { params.prependtext = content; } else if (editAction === 'append') { params.appendtext = content; }       $.ajax({            type: 'POST',            url: mw.util.wikiScript('api'),            data: params        }).success(function (data) {            $("#me-modal-form")[0].reset;            $('#me-log').append(lang.editSuccess.replace('$1', page) + ' ');        }).fail(function (data) {            $("#me-modal-form")[0].reset;            $('#me-log').append(lang.editFailure.replace('$1', page) + ' ');        }); }   //Do the thing init; });