跳转到内容

User:SunAfterRain/js/sandboxSync.js

维基百科,自由的百科全书
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
$.when(
	mw.loader.getState('ext.gadget.HanAssist')
		? mw.loader.using('ext.gadget.HanAssist')
		: new Promise((resolve, reject) => {
			const hook = mw.hook('userscript.SunAfterRain.HanAssist.ready');
			function hookCallback(HanAssist) {
				hook.remove(hookCallback);
				mw.loader.using([])
					.then((origRequire) => resolve(
						(module) => module === 'ext.gadget.HanAssist'
							? HanAssist
							: origRequire(module)
					));
			}
			hook.add(hookCallback);
		}),
	$.ready
).then((require) => {
	const ns = mw.config.get('wgNamespaceNumber', -3);
	if (ns <= 0 || ns % 2 !== 0) {
		return;
	}
	const wgTitle = mw.config.get('wgTitle');

	const baseTitle = wgTitle.endsWith('/sandbox') ? wgTitle.slice(0, -8) : wgTitle;
	const sandboxTitle = `${baseTitle}/sandbox`;
	const conv = require('ext.gadget.HanAssist').conv;
	$(mw.util.addPortletLink(
		'p-cactions',
		'',
		conv({ hans: '同步沙盒', hant: '同步沙盒' }),
		't-sandbox-sync',
		conv({ hans: '将主页面内容同步到沙盒', hant: '將主頁面內容同步到沙盒' })
	)).on('click', async (e) => {
		e.preventDefault();

		try {
			const api = new mw.Api();
			const getQuery = await api.get({
				action: 'query',
				prop: 'revisions',
				titles: [baseTitle, sandboxTitle],
				rvprop: ['ids', 'timestamp', 'user', 'content'],
				rvslots: 'main',
				formatversion: '2',
			});
			// TODO
			
		} catch (error) {
			
		}
	});
});