Benutzer:DerFussi/LA.js

Aus Wikivoyage

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
// <nowiki>
( function ( mw, $ ) {

	// check whether mediawiki and jquery is defined
	if ( typeof ( mw ) == 'object' && typeof ( $ ) == 'function' ) {

	// check Pagename
	var pageName =	mw.config.get ( 'wgPageName' );

	// working only on page: Wikivoyage:Löschanträge
	if ( pageName === 'Benutzer:DerFussi/TestLA' ) {
	
			// URL of the API
			var apiURL = 'https:' + mw.config.get ( 'wgServer' ) + mw.config.get ( 'wgScriptPath' ) + '/api.php';
			
			// removing edit buttons on sections
			$('.mw-editsection').remove();

			// saving the overdue articles
			var overdueList = [];
			
			// Getting list of overdue deletion requests
			$.ajax({
				url: apiURL,
				data: {
					format : 'json',
					action : 'query',
					list : 'categorymembers',
					cmtitle : 'Kategorie:Überfällige Löschanträge'
					},
				method : 'POST',
				dataType: 'json',
				
				error: function() {
					// Error: Pages not created
					
				},
				success: function(data) {
					// List the articles
					var entry = '';
					var discussion = '';
					for ( var i = 0; i < data.query.categorymembers.length; i++ ) {

						// Activating the heading and list
						$('#wv-list-overdue-delete-requests-heading-'+data.query.categorymembers[i].ns).css('display','block');
						$('#wv-list-overdue-delete-requests-'+data.query.categorymembers[i].ns).css('display','block');

						// saving the page name
						overdueList[data.query.categorymembers[i].title] = 0;

						// Generating the entry
						entry = 
								'<li data-title="'+data.query.categorymembers[i].title+'" class="wv-list-delete-requests-item wv-list-delete-requests-item-classic">'+
								'<span class="wv-list-delete-requests-entry">'+
								'<a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a>'+
								'</span>';

						// Generating Link to Discussion site
						if ( data.query.categorymembers[i].ns === 0 ) {
							discussion = 'Diskussion:'+data.query.categorymembers[i].title;
						} else {
							discussion = data.query.categorymembers[i].title.replace( /([^:]+)(:.*)/ig, '$1 Diskussion$2' );
						}

						// Adding link to discussion site and delete request
						entry = entry +
										'<span class="wv-list-delete-requests-entry-links">'+
										'('+
										'<a href="/wiki/'+encodeURI(discussion)+'" title="Diskussionsseite von '+data.query.categorymembers[i].title+'">Diskussion</a>'+
										', '+
										'<a href="/wiki/'+encodeURI('Wikivoyage:Löschanträge/'+data.query.categorymembers[i].title)+'" title="Löschantrag für '+data.query.categorymembers[i].title+'">Löschantrag</a>'+
										')'+
										'</span>'+
										'<br /><p class="wv-list-delete-requests-entry-reason">&nbsp;</p>'+
										'</li>';
						$('#wv-list-overdue-delete-requests-'+data.query.categorymembers[i].ns).append(entry);
					}
					
					// Getting list of current deletion requests
					$.ajax({
						url: apiURL,
						data: {
							format : 'json',
							action : 'query',
							list : 'categorymembers',
							cmtitle : 'Kategorie:Aktuelle Löschanträge'
							},
						method : 'POST',
						dataType: 'json',
						
						error: function() {
							// Error: Pages not created
							
						},
						success: function(data) {

							// List the articles
							var entry = '';
							var discussion = '';
							for ( var i = 0; i < data.query.categorymembers.length; i++ ) {

								// Adding entry only when not in overdue list
								if ( !(data.query.categorymembers[i].title in overdueList) ) {

									// List the item here
									$('#wv-list-current-delete-requests-heading-'+data.query.categorymembers[i].ns).css('display','block');
									$('#wv-list-current-delete-requests-'+data.query.categorymembers[i].ns).css('display','block');
									entry = 
											'<li data-title="'+data.query.categorymembers[i].title+'" class="wv-list-delete-requests-item wv-list-delete-requests-item-classic">'+
											'<span class="wv-list-delete-requests-entry">'+
											'<a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a>'+
											'</span>';

									// Generating Link to Discussion site
									if ( data.query.categorymembers[i].ns === 0 ) {
										discussion = 'Diskussion:'+data.query.categorymembers[i].title;
									} else {
										discussion = data.query.categorymembers[i].title.replace( /([^:]+)(:.*)/ig, '$1 Diskussion$2' );
									}

									// Adding link to discussion site and delete request
									entry = entry +
													'<span class="wv-list-delete-requests-entry-links">'+
													'('+
													'<a href="/wiki/'+encodeURI(discussion)+'" title="Diskussionsseite von '+data.query.categorymembers[i].title+'">Diskussion</a>'+
													', '+
													'<a href="/wiki/'+encodeURI('Wikivoyage:Löschanträge/'+data.query.categorymembers[i].title)+'" title="Löschantrag für '+data.query.categorymembers[i].title+'">Löschantrag</a>'+
													')'+
													'</span>'+
													'<br /><p class="wv-list-delete-requests-entry-reason">&nbsp;</p>'+
													'</li>';

									$('#wv-list-current-delete-requests-'+data.query.categorymembers[i].ns).append(entry);
								}
							}

						// Getting the reasons
						console.log ( 'Starte Scan... von '+$('li.wv-list-delete-requests-item-classic').length+' Objekten...' );
						$('li.wv-list-delete-requests-item-classic').each(function() {
							var pageTitle = $(this).attr('data-title');
							$.ajax({
							url: apiURL,
							data: {
								format : 'json',
								action : 'parse',
								page : pageTitle
							},
							type: 'POST',
							dataType: 'json',
							error: function(data) {
								console.log ( data );
							},
							success: function(data) {
								console.log ( 'Begründung:' );
								var match = data.parse.text['*'].match( /<span id="wv-delete-request-reason">(.*?)<\/span>/i );
								$('li[data-title="'+pageTitle+'"] p.wv-list-delete-requests-entry-reason').html(match[1]);
							}
							});
						}); // $('li.wv-list-delete-requests-item-classic').each(function(){})

						}
					});
					
				}
			});
			
			// Getting list of quick deletion requests
	    	$.ajax({
				url: apiURL,
				data: {
					format : 'json',
					action : 'query',
					list : 'categorymembers',
					cmtitle : 'Kategorie:Schnelllöschen'
					},
				method : 'POST',
				dataType: 'json',
				
				error: function() {
					// Error: Pages not created
					
				},
				success: function(data) {
							
					// List the articles
					var entry = '';
					var discussion = '';
					for ( var i = 0; i < data.query.categorymembers.length; i++ ) {
						$('#wv-list-quick-delete-requests-heading-'+data.query.categorymembers[i].ns).css('display','block');
						$('#wv-list-quick-delete-requests-'+data.query.categorymembers[i].ns).css('display','block');
						$('#wv-list-quick-delete-requests-'+data.query.categorymembers[i].ns).append('<li data-title="'+data.query.categorymembers[i].title+'" class="wv-list-delete-requests-item wv-list-delete-requests-item-quick"><a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a></li>');
					}
				}
			});
			
			// Getting list of copyright violations
	    	$.ajax({
				url: apiURL,
				data: {
					format : 'json',
					action : 'query',
					list : 'categorymembers',
					cmtitle : 'Kategorie:URV'
					},
				method : 'POST',
				dataType: 'json',
				
				error: function() {
					// Error: Pages not created
					
				},
				success: function(data) {
					// List the articles
					for ( var i = 0; i < data.query.categorymembers.length; i++ ) {
						$('#wv-list-urv ul').append('<li data-title="'+data.query.categorymembers[i].title+'" class="wv-list-delete-requests-item wv-list-delete-requests-item-classic"><a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a></li>');
					}
				}
			});
			

	   } // if ( pageName === 'Wikivoyage:Löschanträge' )

	} // if ( typeof ( mw ) == 'object' && typeof ( $ ) == 'function' ) {

} ( mediaWiki, jQuery ) );
// </nowiki>