Уртах:Ebe123/vector.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
function apiGetPage(title, func){
$.getJSON(
mw.util.wikiScript('api'),
{action:'query'
,format:'json'
,prop:'revisions'
,rvprop:'content'
,titles:title
},
function(d){
var txt
try{
d = d.query.pages
for( var i in d ) txt = d[i].revisions[0]['*']
}catch(e){}
func(txt || null)
}
)
}
function apiSavePage(dat, func){
$.extend(
dat,
{action: 'edit'
,format: 'json'
,token: mw.user.tokens.get('csrfToken')
}
)
$.post(
mw.util.wikiScript('api'),
dat,
function(d){
if ( d && d.edit && d.edit.result && d.edit.result == 'Success' )
func()
else
func( d.error ? d.error.info : 'unknown error' )
}
)
}
function removeMainCatAjax(){
var pgName = mw.config.get('wgPageName')
var sum = 'Removed main category (not needed anymore)'
apiGetPage(pgName, received)
return
function received(txt){
if( txt == null ) return mw.notify('<p class=error>Failed to receive page text</p>')
//process
var txt2 = txt.replace (/\[\[[Cc]ategory:[Ww]p\/lez *(\|[^\]]*)?\]\]/, '');
txt2 = $.trim(txt2)
if( txt2 == txt ) return mw.notify('"Category:Main Category" was not found in the page.')
//save
apiSavePage(
{title: pgName
,text: txt2
,summary: sum
,minor: true
},
saved
)
}
function saved(err){
if( err ) jsMsg('<p class=error>Error saving page: ' + err + '</p>')
else jsMsg('Page saved')
}
}
$(function(){
//some exclusions here ...
if( /edit|submit/.test( mw.config.get('wgAction') ) ) return
//add link
mw.util.addPortletLink('p-cactions', 'javascript:removeMainCatAjax()', 'Remove category','ca-delcat');
})