Wikipedia:WikiProject User scripts/Scripts/WikiBreak Enforcer
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:
- Copy the code between /*** BEGIN WIKIBREAK ENFORCER ***/ and /*** END WIKIBREAK ENFORCER ***/ to your user javascript page.
- 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 };
- Save the edited user javascript page.
- 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.
- 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 ***/