javascript:function fetchDataAndProcess(url) { return fetch(url) .then(response => response.json()) .then(data => { var deploys = []; for (let i = 0; i < data['alertsList'].length; i++) { if (data['alertsList'][i]['identifierType'].toString() == "deployment_report") { deploys.push(data['alertsList'][i]['identifierId']); } } var text = ""; var looted = [0, 0, 0]; var newTexts = []; var fetchPromises = deploys.map(deployId => { return fetch('https://www.erepublik.com/en/military/fightDeploy-deployReportData', { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "deploymentId=" + deployId + "&_token=" + _token.value }) .then(response => response.json()) .then(data => { var looted = [0, 0, 0]; var xp = data['data']['xp'].slice(1, -4); var loot = data['data']['loot']; for (let i = 0; i < loot.length; i++) { if (loot[i]['text'] == "Prestige Points") { looted[0] = loot[i]['amount']; } else if (loot[i]['text'] == "Gold") { looted[1] = loot[i]['amount']; } else if (loot[i]['text'] == "Ice Cream") { looted[2] = loot[i]['amount']; } } const newText = deployId + "\t" + xp + "\t" + looted[0] + "\t" + looted[1] + "\t" + looted[2] + "\n"; newTexts.push(newText); return newText; }) .catch(error => { console.error('Error getting reports JSON:', error); alert('Error getting reports JSON, refreshing the page should help'); }); }); return Promise.all(fetchPromises) .then(() => newTexts.join('')); }) .catch(error => { console.error('Error al obtener la lista de reportes: ', error); alert('Error al obtener la lista de reportes'); }); } (function () { var fetchPromises = []; for (let reportNumber = 1; reportNumber <= 9; reportNumber++) { const url = `https://www.erepublik.com/en/main/notificationsAjax/report/${reportNumber}`; fetchPromises.push(fetchDataAndProcess(url)); } Promise.all(fetchPromises) .then(textsArray => { var tempInput = document.createElement('textarea'); tempInput.value = textsArray.join(''); document.body.insertBefore(tempInput, document.body.firstChild); tempInput.select(); document.execCommand('copy'); }) .catch(error => { console.error('Error global: ', error); alert('Error global :('); }); })();