Уртах: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');
})