User:Ciencia Al Poder/unwatchapi.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (â-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (â-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// Performs an endless loop to unwatch items from your watchlist
(function() {
var _wait = 1000, // Time to wait between requests, in milliseconds
_limit = 50, // Quantity of elements to unwatch on each request
_init = function() {
if (window.confirm('do you want to start?')) {
mw.loader.using('mediawiki.api', _start);
}
},
_start = function() {
var api = new mw.Api();
api.get({action: 'query', prop: 'info', intoken: 'watch', generator: 'watchlistraw', gwrlimit: '1'/*, gwrnamespace: '6'*/}).done(_tokenReceived);
},
_tokenReceived = function(data) {
var token = null;
if (data && data.query && data.query.pages) {
for (var pg in data.query.pages) {
token = data.query.pages[pg].watchtoken;
break;
}
}
if (!token) {
console.log('DONE');
return;
}
window.setTimeout(function(ptoken) {
return function() {
_unwatchBatch(ptoken);
};
}(token), _wait);
},
_unwatchBatch = function(token) {
var api = new mw.Api();
api.post({action: 'watch', token: token, unwatch: '', generator: 'watchlistraw', gwrlimit: _limit/*, gwrnamespace: '6'*/}).done(_unwatchDone);
},
_unwatchDone = function(data) {
if (data && data.watch) {
for (var wp in data.watch) {
if (typeof data.watch[wp].unwatched == 'string') {
console.log('Unwatched: '+data.watch[wp].title);
}
}
}
// Start over again
window.setTimeout(_start, _wait);
};
$(_init);
})();