2023-01-04 14:35:18 +03:00
|
|
|
|
/**
|
|
|
|
|
* Скрипт для парсинга значков Steam
|
|
|
|
|
* @version 0.1.0
|
|
|
|
|
* @license Unlicense
|
|
|
|
|
* @author Alexander Popov <iiiypuk@fastmail.fm>
|
2023-01-04 14:22:06 +03:00
|
|
|
|
*/
|
|
|
|
|
|
2023-01-04 14:35:18 +03:00
|
|
|
|
/**
|
|
|
|
|
* Получает данные из элемента `div.badge_row`
|
|
|
|
|
* @param {DOM} value - div.badge_row.
|
|
|
|
|
* @returns {Object}
|
|
|
|
|
*/
|
|
|
|
|
function getData(value) {
|
|
|
|
|
/*
|
|
|
|
|
* Badge Sctruct:
|
|
|
|
|
* id: int
|
|
|
|
|
* uri: str
|
|
|
|
|
* name: str
|
|
|
|
|
* dropLeft: int
|
|
|
|
|
*/
|
2023-01-04 14:22:06 +03:00
|
|
|
|
|
|
|
|
|
// check left cards
|
2023-01-04 14:35:18 +03:00
|
|
|
|
// для металлических карточек нет параметра 'карточек выпадет'
|
2023-01-04 14:22:06 +03:00
|
|
|
|
let cardsDropLeft = 0;
|
|
|
|
|
if (value.getElementsByClassName('progress_info_bold')[0]) {
|
2023-01-04 15:24:10 +03:00
|
|
|
|
cardsDropLeft = value.getElementsByClassName('progress_info_bold')[0].match(/\d/g);
|
2023-01-04 14:22:06 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let badgeItem = {
|
|
|
|
|
id: value.childNodes[1].href.split('/')[6],
|
|
|
|
|
uri: value.childNodes[1].href,
|
|
|
|
|
name: value.childNodes[3].childNodes[1].childNodes[3].childNodes[0].nodeValue.replace(/[\r\n\t]/g, ''),
|
|
|
|
|
dropLeft: cardsDropLeft,
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-04 14:35:18 +03:00
|
|
|
|
return badgeItem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Преобразовывает массив данных в JSON и возвращает к консоль
|
|
|
|
|
* @param {Array} badgesArray - массив данных о значках.
|
|
|
|
|
*/
|
|
|
|
|
function exportJson(badgesArray) {
|
|
|
|
|
console.log(JSON.stringify(badgesArray));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Функция main()
|
|
|
|
|
*/
|
|
|
|
|
function getBadges() {
|
|
|
|
|
let badges = [];
|
|
|
|
|
const collection = document.getElementsByClassName('badge_row');
|
|
|
|
|
|
2023-01-04 15:24:10 +03:00
|
|
|
|
for (const value of Object.entries(collection)) {
|
2023-01-04 14:35:18 +03:00
|
|
|
|
badges.push(getData(value));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exportJson(badges);
|
2023-01-04 14:22:06 +03:00
|
|
|
|
}
|
|
|
|
|
|
2023-01-04 14:35:18 +03:00
|
|
|
|
getBadges();
|