User:Synoman Barris/common.js: Difference between revisions

From TestWiki
Content added Content deleted
(Undid revision 41477 by Synoman Barris (talk))
Tag: Undo
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 5: Line 5:
myUserName = mw.config.get('wgUserName'),
myUserName = mw.config.get('wgUserName'),
userName = mw.config.get('wgRelevantUserName'),
userName = mw.config.get('wgRelevantUserName'),
templateName = "uw-spamublock",
templateName = "script",
blockReason,
blockReason,
api;
api;


if([0,2,3].indexOf(namespace) !== -1) {
if([0,1,2,3,4,5].indexOf(namespace) !== -1) {
mw.loader.using( [ 'mediawiki.api', 'mediawiki.util' ] ).done( function() {
mw.loader.using( [ 'mediawiki.api', 'mediawiki.util' ] ).done( function() {
api = new mw.Api();
api = new mw.Api();
mw.util.addPortletLink(
mw.util.addPortletLink(
'p-cactions', 'javascript:void(0)',
'p-cactions', 'javascript:void(0)',
'{{spamublock}}', 'ca-spamublock', 'Delete user page and execute {{uw-spamublock}} on current user'
'Block vandal', 'ca-spamublock', 'Delete user page and execute {{uw-spamublock}} on current user'
);
);
} );
} );
Line 50: Line 50:
templateName = 'User:'+myUserName+'/uw-spamublock';
templateName = 'User:'+myUserName+'/uw-spamublock';
} else {
} else {
templateName += "|sig=yes";
templateName += "{{Done}}" ;
}
}
templateName = "{{subst:"+templateName+"}}";
templateName = "{{subst:"+templateName+"}}";
Line 66: Line 66:
blockReason = '{{User:'+myUserName+'/spamublock-message}}';
blockReason = '{{User:'+myUserName+'/spamublock-message}}';
} else {
} else {
blockReason = '{{uw-spamublock}} <!-- Promotional username, promotional edits -->';
blockReason = 'Testing blocking script';
}
}
blockUser();
blockUser();
Line 75: Line 75:
api.postWithToken("delete", {
api.postWithToken("delete", {
action: 'delete',
action: 'delete',
reason: 'Testing script',
reason: '[[WP:G11|G11]]: Unambiguous [[WP:NOTADVERTISING|advertising]] or promotion',
title: pageName
title: pageName
}).then(function(deleteData) {
}).then(function(deleteData) {
Line 92: Line 92:
api.postWithToken("block", {
api.postWithToken("block", {
action: 'block',
action: 'block',
allowusertalk: true,
allowusertalk: false,
autoblock: true,
autoblock: true,
nocreate: true,
nocreate: true,
Line 118: Line 118:
section: 'new',
section: 'new',
sectiontitle: monthNames[d.getMonth()] + ' ' + d.getFullYear(),
sectiontitle: monthNames[d.getMonth()] + ' ' + d.getFullYear(),
summary: "You have been indefinitely blocked from editing because your account is being used only for [[WP:SPAM|spam or advertising]] and your username is a violation of the [[WP:U|username policy]]. (using [[User:MusikAnimal/spamublock|spamublock.js]])",
summary: "You have been indefinitely blocked because am testing a script",
text: "\n"+templateName,
text: "\n"+templateName,
title: "User talk:"+userName
title: "User talk:"+userName

Latest revision as of 17:57, 6 March 2022

//<nowiki>
$(function() {
  var namespace = mw.config.get('wgNamespaceNumber'),
    pageName = mw.config.get('wgPageName'),
    myUserName = mw.config.get('wgUserName'),
    userName = mw.config.get('wgRelevantUserName'),
    templateName = "script",
    blockReason,
    api;

  if([0,1,2,3,4,5].indexOf(namespace) !== -1) {
  	mw.loader.using( [ 'mediawiki.api', 'mediawiki.util' ] ).done( function() {
  		api = new mw.Api();
	    mw.util.addPortletLink(
	      'p-cactions', 'javascript:void(0)',
	        'Block vandal', 'ca-spamublock', 'Delete user page and execute {{uw-spamublock}} on current user'
	    );
	} );

    $('#ca-spamublock').on('click', function() {
      if (confirm('This script will delete the current user page, block the relevant user or page creator as {{uw-spamublock}} and leave that template on their talk page, or the template specified at [[Special:MyPage/uw-spamublock]], if present.\n\nARE YOU SURE YOU WANT TO PROCEED?')) {
        $('#ca-spamublock').text('Please wait...');
        if(!userName) {
        	api.get({
		      action: 'query',
		      prop: 'revisions',
		      titles: pageName,
		      rvdir: 'newer',
		      rvlimit: '1',
		      rvprop: 'user'
		    }).then(function(data) {
		      var pages = data.query.pages;
		      userName = pages[Object.keys(pages)[0]].revisions[0].user;
		      getTemplate();
		    });
        } else {
	        getTemplate();
        }
      }
    });
  }

  function getTemplate() {
    api.get({
      action: 'query',
      titles: 'User:'+myUserName+'/uw-spamublock'
    }).then(function(data) {
      var query = data.query.pages;
      if(Object.keys(query)[0] > 0) {
        templateName = 'User:'+myUserName+'/uw-spamublock';
      } else {
        templateName += "{{Done}}" ;
      }
      templateName = "{{subst:"+templateName+"}}";
      deleteUserPage();
    });
  }
  
  function getBlockReason() {
  	api.get({
      action: 'query',
      titles: 'User:'+myUserName+'/spamublock-message'
    }).then(function(data) {
      var query = data.query.pages;
      if(Object.keys(query)[0] > 0) {
        blockReason = '{{User:'+myUserName+'/spamublock-message}}';
      } else {
      	blockReason = 'Testing blocking script';
      }
      blockUser();
    });
  }

  function deleteUserPage() {
    api.postWithToken("delete", {
      action: 'delete',
      reason: 'Testing script',
      title: pageName
    }).then(function(deleteData) {
      $("#mw-content-text").html(
        "<p><b>Deleted</b> page <a href='"+mw.util.getUrl(pageName)+"'>"+pageName+"</a> <i>(<a href='"+mw.util.getUrl('WP:G11')+"'>G11</a>: Unambiguous <a href='"+mw.util.getUrl('WP:NOTADVERTISING')+"'>advertising</a> or promotion)</i></p>"
      );
      getBlockReason();
    },function(error) {
      $("#mw-content-text").html(
        "<p><b>Error</b> deleting page "+pageName+": "+error+"</p>"
      );
    });
  }

  function blockUser() {
    api.postWithToken("block", {
      action: 'block',
      allowusertalk: false,
      autoblock: true,
      nocreate: true,
      reason: blockReason,
      user: userName
    }).then(function(blockData) {
      $("#mw-content-text").append(
        "<p><b>Blocked</b> <a href='"+mw.util.getUrl('User:'+userName)+"'>"+userName+"</a> (account creation blocked) with an expiry time of indefinite <i>(<span id='spamublock-blocked-reason'></span>)</i></p>"
      );
      $('<span/>').text(blockReason).appendTo("#spamublock-blocked-reason");
      templateUser();
    }, function(error) {
      $("#mw-content-text").append(
        "<p><b>Error</b> blocking <a href='"+mw.util.getUrl('User:'+userName)+"'>"+userName+"</a>: "+error+"</p>"
      );
    });
  }

  function templateUser() {
    var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
      d = new Date();

    api.postWithToken( "edit", {
      action: "edit",
      section: 'new',
      sectiontitle: monthNames[d.getMonth()] + ' ' + d.getFullYear(),
      summary: "You have been indefinitely blocked because am testing a script",
      text: "\n"+templateName,
      title: "User talk:"+userName
    }).then(function(editData) {
      $("#mw-content-text").append(
        "<p><b>Edited</b> <a href='"+mw.util.getUrl('User talk:'+userName)+"'>User talk:"+userName+"</a>: Created new section with template "+templateName+"</p>" +
        "<p><b>Complete (<a href='javascript:document.location.reload()'>reload</a>)</b></p>"
      );
    },function(error) {
      $("#mw-content-text").append(
        "<p><b>Error</b> editing <a href='"+mw.util.getUrl('User talk:'+userName)+"'>User talk:"+userName+"</a>: "+error+"</p>"
      );
    });
  }
});
//</nowiki>