Jump to content

Wikipedia:WikiProject User scripts/Scripts/WikiBreak Enforcer

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Boleyn (talk | contribs) at 14:21, 8 April 2015 (Undid revision 655511759 by Boleyn (talk)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Functionality:

  • Prevents user from logging in before a certain date, to help enforce a wikibreak.
  • If the user logs in, they are automatically logged back out.
  • User can still view/edit as an anon through their IP Address.

Usage:

  1. Copy the code between /*** BEGIN WIKIBREAK ENFORCER ***/ and /*** END WIKIBREAK ENFORCER ***/ to your user JavaScript page.
  2. Edit the lines starting "var date" and "var time" to reflect the time you want your break to end (local time); the "var date" line defines the date your break will end, while the "var time" defines the time on that day that your break will end. For example, for a break ending at 8:22 pm on the 6th of February 2008, one would enter the settings:
	var date = { year: 2008, month: 2, day: 6 };
	var time = { hours: 20, minutes: 22, seconds: 0 };
  1. Save the edited user JavaScript page.
  2. Reload a wikipedia page. Mozilla/Safari/Konqueror: hold down Shift while clicking Reload (or press Ctrl-Shift-R), IE: press Ctrl-F5, Opera: press F5.
  3. Enjoy your wikibreak!

Warning:

  • Be careful not to make a mistake, or you may not be able to get back in at the end of your break. In cases of errors, an admin can remove the script from your user JavaScript page for you.

Note:

  • Previewing your edit will log you out, but will not implement the enforcer.

/*** BEGIN WIKIBREAK ENFORCER ***/ $(document).ready(function() {

/*** Start editing here ***/

// When you want to end your break? // no leading zeroes. (example: 9 - correct, 09 - incorrect)

var date = { year: 2020, month: 2, day: 11}; var time = { hours: 20, minutes: 22, seconds: 0 };

/*** Stop editing here ***/

var currentDate = new Date(); var enforcedBreakEnd = new Date( date.year,date.month-1,date.day,time.hours,time.minutes,time.seconds); $.getJSON("/w/api.php?action=query&meta=siteinfo&siprop=general&format=json", function(data) {

       var serverTimeStr = data.query.general.time; // ISO 8601 string
       var serverTime = new Date(serverTimeStr);
       if (serverTime < enforcedBreakEnd) {

alert("Enforced wikibreak until "+enforcedBreakEnd.toLocaleString() + "\n(now is "+currentDate.toLocaleString()+")\n\nBye!"); mw.loader.using(["mediawiki.api", "mediawiki.user"]).then(function () { new mw.Api().post( { action: 'logout', token: mw.user.tokens.get('csrfToken') }).done(function (data) { location = "//" + location.host + "/w/index.php?title=" + "Special:Userlogin&returnto=Main_Page"; }).fail(function () { console.log("logout failed"); }); });

       }

}); }); /*** END WIKIBREAK ENFORCER ***/

See also