User:Dr.Bryan/global.js

// Для скрытия уведомлений window.announcementsIgnore = { option: 'opt-in-all', exceptWikiIds: [ 77236 // CS Wiki ] };

// Избранные вики в глобале window.globalNavButtons = [ // Список {   text: 'Links', isMain: true, shortName: 'w' }, {   text: 'Zendesk', url: 'https://fandom.zendesk.com/hc/ru/requests/new?ticket_form_id=360000931354', isMain: false, whoIsMain: 'w' }, {   text: 'Dev', url: 'https://dev.fandom.com/Special:Random', isMain: false, whoIsMain: 'w' }, {   text: 'Watchlist', url: '/ru/Special:Watchlist', isMain: false, whoIsMain: 'w' }, {   text: 'Recent Changes', url: 'https://drbryan.fandom.com/ru/wiki/Участник:Dr.Bryan/Активность_вики-проектов', isMain: false, whoIsMain: 'w' }, {   text: 'Recent Changes 2', url: 'https://drbryan.fandom.com/ru/wiki/Участник:Dr.Bryan/Активность_вики-проектов_2', isMain: false, whoIsMain: 'w' }, {   text: 'Marvel Watchlist', url: 'https://marvel.fandom.com/wiki/Special:Watchlist', isMain: false, whoIsMain: 'w' }, // Остальные {   text: 'Wikis', isMain: true, shortName: 'w2' }, {    text: 'DS', url: 'https://dr-stone.fandom.com/ru/Special:Random', icon: '', whoIsMain: 'w2' }, {    text: 'Slime', url: 'https://ten-sura.fandom.com/ru/Special:Random', icon: '', whoIsMain: 'w2' }, {    text: 'Паук', url: 'https://kumodesugananika.fandom.com/ru/Special:Random', icon: '', whoIsMain: 'w2' }, {    text: 'Неуязвимый', url: 'https://invincible.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Kings Avatar', url: 'https://the-kings-avatar.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Gurren Lagann', url: 'https://gurrenlagann.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Bakuman.', url: 'https://bakuman.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Samurai Jack', url: 'https://bakusamuraijackman.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Sentai', url: 'https://sentai-daishikkaku.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'World Above', url: 'https://world-above.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Dark Horse', url: 'https://darkhorse.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, {    text: 'Image Comics', url: 'https://imagecomics.fandom.com/ru/Special:Random', whoIsMain: 'w2' }, // Основные {   text: 'CC', url: 'https://community.fandom.com/ru/Special:Random', isMain: false, whoIsMain: false, icon: '' }, {    text: 'Marvel', url: 'https://marvel.fandom.com/ru/Special:Random', isMain: false, whoIsMain: false, icon: '' }, {    text: 'OP', url: 'https://onepiece.fandom.com/ru/Special:Random', isMain: false, whoIsMain: false, icon: '' }, {    text: 'JoJo', url: 'https://jojo.fandom.com/ru/Special:Random', isMain: false, whoIsMain: false, icon: '' }, {    text: 'Edem', url: 'https://edenszero.fandom.com/ru/Special:Random', isMain: false, whoIsMain: false, icon: '' }, {    text: 'SAO', url: 'https://sword-art-online.fandom.com/ru/Special:Random', isMain: false, whoIsMain: false, icon: '' } ];

