User:小躍/Filetestpixel.js
外观
< User:小躍
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
// <nowiki>
//start First function
var fws=0;
mw.loader.using(['jquery.ui'], function() {
var filetestpixeladd = mw.util.addPortletLink;
$( filetestpixeladd('p-cactions', '#摘要', wgULS('档案像素维护','檔案像素維護'), 't-fileshow', '檢查檔案是否符合非合理使用大小像素的模板', '', '#ca-move') ).click(fileshow);
function fileshowget(event){
event.preventDefault();
if($('#filetitle').val().match("[fF]ile:")||$('#filetitle').val().match("[Ii]mage:")){
var api=new mw.Api();
api.get( {
'action' : 'query',
'titles' : $('#filetitle').val(),
'prop' : 'revisions|info|imageinfo',
'iiprop' :'size',
'intoken' : 'edit',
'rvprop' : 'content',
'indexpageids' : 1
} ).done( function (result) {
result = result.query;
var page = result.pages[result.pageids[0]];
var fc=page.revisions[0]["*"].toString();
var fcrm=fc.replace(/\{\{[Nn]on-free reduce\}\}/,"");
var fh=page.imageinfo[0].height;
var fw=page.imageinfo[0].width;
fws=fw;
var fwp=fh/fw;
var fts=fws*(fws*fwp);
for(var i=0;i<5000;i++){
fts=fws*(fws*fwp);
if(fts>100000){fws=fws-1;}
}
var ft=parseInt(fh)*parseInt(fw);
var ffff=ft>100000?'<br><font color="blue"><b>建議寬度縮小至'+fws+'像素</b></font><br><font color="red"><b>已超過容許像素,請務必縮小</b></font>':'<br><font color="green"><b>容許像素的範圍內</b></font>';
var fsave;
if(fc.match("{{[Ii]fd")){fsave='<br><font color="green"><b>已掛上檔案存廢討論的模板';}else if(fc.match("{{[Dd]elete")){
fsave='<br><font color="green"><b>已掛上快速刪除的模板';
}else if(fc.match("{{[Mm]ove to commons}}")){
fsave='<br><font color="green"><b>已掛上請求移動至維基共享資源的維護模板';
}else if(ft<=100000&&fc.match("{{[Nn]on-free reduce}}")){
if(mw.config.get('wgUserName')=="Eagerbot"){
filetestpixellog( 'User:Eagerbot/log/1','User:Eagerbot/log/1','*[[:'+$('#filetitle').val()+']]:於~~'+'~~'+'~移除標記。','機器人:添加{{Non-free reduce}}移除標記的日誌');
filetestpixellogcount('User:Eagerbot/log/1/count','User:Eagerbot/log/1/count','{{subst:'+'#expr:'+'{{subst:'+'#invoke:PatternedCandidateUtils|count|title=User:Eagerbot/log/1|pattern=File:|black=header}}'+'+1}}','機器人:更新偵測管理{{Non-free reduce}}維護模板的次數。');
}
fileremovenfr(mw.config.get('wgPageName'),$('#filetitle').val(),fcrm,'經偵測為容許像素,依照[[Wikipedia:非自由版权图片大小|非自由版權圖片大小]]全自動快速移除{{Non-free reduce}}維護模板',mw.util.getUrl($('#filetitle').val()));
fsave='<br><font color="green"><b>成功自動移除{{Non-free reduce}}模板,請稍候重新整理。</b></font>';
}else{
if(fc.match("{{[Nn]on-free reduce}}")){fsave='<br><font color="green"><b>已掛上{{Non-free reduce}}模板</b></font>';}else{
if(ft>=500000){
filespeedaddnfr(mw.config.get('wgPageName'),$('#filetitle').val(),'{{Non-free reduce}}','偵測為過大圖片(建議縮小寬度至'+fws+'像素),依照[[Wikipedia:非自由版权图片大小|非自由版權圖片大小]]全自動快速添加{{Non-free reduce}}維護模板',mw.util.getUrl($('#filetitle').val()));
if(mw.config.get('wgUserName')=="Eagerbot"){
filetestpixellog( 'User:Eagerbot/log/1','User:Eagerbot/log/1','*[[:'+$('#filetitle').val()+']]:於~~'+'~~'+'~標記,並建議縮小寬度至'+fws+'像素。','機器人:添加{{Non-free reduce}}標記的日誌');
filetestpixellogcount('User:Eagerbot/log/1/count','User:Eagerbot/log/1/count','{{subst:'+'#expr:'+'{{subst:'+'#invoke:PatternedCandidateUtils|count|title=User:Eagerbot/log/1|pattern=File:|black=header}}'+'+1}}','機器人:更新偵測管理{{Non-free reduce}}維護模板的次數。');
}
fsave='<br><font color="green"><b>已自動掛上{{Non-free reduce}}模板</b></font>';
}
else if(ft>=110001&&ft<500000&&mw.config.get('wgUserName')=="Eagerbot"){
filetestpixellog( 'User:Eagerbot/log/1','User:Eagerbot/log/1','*[[:'+$('#filetitle').val()+']]:於~~'+'~~'+'~標記,並建議縮小寬度至'+fws+'像素。','機器人:添加{{Non-free reduce}}標記的日誌');
filetestpixellogcount('User:Eagerbot/log/1/count','User:Eagerbot/log/1/count','{{subst:'+'#expr:'+'{{subst:'+'#invoke:PatternedCandidateUtils|count|title=User:Eagerbot/log/1|pattern=File:|black=header}}'+'+1}}','機器人:更新偵測管理{{Non-free reduce}}維護模板的次數。');
filespeedaddnfr(mw.config.get('wgPageName'),$('#filetitle').val(),'{{Non-free reduce}}','機器人:建議縮小寬度至'+fws+'像素,依照[[Wikipedia:非自由版权图片大小|非自由版權圖片大小]]全自動快速添加{{Non-free reduce}}維護模板',mw.util.getUrl($('#filetitle').val()));
fsave='<br><font color="green"><b>已自動掛上{{Non-free reduce}}模板</b></font>';
}
else if(fc.match("{{[Nn]on-free reduce}}")){fsave='<br><font color="green"><b>已掛上{{Non-free reduce}}模板</b></font>';}else{fsave=ft>100000?'<br><input id="wpfilesave" value="添加維護模板" title="添加模板" type="button"/>':'';}}
}
$('<div id="filenfrshowing" title="檔案像素檢測器">' +
'<label>顯示檔案名稱:'+$('#filetitle').val()+'</label>'+
'<br/><img src="http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />'+
'<label>高度:'+fh+'像素;寬度:'+fw+'像素;總共:'+ft+'像素'+ffff+'</label>'+fsave+'</div>' ).dialog({
modal: false,
autoOpen: true,
width: 500
});
$('#wpfilesave').click(fileaddnfrsave);
} );
}else{
$('<div id="filenfrshowing2" title="檔案像素檢測器">' +
'<label>您未使用檔案的開頭名稱File:檔案名稱或Image:檔案名稱,請重新輸入。</label>'+
'</div>' ).dialog({
modal: false,
autoOpen: true,
width: 500
});
}
}
function fileshow(event){
event.preventDefault();
autoinputfilename=mw.config.get('wgPageName').match("File:")||mw.config.get('wgPageName').match("Image:")?mw.config.get('wgPageName'):'';
$('<div id="fileshowing" title="檔案像素輸入名稱器">' +
'<input id="filetitle" type="text" size="30" value="'+autoinputfilename+'" placeholder="請輸入檔案名稱(File 或 Image)" />'+
'<input id="wpfileshow" value="顯示像素" title="顯示像素" type="button"/>'+
'</div>'
).dialog({
modal: false,
autoOpen: true,
width: 500
});
$('#wpfileshow').click(fileshowget);
}
function filespeedaddnfr( tracePage,destinationPage,edittext,editsummary,linkTo) {
var api = new mw.Api();
api.get( {
'action' : 'query',
'titles' : tracePage,
'prop' : 'revisions|info',
'intoken' : 'edit',
'rvprop' : 'content',
'indexpageids' : 1
} ).done( function (result) {
result = result.query;
var page = result.pages[result.pageids[0]];
if(mw.config.get('wgUserName')=="Eagerbot"){
api.post( {
'action' : 'edit',
'title' : destinationPage,
'prependtext' :edittext+"\n",
'minor':1,
'bot':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
window.location.href = linkTo;
} );
}else{
api.post( {
'action' : 'edit',
'title' : destinationPage,
'prependtext' :edittext+"\n",
'minor':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
window.location.href = linkTo;
} );
}
} );
}
function fileremovenfr( tracePage,destinationPage,edittext,editsummary,linkTo) {
var api = new mw.Api();
api.get( {
'action' : 'query',
'titles' : tracePage,
'prop' : 'revisions|info',
'intoken' : 'edit',
'rvprop' : 'content',
'indexpageids' : 1
} ).done( function (result) {
result = result.query;
var page = result.pages[result.pageids[0]];
if(mw.config.get('wgUserName')=="Eagerbot"){
api.post( {
'action' : 'edit',
'title' : destinationPage,
'text' :edittext,
'minor':1,
'bot':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
window.location.href = linkTo;
} );
}else{
api.post( {
'action' : 'edit',
'title' : destinationPage,
'text' :edittext,
'minor':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
window.location.href = linkTo;
} );
}
} );
}
function fileaddnfr( tracePage,destinationPage,edittext,editsummary,linkTo) {
var api = new mw.Api();
api.get( {
'action' : 'query',
'titles' : tracePage,
'prop' : 'revisions|info',
'intoken' : 'edit',
'rvprop' : 'content',
'indexpageids' : 1
} ).done( function (result) {
result = result.query;
var page = result.pages[result.pageids[0]];
if(mw.config.get('wgUserName')=="Eagerbot"){
api.post( {
'action' : 'edit',
'title' : destinationPage,
'prependtext' :edittext+"\n",
'minor':1,
'bot':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
window.location.href = linkTo;
} );
}else{
api.post( {
'action' : 'edit',
'title' : destinationPage,
'prependtext' :edittext+"\n",
'minor':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
window.location.href = linkTo;
} );
}
} );
}
function filetestpixellogcount(tracePage,destinationPage,edittext,editsummary) {
var api = new mw.Api();
api.get( {
'action' : 'query',
'titles' : tracePage,
'prop' : 'revisions|info',
'intoken' : 'edit',
'rvprop' : 'content',
'indexpageids' : 1
} ).done( function (result) {
result = result.query;
var page = result.pages[result.pageids[0]];
api.post( {
'action' : 'edit',
'title' : destinationPage,
'text' :edittext,
'minor':1,
'bot':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
} );
});
}
function filetestpixellog( tracePage,destinationPage,edittext,editsummary) {
var api = new mw.Api();
api.get( {
'action' : 'query',
'titles' : tracePage,
'prop' : 'revisions|info',
'intoken' : 'edit',
'rvprop' : 'content',
'indexpageids' : 1
} ).done( function (result) {
result = result.query;
var page = result.pages[result.pageids[0]];
api.post( {
'action' : 'edit',
'title' : destinationPage,
'appendtext' :"\n"+edittext,
'minor':1,
'bot':1,
'summary' :editsummary,
'token' : mw.user.tokens.get( 'csrfToken' )
} ).done( function () {
} );
});
}
function fileaddnfrsave(event){
event.preventDefault();
if(mw.config.get('wgUserName')=="Eagerbot"){
filetestpixellog( 'User:Eagerbot/log/1','User:Eagerbot/log/1','*[[:'+$('#filetitle').val()+']]:於~~'+'~~'+'~標記,並建議縮小寬度至'+fws+'像素。','機器人:添加{{Non-free reduce}}標記的日誌');
filetestpixellogcount('User:Eagerbot/log/1/count','User:Eagerbot/log/1/count','{{subst:'+'#expr:'+'{{subst:'+'#invoke:PatternedCandidateUtils|count|title=User:Eagerbot/log/1|pattern=File:|black=header}}'+'+1}}','機器人:更新偵測管理{{Non-free reduce}}維護模板的次數。');
}
fileaddnfr(mw.config.get('wgPageName'),$('#filetitle').val(),'{{Non-free reduce}}','建議縮小寬度至'+fws+'像素,依照[[Wikipedia:非自由版权图片大小|非自由版權圖片大小]]半自動快速添加{{Non-free reduce}}維護模板',mw.util.getUrl($('#filetitle').val()));
$('<div id="fileaddnfrdone" title="檔案像素檢測器編輯訊息">' +
'<label>Your editing is done. Please hold......</label>'+
'</div>' ).dialog({
modal: false,
autoOpen: true,
width: 500
});
}
//end First function
});
// </nowiki>