DremPSB: Господа, спасибо за отклик, я ценю ваше желание помочь. Но, если не трудно - объясните не слишком сведущему во всех подобных делах, пожалуйста, как мне получить информацию в удобоваримом виде? Интересует именно список ВСЕХ игр с датой приобретения (и стоимостью покупки - опционально). В JSON потыкался без толку.
Открыть консоль браузера(в зависимости от браузера открывается с помощью F12, Ctrl+Shift+J (Command+Option+J), Ctrl+Shift+K (Command+Option+K) и вставить следующий код и нажать Enter
[spoiler]
function saveToFile(filename, text){
var link = document.createElement("a");
link.setAttribute("target","_blank");
if (Blob !== undefined) {
const blob = new Blob([text], {type: "text/plain"});
link.setAttribute("href", URL.createObjectURL(blob));
} else {
link.setAttribute("href","data:text/plain," + encodeURIComponent(text));
}
link.setAttribute("download", filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
async function getPurchases() {
const url = '
https://www.gog.com/account/settings/orders/data?canceled=1&completed=1&in_progress=1&not_redeemed=1&pending=1&redeemed=1&page=';
let page = 1;
let totalPages = 1;
const purchaseList = [];
async function getPage(page) {
return fetch(`${url}${page}`, {
method: 'GET',
credentials: 'same-origin',
cache: 'no-cache',
headers: {
'Content-Type': 'application/json'
}
})
.then(response =>
{
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const contentType = response.headers.get('content-type');
if (!contentType || !contentType.includes('application/json')) {
throw new TypeError("Not JSON!");
}
return response.json()
})
.then(data => {
if (data && data.totalPages) {
totalPages = data.totalPages;
if (data.orders) {
data.orders.forEach(el => {
const orderTime = new Date(el.date * 1000).toLocaleDateString();
el.products.forEach(item => {
purchaseList.push({ date: orderTime, title: item.title, price: `${item.price.amount} ${item.price.symbol}` });
});
});
}
}
})
.catch(error => {
console.error('Error:', error);
});
};
await getPage(page++);
console.info(`Total pages: ${totalPages}.`);
console.info('Processing...');
while(page <= totalPages) {
console.info(`Getting page ${page}...`);
await getPage(page++);
}
let list = '';
purchaseList.forEach((item) => {
list += `${item.title} | ${item.price} | ${item.date}\n`;
});
saveToFile('purchases.txt', list);
console.info('Processing finished.');
};
await getPurchases();
[/spoiler]