MediaWiki:Gadget-CzyWiesz.js

W dzisiejszym świecie MediaWiki:Gadget-CzyWiesz.js to temat, który staje się coraz bardziej istotny i staje się przedmiotem zainteresowania wielu różnych osób. Niezależnie od tego, czy mówimy o jego wpływie na społeczeństwo, jego znaczeniu w historii, jego znaczeniu dzisiaj, czy o jakimkolwiek innym powiązanym aspekcie, MediaWiki:Gadget-CzyWiesz.js to temat, który nigdy nie przestaje wywoływać debat i dyskusji. Od początków do wpływu na współczesność, MediaWiki:Gadget-CzyWiesz.js był przedmiotem badań i zainteresowania naukowców, profesjonalistów i ogółu społeczeństwa. W tym artykule zbadamy różne aspekty związane z MediaWiki:Gadget-CzyWiesz.js i spróbujemy rzucić światło na ten temat, który jest dziś tak aktualny.
// <nowiki>
/**
 * Nominacje do Czy-Wiesza aka DYKnomination (Did You Know).
 * 
 * Instrukcja:
 * ]
 * 
 * Repozytorium i historia zmian:
 * https://github.com/Eccenux/wiki-DYKCzyWiesz
 * 
 * Wdrożone za pomocą: ]
 */