// nkch_css_configs nkch_css_configs = { themes: { light: "eclipse", dark: "nord" }, useAnimations: true } importArticles({   type: 'script',    articles: [        'u:dev:MediaWiki:AjaxBatchDelete.js',			// Списочное удаление страниц        'u:dev:MediaWiki:Name Sequencer/code.js',		// Создание шаблонного списка страниц (в основном для нумерации)        'u:dev:MediaWiki:QuickDiff/code.js',			// Ajax разница правок        'u:dev:MediaWiki:CodeQuickLinks/code.js',		// Необходимые ссылки        'u:dev:MediaWiki:PurgeButton/code.js',  		// Сброс кэша        'u:dev:MediaWiki:PortableCSSPad/code.js',		// CSS блокнот        'u:dev:MediaWiki:View_Source/code.js',  		// Показать исходный код без редактирования        'u:dev:MediaWiki:MultiUpload.js',  		// Мультизагрузка        'u:dev:MediaWiki:MassCategorization/code.js',	// Массовая (де)категоризация        'u:dev:MediaWiki:MassEdit/code.js',        'u:dev:MediaWiki:PageEditInfo/code.js',        'u:dev:MediaWiki:UserAccountAge/code2.js',        'u:dev:MediaWiki:SyntaxHighlight.js', // 'u:dev:MediaWiki:CatNav/code.js', 'u:dev:MediaWiki:Wikificator.js', 'u:dev:MediaWiki:ThemeToggler.js', 'u:dev:MediaWiki:AnnouncementsIgnore.js',		// Игнорирование уведомлений 'u:dev:MediaWiki:GlobalNavButtons.js',			// Кнопки для глоьальной навигации (значки с вики) 'u:dev:MediaWiki:EmeraldGlobalNav.js', // 'u:dev:MediaWiki:FileUsageAuto-update/code.js', // 'u:dev:MediaWiki:AjaxRename/code.js', // 'u:dev:MediaWiki:QuickTitle/code.js', // 'u:dev:MediaWiki:SandboxTab/code.js', // 'u:dev:MediaWiki:MorePageActions/code.js', // 'u:dev:MediaWiki:DisableCode/code.js', 'u:dev:MediaWiki:RandomPageShortcut/code.js', 'u:dev:MediaWiki:ImportJSPage/code.js', 'u:nkch:MediaWiki:NkchCSS.js' ] });

/* Замена ссылок для dev:CodeQuickLinks */ window.customCodeQuickLinks= { replaceAllDefaultLinks: true, showIcon: true, linkSet: { siteFiles: [{ name: 'JSPages', href: mw.util.getUrl('Special:JSPages') }, {			name: "ImportJS", href: mw.util.getUrl('MediaWiki:ImportJS') }, {			name: "Common.css", href: mw.util.getUrl('MediaWiki:Common.css') }, {			name: "Common.js", href: mw.util.getUrl('MediaWiki:Common.js') }, {			name: 'FandomDesktop.js', href: mw.util.getUrl('MediaWiki:Fandomdesktop.js') }, {			name: 'FandomDesktop.css', href: mw.util.getUrl('MediaWiki:Fandomdesktop.css') }, {			name: "Edittools", href: mw.util.getUrl('MediaWiki:Edittools') }, {			name: "WikiaNotifications", href: mw.util.getUrl('MediaWiki:Custom-WikiaNotifications') }, {			name: "ProfileTags", href: mw.util.getUrl('MediaWiki:ProfileTags') }, {			name: "--", href: "" }, {			name: "Сокращение img", href: "//siegenax.fandom.com/ru/wiki/Участник:Kopcap94/IP" }],       userFiles: [{ name: "Common.css", href: mw.util.getUrl('Special:MyPage/common.css') }, {			name: "Common.js", href: mw.util.getUrl('Special:MyPage/common.js') }, {			name: "Global.css", href: "//community.fandom.com/wiki/Special:MyPage/global.css" }, {			name: "Global.js", href: "//community.fandom.com/wiki/Special:MyPage/global.js" }, {			name: "--", href: "" }, {			name: "UserActivity", href: "//community.fandom.com/ru/wiki/Служебная:UserActivity" }, {			name: "Функции парсера", href: "//drbryan.fandom.com/ru/wiki/Функции_парсера" }		]	} };

