User:Daniel Quinlan/Scripts/RangeHelper.js: Difference between revisions

Content deleted Content added
add consolidated user talk pages for IP ranges
disable more menu items in displayRangeTalk
Line 297:
if (!contentContainer) return;
const elementsToRemove = [
'.noarticletext',
'#mw-content-subtitle .subpages',
'#tmw-whatlinksherecontent-text .noarticletext',
'.vector-menu-content-list #ca-addsection',
'#t-log'
'.vector-menu-content-list #ca-dt-page-subscribe',
'.vector-menu-content-list #ca-edit',
'.vector-menu-content-list #ca-nstab-user',
'.vector-menu-content-list #ca-protect',
'.vector-menu-content-list #ca-watch',
'.vector-menu-content-list #ca-wikilove',
'.vector-menu-content-list #t-info',
'.vector-menu-content-list #t-log',
'.vector-menu-content-list #t-urlshortener',
'.vector-menu-content-list #t-urlshortener-qrcode',
'.vector-menu-content-list #t-whatlinkshere',
'.vector-menu-content-list #tw-block',
'.vector-menu-content-list #tw-rpp',
'.vector-menu-content-list #tw-unlink',
'.vector-menu-content-list #tw-warn',
'.vector-menu-content-list #twinkle-talkback',
'.vector-menu-content-list #twinkle-welcome',
];
for (const selector of elementsToRemove) {
document.querySelector(selector)?.remove();
}
const cactions = document.getElementById('p-cactions');
if (cactions) {
const listItems = cactions.querySelectorAll('li');
const anyVisible = Array.from(listItems).some(li => {
return li.offsetParent !== null;
}));
if (!anyVisible) {
cactions.style.display = 'none';
}
}
const contributions = document.querySelector('#t-contributions a');
if (contributions) {
contributions.href = `/wiki/Special:Contributions/${ip}`;
}
const globalContributions = document.querySelector('#t-global-contributions a');
if (globalContributions) {
globalContributions.href = `/wiki/Special:GlobalContributions/${ip}`;
}
const blockUser = document.querySelector('#t-blockip a');
Line 328 ⟶ 358:
}
if (!ips.length) {
const noContributionsMessage = document.createElement('p');
noContributionsMessage.innerHTML = '<span style="color:red;">No contributions found for this IP range.</span>';
contentContainer.appendChild(noContributionsMessage);
return;
}
}
const titles = ips.slice(0, 50).map(ip => `User talk:${ip}`);
const infoResponse = await api.get({
Line 342 ⟶ 372:
});
const pages = infoResponse.query.pages
.filter(page => !page.missing)
.map(page => ({
title: page.title,
touched: page.touched,
redirect: !!page.redirect}))
.sort((a, b) => b.touched.localeCompare(a.touched));
}))
if (!pages.length) {
.sort((a, b) => b.touched.localeCompare(a.touched));
const noTalkPagesMessage = document.createElement('p');
if (!pages.length) {
noTalkPagesMessage.innerHTML = '<span style="color:red;">No user talk pages found for this IP range.</span>';
const noTalkPagesMessage = document.createElement('p');
contentContainer.appendChild(noTalkPagesMessage);
noTalkPagesMessage.innerHTML = '<span style="color:red;">No user talk pages found for this IP range.</span>';
return;
contentContainer.appendChild(noTalkPagesMessage);
}
return;
}
const parseTasks = [];
for (const page of pages) {