Minecraft Wiki
Advertisement

注意: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

  • Firefox / Safari: ⇧ Shift を押しながら「再読み込み」をクリックするか、Ctrl + F5 または Ctrl + R を押してください(Macでは ⌘ Cmd + R
  • Google Chrome: Ctrl + ⇧ Shift + R を押してください(Macでは ⌘ Cmd + ⇧ Shift + R
  • Internet Explorer: Ctrl を押しながら「最新の情報に更新」をクリックするか、Ctrl + F5 を押してください
  • Opera: 「ツール → 設定」からキャッシュをクリアしてください。
$( function() {
	'use strict';

	console.log( 'test.js Loaded!' );

	const $rev = $( '#curEnRevision' );
	const $diff = $( '#diff' );
	const dPage = $rev.data( 'page' );
	const dRivision = $diff.data( 'revision' );
	const ns = mw.config.get( 'wgNamespaceNumber' );
	const title = mw.config.get( 'wgTitle' );
	const enApiPath = 'https://minecraft.gamepedia.com/api.php';
	const jaApiPath = 'https://minecraft-ja.gamepedia.com/api.php';
	const failedHTML = '<span class="error">[取得に失敗しました]</span>';

	if ( !$rev.length ) {
		return;
	}

	function getRevisionsJSON( pagename ) {
		return $.getJSON( enApiPath, {
			origin: '*',
			action: 'query',
			format: 'json',
			prop: 'revisions',
			indexpageids: '1',
			titles: pagename,
			rvprop: 'ids'
		} );
	}

	function getEnLinkJSON() {
		return $.getJSON( jaApiPath, {
			action: 'query',
			format: 'json',
			prop: 'langlinks',
			indexpageids: '1',
			titles: mw.util.wikiUrlencode( title ),
			lllang: 'en'
		} );
	}

	getEnLinkJSON.done( function( data ) {
		let pageid;
		let pagename;
		try {
			pageid = data.query.pageids[ 0 ];
		} catch ( _ ) {
			return $rev.html( failedHTML );
		}

		try {
			pagename = data.query.pages[ pageid ].langlinks[ 0 ][ '*' ];
		} catch ( _ ) {
			pagename = dPage ? dPage
				: /^[\x01-\x7E]+$/.test( title ) ? title
				: null;
		}

		getRevisionsJSON( pagename )
			.done( function( _data ) {
				let _pageid;
				let revision;
				try {
					_pageid = _data.query.pageids[ 0 ];
					revision = _data.query.pages[ _pageid ].revisions[ 0 ].revid;
				} catch ( _ ) {
					return $rev.html( failedHTML );
				}

				if ( revision ) {
					$rev.html( revision );
					$diff.html(
						'<a href="//minecraft.gamepedia.com/index.php?' +
						'title=' + pagename + '&diff=' + revision + '&oldid=' + dRivision +
						'">差分</a>'
					);
				} else {
					return $rev.html( failedHTML );
				}
			} );
	} );
} );
Advertisement