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 Mike1024 (talk | contribs) at 09:40, 20 July 2010 (Fixed broken link.). 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 monobook.js for you.

/*** 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