(function(){function d(n,s,r){function l(i,e){if(!s){if(!n){var t="function"==typeof require&&require;if(!e&&t)return t(i,!0);if(c)return c(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var o=s={exports:{}};n.call(o.exports,function(e){var t=n;return l(t||e)},o,o.exports,d,n,s,r)}return s.exports}for(var c="function"==typeof require&&require,e=0;e<r.length;e++)l(r);return l}return d})()({1:]",homepage:"]",credits:"Matma Rex (for HUGE help), Tomasz Wachowski (for testing)"};function n(o){const{ErrorInfo:e}=i("./ErrorInfo");const{apiAsync:n}=i("./asyncAjax");const{config:s}=i("./config");o.config=s;o.options={enabledClose:false};o.getBaseNew=function(){return this.debugmode?s.debugBase+"/propozycje":"Wikiprojekt:Czy wiesz/propozycje"};o.getBaseDone=function(){return this.debugmode?s.debugBase+"/ocenione":"Wikiprojekt:Czy wiesz/ocenione"};o.getNominationPage=function(e,t){const i=`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}`;const a=this.getBaseNew();return a+"/"+i+"/"+t};o.logs=;o.log=function(){var e=Array.from(arguments);var t=(new Date).toISOString();o.logs.push({dt:t,log:e});if(this.debugmode&&typeof console!=="undefined"){e.unshift("");console.log.apply(console,e)}};o.debugmode=false;o.getEditToken=async function(e){var t=o;var i=mw.user.tokens.get("csrfToken");if(!e&&typeof i==="string"&&i.length===34){t.edittoken=i;t.log("DYKnomination.edittoken :",t.edittoken);return t.edittoken}try{let e=await n({url:"/w/api.php?action=query&meta=tokens&format=json&type=csrf",cache:false});t.log("DYKnomination.edittoken :",t.edittoken,"data token :",e.query.tokens.csrftoken);t.edittoken=e.query.tokens.csrftoken}catch(e){t.errors.push("Błąd pobierania tokena: "+e+".");t.errors.show();console.error("Błąd pobierania tokena: ",e)}return t.edittoken};o.emailauthor=async function(t){var i=o;var e=prompt("Opisz, co się stało. Bez tego twórca nie będzie wiedział, co naprawiać.","");if(!e){alert("Nic nie wyślę twórcy, dopóki nie opiszesz błędu swoimi słowami. Bez Twojego opisu twórca nie będzie wiedział co naprawiać.");return}i.log("DYKnomination.errors: ",i.errors);var a=e+"\n\n"+JSON.stringify(i.logs);$(".CzyWieszEmailDoAutoraWyslano").html('<img src="https://upload.wikimedia.org/wikipedia/commons/1/1a/Denken.gif" width="10" height="10">');$("#CzyWieszErrorDialog, #CzyWieszSuccess").addClass("wait-im-sending-email");t.classList.add("dyk-button-off");if(!i.edittoken){i.log("Pobranie tokena.");await i.getEditToken(false)}n({url:"/w/api.php",type:"POST",data:{action:"emailuser",format:"json",target:s.supportUser,subject:s.supportEmailTopic,text:a,token:i.edittoken}}).then(function(){$("#CzyWieszErrorDialog, #CzyWieszSuccess").removeClass("wait-im-sending-email");$(".CzyWieszEmailDoAutoraWyslano").html(" <strong>Wysłano!</strong>")}).catch(function(e){t.classList.remove("dyk-button-off");i.errors.push(`Błąd wysyłania e-maila do twórcy: ${e}.`);i.errors.show();console.error("Błąd wysyłania e-maila do twórcy: ",e)})};o.errors=new e(e=>{o.emailauthor(e)},s.supportUser)}function s(e){n(e);const{DykMain:t}=i("./DykMain");e.main=new t(e)}e.exports={DYKnomination:a,createDyk:n,createFullDyk:s}},{"./DykMain":6,"./ErrorInfo":8,"./asyncAjax":13,"./build/version":14,"./config":15}],2:;i.prototype.initialize=function(){i.super.prototype.initialize.call(this);this.content=new OO.ui.PanelLayout({padded:true,expanded:false});this.content.$element.append(`<div class="info">${e.info}</div>`);this.content.$element.append(`<div class="warnings" style="display:none"><strong>Ostrzeżenia:</strong><ul></ul></div>`);this.$body.append(this.content.$element);e.elInfo=this.content.$element.querySelector(".info");e.elWarnings=this.content.$element.querySelector(".warnings");e.elWarningsList=e.elWarnings.querySelector("ul")};i.prototype.getActionProcess=function(e){var t=this;if(e){return new OO.ui.Process(function(){t.close({action:e})})}return i.super.prototype.getActionProcess.call(this,e)};var t=new i;var a=new OO.ui.WindowManager;$(document.body).append(a.$element);a.addWindows();this.windowManager=a;this.doneDialogInternal=t}}t.exports={DoneDialog:a}},{}],3:[function(e,t,i){const{DoneDialog:l}=e("./DoneDialog");const{apiAsync:r}=e("./asyncAjax");const{stdConfirm:c}=e("./simpleDialogs");const{htmlspecialchars:d}=e("./stringOps");class a{constructor(e,t){this.pageName=e;this.core=t;this.doneSelector=".dyk-done";this.movedSelector=".template-done";this.statusSelector=".dyk-status";this.statusMovedRe=/zako.{1,2}czone/}init(){const t=document.querySelectorAll(this.doneSelector);let e=false;let i;if(t.length){i=t.length==1&&this.canBeSubpage(this.pageName);e=true;if(i&&this.setupArchived()){e=false}}if(e){mw.loader.using("oojs-ui-core").done(()=>{for(const e of t){this.initItem(e,i)}mw.hook("userjs.DYKnomination.DoneHandling.ready").fire(this)})}}canBeSubpage(e){return e.includes("/propozycje/2")}setupArchived(){if(document.querySelector(".dyk-arch")){$(".dyk-end-return, .dyk-end-info").hide();return true}return false}checkItemDone(e,t){if(t){const a=document.querySelector(this.movedSelector);if(a){return true}}const i=e.querySelector(this.statusSelector);if(i&&i.textContent.search(this.statusMovedRe)>=0){return true}return false}initItem(e,i){let t=this.checkItemDone(e,i);let a=mw.config.get("wgUserGroups").includes("sysop");let o=a&&t;let n=this.core.options.enabledClose&&!t;if(!n&&!o){return false}const s=e.querySelector("a:not(.new)");if(!s){this.core.log("No article link.");return false}let r=s.textContent;if(n){let t=this.createButton(e,"Zakończ",()=>{if(t.isDisabled()){OO.ui.alert("Akcja już wykonana. Możesz spróbować ponownie po odświeżeniu strony.");return}this.handleDone(e,r,i).then(e=>{if(e){t.setDisabled(true)}})})}if(o){let t=this.createButton(e,"Cofnij do nominacji",()=>{if(t.isDisabled()){OO.ui.alert("Akcja już wykonana. Możesz spróbować ponownie po odświeżeniu strony.");return}this.handleRollback(e,r,i).then(e=>{if(e){t.setDisabled(true)}})})}return true}getSubpageTitle(e,t){if(t){return mw.config.get("wgPageName")}const i=e.querySelector(".dyk-self-page");let a=i?i.textContent.trim():"";return a}async handleDone(t,i,a){const o=this.core;let e=`
			<p>Czy na pewno chcesz zakończyć dyskusję dla ${d(i)}?
			<p>Jeśli są wątpliwości, to możesz poczekać na więcej ocen.
		`;if(await c(e)){const n=new l("Przenoszenie wpisu","Start...");const s=mw.config.get("wgUserName");const r="https://wikifreehand.com/pl/Special:Contributions/"+encodeURIComponent(s);let e=this.getSubpageTitle(t,a);if(!e.length){console.error("subpageTitle failed",{isSubpage:a,item:t});n.update(`
					<p>❌ Przenoszenie zostało przerwane (nie wykonano żadnych zmian).</p>
					<p>Wygląda na to, że szablon weryfikacji dla „${i}” jest nieprawidłowo wypełniony.
					Wejdź na podstronę zgłoszenia i dodaj parametr <code>| strona = {{subst:FULLPAGENAME}}</code>.</p>
				`,true);return}try{await this.move(i,e,n)}catch(e){console.error(e);let t=typeof e=="string"?d(e):"<code>"+d(e)+"</code>";n.update(`
					<p>❌ Przenoszenie nie udało się: ${t}</p>
					<p><a href="${r}" class="czywiesz-external" target="_blank">Sprawdź swój wkład</a>, żeby obejrzeć co już zostało zrobione (czy w ogóle coś).
					<p>Możesz wejść na stronę zgłoszenia lub ją odświeżyć i spróbować ponownie.
						Jeśli zgłoszenie nadal nie jest zakończone i nie da się go zakończyć, to być <strong>może musisz zakończyć zgłoszenie ręcznie</strong>:
					<ol>
						<li>Usuń zgłoszenie <a href="${mw.util.getUrl(o.getBaseNew(),{action:"edit"})}" class="czywiesz-external" target="_blank">z listy propozycji</a>.
						<li>Dodaj zgłoszenie <a href="${mw.util.getUrl(o.getBaseDone(),{action:"edit"})}" class="czywiesz-external" target="_blank">do listy ocenionych</a>.
						<li>W treści zgłoszenia:
							<ul>
								<li>W szablonie <code>CW/weryfikacja</code> ustaw parametr <code>status=zakończone</code>.
								<li>W szablonie <code>licznik czasu</code> zmniejsz liczbę dni (możesz ustawić <code>dni=1</code>).
								<li>Dopisz komentarz wpisując <code>{{Załatwione}}</code>.
							</ul>
						</li>
					</ol>
				`,true);return}n.update(`
				<p>✅ Przenoszenie <a href="${mw.util.getUrl(e)}">strony zgłoszenia</a> zakończone.</p>
				<p><small>Dla pewności możesz sprawdzić <a href="${r}" class="czywiesz-external" target="_blank">swój wkład</a>.</small></p>
			`);n.forceResize();return true}}async handleRollback(t,i,a){let e=`
			<p>Czy na pewno chcesz cofnąć ${d(i)} do bieżących nominacji?
		`;if(await c(e)){const o=new l("Cofnięcie do propozycji","Start...");const n=mw.config.get("wgUserName");const s="https://wikifreehand.com/pl/Special:Contributions/"+encodeURIComponent(n);let e=this.getSubpageTitle(t,a);if(!e.length){console.error("subpageTitle failed",{isSubpage:a,item:t});o.update(`
					<p>❌ Przenoszenie zostało przerwane (nie wykonano żadnych zmian).</p>
					<p>Wygląda na to, że szablon weryfikacji dla „${i}” jest nieprawidłowo wypełniony.
					Wejdź na podstronę zgłoszenia i dodaj parametr <code>| strona = {{subst:FULLPAGENAME}}</code>.</p>
				`,true);return}try{await this.unmove(i,e,o)}catch(e){console.error(e);let t=typeof e=="string"?d(e):"<code>"+d(e)+"</code>";o.update(`
					<p>❌ Wycofanie nie udało się: ${t}</p>
					<p><a href="${s}" class="czywiesz-external" target="_blank">Sprawdź swój wkład</a>, żeby obejrzeć co już zostało zrobione (czy w ogóle coś).
				`,true);return}o.update(`
				<p>✅ Cofnięcie udane. <a href="${mw.util.getUrl(e,{action:"edit"})}">Dodaj powód otwarcia zgłoszenia</a> (możesz też ustawić status na „problemy”).</p>
				<p><small>Możesz też sprawdzić <a href="${s}" class="czywiesz-external" target="_blank">swój wkład</a></small>.</p>
			`);o.forceResize();return true}}removeNomination(e,t){const i=e=>e.replace(/_/g," ").trim();let a=i(t);let o=e.replace(/\{\{(.+\/propozycje\/+\/(+))\}\}\s*/g,(e,t)=>a===i(t)?"":e);return o===e?false:o}async stepRemove(e,t,i,a){const o=this.core;o.log("Pobranie wikitekstu listy zgłoszeń.");let n=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(t),cache:false});o.log("Usunięcie wpisu z wikitekstu listy zgłoszeń.");let s=this.removeNomination(n,i);if(!s){e.warn(`Nie udało się znaleźć nominacji „${i}” na stronie „${t}”. Pominięto usuwanie wpisu.`)}else{o.log("Usunięcie wpisu ze zgłoszeń.");await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t,text:s,summary:a,watchlist:"nochange",token:o.edittoken}})}}async stepAppend(e,t,i,a){const o=this.core;let n=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(t),cache:false});let s=this.removeNomination(n,i);if(s){e.warn(`Nominacja „${i}” jest już na stronie „${t}”. Pominięto dodawanie wpisu.`);return false}await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t,appendtext:`\n{{${i}}}`,summary:a,watchlist:"nochange",token:o.edittoken}});return true}async move(e,t,i){const a=this.core;i.open();const o=e=>`🚴 Krok ${e}/${n}: `;const n=3;let s=1;if(!a.edittoken){a.log("Pobranie tokena.");await this.core.getEditToken(false)}let r=`]`;let l=a.config.summary_done.replace("TITLE",r);i.update(o(s++)+"Usunięcie z listy propozycji.");await this.stepRemove(i,a.getBaseNew(),t,l);i.update(o(s++)+"Oznaczenie jako załatwione.");await this.markDone(t,l);i.update(o(s++)+"Dopisanie na koniec ocenionych.");await this.stepAppend(i,a.getBaseDone(),t,l);return t}async unmove(e,t,i){const a=this.core;i.open();const o=e=>`🚴 Krok ${e}/${n}: `;const n=3;let s=1;if(!a.edittoken){a.log("Pobranie tokena.");await this.core.getEditToken(false)}let r=`]`;let l=a.config.summary_rollback.replace("TITLE",r);i.update(o(s++)+"Usunięcie z listy propozycji.");await this.stepRemove(i,a.getBaseDone(),t,l);i.update(o(s++)+"Usunięcie oznaczenia jako załatwione.");await this.markUnDone(t,l);i.update(o(s++)+"Dopisanie na koniec propozycji.");await this.stepAppend(i,a.getBaseNew(),t,l);return t}statusChange(e,c){e=e.replace(/(\{\{CW\/weryfikacja)(+)(\}\})/g,(e,t,i,a)=>{i=i.replace(/ *\| *status *=+/g,"");let o=i.indexOf("|");let n=i.indexOf("=",o);let s=n-o;let r="| status".padEnd(s," ")+"= "+c;let l=i.indexOf("| 1. sprawdzenie");if(l>0){i=i.slice(0,l)+r+"\n"+i.slice(l)}else{i=i.replace(/\n+$/,"")+"\n"+r+"\n"}return`${t}${i}${a}`});return e}async markDone(e,t){const i=this.core;let a=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(e),cache:false});a=a.replace(/(\{\{licznik czasu)(+)(\}\})/,(e,t,i,a)=>{i=i.replace(/\|\s*koniec\s*=*/,"");return`${t}/koniec${i}|koniec={{subst:#timel:Y-m-d H:i:s}}${a}`});a=this.statusChange(a,"zakończone");a+="\n\n{{Załatwione}} artykuł oceniony ~~~~.";await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:a,summary:t,watchlist:"nochange",token:i.edittoken}})}async markUnDone(e,t){const i=this.core;let a=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(e),cache:false});a=this.statusChange(a,"");a=a.replace(/(\{\{licznik czasu)\/koniec(+)(\}\})/,(e,t,i,a)=>{i=i.replace(/\|\s*koniec\s*=*/,"");return`${t}${i}${a}`});a=a.replace(/\{\{(Załatwione|Zrobione)\}\}/gi,"{{s|$1}}");await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:a,summary:t,watchlist:"nochange",token:i.edittoken}})}createButton(e,t,i){const a=new OO.ui.ButtonWidget({label:t,flags:});const o=a.$element;o.addEventListener("click",i);e.insertAdjacentElement("afterend",o);return a}}t.exports={DoneHandling:a}},{"./DoneDialog":2,"./asyncAjax":13,"./simpleDialogs":17,"./stringOps":18}],4:",e,t)}async getConfig(){this.debug("getConfig starts");if(this.parsed){this.debug("getConfig already parsed");return this.data}try{this.debug("getConfig awaiting...");const e=await this.configHelper.getConfig();this.debug("getConfig read data",e.events);this.merge(this.data,e);this.parsed=true}catch(e){console.error("Error fetching configuration:",e)}return this.data}merge(e,t){if(!t){return}if(Array.isArray(t.events)){for(const i of t.events){if(typeof i.code==="string"&&typeof i.name==="string"){e.events.push({code:i.code,name:i.name})}else{console.warn(" Invalid event:",i)}}}if(t.options&&typeof t.options==="object"){$.extend(e.options,t.options)}}}async function n(){const e={wikiConfigKey:"dyk-extra-options",wikiConfigTitles:{"Wikiprojekt:Czy_wiesz/konfiguracja/opcje.json":"options","Wikiprojekt:Czy_wiesz/konfiguracja/akcje.json":"events"},wiki:{events:,options:{hardLimitDays:30,warnLimitDays:10}}};var t=new o(e);var i=await t.getConfig();console.log(i);var a={events:,options:{hardLimitDays:123,warnLimitDays:34}};t.merge(a,{events:});console.log(a);t.merge(a,{events:});console.log(a);console.log("Done")}t.exports={DykConfigExtra:o}},{"./ReadJsonCached":10}],5:\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}class s{constructor(e){this.core=e;this.revisionList=new a;this.wikiprojects=new n;this.configHelper=new o(this.core.config)}hasRefs(t){let i=document.querySelectorAll("ol.references li").length;if(i>0){let e=document.querySelectorAll(".navbox ol.references li").length;if(i>e){return true}}if(Array.isArray(t.refSectionsArr)){const a=t.refSectionsArr;const o=document.querySelector("#bodyContent,.mw-body,#content");if(!o){return false}let e="#"+a.join(",#");if(o.querySelector(e)){return true}const n=o.querySelectorAll(".mw-heading ");if(n&&n.length){const s=a.map(e=>e.toLowerCase());for(const r of n){if(s.includes(r.id.toLowerCase())){return true}}}}return false}askuser(){var e=this.core;var t=e.debugmode;e.errors.clear();e.wgUserName=mw.config.get("wgUserName");e.wgTitle=mw.config.get("wgTitle");var i=$(`
			.infobox span a.mw-file-description img
			,figure img
			,.gallery span img
		`,$("#mw-content-text"));var a=i.length;var o={warn:e.config.no+'&nbsp;&nbsp;<strong style="color: red;">Brak źródeł dyskwalifikuje artykuł ze zgłoszenia!</strong> <small>(<a href="#" role="button">info</a>)</small>'};e.sourced=this.hasRefs(this.core.config);var n=e.wgUserName?{name:e.wgUserName,disabled:" disabled"}:{name:"~~"+"~",disabled:" disabled"};var s=$("<p></p>").html('Tytuł artykułu: &nbsp;&nbsp;<input type="text" id="CzyWieszTitle" name="CzyWieszTitle" value="'+e.wgTitle+'" style="width: 476px;" disabled>');var r=$(`<p><strong>Dokończ pytanie: „Czy wiesz…”</strong></p>
			<p style="font-size:90%">Zalecamy zadanie 2-3 pytań, żeby łatwiej było wybrać ekspozycję (jedno pytanie per wiersz). 
			Pytania zacznij od: „…ile”, „…kto”, „…jak”, „…co”, „…po co”, „…kiedy”, „…dlaczego”, „…gdzie”, „…skąd”, „…że” itp.</p>
		`);var l=$("<p></p>").html(`
				<p>
				<textarea id="CzyWieszQuestion" style="width: 570px;" rows="2" value="" 
					placeholder="Możesz wpisać kilka pytań, każde w osobnej linijce. Pamiętaj, żeby w każdym dodać pogrubiony link."
					autofocus
				></textarea>
			`);l.append('<button id="CzyWieszInsertLink" data-target="#CzyWieszQuestion">wstaw link</button>');var c=$('<tr id="CzyWieszRefs"></tr>').html("<td>Źródła: </td>"+"<td>"+(e.sourced?e.config.yes:o.warn)+"</td>");if(e.sourced){c.css({display:"none"})}var d=$("<tr></tr>").html("<td>Liczba grafik w artykule: </td>"+'<td><input type="number" min="0" id="CzyWieszImages" name="CzyWieszImages" value="'+a+'"'+'style="width: 3.5em;">'+'<span id="CzyWieszGalleryToggler" style="display: none;"> &nbsp;<small><a href="#" role="button">(zaproponuj grafikę z artykułu)</a></small></span>');var p=$("<tr></tr>").html('<td style="width: 30%;"><input type="checkbox" id="CzyWieszFile1" name="CzyWieszFile1" style="vertical-align: middle;"><label for="CzyWieszFile1"> Zaproponuj grafikę: </label></td>'+'<td><tt>]</tt></td>');var u=$(`
			<tr id="CzyWieszAuthorRow">
				<td>Główna autor(-ka) artykułu<span class="czywiesz-tip" title="Gadżet ustala autorstwo wg największej edycji w ciągu ostatnich 10 dni (sprawdź zmiany w ostatnich dniach)."><sup>(?)</sup></span>: </td>
				<td><input type="text" id="CzyWieszAuthor" name="CzyWieszAuthor" style="width: 50%;margin-left: 2px;vertical-align: middle;">
				&nbsp;&nbsp;<input type="checkbox" checked id="CzyWieszAuthorInf" name="CzyWieszAuthorInf" style="vertical-align: middle;"><label for="CzyWieszAuthorInf"> wysłać powiadomienia?</label></td>
			</tr>
			<tr id="CzyWieszAuthor2Row">
				<td>Druga autor(-ka) artykułu<span class="czywiesz-tip" title="Użyj listy zmian, żeby sprawdzić, czy ktoś jeszcze wprowadzał duże zmiany."><sup>(?)</sup></span>: </td>
				<td><input type="text" id="CzyWieszAuthor2" name="CzyWieszAuthor2" style="width: 50%;margin-left: 2px;vertical-align: middle;">
				</td>
			</tr>
			<tr id="CzyWieszAuthorInfo">
				<td colspan=2></td>
			</tr>
		`.replace(/\n\t+/g,"").trim());var z=$("<tr></tr>").html("<td>Twój podpis: </td>"+'<td><input type="text" id="CzyWieszSignature" name="CzyWieszSignature" value="'+n.name+'" style="width: 50%;margin-left: 2px;"'+n.disabled+"></td>");const g=$(`
			<tr id="CzyWieszWikiprojectRow">
				<td>Powiadom wikiprojekt(y): </td>
				<td>
					<span id="CzyWieszWikiprojectContainer"><small>(trwa ładowanie…)</small></span>
					<a id="CzyWieszWikiprojectAdd">(+)</a>
				</td>
			</tr>
		`.replace(/\n\t+/g,"").trim());const y=$(`
			<tr id="CzyWieszEventsRow">
				<td>Akcja edycyjna: </td>
				<td class="czywiesz-value">
					<span class="czywiesz-info"><small>(trwa ładowanie…)</small></span>
				</td>
			</tr>
		`);var h=$('<input type="checkbox" id="CzyWieszCommentCheckbox" name="CzyWieszCommentCheckbox" style="vertical-align: middle;">').click(function(){var e=$("#CzyWieszGadget");if($(this).prop("checked")){e.height(e.height+30);e.parent().height(e.parent().height+20)}else{e.height(e.height-30);e.parent().height(e.parent().height-20)}});var m=$("<p></p>").append(h).append('<label for="CzyWieszCommentCheckbox"> Potrzebujesz zamieścić dodatkowy komentarz? (Twój podpis zostanie dodany automatycznie)</label>');var w=$('<p id="CzyWieszCommentContainer" style="display: none;"></p>').html('<textarea id="CzyWieszComment" style="width: 570px;" rows="2" value=""></textarea>');var f=$('<p id="CzyWieszRules"></p>').html(`<small>Reguły: Zgłaszaj hasła, które powstały lub zostały rozbudowane nie dawniej niż 10 dni temu.
				Hasła muszą posiadać źródła (najlepiej w formie przypisów) oraz muszą zawierać co najmniej 2 kB samej treści.</small>`).css({border:"1px solid #F0F080",backgroundColor:"#FFFFE0",paddingLeft:"5px"});var k=$('<div id="CzyWieszLoaderBar"></div>').css({width:"100%",backgroundColor:"rgb(220, 220, 220)",border:"1px solid rgb(187, 187, 187)",borderRadius:"3px",boxSizing:"border-box"}).html('<p id="CzyWieszLoaderBarParagraph" style="margin: 0 0 0 7px; position: absolute;">&nbsp;</p>'+'<div id="CzyWieszLoaderBarInner" style="width: 0; height: 20px; background-color: #ABEC46; border: none; border-radius: 3px;"></div>');const C=$("<table></table>").css("width","100%").append(c).append(d).append(p).append(u).append(z).append(g).append(y);const b=$('<div id="CzyWieszGadget"></div>').append(s).append(r).append(l).append(C).append(m).append(w).append(f).append(k);var j={"Zgłoś":function(){if(e.sourced){e.main.checkForm()}else{alert("Artykuł bez źródeł jest zdyskwalifikowany z nominacji. (Jeśli źródła są, to zwróć uwagę, czy tytuł sekcji jest prawidłowy, tzn. „Przypisy” lub „Bibliografia”.)")}},Anuluj:function(){$(this).dialog("close")}};b.dialog({width:600,modal:true,title:(window.DYKnomination_is_beta===true?"BETA: ":"")+"Zgłoszenie artykułu do rubryki „Czy wiesz…”"+(t?' &nbsp; (<small id="CzyWieszDialogDebug" style="color: red;">TRYB DEBUG</small>)':""),draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()},buttons:j});if(e.debugmode){$("#CzyWieszQuestion").val(`jak testować ''']'''?`)}this.loadData();if($("#CzyWieszStyleTag").length==0){e.config.styletag.appendTo("head")}$("#CzyWieszFile1").change(function(){var e=$("#CzyWieszFile2");e.prop("disabled",!e.prop("disabled"))});if(a>0){$("#CzyWieszGalleryToggler").toggle();$("#CzyWieszGalleryToggler a").click(function(){var e='<div id="CzyWieszGalleryHolder">'+`<div id="CzyWieszGallery">`;for(var t=0;t<i.length;t++){e+="<fig>";e+=i.outerHTML.replace(/\swidth=\"\d+\"/,"").replace(/\sheight=\"*\"/,"").replace(/\sclass=\"*\"/g,"");e+="</fig>"}e+="</div> </div>";$(e).dialog({width:547,modal:true,title:"Wybierz grafikę:",draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()},buttons:{Wybierz:function(){if($("#CzyWieszFile1").length>0){$("#CzyWieszFile1").prop("checked",true);$("#CzyWieszFile2").prop("disabled",false);$("#CzyWieszFile2").val($(".czy-wiesz-gallery-chosen").length==0?"":decodeURIComponent($(".czy-wiesz-gallery-chosen").src.match(/\/\/upload\.wikimedia\.org\/wikipedia\/commons(\/thumb)?\/.\/..\/(+)\/?/)).replace(/_/g," "))}$(this).dialog("destroy");$(this).remove()},Anuluj:function(){$(this).dialog("close")}}});$("#CzyWieszGallery img").each(function(){$(this).click(function(){$(".czy-wiesz-gallery-chosen").each(function(){$(this).toggleClass("czy-wiesz-gallery-chosen")});$(this).toggleClass("czy-wiesz-gallery-chosen")})})})}$("#CzyWieszRefs small a").click(function(){$(`<div>
				<div class="floatright">${e.config.CWicon}</div>
				<p style="margin-left: 10px;">Zgodnie z wytycznymi <a class="czywiesz-external" target="_blank" href="https://wikifreehand.com/pl/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojektu Czy wiesz</a> zgłaszane hasło powinno posiadać źródła w formie bibliografii lub przypisów.
				<a class="czywiesz-external" target="_blank" href="https://wikifreehand.com/pl/Wikiprojekt:Czy_wiesz/pomoc#Zg.C5.82aszanie_propozycji_i_poprawa_hase.C5.82" title="Wikiprojekt:Czy wiesz/pomoc#Zgłaszanie propozycji i poprawa haseł">Więcej informacji w instrukcji</a>
				<br /><small>Możliwe, że w artykule sekcje ze źródłami są błędnie nazwane – w takim wypadku popraw je.</small></p>
			</div>`).dialog({modal:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()}})});$("#CzyWieszWikiprojectAdd").click(()=>{$("#CzyWieszWikiprojectContainer").append(this.wikiprojects.$select.clone());$("#CzyWieszLoaderBar").parent().css({height:"+=24"})});$("#CzyWieszCommentCheckbox").change(function(){$("#CzyWieszCommentContainer").toggle()});$("#CzyWieszInsertLink").on("click",function(){let e=this.getAttribute("data-target");if(!e&&!e.length){console.warn(" selector empty");return}let t=$(e);let i=mw.config.get("wgTitle");t.textSelection("encapsulateSelection",{pre:`''']'''`})});$("#CzyWieszQuestion").focus()}async loadData(){const e=await this.configHelper.getConfig();this.pagerevs(e);this.wikiprojects.load();this.initEvents(e)}async initEvents(e){const{events:t}=e;if(!t||!t.length){$("#CzyWieszEventsRow .czywiesz-info").html("<i>brak aktywnych akcji</i>");return}const i=$('<select class="czywiesz-select"></select>');i.append('<option value="none">-- (standardowe zgłoszenie) --</option>');for(const a of t){$("<option>").attr("value",a.code).text(a.name).appendTo(i)}$("#CzyWieszEventsRow .czywiesz-info").remove();$("#CzyWieszEventsRow .czywiesz-value").append(i)}async pagerevs(e){const i=this.core;const a=e.options.bigEdit;let o=e.options.hardLimitDays>365?365:e.options.hardLimitDays;let n=e.options.warnLimitDays>=o?-1:e.options.warnLimitDays;const{revisions:s,records:r}=await this.revisionList.readRevs(i.wgTitle,o);i.log("revisions in last days + 1 edit:",s.length);i.log("day-users in last days:",r.length);let l=0;let c="";let d=false;if(r.length>0){let{record:t,size:e}=this.revisionList.findWinner(r,a);i.log(JSON.stringify(t),e);l=e;if(t){if(n>0){let e=this.revisionList.daysAgo(t.day);if(e>n){c=`
							W ciągu ostatnich ${n} dni nie dokonano dużych zmian.
							Ostatnia duża zmiana jest z ${t.day} (${l} bajtów).
						`.replace(/\n\t+/g,"\n")}}$("#CzyWieszAuthor").val(t.user);$("#CzyWieszAuthor").after('&nbsp;<small id="CzyWieszAuthorTip"><span class="czywiesz-tip" title="Autorstwo ustalone wg największej lub najnowszej dużej edycji z ostatnich dni (dodane '+t.added+" znaków, data: "+t.day+').">(!)</span></small>&nbsp;')}else{d=true;c=`
					⚠️ W ciągu ostatnich ${o} dni ''nie dokonano wystarczająco dużych zmian''.
					Skumulowany rozmiar: ${l} bajtów, edycje: ${s.length-1}.
				`.replace(/\n\t+/g,"\n")}}else{i.log(JSON.stringify(s));l=s.size;d=true;c=`⚠️ W ciągu ostatnich ${o} dni ''nie wykonano żadnych zmian''.`.replace(/\n\t+/g,"\n")}if(c.length){if(d){c+="\n\nJeszcze raz rozważ zgłaszanie tego artykułu, gdyż może to być niezgodne z regulaminem."}alert(c)}i.articlesize={size:l,enough:l>=a,warn:l>=a?"":i.config.no+'&nbsp;&nbsp;<strong style="color: red;">Rozmiar '+l+' b dyskwalifikuje artykuł ze zgłoszenia!</strong> \x3c!--small>(<a class="czywiesz-external">info</a>)</small--\x3e'};if(r&&r.length){let e=`<table class="wikitable">`;e+=`<tr>
				<th>Data</th>
				<th>Dodane</th>
				<th>Usunięte</th>
				<th>Edycje</th>
				<th>Autor(ka)</th>
			</tr>`;for(const z of r){e+=`<tr>
					<td>${z.day}</td>
					<td>+${z.added}</td>
					<td>-${z.removed}</td>
					<td>${z.edits}${z.isNew?" (nowy art.)":""}</td>
					<td>${z.user}</td>
				</tr>`}e+=`</table>`;const t=mw.util.getUrl(null,{action:"history"});const p=document.querySelector("#CzyWieszAuthorInfo td");p.innerHTML=`
						<a class="dyk-toggle" role="button" href="#">(pokaż zmiany w ostatnich dniach)</a>
						<div style="display:none" class="dyk-toggle-content">
							${e}
							<a href="${t}" class="czywiesz-external" target="_blank">zobacz historię</a>
						</div>
			`;const u=$(".dyk-toggle-content",p);$(".dyk-toggle",p).click(function(e){e.preventDefault();u.toggle()})}$('<tr id="CzyWieszSize"></tr>').insertAfter($("#CzyWieszRefs")).html("<td>Rozmiar (>2 kb): </td>"+"<td>"+(i.articlesize.enough?i.config.yes:i.articlesize.warn)+"</td>").css(i.articlesize.enough?{display:"none"}:{});$("#CzyWieszGadget .czywiesz-tip").click(function(){alert(this.title)})}prepareValues(){var e=this.core;let t=$("#CzyWieszQuestion").val();let i=$("#CzyWieszFile1").prop("checked")?$("#CzyWieszFile2").val().trim():"";let a=$("#CzyWieszImages").val().trim();let o=e.sourced?"+":" ";let n=$("#CzyWieszAuthor").val().trim();let s=$("#CzyWieszAuthorInf").prop("checked")?true:false;let r=$("#CzyWieszAuthor2").val().trim();let l=$("#CzyWieszSignature").val().trim();var c=new Set;$(".czywiesz-wikiproject").each(function(){var e=$(this).val();if(e!="none"){c.add(e)}});var d=Array.from(c).map(e=>this.wikiprojects.list);const p={code:"",name:""};$("#CzyWieszEventsRow .czywiesz-select").each((e,t)=>{var i=t.value;if(i!="none"){p.code=i;p.name=t.options.text}});console.log(p);var u=$("#CzyWieszCommentCheckbox").prop("checked")?$("#CzyWieszComment").val().trim():false;var z={is:false,fields:,alert:};const g=e.wgTitle.toLowerCase()+e.wgTitle.substr(1);const y="Przykład:\n   ''']''' lub ''']'''\n lub\n   ''']'''.";if(typeof t!="string"||t===""){z.is=true;z.fields.push("Question");z.alert.push("Wpisz pytanie.")}else{t=t.trim().replace(//g,"\n").replace(/\n\s+/g,"\n").replace(/(--)?~{3,5}$/,"").trim().replace(/(^|\n)+/g,"$1").replace(/(^|\n)czy wiesz*/gi,"$1").replace(/\?($|\n)/g,"$1").trim();if(t.length<10){z.is=true;z.fields.push("Question");z.alert.push("Zadaj poprawne pytanie – to jest za krótkie.\n"+y);return z}const m=new RegExp("'''\\s*\\\\]|\\|.*?\\]\\])\\s*'''");const w=t.split("\n").some(e=>!e.match(m));if(w){z.is=true;z.fields.push("Question");z.alert.push("Pytanie musi zawierać link do artykułu. Pogrubiony.\n"+y)}else{t=t.split("\n").map(e=>`…${e}?`).join("\n\n")+"\n"}}if(typeof i=="string"&&i!=""){i="]\n"}if(typeof a!="string"||a===""){z.is=true;z.fields.push("Images");z.alert.push("Podaj liczbę grafik w artykule.")}if(typeof n!="string"||n===""){z.is=true;z.fields.push("Author");z.alert.push("Podaj autora artykułu.")}if(typeof l!="string"||l===""){z.is=true;z.fields.push("Signature");z.alert.push("Podpisz się.")}if(typeof u!="string"&&typeof u!="boolean"||typeof u=="string"&&(u===""||u.match(/^+$/))||typeof u=="string"&&u==true){z.is=true;z.fields.push("Comment");z.alert.push("Jeśli musisz podać jakiś komentarz to podaj jakiś sensowny, jeśli nie – wyłącz to pole. Nie wstawiaj w tym polu samego podpisu (lecz w przypadku komentarza – podpisz się).")}const h={question:t,file:i,images:a,refs:o,author:n,authorInf:s,author2:r,signature:l,comment:u,wikiproject:d,specialEvent:p};return{invalid:z,values:h}}}t.exports={DykForm:s}},{"./DykConfigExtra":4,"./RevisionList":11,"./Wikiprojects":12}],6:).focus()}else{this.dykProcess.prepare(e)}}}t.exports={DykMain:n}},{"./DykForm":5,"./DykProcess":7}],7:.anchor;this.errors.push(`
				Podany artykuł jest zgłoszony do rubryki „Czy wiesz…”.<br />
				<a href="${s}" class="czywiesz-external" target="_blank">Sprawdź</a>.
			`);return true}let a=this.setupNominationPage();let o=await d({url:"/w/api.php?action=query&format=json&prop=&titles="+encodeURIComponent(a)+"&formatversion=2",cache:false});let n=o.query.pages.pop();if(!n.missing){const s="https://wikifreehand.com/pl/"+encodeURIComponent(a);this.errors.push(`
				Podany artykuł był już zgłoszony do rubryki „Czy wiesz…” w tym miesiącu.<br />
				<a href="${s}" class="czywiesz-external" target="_blank">Sprawdź</a>.
			`);return true}return false}async runNominate(){var e=this.core;var t=this.values;let i=this.setupNominationPage();let a=e.config.summary.replace("TITLE",`]`);this.loadbar.next();let o="{{subst:#timel:Y-m-d H:i:s}}";let n=`{{CW/weryfikacja
		| artykuł        = ${e.wgTitle}
		| przypisy       = ${t.refs}
		| ilustracje     = ${t.images}
		| 1. autorstwo   = ${t.author}
		| 2. autorstwo   = ${t.author2}
		| strona         = ${i}
		| akcja kod      = ${t.specialEvent.code}
		| akcja          = ${t.specialEvent.name}
		| nominacja      = ${t.signature}
		| status         = 
		| 1. sprawdzenie = 
		| 2. sprawdzenie = 
		| 3. sprawdzenie = 
		| 4. sprawdzenie = 
		}}`.replace(/\n\t+/g,"\n");let s=`== ] ==\n`+"\x3c!-- artykuł zgłoszony za pomocą gadżetu CzyWiesz --\x3e\n"+`{{licznik czasu|start=${o}|zdarzenie=Dyskusja|rgz=ż|dni=30|nie archiwizuj=tak}}\n`+t.file+t.question+n+"\n"+"\x3c!--\n"+"\tUwaga! Jeśli artykuł ma istotne błędy, to w CW/weryfikacja ustaw:\n"+"\tstatus = problemy \n"+"--\x3e\n"+(t.comment?t.comment+" ":"")+"~~"+"~~";e.log("input:",s);await this.createNomination(s,a);await this.inform_r();await this.inform_a();await this.inform_w();this.success()}async createNomination(t,i){var a=this.core;var e=this.values;a.log("DYKnomination.values:",e);this.loadbar.next();try{let e=this.setupNominationPage();await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:t,summary:i,watchlist:"watch",token:a.edittoken}});this.loadbar.next();await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:a.getBaseNew(),appendtext:"\n{"+"{"+e+"}}",summary:i,watchlist:"nochange",token:a.edittoken}})}catch(e){a.errors.push("Błąd zgłaszania do rubryki: "+e+".");a.errors.show();console.error("Błąd zgłaszania do rubryki: ",e)}}async inform_r(){var t=this.core;var e=t.debugmode;let i=this.setupNominationPage();if(e){t.log(`edit: ${t.wgTitle}, subpage: ${i}`);return}try{await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t.wgTitle,prependtext:"{"+"{Czy wiesz do artykułu|s="+i+"}"+"}\n",summary:t.config.summary_r,watchlist:"nochange",token:t.edittoken}})}catch(e){t.errors.push("Błąd informowania w artykule: "+e);t.errors.show();console.error("Błąd informowania w artykule:",e)}}async inform_a(){var o=this.core;var e=this.values;var n=o.debugmode;if(!e.authorInf){return}let s=this.setupNominationPage();try{let t=o.config.sectionTitle_a.replace("TITLE",o.wgTitle);let i=o.config.summary_a.replace("TITLE",o.wgTitle);let a=`
					{{Czy wiesz - informacja o zgłoszeniu dla autora
					|tytuł strony = ]
					|data = {{subst:#timel:Y-m-d}}
					|s = ${s}
					}}
					Dziękujemy i prosimy o więcej, ~~~~
				`.trim().replace(/++()/g," $1").replace(/++/g,"\n");const r=e=>({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:n?p.debugBase+"/autor":"Dyskusja wikipedysty:"+e,section:"new",sectiontitle:t,text:(n?"debug: '''"+e+"'''\n":"")+a,summary:i,watchlist:"nochange",token:o.edittoken}});if(e.author.length>1){await d(r(e.author))}if(e.author2.length>1){await d(r(e.author2))}}catch(e){o.errors.push("Błąd informowania autora: "+e);o.errors.show();console.error("Błąd informowania autora:",e)}}async inform_w(){var i=this.core;var a=this.values;var e,o,n;if(a.wikiproject.length==0){return}else{n=i.config.sectionTitle_w.replace("TITLE",i.wgTitle);e=i.config.summary_w_newsection.replace("TITLE",i.wgTitle);o=i.config.summary_w.replace("TITLE",i.wgTitle);for(let t=0;t<a.wikiproject.length;t++){const s=a.wikiproject;try{await this.inform_wLoop(n,e,o,s)}catch(e){i.errors.push("Błąd informowania projektu: "+s.name+": "+e.toString()+".");i.errors.show();console.error("Błąd informowania projektu: "+s.name+": "+e.toString()+".");throw new Error(`Błąd informowania projektów (${t} / ${a.wikiproject.length}).`)}this.loadbar.next()}}}async inform_wLoop(e,t,i,a){var o=this.core;var n=o.debugmode;var s=a.page;o.log("curWikiproject:",a,"pageToEdit:",s);let r;let l=this.setupNominationPage();let c=`{{Czy wiesz - informacja o zgłoszeniu dla wikiprojektu|tytuł strony=]|s=${l}}}`;if(!n){let e;try{e=await d({url:"/w/index.php?action=raw&title="+encodeURIComponent(s),cache:false})}catch(e){throw new Error(`Nieudany odczyt strony '${s}' (${e}).`)}if(!e.match(o.config.dykSectionIndicator)){e=e.replace("[[Kategoria:","== Czy wiesz ==\n"+o.config.dykSectionIndicator+"\n\n[[Kategoria:")}e=e.replace(o.config.dykSectionIndicator,o.config.dykSectionIndicator+"\n"+c);o.log("curWikiproject (2):",a,"pageToEdit (2):",s);r={url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:s,text:e,summary:i,watchlist:"nochange",token:o.edittoken}}}else{r={url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:p.debugBase+"/wikiprojekt",section:"new",sectiontitle:e+" • "+a.name,text:"debug: '''"+s+"'''\n"+c,summary:t,watchlist:"nochange",token:o.edittoken}}}await d(r)}success(){var t=this.core;var e=this.values;if(!t.errors.isEmpty()){t.errors.show();return false}this.loadbar.next("done");t.log("Zgłoszenie zakończone sukcesem!");let i=this.setupNominationPage();$(`
			<div id="CzyWieszSuccess">
				<div class="floatright">${t.config.CWicon}</div>
				<p style="margin-left: 10px;">Dziękujemy za 
				<a id="CzyWieszLinkAfter" href="https://wikifreehand.com/pl/${encodeURIComponent(i)}" class="czywiesz-external" target="_blank">zgłoszenie</a>.
				<br /><br />
				Dla pewności możesz sprawdzić 
				<a href="https://wikifreehand.com/pl/Specjalna:Wk%C5%82ad/${encodeURIComponent(e.signature)}" class="czywiesz-external" target="_blank">swój wkład</a>,
				czy wszystko poszło zgodnie z planem.<br />
				<small><a class="CzyWieszEmailDoAutoraToggle">(Coś nie działa?)</a></small>
				<div class="CzyWieszEmailDoAutoraInfo" style="display:none;">
					Jeśli coś poszło nie tak, to <a href="#" role="button" class="CzyWieszEmailDoAutoraWyslij">kliknij tutaj</a>,
					aby wysłać twórcy gadżetu e-mail z opisem błędu, a gadżet dołączy do niego szczegóły techniczne.
					<span class="CzyWieszEmailDoAutoraWyslano"></span>
				</div>
			<br />
			<a href="https://wikifreehand.com/pl/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojekt Czy wiesz</a></p></div>
		`).dialog({modal:true,dialogClass:"wikiEditor-toolbar-dialog",title:t.config.tmpldone,close:function(){$(this).dialog("destroy");$(this).remove();$("#CzyWieszGadget").dialog("destroy");$("#CzyWieszGadget").remove()}});$("#CzyWieszSuccess a.CzyWieszEmailDoAutoraToggle").click(function(){$("#CzyWieszSuccess .CzyWieszEmailDoAutoraInfo").toggle()});$("#CzyWieszSuccess a.CzyWieszEmailDoAutoraWyslij").click(function(e){e.preventDefault();t.emailauthor(this)});return true}}t.exports={DykProcess:o}},{"./Loadbar":9,"./asyncAjax":13,"./config":15}],8:}clear(){this.errors.length=0}push(e){this.errors.push(e)}isEmpty(){return this.errors.length<1}show(){let t=$("<ul></ul>");for(let e=0;e<this.errors.length;e++){t.append($("<li></li>").html(this.errors))}let e=$('<div id="CzyWieszErrorDialog"></div>').append(t).append($(`
				<p>Coś poszło nie tak. Jeśli powyższa lista nie wyjaśnia problemu, to więcej informacji jest w konsoli przeglądarki.</p>
				<p>Jeśli problem jest nietypowy, to <a href="#" role="button" class="CzyWieszEmailDoAutoraWyslij">wyślij e-mail programiście z danymi błędu</a> (szybka wysyłka logów mailem).<span class="CzyWieszEmailDoAutoraWyslano"></span></p>
				<p>Możesz też opisać co się stało na <a href="https://pl.wikipedia.orghttps://wikifreehand.com/pl/WP:BAR:TE" class="czywiesz-external" target="_blank">w kawiarence technicznej</a>.</p>
			`));e.dialog({width:400,modal:true,title:"Wystąpił błąd",draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()}});const i=this;$("#CzyWieszErrorDialog a.CzyWieszEmailDoAutoraWyslij").click(function(e){e.preventDefault();i.emailSupport(this)})}}t.exports={ErrorInfo:a}},{}],9:,10:=e.from})}for(const r in o){if(o.hasOwnProperty(r)){const l=o;let e=l.title;if(e in this.titles){e=this.titles}else if(e in s){e=this.titles]}else{console.warn("title not found",e)}let t=l.revisions;n=JSON.parse(t)}}this.cachedData=n;this.cacheTimestamp=Date.now();this.storageSave();return n}debug(e="",t=""){console.log("",e,t)}storageSave(){if(typeof mw==="object"&&mw.storage){this.debug("store");mw.storage.setObject(this.cacheKey,{cachedData:this.cachedData,cacheTimestamp:this.cacheTimestamp})}}storageRestore(){if(typeof mw==="object"&&mw.storage){let e=mw.storage.getObject(this.cacheKey);this.debug("restore",e);if(!e||!e.cachedData||!e.cacheTimestamp){return false}this.cachedData=e.cachedData;this.cacheTimestamp=e.cacheTimestamp;return true}return false}isCacheValid(){if(!this.cachedData||!this.cacheTimestamp){this.debug("not in internal");let e=this.storageRestore();if(!e){this.debug("no cache");return false}}let e=(Date.now()-this.cacheTimestamp)/(1e3*60*60);this.debug("cache age:",e);return e<this.cacheMaxAge}async getConfig(){if(this.isCacheValid()){this.debug("from cache");return this.cachedData}else{this.debug("from wiki api");return await this.fetchConfig()}}}async function a(){var e="test-gadget-options";var t={"Wikiprojekt:Czy_wiesz/konfiguracja/opcje.json":"options","Wikiprojekt:Czy_wiesz/konfiguracja/akcje.json":"events"};var i=new o(t,e);var a=await i.getConfig();console.log(a);console.log("Done")}t.exports={ReadJsonCached:o}},{}],11:}async readRevs(e,t){const i=new Date;i.setDate(i.getDate()-t);const a=i.toISOString();let o;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:,rvend:a,rvlimit:"max",titles:e});const n=this.firstPage(o).revisions;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:,rvlimit:!n?1:n.length+1,titles:e});const s=this.firstPage(o).revisions;if(n&&n.length){const r=this.prepareData(s,i);return{revisions:s,records:r}}else{return{revisions:s,records:}}}prepareData(e,t){e.sort((e,t)=>new Date(t.timestamp)-new Date(e.timestamp));let s=0;if(t){if(t instanceof Date){s=t}else{s=new Date;s.setDate(s.getDate()-t)}}const r={};let l=false;let c=false;let d=false;e.some(e=>{const t=new Date(e.timestamp);if(c){const n=c.size-e.size;if(n>0){d.added+=n}else{d.removed+=Math.abs(n)}d.edits++}if(c&&t<s){l=true;return true}const i=e.timestamp.split("T");const a=`${i}:${e.user}`;if(!r){r={day:i,user:e.user,added:0,removed:0,edits:0}}const o=r;c=e;d=o});if(!l){d.added+=c.size;d.edits++;d.isNew=true}const i=Object.values(r);return i}findWinner(e,t){for(const n of e){if(n.added>=t){return{record:n,size:n.added}}}let i;let a=0;let o=0;for(const n of e){if(n.added>0){if(n.added>a){a=n.added;i=n}o+=n.added;if(o>=t){return{record:i,size:o}}}}return{record:false,size:o}}daysAgo(e,t=new Date){const i=new Date(e);const a=t-i;const o=Math.floor(a/(1e3*60*60*24));return o}cutToDays(e,t){let i=;for(const a of e){if(this.daysAgo(a.day)>t){break}i.push(a)}return i}}t.exports={RevisionList:a}},{}],12:;this.$select=null}load(){gadget.getWikiprojects().then(e=>{const t=e.wikiprojects.map(e=>({name:e.name,page:e.page}));this.list=t;this.$select=$('<select class="czywiesz-wikiproject"></select>').css("vertical-align","middle");this.$select.append('<option value="none">-- (żaden) --</option>');for(var i=0;i<this.list.length;i++){if(typeof this.list=="function")continue;$("<option>").attr("value",i).text(this.list.name).appendTo(this.$select)}$("#CzyWieszWikiprojectContainer small").remove();$("#CzyWieszWikiprojectContainer").append(this.$select.clone())})}}t.exports={Wikiprojects:a}},{}],13:,14:,15:{}⟨⟩'\"„”«»/\\",miesiacArr:,refSectionsArr:,wikiConfigKey:"dyk-extra-options",wikiConfigTitles:{"Wikiprojekt:Czy_wiesz/konfiguracja/opcje.json":"options","Wikiprojekt:Czy_wiesz/konfiguracja/akcje.json":"events"},wiki:{events:,options:{hardLimitDays:30,warnLimitDays:10,bigEdit:2048}},debugBase:"Wikipedysta:Nux/CzyWieszTest",supportUser:"Nux",supportEmailTopic:"Błąd w Gadżecie Czy wiesz",portlet_title:"Zgłoś do „Czy wiesz…”",dykSectionIndicator:"\x3c!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii --\x3e",summary:"TITLE nowe zgłoszenie za pomocą ]",summary_done:"TITLE ozn. jako ocenione za pomocą ]",summary_rollback:"TITLE wraca do propozycji za pomocą ]",summary_r:"Nominacja artykułu do rubryki „]” za pomocą ]",summary_a:"/* Czy wiesz – ] */ nowe zgłoszenie za pomocą ]",sectionTitle_a:"Czy wiesz – ]",summary_w:"/* Czy wiesz */ ] – nowe zgłoszenie za pomocą ]",summary_w_newsection:"/* Czy wiesz – ] */ nowe zgłoszenie za pomocą ]",sectionTitle_w:"Czy wiesz – ]",styletag:$('<style id="CzyWieszStyleTag">'+`
						.wikiEditor-toolbar-dialog .czy-wiesz-gallery-chosen { border: solid 2px red; }
						#CzyWieszWikiprojectAdd {cursor: pointer; }
						#CzyWieszGadget .czywiesz-tip {
							cursor: help;
							color: #d05700;
						}
						a.czywiesz-external { 
							color: #0645AD;
							text-decoration: underline;
							cursor: pointer;
							padding-right: 13px; 
							background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=)
								center right no-repeat; 
						}
						.dyk-button-off {
							pointer-events: none;
							opacity: .5;
						}
						#CzyWieszErrorDialog.wait-im-sending-email, #CzyWieszSuccess.wait-im-sending-email {
							cursor: wait; 
						}
					`+"</style>"),yes:'<img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20">',no:'<img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20">',CWicon:'<img alt="PL Wiki CzyWiesz ikona.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/80px-PL_Wiki_CzyWiesz_ikona.svg.png" width="80" height="80" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/120px-PL_Wiki_CzyWiesz_ikona.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/160px-PL_Wiki_CzyWiesz_ikona.svg.png 2x">',tmpldone:'<span class="template-done"><img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/30px-Crystal_Clear_app_clean.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/40px-Crystal_Clear_app_clean.png 2x"><span style="display:none">T</span> <b>Załatwione</b></span>',tmplndone:'<span class="template-not-done"><img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/30px-Crystal_Clear_action_button_cancel.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/40px-Crystal_Clear_action_button_cancel.png 2x"><span style="display:none">N</span> <b>Niezałatwione</b></span>'};t.exports={config:a}},{}],16:).then(function(){$(document).ready(function(){const e=mw.util.addPortletLink("p-tb","#",(window.DYKnomination_is_beta===true?"BETA: ":"")+a.config.portlet_title,"t-DYKnomination");$(e).click(e=>{e.preventDefault();a.askuser()}).attr("title",`Nominacje do WP:CW v${a.about.version}`);mw.hook("userjs.DYKnomination.ready").fire(a)})})}else if(l=="Wikipedia:Narzędzia/CzyWiesz"){$(".DYKnomination-version").html(a.about.version)}if(l.indexOf("/propozycje")>0||l.indexOf("/ocenione")>0){o(a);mw.hook("userjs.DYKnomination.loaded").fire(a,{DoneHandling:s});let e=mw.config.get("wgUserGroups").includes("editor");if(e){const c=new s(l,a);$(document).ready(function(){c.init()})}else{console.warn("","Brak uprawnień redaktorskich, nie można zarządzać propozycjami.")}}window.DYKnomination=a},{"./CzyWiesz":1,"./DoneHandling":3}],17:,18:},{},);
// </nowiki>