Dalībnieks:Edgars2007/dyk-maintaince.js

Vikipēdijas lapa

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 );
	}
})