SteamBadges/code.js

62 lines
1.5 KiB
JavaScript
Raw Normal View History

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();