LLWiki正在建设中,欢迎加入我们!
“User:Bhsd/tool.js”的版本间差异
跳转到导航
跳转到搜索
小 |
|||
第2行: | 第2行: | ||
// 生成JS文件大小 |
// 生成JS文件大小 |
||
"use strict"; |
"use strict"; |
||
mw. |
mw.myCopyright = function(cmtitle) { |
||
mw.loader.using( 'mediawiki.api' ).then(() => { |
|||
const api = new mw.Api(); |
|||
api.get({action: 'query', |
|||
list: 'categorymembers', |
|||
cmtitle: 'Category:' + cmtitle, |
|||
cmprop: 'ids', |
|||
cmtype: 'file', |
|||
cmlimit: 'max', |
|||
formatversion: 2 |
|||
}).then(data => { |
|||
api.get({action: 'query', |
|||
prop: 'categories', |
|||
pageids: data.query.categorymembers.map(ele => ele.pageid).join('|'), |
|||
clcategories: 'Category:原作者保留权利的文件', |
|||
formatversion: 2 |
|||
}).then(res => { |
|||
res.query.pages.filter(ele => !ele.categories).forEach(ele => { |
|||
api.postWithToken('csrf', {action: 'edit', |
|||
pageid: ele.pageid, |
|||
prependtext: '==授权协议==\n{{copyright}}\n', |
|||
summary: '使用API批量添加授权协议', |
|||
minor: 1, |
|||
bot: 1 |
|||
}); |
|||
}); |
|||
}); |
|||
}); |
|||
}); |
|||
}; |
|||
mw.myJsSize = function(table) { |
|||
table.find( 'th' ).first().after( '<th style="width:0">大小(KB)</th>' ); |
table.find( 'th' ).first().after( '<th style="width:0">大小(KB)</th>' ); |
||
const items = table.find( 'td:first-child' ), |
const items = table.find( 'td:first-child' ), |
2020年11月26日 (四) 06:10的版本
// 由[[Special:Mypage/common.js]]调用,可以使用ES6语法 // 生成JS文件大小 "use strict"; mw.myCopyright = function(cmtitle) { mw.loader.using( 'mediawiki.api' ).then(() => { const api = new mw.Api(); api.get({action: 'query', list: 'categorymembers', cmtitle: 'Category:' + cmtitle, cmprop: 'ids', cmtype: 'file', cmlimit: 'max', formatversion: 2 }).then(data => { api.get({action: 'query', prop: 'categories', pageids: data.query.categorymembers.map(ele => ele.pageid).join('|'), clcategories: 'Category:原作者保留权利的文件', formatversion: 2 }).then(res => { res.query.pages.filter(ele => !ele.categories).forEach(ele => { api.postWithToken('csrf', {action: 'edit', pageid: ele.pageid, prependtext: '==授权协议==\n{{copyright}}\n', summary: '使用API批量添加授权协议', minor: 1, bot: 1 }); }); }); }); }); }; mw.myJsSize = function(table) { table.find( 'th' ).first().after( '<th style="width:0">大小(KB)</th>' ); const items = table.find( 'td:first-child' ), titles = items.children( 'a' ).map(function() { return this.title; }).toArray(); mw.loader.using( 'mediawiki.api' ).then(() => { console.log( 'API request: 查询JS页面大小' ); const timerStart = mw.now(); new mw.Api().get({ action:'query', prop:'info', titles:titles.join( '|' ), formatversion:2 }) .then(data => { console.log( `End API request: 已获得JS页面大小,用时 ${mw.now() - timerStart} ms` ); const lengths = Object.fromEntries( data.query.pages.map(ele => [ele.title, ele.length]) ); items.after(i => { return $('<td>').addClass( 'video-link' ).css('text-align', 'right') .text( (lengths[ titles[i] ] / 1024).toFixed(1) ); }); }); }); }; (function() { const timerStart = mw.now(); mw.hook( 'wikipage.content' ).add(() => { console.log( `Hook: wikipage.content after ${mw.now() - timerStart} ms`); }); mw.hook( 'wikipage.collapsibleContent' ).add(() => { console.log( `Hook: wikipage.collapsibleContent after ${mw.now() - timerStart} ms`); }); mw.hook( 'wikipage.categories' ).add(() => { console.log( `Hook: wikipage.categories after ${mw.now() - timerStart} ms`); }); mw.hook( 'wikipage.diff' ).add(() => { console.log( `Hook: wikipage.diff after ${mw.now() - timerStart} ms`); }); mw.hook( 'wikipage.editform' ).add(() => { console.log( `Hook: wikipage.editform after ${mw.now() - timerStart} ms`); }); mw.hook( 'structuredChangeFilters.ui.initialized' ).add(() => { console.log( `Hook: structuredChangeFilters.ui.initialized after ${mw.now() - timerStart} ms`); }); mw.hook( 'codeEditor.configure' ).add(() => { console.log( `Hook: codeEditor.configure after ${mw.now() - timerStart} ms`); }); mw.hook( 'code.prettify' ).add($content => { console.log( `Hook: code.prettify after ${mw.now() - timerStart} ms`); }); mw.hook( 'wikiplus.dialog' ).add($content => { console.log( `Hook: wikiplus.dialog after ${mw.now() - timerStart} ms`); }); }) ();