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 below into your monobook.js (or vector.js, if you are using the beta skin), adjusting the end date as required. Save the 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 will have to 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 ***/