Package Exports
- @xfaider/node-steam-inventory
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@xfaider/node-steam-inventory) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-steam-inventory
A module for interacting with steam for getting users inventory
Two endpoints
Steam has two endpoints:
- https://steamcommunity.com/profiles/STEAM_ID/inventory/json/APP_ID/CONTEXT_Id/ (OLD)
- https://steamcommunity.com/inventory/STEAM_ID/APP_ID/CONTEXT_Id/ (NEW)
You can see their differences in stackoverflow. In this module you can use both of them.
Installation
npm install @xfaider/node-steam-inventory
Usage
var steamInventoryModule = require('@xfaider/node-steam-inventory');
var steamInventory = new steamInventoryModule.SteamUserInventory(options);
Constructor params
Params:
options[defaultGotOptions]
: default options for got module for all call methods. Default:{}
.
Basic usage
steamInventory.loadAndFormat({
steamId: userSteamId
}).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
API
Instance methods
loadFromOldEndPoint
Load steam inventory from old endpoint
steamInventory.loadFromOldEndPoint(params).then(response => {
console.log(response);
// `got` response`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for request |
params[steamId] |
String|Number | Empty string | User steam id |
params[appId] |
Number | 730 (CSGO App id) |
Steam application id |
params[contextId] |
Number | 2 |
Steam context id |
params[gotOptions] |
Object | {} |
Options for got module |
loadFromOldEndPointAndFormat
Load steam inventory from old endpoint and format data
steamInventory.loadFromOldEndPointAndFormat(params).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for method loadFromOldEndPoint |
loadFromNewEndPoint
Load steam inventory from new endpoint
steamInventory.loadFromNewEndPoint(params).then(response => {
console.log(response);
// `got` response`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for request |
params[steamId] |
String|Number | Empty string | User steam id |
params[appId] |
Number | 730 (CSGO App id) |
Steam application id |
params[contextId] |
Number | 2 |
Steam context id |
params[language] |
String | english |
Language for some fields in response |
params[count] |
Number | 5000 (For steam maximum is 5000) |
Limit of items in response |
params[cursor] |
String|Number | null |
Asset id of steam item working as cursor for pagination |
params[gotOptions] |
Object | {} |
Options for got module |
loadAllDataFromNewEndPoint
Load steam inventory from new endpoint with all pages fetching.
Because of highly ratelimited steam endpoint , you need to use different IPs, or different proxies for each request (use getGotOptionsPromise
for it)
steamInventory.loadAllDataFromNewEndPoint(params, getGotOptionsPromise).then(responses => {
console.log(responses);
// array of `got` responses
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for request |
params[steamId] |
String|Number | Empty string | User steam id |
params[appId] |
Number | 730 (CSGO App id) |
Steam application id |
params[contextId] |
Number | 2 |
Steam context id |
params[language] |
String | english |
Language for some fields in response |
params[perPage] |
Number | 5000 (For steam maximum is 5000) |
Limit of items per response |
params[gotOptions] |
Object | {} |
Options for got module |
getGotOptionsPromise |
Function | return Promise.resolve(params.gotOptions) |
Function returning Promise, resolving gotOptions for each request |
loadFromNewEndPointAndFormat
Load steam inventory from new endpoint and format data
steamInventory.loadFromNewEndPointAndFormat(params).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for method loadFromNewEndPoint |
loadFromNewEndPointNextPage
Load next page steam inventory from new endpoint
steamInventory.loadFromNewEndPointNextPage(params, previousResponse).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for method loadFromNewEndPoint |
previousResponse |
Object | undefined |
Steam response from new endpoint |
loadAllDataFromNewEndPointAndFormat
Load steam inventory from new endpoint with all pages fetching and format it
steamInventory.loadAllDataFromNewEndPointAndFormat(params, getGotOptionsPromise).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for method loadAllDataFromNewEndPoint |
getGotOptionsPromise |
Function | null |
See this parameter in loadAllDataFromNewEndPoint |
load
Load steam inventory from new or old endpoints
steamInventory.load(params, useNewEndPoint, getGotOptionsPromise).then(responses => {
console.log(responses);
// array of `got` responses
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for method loadAllDataFromNewEndPoint or loadFromOldEndPoint |
useNewEndPoint |
Boolean | true |
Flag for using new endpoint (or old) |
getGotOptionsPromise |
Function | null |
See this parameter in loadAllDataFromNewEndPoint |
loadAndFormat
Main method. Load steam inventory from new or old endpoints and format it
steamInventory.loadAndFormat(params, useNewEndPoint, getGotOptionsPromise).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
params |
Object | undefined |
Parameters for method loadAllDataFromNewEndPointAndFormat or loadFromOldEndPointAndFormat |
useNewEndPoint |
Boolean | true |
Flag for using new endpoint (or old) |
getGotOptionsPromise |
Function | null |
See this parameter in loadAllDataFromNewEndPointAndFormat |
Static methods
requestJSON
JSON request
SteamUserInventory.requestJSON(url, gotOptions).then(respone => {
console.log(response);
// `got` response
});
Parameter | Type | Default | Description |
---|---|---|---|
url |
String | undefined |
URL for request |
gotOptions |
Object | undefined |
Options for got module |
getItemClassInstanceString
Get item special string class_id
+ _
+ instance_id
let steamItem = {classid: 98, instanceid: 115};
SteamUserInventory.getItemClassInstanceString(steamItem).then(str => {
console.log(str);
// 98_115
});
Parameter | Type | Default | Description |
---|---|---|---|
steamItem |
Object | undefined |
Steam item object from response |
steamItem[classid] |
String|Number | undefined |
Steam item class_id |
steamItem[instanceid] |
String|Number | undefined |
Steam item instance_id |
getItemImageUrl
Get item image (normal or large)
let steamItem = {icon_url_large: '__href__'};
let large = true;
SteamUserInventory.getItemImageUrl(steamItem, large).then(str => {
console.log(str);
// https://steamcommunity-a.akamaihd.net/economy/image/__href__
});
Parameter | Type | Default | Description |
---|---|---|---|
steamItem |
Object | undefined |
Steam item object from response |
steamItem[icon_url_large] |
String | undefined |
Steam item icon_url_large |
steamItem[icon_url] |
String | undefined |
Steam item icon_url |
large |
Boolean | true |
Get large image flag |
getInspectItemLink
Get item inspect link
let steamItem = {
actions: [
{item: 'Inspect in Game...', link: 'test_link'}
]
};
SteamUserInventory.getInspectItemLink(steamItem).then(str => {
console.log(str);
// test_link
});
Parameter | Type | Default | Description |
---|---|---|---|
steamItem |
Object | undefined |
Steam item object from response |
steamItem[actions] |
Array | undefined |
Steam item actions |
formatItem
Format item
SteamUserInventory.formatItem(itemData).then(formatted => {
console.log(formatted);
// {
// id: '14364197067',
// assetId: '14364197067',
// amount: '1',
// classId: '2777986317',
// instanceId: '188530139',
// raw: { base: [Object], description: [Object] },
// appId: 730,
// name: 'Five-SeveN | Monkey Business',
// marketHashName: 'Five-SeveN | Monkey Business (Well-Worn)',
// tradable: 1,
// marketable: 1,
// marketTradableRestriction: 7,
// link: 'steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S%owner_steamid%A%assetid%D11673583149302548085',
// imageLarge: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgposLOzLhRlxfbGTj5X09q_goWYkuHxPYTTl2VQ5sROh-zF_Jn4t1i1uRQ5fTvzdoGWdwdvMFzU_FbolerujJHptcjAwXo37yUrtyuOyRbliU4aPOdxxavJhXiz6dw',
// imageSmall: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgposLOzLhRlxfbGTj5X09q_goWYkuHxPYTTl2VQ5sROh-zF_Jn4xlbkqURvZmiidYKRdAFoNVzR81bryLvmjZ7o6ZjAmyYw7CNw7SmLzRepwUYbn3RWfTI',
// image: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgposLOzLhRlxfbGTj5X09q_goWYkuHxPYTTl2VQ5sROh-zF_Jn4t1i1uRQ5fTvzdoGWdwdvMFzU_FbolerujJHptcjAwXo37yUrtyuOyRbliU4aPOdxxavJhXiz6dw',
// category: null,
// type: undefined,
// exterior: undefined,
// quality: undefined
// }
});
Parameter | Type | Default | Description |
---|---|---|---|
steamItem |
Object | undefined |
Steam item object from response |
steamItem[base] |
Object | undefined |
Base steam item data |
steamItem[description] |
Object | undefined |
Description steam item data |
formatData
Format response data (result is array of objects formatted by formatItem)
SteamUserInventory.formatData(items, descriptions).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
items |
Object | undefined |
Object with base item data |
descriptions |
Object | undefined |
Object with description item data |
formatDataFromOldEndPoint
Format response data from old endpoint(see result formatData)
SteamUserInventory.formatDataFromOldEndPoint(data).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
data |
Object | undefined |
Data in response from old steam endpoint |
formatDataFromNewEndPoint
Format response data from new endpoint(see result formatData)
SteamUserInventory.formatDataFromNewEndPoint(data).then(formattedArray => {
console.log(formattedArray);
// Array of objects formatted by `formatItem`
});
Parameter | Type | Default | Description |
---|---|---|---|
data |
Object | undefined |
Data in response from new steam endpoint |