mw.loader.using('mediawiki.util').then(function {	$(function{ var config = mw.config.get([		   'wgFormattedNamespaces',		    'wgUserName',		    'wgScriptPath'		]); $('.WikiaBarWrapper .tools').prepend(			''+				''+					''+						' '+					' '+					'MediaWiki'+				' '+		       ''+					'<ul id="my-tools-menu my-mw-links" class="tools-menu wds-list wds-is-linked">'+				        ' Global.css</a></li>'+				        ' Global.js</a></li>'+						' Ошибки</a></li>'+ ' ImportJS</a></li>'+ ' Fandomdesktop.css</a></li>'+ ' Common.css</a></li>'+ ' Common.js</a></li>'+ ' User CSS</a></li>'+ ' User JS</a></li>'+ '</ul>'+ ' '+			'</li>'+ // Добавляет в тулбар кнопки для сейфмода '<li class="mytools menu wds-dropdown wds-is-flipped">'+ '<span class="wds-dropdown__toggle"><svg class="wds-icon wds-icon-tiny wds-dropdown__toggle-chevron"><use xlink:href="#wds-icons-dropdown-tiny"> OFF  '+ '<div class="wds-dropdown__content">'+ '<ul id="my-tools-menu my-off-links" class="tools-menu wds-list wds-is-linked">'+ ' Вырубить всё!</a></li>'+ ' Вырубить свой CSS</a></li>'+ ' Вырубить свой JS</a></li>'+ '</ul>'+ ' '+			'</li>' );		// При зажатой ctrl открывает редактирование страницы		$(function{ $('a').each(function{			   var href = $(this).attr('href')			    $(this).click(function { if(event.ctrlKey == true){ $(this).attr('href', href + "?action=edit") }				});			});		});

});	// Сворачивание фильтра в Свежих файлах	if (wgCanonicalSpecialPageName === 'Newimages') {		mw.loader.using("mediawiki.cookie").then( function { var isHidden = JSON.parse(mw.cookie.get("image-filter-is-hidden", "nkch-", false)); mw.hook("dev.wds").add(		           function (wds) {		                const filterLayout = document.querySelector(".oo-ui-panelLayout");		                const filterFieldsetLayoutGroup = document.querySelector(".oo-ui-fieldsetLayout-group");		                mw.util.addCSS(".oo-ui-fieldsetLayout-group.is-hidden { display: none }");		                const switcher = document.createElement("button");		                switcher.classList.add("wds-button", "wds-is-text");		                Object.assign(switcher.style, { position: "absolute", right: 0, zIndex: 1 });		               switcher.appendChild(wds.icon("menu-control"));		                const switcherIcon = switcher.querySelector("svg");		                switcherIcon.style.transition = ".3s";		                switch (isHidden) {		                    case true:		                        switcherIcon.style.transform = "rotate(0deg)";		                        filterFieldsetLayoutGroup.classList.add("is-hidden");		                        break;		                    case false:		                        switcherIcon.style.transform = "rotate(180deg)";		                        filterFieldsetLayoutGroup.classList.remove("is-hidden");		                        break;		                };		                switcher.addEventListener("click", function  { filterFieldsetLayoutGroup.classList.toggle("is-hidden"); isHidden = !isHidden; mw.cookie.set("image-filter-is-hidden", isHidden.toString, {		                       prefix: "nkch-",		                        expires: 31557600000,		                    }); console.log(isHidden) switch (isHidden) { case true: switcherIcon.style.transform = "rotate(0deg)"; break; case false: switcherIcon.style.transform = "rotate(180deg)"; break; };		               });		                filterLayout.prepend(switcher);		            }		        ); importArticle({		           type: "script",		            article: "u:dev:MediaWiki:WDSIcons/code.js"		        }); }		);	} });

// "Используется в..." на странице новых изображений if (mw.config.get("wgCanonicalSpecialPageName") === "Newimages") { mw.loader.using(["mediawiki.api", "mediawiki.util"]).then(		function {			const api = new mw.Api;

const files = document.querySelectorAll(".wikia-gallery-item .lightbox"); const fileCaptions = document.querySelectorAll(".wikia-gallery-item .lightbox-caption");

var fileNames = []; var dataList = [];

for (var f = 0; f < fileCaptions.length; f++) { fileNames.push(files[f].href.split("/wiki/")[1]); }			for (var i = 0; i < fileNames.length; i++) { api.get({					action: "query",					titles: decodeURI(fileNames[i]),					prop: "fileusage",					format: "json"				}).done(					function(data) {						dataList.push(data);					}				); }

function addDescription(data) { if (data.length == fileNames.length) { for (var i = 0; i < fileNames.length; i++) { var fileUsage = document.createElement("div"); var usage = data[i].query.pagesObject.keys(data[i].query.pages)[0].fileusage; if (typeof usage !== "undefined") { var usageText = document.createElement("span"); usageText.innerHTML = "Используется в: ";

usageText.style.fontSize = "14px";

for (var p = 0; p < usage.length; p++) { var usageLinkWrapper = document.createElement("span");

usageLinkWrapper.classList.add("file-used-in");

mw.util.addCSS(".file-used-in:not(:first-child):before { content: ', ' }");

var usageLink = document.createElement("a");

usageLink.href = mw.util.getUrl(usage[p].title); usageLink.innerHTML = usage[p].title;

usageText.appendChild(usageLinkWrapper);

usageLinkWrapper.appendChild(usageLink); }

fileUsage.appendChild(usageText); fileCaptions[i].after(fileUsage); }					}					clearInterval(intervalData); }			}			intervalData = setInterval(addDescription, 500, dataList); }	); }