MediaWiki:Gadget-CzyWiesz.js
Wygląd
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
- Opera: Naciśnij klawisze Ctrl+F5.
// <nowiki>
/**
* Nominacje do Czy-Wiesza aka DYKnomination (Did You Know).
*
* Instrukcja:
* [[Wikipedia:Narzędzia/CzyWiesz]]
*
* Repozytorium i historia zmian:
* https://github.com/Eccenux/wiki-DYKCzyWiesz
*
* Wdrożone za pomocą: [[Wikipedia:Wikiploy]]
*/
(function(){function d(n,s,r){function l(i,e){if(!s[i]){if(!n[i]){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[i]={exports:{}};n[i][0].call(o.exports,function(e){var t=n[i][1][e];return l(t||e)},o,o.exports,d,n,s,r)}return s[i].exports}for(var c="function"==typeof require&&require,e=0;e<r.length;e++)l(r[e]);return l}return d})()({1:[function(i,e,t){var a={};const{versionInfo:o}=i("./build/version");a.about={version:`${o.version}-${o.buildDay}`+(window.DYKnomination_is_beta===true?"beta":""),beta:window.DYKnomination_is_beta===true?true:false,author:"Kaligula",authorlink:"[[w:pl:user:Kaligula]]",homepage:"[[w:pl:Wikipedia:Narzędzia/CzyWiesz]]",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("[DYK]");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:[function(e,t,i){class a{constructor(e,t){this.title=e;this.info=t;this.doneDialogInternal=false;this.elInfo=false;this.elWarnings=false;this.elWarningsList=false}open(){if(!this.doneDialogInternal){this.init()}this.windowManager.openWindow(this.doneDialogInternal)}update(e,t,i=true){if(!t){this.elInfo.innerHTML=e}else{const a=document.createElement("div");a.innerHTML=e;this.elInfo.appendChild(a)}if(t||i){this.forceResize()}}warn(e,t=true,i=true){this.elWarnings.style.display=e.length?"block":"none";if(!e.length||!t){this.elWarningsList.innerHTML=""}if(e.length){const a=document.createElement("li");a.innerHTML=e;this.elWarningsList.appendChild(a)}if(i){this.forceResize()}}forceResize(){this.windowManager.updateWindowSize(this.doneDialogInternal)}init(){const e=this;function i(e){i.super.call(this,e)}OO.inheritClass(i,OO.ui.ProcessDialog);i.static.name="doneDialogInternal";i.static.title=this.title;i.static.actions=[{action:"save",label:"Zamknij",flags:"primary"}];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[0].querySelector(".info");e.elWarnings=this.content.$element[0].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([t]);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="/wiki/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="/wiki/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\/[0-9-]+\/([^}]+))\}\}\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=`[[${t}|${e}]]`;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=`[[${t}|${e}]]`;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:["primary","progressive"]});const o=a.$element[0];o.addEventListener("click",i);e.insertAdjacentElement("afterend",o);return a}}t.exports={DoneHandling:a}},{"./DoneDialog":2,"./asyncAjax":13,"./simpleDialogs":17,"./stringOps":18}],4:[function(e,t,i){const{ReadJsonCached:a}=e("./ReadJsonCached");class o{constructor(e){this.coreConfig=e;this.configHelper=new a(e.wikiConfigTitles,e.wikiConfigKey);this.data=e.wiki;this.parsed=false}debug(e="",t=""){console.log("[DYK-opt]",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("[DYK] 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:[{name:"Tytuł"},{code:"test",name:"Testowy"}]});console.log(a);t.merge(a,{events:[{code:"test1",name:"Testowy1"},{code:"test2",name:"Testowy2"}]});console.log(a);console.log("Done")}t.exports={DykConfigExtra:o}},{"./ReadJsonCached":10}],5:[function(e,t,i){const{RevisionList:a}=e("./RevisionList");const{DykConfigExtra:o}=e("./DykConfigExtra");const{Wikiprojects:n}=e("./Wikiprojects");function f(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/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 [id]");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[typeof="mw:File"] a.mw-file-description img
,figure[typeof="mw:File/Thumb"] img
,.gallery span[typeof="mw:File"] img
`,$("#mw-content-text"));var a=i.length;var o={warn:e.config.no+' <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: <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;"> <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>[[Plik:</tt><input type="text" id="CzyWieszFile2" name="CzyWieszFile2" style="width: 52%; vertical-align: middle;" disabled><tt>|100px|right]]</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;">
<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;"> </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?' (<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ć '''[[${e.wgTitle}]]'''?`)}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[t].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")[0].src.match(/\/\/upload\.wikimedia\.org\/wikipedia\/commons(\/thumb)?\/.\/..\/([^\/]+)\/?/)[2]).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="/wiki/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="/wiki/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("[DYK] selector empty");return}let t=$(e);let i=mw.config.get("wgTitle");t.textSelection("encapsulateSelection",{pre:`'''[[${i}|`,post:`]]'''`})});$("#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(' <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> ')}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[0].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+' <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[e]);const p={code:"",name:""};$("#CzyWieszEventsRow .czywiesz-select").each((e,t)=>{var i=t.value;if(i!="none"){p.code=i;p.name=t.options[t.selectedIndex].text}});console.log(p);var u=$("#CzyWieszCommentCheckbox").prop("checked")?$("#CzyWieszComment").val().trim():false;var z={is:false,fields:[],alert:[]};const g=e.wgTitle[0].toLowerCase()+e.wgTitle.substr(1);const y="Przykład:\n '''[["+e.wgTitle+"]]''' lub '''[["+g+"]]'''\n lub\n '''[["+e.wgTitle+"|nazwa do wyświetlenia, jeśli inna niż tytuł]]'''.";if(typeof t!="string"||t===""){z.is=true;z.fields.push("Question");z.alert.push("Wpisz pytanie.")}else{t=t.trim().replace(/[\r\n]/g,"\n").replace(/\n\s+/g,"\n").replace(/(--)?~{3,5}$/,"").trim().replace(/(^|\n)[.…]+/g,"$1").replace(/(^|\n)czy wiesz[\s,\.]*/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*\\[\\[("+f(e.wgTitle)+"|"+f(g)+")(\\]\\]|\\|.*?\\]\\])\\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="[[Plik:"+(i.match(/^(Plik:|File:)/i)?i.replace(/^(Plik:|File:)/i,""):i)+"|100px|right]]\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(/^[^A-ZĘÓĄŚŁŻŹĆŃa-zęóąśłżźćń]+$/))||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:[function(e,t,i){const{DykProcess:a}=e("./DykProcess");const{DykForm:o}=e("./DykForm");class n{constructor(e){this.core=e;this.dykProcess=new a(e);this.dykForm=new o(e);this.core.askuser=()=>this.askuser();this.core.debug=()=>this.debug()}askuser(){this.dykForm.askuser()}debug(){this.core.debugmode=true;this.dykForm.askuser()}checkForm(){const{values:e,invalid:t}=this.dykForm.prepareValues();if(t.is){$(t.fields).each(function(){$("#CzyWiesz"+this).css({border:"solid 2px red"}).change(function(){$(this).css({border:"none"})})});alert(t.alert.join("\n"));$("#CzyWiesz"+t.fields[0]).focus()}else{this.dykProcess.prepare(e)}}}t.exports={DykMain:n}},{"./DykForm":5,"./DykProcess":7}],7:[function(e,t,i){const{Loadbar:a}=e("./Loadbar");const{apiAsync:d}=e("./asyncAjax");const{config:p}=e("./config");class o{constructor(e){this.core=e;this.values={}}async prepare(e){this.values=e;this.wgTitle=this.core.wgTitle;var t=this.values;this.errors=this.core.errors;this.errors.clear();this.loadbar=new a(4+t.wikiproject.length+(t.authorInf?1:0));this.loadbar.next();this.setupNominationPage();let i;try{i=await this.checkNominationExists()}catch(e){this.errors.push("Błąd sprawdzania istniejących zgłoszeń: "+e+".");this.errors.show();console.error("Błąd sprawdzania istniejących zgłoszeń: ",e)}if(i){this.errors.show()}else{await this.core.getEditToken(false);await this.runNominate()}}setupNominationPage(){if(!this.nominationDate){this.nominationDate=new Date}this.nominationPage=this.core.getNominationPage(this.nominationDate,this.wgTitle);return this.nominationPage}async checkNominationExists(){let e=await d({url:"/w/api.php?action=parse&format=json&page="+encodeURIComponent(this.core.getBaseNew())+"&prop=sections",cache:false});let t=e.parse.sections;this.core.log("Sekcje na stronie nominacji:",t);let i=t.filter(e=>e.level==2&&e.line==this.wgTitle);if(i.length){const s="/wiki/"+encodeURIComponent(this.setupNominationPage())+"#"+i[0].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="/wiki/"+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",`[[${i}|${e.wgTitle}]]`);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=`== [[${i}|${e.wgTitle}]] ==\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 t=this.core;var e=this.values;var i=t.debugmode;var a,o;if(!e.authorInf){return}let n=this.setupNominationPage();try{a=t.config.sectionTitle_a.replace("TITLE",t.wgTitle);o=t.config.summary_a.replace("TITLE",t.wgTitle);const s=e=>({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:i?p.debugBase+"/autor":"Dyskusja wikipedysty:"+e,section:"new",sectiontitle:a,text:(i?"debug: '''"+e+"'''\n":"")+"{"+"{subst:Czy wiesz - autor0|tytuł strony="+t.wgTitle+"|s="+n+"}} ~~"+"~~",summary:o,watchlist:"nochange",token:t.edittoken}});if(e.author.length>1){await d(s(e.author))}if(e.author2.length>1){await d(s(e.author2))}}catch(e){t.errors.push("Błąd informowania autora: "+e);t.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[t];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 - wikiprojekt|${o.wgTitle}|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="/wiki/${encodeURIComponent(i)}" class="czywiesz-external" target="_blank">zgłoszenie</a>.
<br /><br />
Dla pewności możesz sprawdzić
<a href="/wiki/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="/wiki/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:[function(e,t,i){class a{constructor(e,t){this.emailSupport=e;this.supportUser=t;this.errors=[]}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[e]))}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.org/wiki/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:[function(e,t,i){class a{constructor(e){this.task=-1;this.tasks=e}next(e){if(typeof e!="string"){this.task++;e=Math.min(this.task,4)}var t=this.tasks;var i;switch(e){case 0:i="Sprawdzam stronę zgłoszeń…";break;case 1:i="Pobieram dane z formularza…";break;case 2:i="Przygotowuję dane do wysłania…";break;case 3:i="Zgłaszam propozycję…";break;case 4:i="Informuję o zgłoszeniu…";break;case"done":i="Zakończono!";e=t;break;case"error":i="Wystąpił błąd!";break;default:i=""}$("#CzyWieszLoaderBarParagraph").text(i);if(e!="error"){$("#CzyWieszLoaderBarInner").css({width:100*e/t+"%"})}else{$("#CzyWieszLoaderBarInner").css({backgroundColor:"red"})}}}t.exports={Loadbar:a}},{}],10:[function(e,t,i){class o{constructor(e,t){this.cachedData=null;this.cacheTimestamp=null;this.apiUrl="https://pl.wikipedia.org/w/api.php";this.cacheMaxAge=24;this.cacheKey=t;this.titles={};if(typeof e==="object"){this.titles=e}}async fetchConfig(){const e=this.apiUrl;const t=new URLSearchParams({action:"query",prop:"revisions",titles:Object.keys(this.titles).join("|"),rvprop:"content",format:"json"});const i=await fetch(`${e}?${t.toString()}`);const a=await i.json();const o=a.query.pages;const n={};let s={};if(a.query.normalized){a.query.normalized.forEach(e=>{s[e.to]=e.from})}for(const r in o){if(o.hasOwnProperty(r)){const l=o[r];let e=l.title;if(e in this.titles){e=this.titles[e]}else if(e in s){e=this.titles[s[e]]}else{console.warn("title not found",e)}let t=l.revisions[0]["*"];n[e]=JSON.parse(t)}}this.cachedData=n;this.cacheTimestamp=Date.now();this.storageSave();return n}debug(e="",t=""){console.log("[DYK-opt]",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:[function(e,t,i){class a{constructor(){this.api=false;this.readLimit=100}getApi(){if(!this.api){this.api=new mw.Api}return this.api}firstPage(e){let t;for(t in e.query.pages){break}return e.query.pages[t]}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:["ids"],rvend:a,rvlimit:"max",titles:e});const n=this.firstPage(o).revisions;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:["timestamp","user","size"],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")[0];const a=`${i}:${e.user}`;if(!r[a]){r[a]={day:i,user:e.user,added:0,removed:0,edits:0}}const o=r[a];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:[function(e,t,i){class a{constructor(){this.list=[];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[i]=="function")continue;$("<option>").attr("value",i).text(this.list[i].name).appendTo(this.$select)}$("#CzyWieszWikiprojectContainer small").remove();$("#CzyWieszWikiprojectContainer").append(this.$select.clone())})}}t.exports={Wikiprojects:a}},{}],13:[function(e,t,i){function a(e){var t=$.Deferred();$.ajax(e).done(function(e){if(e.error){t.reject(e.error.info,e)}else{t.resolve(e)}}).fail(function(e){t.reject("$.ajax.fail()",e)});return t.promise()}function o(e){return new Promise((t,i)=>{a(e).done(function(e){t(e)}).fail(function(e,t){console.error(e,t);i(e)})})}t.exports={apiAjax:a,apiAsync:o}},{}],14:[function(e,t,i){let a={version:"6.12.0",buildDay:"2024-09-11"};t.exports={versionInfo:a}},{}],15:[function(e,t,i){var a={interp:".,:;!?…-–—()[]{}⟨⟩'\"„”«»/\\",miesiacArr:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],refSectionsArr:["Bibliografia","Przypisy"],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ą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_done:"TITLE ozn. jako ocenione za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_rollback:"TITLE wraca do propozycji za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_r:"Nominacja artykułu do rubryki „[[Szablon:Czy wiesz|Czy wiesz]]” za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_a:"/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",sectionTitle_a:"Czy wiesz – [[TITLE]]",summary_w:"/* Czy wiesz */ [[TITLE]] – nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_w_newsection:"/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",sectionTitle_w:"Czy wiesz – [[TITLE]]",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:[function(e,t,i){const{DYKnomination:a,createDyk:o,createFullDyk:n}=e("./CzyWiesz");const{DoneHandling:s}=e("./DoneHandling");const r=mw.config.get("wgNamespaceNumber");const l=mw.config.get("wgPageName");if(r===0){n(a);mw.hook("userjs.DYKnomination.loaded").fire(a);mw.loader.using(["mediawiki.util"]).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("[DYK]","Brak uprawnień redaktorskich, nie można zarządzać propozycjami.")}}window.DYKnomination=a},{"./CzyWiesz":1,"./DoneHandling":3}],17:[function(e,t,i){function a(e,t){const i=t?e:$("<div>"+e+"</div>");return new Promise(t=>{OO.ui.confirm(i).done(function(e){t(e)})})}t.exports={stdConfirm:a}},{}],18:[function(e,t,i){function a(e){return e.toString().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}t.exports={htmlspecialchars:a}},{}]},{},[16]);
// </nowiki>