Commons:ExtendedWatchlist/userwatch.js
Jump to navigation
Jump to search
function ewlUserwatch(oldest, allrev) {
req = sajax_init_object(); req.open('GET', wgScriptPath + '/index.php?title=User:' + wgUserName + '/userwatch&action=raw&smaxage=0&maxage=0&ctype=text/javascript', false); req.send(null); users = eval('(' + req.responseText + ')'); var users2 = new Array(); for (i=0; i<users.length; i++) users2[users2.length] = 'User:' + encodeURIComponent(users[i]); qs = 'what=usercontribs&uccomments&format=json&titles=' + users2.join('|') qs = qs + '&uclimit=' + Math.floor(500 / users.length); qs = qs + '&ucstart=' + createTimestamp(oldest); if (!allrev) qs = qs + '&uctop=only';
req = sajax_init_object(); req.open('GET', '/w/query.php?' + qs, false); req.send(null) wl = eval('(' + req.responseText + ')')['pages']; var Watchlist = new Array() for (i in wl) { if (!wl[i]['contributions']) continue; for (j=0; j<wl[i]['contributions'].length; j++) { var item = wl[i]['contributions'][j]; var rev = new Object(); rev['timestamp'] = parseTimestamp(item['timestamp']); rev['user'] = wl[i]['title'].substr(5); rev['title'] = item['*']; rev['revid'] = item['revid']; if (item['top'] == ) rev['top'] = ; if (item['new'] == ) rev['new'] = ; if (item['minor'] == ) rev['minor'] = ; if (item['comment']) rev['comment'] = item['comment']; Watchlist[Watchlist.length] = rev; } } return Watchlist;
} WatchlistPlugins['Userwatch'] = ewlUserwatch;
function initUserwatch() {
var user = new RegExp('^User.*?\:(.*?)(\/.*)?$').exec(wgPageName); if (user) { user = user[1]; req = sajax_init_object(); req.open('GET', wgScriptPath + '/index.php?title=User:' + wgUserName + '/userwatch&action=raw&smaxage=0&maxage=0&ctype=text/javascript', true); req.onreadystatechange = function () { if (req.readyState != 4) return; users = eval('(' + req.responseText + ')'); addWatchLink(users, user); }; req.send(null); }
} $(initUserwatch);
function addWatchLink(users, user) {
i = users.indexOf(user); if (i == -1) { addToolboxLink('javascript:void(setUserWatch(' + user.quote() + ', "watch"));', 'Watch user', 'ewl_watchuser'); } else { addToolboxLink('javascript:void(setUserWatch(' + user.quote() + '));', 'Unwatch user', 'ewl_watchuser'); }
}
function setUserWatch(user, setWatch) {
iframe = document.createElement('iframe'); //iframe.setAttribute('style', 'width: 90%; height: 320px;'); iframe.setAttribute('style', 'width: 0; height: 0; border: 0;'); document.body.appendChild(iframe); onloadfunc = function () { onloadfunc2 = function () { a = document.getElementById('ewl_watchuser'); a.parentNode.parentNode.removeChild(a.parentNode); addWatchLink(users, user); iframe.onload = function () {}; iframe.onreadystatechange = function () {}; } if (iframe.readyState) iframe.onreadystatechange = function () { if (iframe.readyState == 'complete') onloadfunc2(); }; else iframe.onload = onloadfunc2;
doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; users = eval('(' + getText(doc.getElementById('wpTextbox1')) + ')'); i = users.indexOf(user); var summary = ; if (setWatch) { if (i == -1) { users.push(user); summary = '+'; } } else { if (i != -1) { users = users.filter(function (o) { return o != user; }); summary = '-'; } } setText(doc.getElementById('wpTextbox1'), users.toSource()); doc.getElementById('wpSummary').value = summary + user; doc.getElementById('wpSave').click(); } if (iframe.readyState) iframe.onreadystatechange = function () { if (iframe.readyState == 'complete') onloadfunc(); } else iframe.onload = onloadfunc;
if (iframe.contentDocument) iframe.contentDocument.location.replace(wgScriptPath + '/index.php?title=User:' + wgUserName + '/userwatch&action=edit'); else iframe.contentWindow.document.location.replace(wgScriptPath + '/index.php?title=User:' + wgUserName + '/userwatch&action=edit');
}