From 21895a221c3467647b5cb6258dc2c4f6174b8b42 Mon Sep 17 00:00:00 2001 From: Jake Forrester Date: Thu, 30 Jul 2015 11:39:40 -0700 Subject: [PATCH 1/3] Added getMarketApps Returns an object in format of {appid: appName, ...} --- classes/CMarket.js | 25 +++++++++++++++++++++++++ index.js | 1 + 2 files changed, 26 insertions(+) create mode 100644 classes/CMarket.js diff --git a/classes/CMarket.js b/classes/CMarket.js new file mode 100644 index 0000000..e376569 --- /dev/null +++ b/classes/CMarket.js @@ -0,0 +1,25 @@ +var SteamCommunity = require('../index.js'); +var Cheerio = require('cheerio'); + +SteamCommunity.prototype.getMarketApps = function(callback) { + var self = this; + this.request('https://steamcommunity.com/market/', function (err, response, body) { + if(self._checkHttpError(err, response, callback)) { + return; + } + var $ = Cheerio.load(body); + if ($('.market_search_game_button_group')) { + apps = {}; + $('.market_search_game_button_group > a').each(function (i, element) { + var e = Cheerio.load(element); + var name = e('.game_button_game_name').text().trim(); + var url = element.attribs.href; + var appid = url.substr(url.indexOf('=') + 1); + apps[appid] = name; + }); + callback(apps); + } else { + callback(null); + } + }); +} diff --git a/index.js b/index.js index a941ffb..3d7fa67 100644 --- a/index.js +++ b/index.js @@ -309,6 +309,7 @@ SteamCommunity.prototype._checkHttpError = function(err, response, callback) { return false; }; +require('./classes/CMarket.js'); require('./classes/CMarketItem.js'); require('./classes/CMarketSearchResult.js'); require('./classes/CSteamGroup.js'); From 62c2f1b965e7c98234d66218893a586a5a1c44c3 Mon Sep 17 00:00:00 2001 From: Jake Forrester Date: Thu, 30 Jul 2015 13:28:28 -0700 Subject: [PATCH 2/3] Moved non-class file to components --- classes/CMarket.js => components/market.js | 4 ++-- index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename classes/CMarket.js => components/market.js (90%) diff --git a/classes/CMarket.js b/components/market.js similarity index 90% rename from classes/CMarket.js rename to components/market.js index e376569..51be783 100644 --- a/classes/CMarket.js +++ b/components/market.js @@ -17,9 +17,9 @@ SteamCommunity.prototype.getMarketApps = function(callback) { var appid = url.substr(url.indexOf('=') + 1); apps[appid] = name; }); - callback(apps); + callback(false, apps); } else { - callback(null); + callback(new Error("Malformed response")); } }); } diff --git a/index.js b/index.js index 3d7fa67..039683d 100644 --- a/index.js +++ b/index.js @@ -309,10 +309,10 @@ SteamCommunity.prototype._checkHttpError = function(err, response, callback) { return false; }; -require('./classes/CMarket.js'); require('./classes/CMarketItem.js'); require('./classes/CMarketSearchResult.js'); require('./classes/CSteamGroup.js'); require('./classes/CSteamUser.js'); require('./components/chat.js'); require('./components/profile.js'); +require('./components/market.js'); From 01093f38fa2c40a76b0c04e53c2c1360403386e9 Mon Sep 17 00:00:00 2001 From: Jake Forrester Date: Thu, 30 Jul 2015 13:45:07 -0700 Subject: [PATCH 3/3] Fixed callback error type consistency --- components/market.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/market.js b/components/market.js index 51be783..b1178d1 100644 --- a/components/market.js +++ b/components/market.js @@ -17,7 +17,7 @@ SteamCommunity.prototype.getMarketApps = function(callback) { var appid = url.substr(url.indexOf('=') + 1); apps[appid] = name; }); - callback(false, apps); + callback(null, apps); } else { callback(new Error("Malformed response")); }