User:SunAfterRain/js/sandboxSync.js
外观
< User:SunAfterRain | js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ 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) {
}
});
});