Skip to content

Commit

Permalink
Add bundles to steam search tabler (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
KevinNovak authored Oct 18, 2019
1 parent 8bd9c34 commit f03950b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 11 deletions.
4 changes: 3 additions & 1 deletion public/scripts/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,9 @@ function createMarkdownTable(searchData) {
let reviews = extractNumberFromPercent(app.reviewsPercent) || app.reviewsPercent || "";
let reviewsCount = app.reviewsCount || "";

result += `| ${platform} | [${title}](${link}) | ${price} | ${percentOff} | ${reviews} | ${reviewsCount} |` + NEW_LINE;
let bundlePrefix = app.type == "BUNDLE" ? "**Bundle** - " : "";

result += `| ${platform} | ${bundlePrefix}[${title}](${link}) | ${price} | ${percentOff} | ${reviews} | ${reviewsCount} |` + NEW_LINE;
}

return result;
Expand Down
31 changes: 21 additions & 10 deletions services/steam-scraper.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ async function getSearchPageData(searchUrl) {
let searchPageHtml = await _rp({ url: searchUrl });
let $ = _cheerio.load(searchPageHtml);

let searchResults = Array.from($('#search_resultsRows > a[href*="\/app\/"].search_result_row'));
let searchResults = Array.from($('#search_resultsRows > a.search_result_row'));

let searchPageData = [];
for (var searchResult of searchResults) {
Expand Down Expand Up @@ -91,6 +91,7 @@ async function getGameDataFromSearchResult(searchResult) {

let title = "";
let link = "";
let type = "UNKNOWN";
let price = "";
let discounted = false;
let originalPrice = "";
Expand All @@ -101,27 +102,37 @@ async function getGameDataFromSearchResult(searchResult) {

title = $('div.search_name > span.title').text().trim();
link = stripQueryString(searchResult.attribs.href);

if (link.includes('/app/')) {
type = "APP";
} else if (link.includes('/bundle/')) {
type = "BUNDLE";
}

price = $('div.search_price').clone().children().remove().end().text().trim();
originalPrice = $('div.search_price > span > strike').text().trim();
percentOff = extractPercent($('div.search_discount > span').text().trim());

let reviewsSummary = $('div.search_reviewscore > span.search_review_summary').attr('data-tooltip-html');

if (reviewsSummary) {
reviewsSummary = reviewsSummary.trim();
reviewsPercent = extractPercent(reviewsSummary);
reviewsCount = extractReviewsCount(reviewsSummary).replace(/,/g, '');
}

if (originalPrice && percentOff) {
discounted = true;
}

headsets = await getHeadsetsFromLink(link);
if (type == "APP") {
let reviewsSummary = $('div.search_reviewscore > span.search_review_summary').attr('data-tooltip-html');

if (reviewsSummary) {
reviewsSummary = reviewsSummary.trim();
reviewsPercent = extractPercent(reviewsSummary);
reviewsCount = extractReviewsCount(reviewsSummary).replace(/,/g, '');
}

headsets = await getHeadsetsFromLink(link);
}

return {
title,
link,
type,
originalPrice,
discounted,
price,
Expand Down

0 comments on commit f03950b

Please sign in to comment.