steamutils 1.1.16 → 1.1.18
Sign up to get free protection for your applications and to get access to all the features.
- package/example.js +100 -10
- package/index.js +134 -103
- package/package.json +1 -1
package/example.js
CHANGED
@@ -1,14 +1,104 @@
|
|
1
1
|
import SteamUser from "./index.js";
|
2
|
-
import
|
2
|
+
import axios from "axios";
|
3
|
+
import * as cherrio from "cheerio";
|
3
4
|
|
4
5
|
(async function () {
|
5
|
-
const loginResult = await SteamUser.communityLogin({
|
6
|
-
|
7
|
-
|
8
|
-
})
|
9
|
-
console.log(loginResult.cookie);
|
10
|
-
const user = new SteamUser(loginResult.cookie)
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
// const loginResult = await SteamUser.communityLogin({
|
7
|
+
// username: "abc",
|
8
|
+
// password: "xyz",
|
9
|
+
// })
|
10
|
+
// console.log(loginResult.cookie);
|
11
|
+
// const user = new SteamUser(loginResult.cookie)
|
12
|
+
|
13
|
+
|
14
|
+
// let cookies = `timezoneOffset=25200,0; _ga=GA1.2.187887660.1678676715; browserid=2823232875076552481; strInventoryLastContext=730_2; recentlyVisitedAppHubs=730%2C1859270; sessionid=83e614b63d78d0d2b4d93680; steamCountry=VN%7C3c7bd5df99a265a3e5102a225d1ab62d; steamLoginSecure=76561199040402348%7C%7CeyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInI6MEQwM18yMjM1ODQ2MF8xM0YyNCIsICJzdWIiOiAiNzY1NjExOTkwNDA0MDIzNDgiLCAiYXVkIjogWyAid2ViIiBdLCAiZXhwIjogMTY4NTA2NTUzMiwgIm5iZiI6IDE2NzYzMzc4MDcsICJpYXQiOiAxNjg0OTc3ODA3LCAianRpIjogIjBEMkRfMjI5NkUxQkNfQzNERjUiLCAib2F0IjogMTY3ODY3NjgzMywgInJ0X2V4cCI6IDE2OTY4NjYxMDEsICJwZXIiOiAwLCAiaXBfc3ViamVjdCI6ICIxNC4yMzIuMjE0LjE4NiIsICJpcF9jb25maXJtZXIiOiAiMTQuMjMyLjIxNC4xODYiIH0.AhLuV9mQzv2j2CEgBe5ZpGyUqpHXogHFClfdsd3Ve7-Dt4aHagrJhOsgLewh1gmkO5ZewAN4FO4Y5S3D7u4FCw; webTradeEligibility=%7B%22allowed%22%3A1%2C%22allowed_at_time%22%3A0%2C%22steamguard_required_days%22%3A15%2C%22new_device_cooldown_days%22%3A0%2C%22time_checked%22%3A1684981543%7D; tsTradeOffersLastRead=1684321053`;
|
15
|
+
// const user = new SteamUser("timezoneOffset=25200,0; _ga=GA1.2.187887660.1678676715; browserid=2823232875076552481; strInventoryLastContext=730_2; recentlyVisitedAppHubs=730%2C1859270; sessionid=83e614b63d78d0d2b4d93680; steamCountry=VN%7C3c7bd5df99a265a3e5102a225d1ab62d; steamLoginSecure=76561199040402348%7C%7CeyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInI6MEQwM18yMjM1ODQ2MF8xM0YyNCIsICJzdWIiOiAiNzY1NjExOTkwNDA0MDIzNDgiLCAiYXVkIjogWyAid2ViIiBdLCAiZXhwIjogMTY4NTA2NTUzMiwgIm5iZiI6IDE2NzYzMzc4MDcsICJpYXQiOiAxNjg0OTc3ODA3LCAianRpIjogIjBEMkRfMjI5NkUxQkNfQzNERjUiLCAib2F0IjogMTY3ODY3NjgzMywgInJ0X2V4cCI6IDE2OTY4NjYxMDEsICJwZXIiOiAwLCAiaXBfc3ViamVjdCI6ICIxNC4yMzIuMjE0LjE4NiIsICJpcF9jb25maXJtZXIiOiAiMTQuMjMyLjIxNC4xODYiIH0.AhLuV9mQzv2j2CEgBe5ZpGyUqpHXogHFClfdsd3Ve7-Dt4aHagrJhOsgLewh1gmkO5ZewAN4FO4Y5S3D7u4FCw; webTradeEligibility=%7B%22allowed%22%3A1%2C%22allowed_at_time%22%3A0%2C%22steamguard_required_days%22%3A15%2C%22new_device_cooldown_days%22%3A0%2C%22time_checked%22%3A1684981543%7D; tsTradeOffersLastRead=1684321053")
|
16
|
+
// const friendList = await user.getTradeURL()
|
17
|
+
|
18
|
+
function CookieManager(cookie) {
|
19
|
+
const _CookieObj = {}
|
20
|
+
if (typeof cookie === "string") {
|
21
|
+
cookie.split(";").forEach(function (_cookie) {
|
22
|
+
setCookie(_cookie.split("=")[0].trim(), _cookie.split("=")[1].trim())
|
23
|
+
})
|
24
|
+
} else if (Array.isArray(cookie)) {
|
25
|
+
cookie.forEach(function (_cookie) {
|
26
|
+
if (typeof _cookie === "string") {
|
27
|
+
setCookie(_cookie.split("=")[0].trim(), _cookie.split("=")[1].trim())
|
28
|
+
} else {
|
29
|
+
//to do
|
30
|
+
}
|
31
|
+
})
|
32
|
+
} else if (typeof cookie === "object" && Object.keys(cookie).length) {
|
33
|
+
for (const key in cookie) {
|
34
|
+
setCookie(key, cookie[key])
|
35
|
+
}
|
36
|
+
} else {
|
37
|
+
//to do
|
38
|
+
}
|
39
|
+
|
40
|
+
function setCookie(name, value) {
|
41
|
+
const existedKey = Object.keys(_CookieObj).find(k => k.toLowerCase() === name.toLowerCase())
|
42
|
+
if (existedKey) {
|
43
|
+
delete _CookieObj[existedKey]
|
44
|
+
}
|
45
|
+
_CookieObj[name] = value
|
46
|
+
}
|
47
|
+
|
48
|
+
function setCookies(cookies) {
|
49
|
+
if (Array.isArray(cookies)) {
|
50
|
+
for (let cookie of cookies) {
|
51
|
+
if (typeof cookie === "string") {
|
52
|
+
cookie = cookie.split(";")[0].trim()
|
53
|
+
setCookie(cookie.split("=")[0].trim(), cookie.split("=")[1].trim())
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
function getCookie(name) {
|
60
|
+
const existedKey = Object.keys(_CookieObj).find(k => k.toLowerCase() === name.toLowerCase())
|
61
|
+
return _CookieObj[existedKey]
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
function toString() {
|
66
|
+
return Object.keys(_CookieObj).map(k => `${k}=${_CookieObj[k]}`).join(';')
|
67
|
+
}
|
68
|
+
|
69
|
+
return {
|
70
|
+
setCookie,
|
71
|
+
setCookies,
|
72
|
+
getCookie,
|
73
|
+
toString,
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
const cookiesObj = new CookieManager("steamLoginSecure=76561199490333788%7C%7CeyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInI6MEQyRF8yMjhEQTcxQV9DOEZGRCIsICJzdWIiOiAiNzY1NjExOTk0OTAzMzM3ODgiLCAiYXVkIjogWyAid2ViIiwgIm1vYmlsZSIgXSwgImV4cCI6IDE2ODUwNjY0MzgsICJuYmYiOiAxNjc2MzQwMDAwLCAiaWF0IjogMTY4NDk4MDAwMCwgImp0aSI6ICIwRDJCXzIyOTZFMUJGXzUyNEU2IiwgIm9hdCI6IDE2ODQzODUwODksICJydF9leHAiOiAxNzAyNzQzMDU3LCAicGVyIjogMCwgImlwX3N1YmplY3QiOiAiMTQuMjMyLjIxNC4xODYiLCAiaXBfY29uZmlybWVyIjogIjE0LjIzMi4yMTQuMTg2IiB9.t884pdEgtcWk8Apy1HrzhQixy0u-RQFM-qb3JuaYMZjCwTRXdCnOZFbCxFe2JesC5xfFttHe4ufqtyizcEmVDA")
|
78
|
+
|
79
|
+
let url = `my/tradeoffers/privacy`
|
80
|
+
while (true) {
|
81
|
+
const response = await axios({
|
82
|
+
baseURL: "https://steamcommunity.com",
|
83
|
+
url,
|
84
|
+
validateStatus: () => true,
|
85
|
+
headers: {
|
86
|
+
cookie: cookiesObj.toString()
|
87
|
+
},
|
88
|
+
maxRedirects: 0,
|
89
|
+
})
|
90
|
+
cookiesObj.setCookies(response.headers["set-cookie"])
|
91
|
+
if (response.status === 302) {
|
92
|
+
url = response.headers.location
|
93
|
+
console.log(`Redirect to ${url}`)
|
94
|
+
} else if (response.status === 200) {
|
95
|
+
const $ = cherrio.load(response.data)
|
96
|
+
const trade_offer_access_url = $('#trade_offer_access_url').attr('value')
|
97
|
+
console.log(trade_offer_access_url);
|
98
|
+
return response
|
99
|
+
} else {
|
100
|
+
console.log(response.status);
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
14
104
|
})()
|
package/index.js
CHANGED
@@ -15,6 +15,7 @@ import { getTableHasHeaders, table2json } from './cheerio.js'
|
|
15
15
|
import { getJSObjectFronXML } from './xml2json.js'
|
16
16
|
import axios from 'axios'
|
17
17
|
import url from 'url'
|
18
|
+
import * as cherrio from "cheerio";
|
18
19
|
|
19
20
|
const MAX_RETRY = 10
|
20
21
|
export const MatchHistoryType = {
|
@@ -497,6 +498,65 @@ const EdaySinceLastBanRegExp = Object.freeze([
|
|
497
498
|
'(\\d+) nap az utolsó kitiltás óta'])
|
498
499
|
const SteamImageCDN = ['community.cloudflare.steamstatic.com', 'community.akamai.steamstatic.com'].map(cdn => `https://${cdn}`)
|
499
500
|
|
501
|
+
function CookieManager(cookie) {
|
502
|
+
const _CookieObj = {}
|
503
|
+
if (typeof cookie === "string") {
|
504
|
+
cookie.split(";").forEach(function (_cookie) {
|
505
|
+
setCookie(_cookie.split("=")[0].trim(), _cookie.split("=")[1].trim())
|
506
|
+
})
|
507
|
+
} else if (Array.isArray(cookie)) {
|
508
|
+
cookie.forEach(function (_cookie) {
|
509
|
+
if (typeof _cookie === "string") {
|
510
|
+
setCookie(_cookie.split("=")[0].trim(), _cookie.split("=")[1].trim())
|
511
|
+
} else {
|
512
|
+
//to do
|
513
|
+
}
|
514
|
+
})
|
515
|
+
} else if (typeof cookie === "object" && Object.keys(cookie).length) {
|
516
|
+
for (const key in cookie) {
|
517
|
+
setCookie(key, cookie[key])
|
518
|
+
}
|
519
|
+
} else {
|
520
|
+
//to do
|
521
|
+
}
|
522
|
+
|
523
|
+
function setCookie(name, value) {
|
524
|
+
const existedKey = Object.keys(_CookieObj).find(k => k.toLowerCase() === name.toLowerCase())
|
525
|
+
if (existedKey) {
|
526
|
+
delete _CookieObj[existedKey]
|
527
|
+
}
|
528
|
+
_CookieObj[name] = value
|
529
|
+
}
|
530
|
+
|
531
|
+
function setCookies(cookies) {
|
532
|
+
if (Array.isArray(cookies)) {
|
533
|
+
for (let cookie of cookies) {
|
534
|
+
if (typeof cookie === "string") {
|
535
|
+
cookie = cookie.split(";")[0].trim()
|
536
|
+
setCookie(cookie.split("=")[0].trim(), cookie.split("=")[1].trim())
|
537
|
+
}
|
538
|
+
}
|
539
|
+
}
|
540
|
+
}
|
541
|
+
|
542
|
+
function getCookie(name) {
|
543
|
+
const existedKey = Object.keys(_CookieObj).find(k => k.toLowerCase() === name.toLowerCase())
|
544
|
+
return _CookieObj[existedKey]
|
545
|
+
}
|
546
|
+
|
547
|
+
|
548
|
+
function toString() {
|
549
|
+
return Object.keys(_CookieObj).map(k => `${k}=${_CookieObj[k]}`).join(';')
|
550
|
+
}
|
551
|
+
|
552
|
+
return {
|
553
|
+
setCookie,
|
554
|
+
setCookies,
|
555
|
+
getCookie,
|
556
|
+
toString,
|
557
|
+
}
|
558
|
+
}
|
559
|
+
|
500
560
|
class SteamUser {
|
501
561
|
Steam_Language = ELanguage.english
|
502
562
|
|
@@ -512,27 +572,8 @@ class SteamUser {
|
|
512
572
|
Public: 1,
|
513
573
|
})
|
514
574
|
|
515
|
-
constructor (cookies
|
516
|
-
this.
|
517
|
-
}
|
518
|
-
|
519
|
-
setSteamLanguage (language) {
|
520
|
-
language = language?.toLowerCase()
|
521
|
-
if (!Object.hasOwn(ELanguage, language)) {
|
522
|
-
return
|
523
|
-
}
|
524
|
-
this.Steam_Language = language
|
525
|
-
this._cookies = SteamUser.generateCookie({
|
526
|
-
...SteamUser.parseCookie(this._cookies),
|
527
|
-
Steam_Language: this.Steam_Language,
|
528
|
-
})
|
529
|
-
}
|
530
|
-
|
531
|
-
setCookies (cookies, _steamMachineAuth) {
|
532
|
-
if (!cookies) {
|
533
|
-
return
|
534
|
-
}
|
535
|
-
cookies = Array.isArray(cookies) ? cookies.join(';') : cookies
|
575
|
+
constructor (cookies) {
|
576
|
+
this._cookies = new CookieManager(cookies)
|
536
577
|
|
537
578
|
let {
|
538
579
|
steamMachineAuth,
|
@@ -541,25 +582,13 @@ class SteamUser {
|
|
541
582
|
steamID,
|
542
583
|
miniprofile,
|
543
584
|
sessionid,
|
544
|
-
} = SteamUser.parseCookie(
|
585
|
+
} = SteamUser.parseCookie(this._cookies.toString())
|
545
586
|
|
546
|
-
if (!steamMachineAuth && _steamMachineAuth) {
|
547
|
-
steamMachineAuth = _steamMachineAuth
|
548
|
-
}
|
549
587
|
if (!sessionid) {
|
550
588
|
sessionid = SteamUser.generateSessionID()
|
589
|
+
this._cookies.setCookie("sessionid", sessionid)
|
551
590
|
}
|
552
591
|
|
553
|
-
this._cookies = SteamUser.generateCookie({
|
554
|
-
steamMachineAuth,
|
555
|
-
steamLoginSecure,
|
556
|
-
steamRememberLogin,
|
557
|
-
steamID,
|
558
|
-
miniprofile,
|
559
|
-
sessionid,
|
560
|
-
Steam_Language: this.Steam_Language,
|
561
|
-
})
|
562
|
-
|
563
592
|
this._sessionid = sessionid
|
564
593
|
this._steamid_user = steamID
|
565
594
|
this._miniprofile_user = miniprofile
|
@@ -568,6 +597,15 @@ class SteamUser {
|
|
568
597
|
this._steamRememberLogin = steamRememberLogin
|
569
598
|
}
|
570
599
|
|
600
|
+
setSteamLanguage (language) {
|
601
|
+
language = language?.toLowerCase()
|
602
|
+
if (!Object.hasOwn(ELanguage, language)) {
|
603
|
+
return
|
604
|
+
}
|
605
|
+
this.Steam_Language = language
|
606
|
+
this._cookies.setCookie("Steam_Language", language)
|
607
|
+
}
|
608
|
+
|
571
609
|
static parseCookie (cookies) {
|
572
610
|
if (!Array.isArray(cookies)) {
|
573
611
|
cookies = cookies.split(';')
|
@@ -618,7 +656,7 @@ class SteamUser {
|
|
618
656
|
}
|
619
657
|
|
620
658
|
getCookies () {
|
621
|
-
return this._cookies
|
659
|
+
return this._cookies.toString()
|
622
660
|
}
|
623
661
|
|
624
662
|
getSteamidUser () {
|
@@ -1377,21 +1415,8 @@ class SteamUser {
|
|
1377
1415
|
}
|
1378
1416
|
|
1379
1417
|
params.headers.set({
|
1380
|
-
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
|
1381
|
-
'Accept-Language': 'en-US,en;q=0.9',
|
1382
|
-
'Cache-Control': 'no-cache',
|
1383
|
-
Connection: 'keep-alive',
|
1384
|
-
Pragma: 'no-cache',
|
1385
|
-
'Sec-Fetch-Dest': 'document',
|
1386
|
-
'Sec-Fetch-Mode': 'navigate',
|
1387
|
-
'Sec-Fetch-Site': 'none',
|
1388
|
-
'Sec-Fetch-User': '?1',
|
1389
|
-
'Upgrade-Insecure-Requests': '1',
|
1390
1418
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
|
1391
|
-
|
1392
|
-
'sec-ch-ua-mobile': '?0',
|
1393
|
-
'sec-ch-ua-platform': '"Windows"',
|
1394
|
-
Cookie: this._cookies,
|
1419
|
+
Cookie: this._cookies.toString(),
|
1395
1420
|
})
|
1396
1421
|
|
1397
1422
|
let referer = params.headers.get('referer')
|
@@ -1431,8 +1456,6 @@ class SteamUser {
|
|
1431
1456
|
}
|
1432
1457
|
|
1433
1458
|
async _httpRequest (params) {
|
1434
|
-
let result = null,
|
1435
|
-
i = 0
|
1436
1459
|
params = this._formatHttpRequest(params)
|
1437
1460
|
|
1438
1461
|
if (!this._cookies) {
|
@@ -1461,58 +1484,48 @@ class SteamUser {
|
|
1461
1484
|
if (params.data instanceof URLSearchParams) {
|
1462
1485
|
params.headers.set('content-type', 'application/x-www-form-urlencoded')
|
1463
1486
|
}
|
1464
|
-
|
1465
1487
|
}
|
1466
1488
|
|
1467
|
-
|
1489
|
+
let redirectURL = null
|
1490
|
+
let response = null
|
1491
|
+
let retry = 21
|
1492
|
+
while (--retry) {
|
1468
1493
|
const config = {
|
1469
|
-
baseURL: SteamcommunityURL,
|
1494
|
+
baseURL: SteamcommunityURL,
|
1495
|
+
...params,
|
1470
1496
|
data: typeof params.data === 'object' && !Object.keys(params.data).length ? undefined : params.data,
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
1475
|
-
options.headers.cookie = this._cookies
|
1476
|
-
}
|
1477
|
-
if (options.headers.location?.startsWith('https://login.steampowered.com/jwt/refresh')) {
|
1478
|
-
//should login first
|
1479
|
-
}
|
1497
|
+
validateStatus: () => true,
|
1498
|
+
headers: {
|
1499
|
+
...(params.headers.get()),
|
1500
|
+
cookie: this._cookies.toString()
|
1480
1501
|
},
|
1502
|
+
maxRedirects: 0,
|
1503
|
+
url: redirectURL || params.url
|
1481
1504
|
}
|
1505
|
+
response = await axios.request(config)
|
1482
1506
|
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1507
|
+
this._cookies.setCookies(response.headers["set-cookie"])
|
1508
|
+
if (response.status === 302) {
|
1509
|
+
redirectURL = response.headers.location
|
1510
|
+
console.log(`Redirect to ${redirectURL}`)
|
1511
|
+
} else if (response.status === 200) {
|
1512
|
+
break
|
1513
|
+
} else if (response.status === 429) {
|
1487
1514
|
console.log('Too Many Requests')
|
1488
|
-
await sleep(
|
1489
|
-
|
1490
|
-
} else if (
|
1515
|
+
await sleep(30000)
|
1516
|
+
break
|
1517
|
+
} else if (response.status === 401) {
|
1491
1518
|
console.log('Unauthorized')
|
1492
1519
|
if (params.method.toUpperCase() === 'POST') {
|
1493
|
-
config.headers['Content-Type'] = 'multipart/form-data'
|
1494
|
-
|
1495
|
-
}
|
1496
|
-
}
|
1497
|
-
if (result?.error?.code === 'ERR_FR_TOO_MANY_REDIRECTS') {
|
1498
|
-
//Maximum number of redirects exceeded
|
1499
|
-
plsLoginFirst = true
|
1500
|
-
}
|
1501
|
-
|
1502
|
-
if (SteamUser._isPlsLoginFirst(result?.data?.data)) {
|
1503
|
-
plsLoginFirst = true
|
1504
|
-
}
|
1505
|
-
|
1506
|
-
if (plsLoginFirst) {
|
1507
|
-
console.error(params.url, `Please login first`)
|
1508
|
-
return {
|
1509
|
-
data: null,
|
1510
|
-
headers: config.headers,
|
1520
|
+
config.headers['Content-Type'] = config.headers['content-type'] = 'multipart/form-data'
|
1521
|
+
retry = 1
|
1511
1522
|
}
|
1523
|
+
break
|
1524
|
+
} else {
|
1525
|
+
console.log(response.status);
|
1512
1526
|
}
|
1513
1527
|
}
|
1514
|
-
|
1515
|
-
return result
|
1528
|
+
return response
|
1516
1529
|
}
|
1517
1530
|
|
1518
1531
|
async _httpRequestAjax (params) {
|
@@ -4954,10 +4967,14 @@ class SteamUser {
|
|
4954
4967
|
|
4955
4968
|
async getFullInventoryHistory() {
|
4956
4969
|
let result = null
|
4970
|
+
const tradehistory = []
|
4957
4971
|
do {
|
4958
|
-
|
4959
|
-
|
4972
|
+
result = await this.getInventoryHistory(result?.cursor)
|
4973
|
+
if (Array.isArray(result?.tradehistory)) {
|
4974
|
+
tradehistory.push(...result.tradehistory)
|
4975
|
+
}
|
4960
4976
|
} while (result?.cursor)
|
4977
|
+
return tradehistory
|
4961
4978
|
}
|
4962
4979
|
async getInventoryHistory(cursor) {
|
4963
4980
|
if (!cursor) {
|
@@ -5054,6 +5071,9 @@ class SteamUser {
|
|
5054
5071
|
case "Earned": {
|
5055
5072
|
break
|
5056
5073
|
}
|
5074
|
+
case "Traded": {
|
5075
|
+
break
|
5076
|
+
}
|
5057
5077
|
case "Earned due to game play time": {
|
5058
5078
|
break
|
5059
5079
|
}
|
@@ -5102,17 +5122,21 @@ class SteamUser {
|
|
5102
5122
|
const contextid = itemEl.attr('data-contextid')
|
5103
5123
|
|
5104
5124
|
if (text !== `You did not receive any items in this trade.`) {
|
5105
|
-
|
5106
|
-
|
5107
|
-
|
5125
|
+
if (descriptions[appID]) {
|
5126
|
+
const item = descriptions[appID][classid + '_' + instanceid]
|
5127
|
+
if (item) {
|
5128
|
+
tradehistory_items.push({...item, plusminus: items_plusminus})
|
5129
|
+
} else {
|
5130
|
+
tradehistory_items.push({
|
5131
|
+
appID,
|
5132
|
+
classid,
|
5133
|
+
instanceid,
|
5134
|
+
contextid,
|
5135
|
+
plusminus: items_plusminus
|
5136
|
+
})
|
5137
|
+
}
|
5108
5138
|
} else {
|
5109
|
-
|
5110
|
-
appID,
|
5111
|
-
classid,
|
5112
|
-
instanceid,
|
5113
|
-
contextid,
|
5114
|
-
plusminus: items_plusminus
|
5115
|
-
})
|
5139
|
+
console.log("No app descriptions", appID);
|
5116
5140
|
}
|
5117
5141
|
}
|
5118
5142
|
})
|
@@ -5177,6 +5201,13 @@ class SteamUser {
|
|
5177
5201
|
},
|
5178
5202
|
]
|
5179
5203
|
}
|
5204
|
+
|
5205
|
+
async getTradeURL(){
|
5206
|
+
const result = await this._httpRequest(`${this.getMySteamUserProfileURL()}/tradeoffers/privacy`)
|
5207
|
+
const $ = cherrio.load(result.data)
|
5208
|
+
const trade_offer_access_url = $('#trade_offer_access_url').attr('value')
|
5209
|
+
return trade_offer_access_url
|
5210
|
+
}
|
5180
5211
|
}
|
5181
5212
|
|
5182
5213
|
export default SteamUser
|