User:MarkusRost/upload.js

// var config = mw.config.get(['wgNamespaceNumber', 'wgArticleId', 'wgIsRedirect', 'wgTitle']); if ( config.wgNamespaceNumber === 6 && config.wgArticleId && !config.wgIsRedirect ) { mw.loader.using( [ 'mediawiki.util', 'mediawiki.ForeignApi' ] ).then( function {		var i18n = {			target: 'https://minecraft.fandom.com/de/api.php',			id: 'ca-upload-to-de',			name: 'Im deutschen Wiki hochladen',			iwprefix: 'en:File:',			prompt: 'Diese Datei auch im deutschen Wiki hochladen?',			comment: 'Aus dem englischen Wiki importiert.',			description: '== Beschreibung ==\n',			license: '\n== Lizenz ==\n',			success: 'Die Datei wurde erfolgreich hochgeladen!',			nochange: 'Die exakte Datei ist bereits vorhanden!',			extension: 'Die Datei muss die gleiche Dateiendung haben!',			error: 'Fehler beim Hochladen der Datei:',			fetcherror: 'Fehler beim Herunterladen der Datei:'		};		if ( !i18n.target.endsWith( '/api.php' ) ) return;		var portlet = mw.util.addPortletLink( 'p-cactions', '#', i18n.name, i18n.id );		$(portlet).find('a').click( function(e) { e.preventDefault; var prompt = window.prompt(i18n.prompt, config.wgTitle + ' | ' + i18n.iwprefix + config.wgTitle + ''); if ( prompt ) { var splits = prompt.split('|'); var filename = splits[0].trim; if ( !filename.endsWith( '.' + config.wgTitle.split('.').reverse[0] ) ) { window.alert(i18n.extension); return; }				var filedesc = splits.slice(1).join('|').trim; var text = i18n.license; if ( filedesc ) text = i18n.description + filedesc + text; fetch( $('.fullMedia a').first.prop('href') ).then( function(response) {					return response.blob;				} ).then( function(response) {					var api = new mw.ForeignApi( i18n.target );					api.upload( response, { filename, text, comment: i18n.comment, ignorewarnings: true } ).done( function(data) { window.alert(i18n.success); } ).fail( function(data, details) { console.log(details); if ( data === 'fileexists-no-change' ) { window.alert(i18n.nochange); }						else if ( details.upload && details.upload.result === 'Success' ) { var result = details.upload; if ( result.warnings ) { var warnings = Object.keys(result.warnings); window.alert(i18n.success + '\n' + warnings.map( function(warning) { if ( Array.isArray(result.warnings[warning]) ) { return warning + ': ' + mw.language.listToText(result.warnings[warning]); }									return warning + ': ' + result.warnings[warning]; } ).join('\n')); }							else { window.alert(i18n.success + '\n' + data); }						}						else { window.alert(i18n.error + '\n' + data); }					} );				}, function(error) {					console.log(error);					window.alert(i18n.fetcherror + '\n' + error);				} ); }		} );	} ); } //