Content deleted Content added
remove Twinkle menu items last |
fetch user talk pages without using usercontribs API |
||
Line 284:
// display talk pages for IP range
async function displayRangeTalk(ip) {
async function getUserTalkPages(ip) {
const url = `/wiki/Special:Contributions/${ip}`;
const userTalk = new Set();
const abortController = new AbortController();
try {
const html = await fetch(url, { signal: abortController.signal }).then(res => res.text());
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
const talkLinks = doc.querySelectorAll('a.mw-usertoollinks-talk:not(.new)');
for (const link of talkLinks) {
const title = link.title;
if (title) userTalk.add(title);
}▼
} catch (error) {
console.error('Error fetching usertalk pages:', error);
}▼
return userTalk;
function timeAgo(timestamp) {
const delta = (Date.now() - new Date(timestamp)) / 1000;
Line 338 ⟶ 356:
blockUser.href = `/wiki/Special:Block/${ip}`;
}
const
▲ });
▲ }
▲ }
▲ if (!ips.length) {
const noContributionsMessage = document.createElement('p');
noContributionsMessage.innerHTML = '<span style="color:red;">No
contentContainer.appendChild(noContributionsMessage);
return;
}
const infoResponse = await api.get({
action: 'query',
titles:
prop: 'info',
format: 'json',
Line 375 ⟶ 379:
if (!pages.length) {
const noTalkPagesMessage = document.createElement('p');
noTalkPagesMessage.innerHTML = '<span style="color:red;">
contentContainer.appendChild(noTalkPagesMessage);
return;
|