Dalībnieks:Edgars2007/dyk-maintaince.js
Piezīme: Lai redzētu izmaiņas, pēc publicēšanas var nākties iztīrīt sava pārlūka kešatmiņu.
- Firefox / Safari: Pieturi Shift un klikšķini uz Pārlādēt vai nospied Ctrl-F5 vai Ctrl-R (⌘-R uz Mac)
- Google Chrome: Nospied Ctrl-Shift-R (⌘-Shift-R uz Mac)
- Internet Explorer / Edge: Pieturi Ctrl un klikšķini uz Pārlādēt vai nospied Ctrl-F5
- Opera: Nospied Ctrl-F5.
//var days = 2;
var daysInMonth = 30;
//var nextDay = 18;
function addTemplateF(comment) {
var api = new mw.Api();
api.get( {
action: 'parse',
page: 'Dalībnieks:Edgars2007/Dyk sagatave',
prop: 'wikitext',
} )
.done( function( data ) {
console.log(data);
console.log('succesfull API request');
var wikitext = data.parse.wikitext['*'];
console.log(wikitext);
var oldtext = "}}<noinclude>\n{{dokumentācija|Veidne:Vai tu zināji/doc}}</noinclude>";
var newtext = comment+"\n}}<noinclude>\n{{dokumentācija|Veidne:Vai tu zināji/doc}}</noinclude>";
wikitext = wikitext.replace(oldtext,newtext);
//var api = new mw.Api();
api.post( {
action: 'edit',
token: mw.user.tokens.get( 'csrfToken' ),
title: 'Dalībnieks:Edgars2007/Dyk sagatave',
text: wikitext,
summary: 'faktu pievienošana'
} )
.done( function( data ) {
//todo: ielikt paziņojumu, ka veiksmīgi pielikta veidne
//location.reload();
console.log('edited the page!');
} )
.fail( function( error ) {
console.log( error );
} );
} );
}
function cleanPage(usedFacts,dyktext) {
var api = new mw.Api();
api.get( {
action: 'parse',
page: 'Dalībnieks:Edgars2007/Dyk ieteikumi',
prop: 'wikitext',
} )
.done( function( data ) {
console.log(data);
console.log('succesfull API request');
var wikitext = data.parse.wikitext['*'];
console.log(wikitext);
var archivetext = "{{ombox | text = Saraksta sākumā ir jaunākie fakti}}";
usedFacts = usedFacts.replace(/(\[\[Attēls:.*\|)(\d+px)\]\]/g, '$150px]]');
var newarchive = archivetext+"\n\n"+usedFacts;
wikitext = wikitext.replace(dyktext,'');
wikitext = wikitext.replace(archivetext,newarchive);
//var api = new mw.Api();
api.post( {
action: 'edit',
token: mw.user.tokens.get( 'csrfToken' ),
title: 'Dalībnieks:Edgars2007/Dyk ieteikumi',
text: wikitext,
summary: 'maintaince'
} )
.done( function( data ) {
//todo: ielikt paziņojumu, ka veiksmīgi pielikta veidne
//location.reload();
console.log('edited the page2!');
} )
.fail( function( error ) {
console.log( error );
} );
} );
}
function formatImage(group1, group2, group3) {
var string;
if ( group3!==undefined ){
string = "{{#ifeq:{{{2|}}}|att|{{space}}"+group2+"}}"+group3;
} else {
string = group1+"{{#ifeq:{{{2|}}}|att|"+group2+"}}";
}
return string;
}
function addFacts(splitted,daysInMonth,nextDay,days){
formattedString = new Array();
for (var counter = 0; counter < days; counter++) {
//console.log('nextDay: ' +nextDay);
var switcher,comment;//switcher - {{#switch mainītājs; comment - <!-- X. datums -->
if (nextDay==daysInMonth) {
switcher = nextDay+'|0';
comment = nextDay;
nextDay = 0;
} else {
switcher = nextDay;
comment = nextDay;
nextDay++;
}
var factsThisDay = splitted[counter];
var myRegexp = /(\[\[Attēls:.*\|\d+px\]\])\n([^$]+)/g;
var match = myRegexp.exec(factsThisDay);
var file = match[1];
var facts = match[2];
//console.log(file);
//console.log('facts before replace: ' + facts);
facts = facts.replace( /(.)(<small>.+?<\/small>)([\.\?\!\,\:])?/g, function( match, group1, group2, group3 ) {
//console.log('match: ' + match);
//console.log('gr1: ' + group1);
//console.log('gr2: ' + group2);
//console.log('gr3: ' + group3);
var string = formatImage(group1, group2, group3);
return string;
} );
//console.log('facts after replace: ' + facts);
var formatting = "<!--"+comment+". datums\n-->|"+switcher+"={{#ifeq:{{{2|}}}|att|"+file+"}}\n"+facts;
//console.log(formatting);
//console.log('counter: ' +counter);
//console.log('nextDay: ' +nextDay);
formattedString.push(formatting);
}
//console.log(formattedString);
var joinedFacts = formattedString.join('\n');
addTemplateF(joinedFacts);
//console.log(joinedFacts);
}
function dykMaintainceFF(numberdays,startdate){
var api = new mw.Api();
api.get( {
action: 'parse',
page: 'Dalībnieks:Edgars2007/Dyk ieteikumi',
prop: 'wikitext',
section: 2
} )
.done( function( data ) {
var dyktext = data.parse.wikitext['*'];
//console.log(dyktext);
var splitted = dyktext.split('\n<!--dyk diena -->\n');
//console.log('splitted: '+ splitted);
//console.log('splitted lenght: '+ splitted.length);
splitted.splice(0, 1);
//console.log(splitted);
//console.log(splitted.length);
var usedFacts= splitted.slice().reverse();
usedFacts = usedFacts.join('\n');
//console.log(usedFacts);
addFacts(splitted,daysInMonth,numberdays,startdate);
cleanPage(usedFacts,dyktext);
} )
.fail( function( error ) {
console.log( error );
} );
}
function dykMaintaince(){
mw.loader.using( ['jquery.ui'], function() {
var $dialog = $("<div>").text( '' ).dialog({
title: 'Pievienot faktus',
autoOpen: true,
width: 450,
//height: 500,
});
$dialog
.append('Sākuma datums: <input class="startdate" type="text" name="startdate" value=""><br>')
.append('Dienu skaits: <input class="numberofdays" type="text" name="numberofdays" value=""><br>')
.append('<br><button id="submitdyk">Darīt visu!</button>')
})
$( "#submitdyk" ).on('click', function () {
//dykMaintainceFF(numberdays,startdate)
// $.when(
function getStartdate() {
$('.startdate').on('change', function() {
var fieldValue = $(this).val();
if(fieldValue) {
console.log('day count: ' +fieldValue);
return fieldValue;
} else {
console.log('no day count!');
}
});
}
function getDatecount() {
$('.numberofdays').on('change', function() {
var fieldValue = $(this).val();
if(fieldValue) {
console.log('day count: ' +fieldValue);
return fieldValue;
} else {
console.log('no day count!');
}
});
}
numberdays = getDatecount();
startdate = getStartdate();
console.log(numberdays);
console.log(startdate);
// ).then( function () {
console.log('here');
// } );
});
}
$( function( $ ){
if (mw.config.get( 'wgNamespaceNumber' ) != -1) {
$( mw.util.addPortletLink( 'p-cactions', '#', 'dyk1', null, 'apraksts' ) ).on( "click", dykMaintaince );
}
})