SteamBadges/code.js

62 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Скрипт для парсинга значков Steam
* @version 0.1.0
* @license Unlicense
* @author Alexander Popov <iiiypuk@fastmail.fm>
*/
/**
* Получает данные из элемента `div.badge_row`
* @param {DOM} value - div.badge_row.
* @returns {Object}
*/
function getData(value) {
/*
* Badge Sctruct:
* id: int
* uri: str
* name: str
* dropLeft: int
*/
// check left cards
// для металлических карточек нет параметра 'карточек выпадет'
let cardsDropLeft = 0;
if (value.getElementsByClassName('progress_info_bold')[0]) {
cardsDropLeft = value.getElementsByClassName('progress_info_bold')[0].match(/\d/g);
}
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,
};
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');
for (const value of Object.entries(collection)) {
badges.push(getData(value));
}
exportJson(badges);
}
getBadges();