WikiBreak Enforcer is ascript that prevents a user fromlogging in before a certain date, to help enforce awikibreak. If the user logs in, they are automatically logged back out, but can still view or edit from themobile interface, or as alogged out user through theirIP address.
| 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, aninterface admin can remove the script from your user JavaScript page for you. |
/*** BEGIN WIKIBREAK ENFORCER ***/ and/*** END WIKIBREAK ENFORCER ***/.var date andvar time to reflect the time you want your break to end (local time). Thevar date line defines the date your break will end, while thevar time defines the time on that day that your break will end. For example, for a break ending at 8:22 pm on 6 February 2019, one would enter the settings:vardate={year:2019,month:2,day:6};vartime={hours:20,minutes:22,seconds:0};
/*** BEGIN WIKIBREAK ENFORCER ***/$(document).ready(function(){/*** Start editing here ***/// When you want to end your break?// no leading zeroes. (example: 9 - correct, 09 - incorrect)vardate={year:2020,month:2,day:11};vartime={hours:20,minutes:22,seconds:0};/*** Stop editing here ***/varcurrentDate=newDate();varenforcedBreakEnd=newDate(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){varserverTimeStr=data.query.general.time;// ISO 8601 stringvarserverTime=newDate(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(){newmw.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 ***/