steamutils 1.2.13 → 1.2.15
Sign up to get free protection for your applications and to get access to all the features.
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/steamutils.iml +1 -1
- package/.idea/vcs.xml +1 -1
- package/SteamClient.js +13 -1
- package/index.js +104 -0
- package/package.json +1 -1
package/.idea/steamutils.iml
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
<module type="WEB_MODULE" version="4">
|
3
3
|
<component name="NewModuleRootManager">
|
4
4
|
<content url="file://$MODULE_DIR$">
|
5
|
-
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
6
5
|
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
6
|
+
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
7
7
|
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
8
8
|
</content>
|
9
9
|
<orderEntry type="inheritedJdk" />
|
package/.idea/vcs.xml
CHANGED
package/SteamClient.js
CHANGED
@@ -11,6 +11,7 @@ import path from "path";
|
|
11
11
|
import SteamUtils from "./index.js";
|
12
12
|
import {v4 as uuidv4} from 'uuid';
|
13
13
|
import EFriendRelationship from "steam-user/enums/EFriendRelationship.js";
|
14
|
+
import SteamCommunity from "steamcommunity";
|
14
15
|
|
15
16
|
const __filename = fileURLToPath(import.meta.url);
|
16
17
|
const __dirname = path.dirname(__filename);
|
@@ -93,6 +94,7 @@ function SteamClient({
|
|
93
94
|
let prime = null
|
94
95
|
let state = 'Offline'//InGame, Online
|
95
96
|
let isLogOff = false
|
97
|
+
let playingBlocked = null
|
96
98
|
const richPresence = {}
|
97
99
|
|
98
100
|
const events = {
|
@@ -904,7 +906,7 @@ function SteamClient({
|
|
904
906
|
const personas = await getPersonas([steamId])
|
905
907
|
const player_name = personas.find(p => p.id == steamId)?.player_name || ''
|
906
908
|
log('friendMessage', data)
|
907
|
-
const invite = [`
|
909
|
+
const invite = [`Invited you to play a game!`, `Đã mời bạn chơi một trò chơi!`].includes(data.message_no_bbcode || data.message)
|
908
910
|
|
909
911
|
callEvent(events.friendMessage, {
|
910
912
|
player_name,
|
@@ -924,6 +926,7 @@ function SteamClient({
|
|
924
926
|
});
|
925
927
|
|
926
928
|
steamClient.on('playingState', async function (playing_blocked, playing_app) {
|
929
|
+
playingBlocked = playing_blocked
|
927
930
|
if(playing_app === 0){
|
928
931
|
playing_app = null
|
929
932
|
}
|
@@ -971,6 +974,12 @@ function SteamClient({
|
|
971
974
|
steamClient.on('friendsList', async function () {
|
972
975
|
callEvent(events.friendsList, getFriendList())
|
973
976
|
});
|
977
|
+
|
978
|
+
steamClient.on('gifts', async function (gid, packageid, TimeCreated, TimeExpiration, TimeSent, TimeAcked, TimeRedeemed, RecipientAddress, SenderAddress, SenderName) {
|
979
|
+
const community = new SteamCommunity();
|
980
|
+
community.setCookies(await getCookiesWait())
|
981
|
+
community.redeemGift(gid)
|
982
|
+
});
|
974
983
|
}
|
975
984
|
|
976
985
|
function getFriendList() {
|
@@ -1423,6 +1432,9 @@ function SteamClient({
|
|
1423
1432
|
},
|
1424
1433
|
getFriendList,
|
1425
1434
|
logOff,
|
1435
|
+
isPlayingBlocked(){
|
1436
|
+
return playingBlocked
|
1437
|
+
}
|
1426
1438
|
}
|
1427
1439
|
}
|
1428
1440
|
|
package/index.js
CHANGED
@@ -1216,6 +1216,107 @@ class SteamUser {
|
|
1216
1216
|
}
|
1217
1217
|
}
|
1218
1218
|
|
1219
|
+
static async getAppDetail (appIds) {
|
1220
|
+
if(Array.isArray(appIds)){
|
1221
|
+
appIds = appIds.join(",")
|
1222
|
+
}
|
1223
|
+
let result = await request(`https://store.steampowered.com/api/appdetails?appids=${appIds}&hl=en`)
|
1224
|
+
return result?.data
|
1225
|
+
const resultExample = {
|
1226
|
+
"730": {
|
1227
|
+
"success": true, "data": {
|
1228
|
+
"type": "game",
|
1229
|
+
"name": "Counter-Strike: Global Offensive",
|
1230
|
+
"steam_appid": 730,
|
1231
|
+
"required_age": 0,
|
1232
|
+
"is_free": true,
|
1233
|
+
"controller_support": "full",
|
1234
|
+
"detailed_description": "Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gameplay that it pioneered when it was launched 19 years ago.<br \/>\r\n<br \/>\r\nCS: GO features new maps, characters, weapons, and game modes, and delivers updated versions of the classic CS content (de_dust2, etc.).<br \/>\r\n<br \/>\r\n"Counter-Strike took the gaming industry by surprise when the unlikely MOD became the most played online PC action game in the world almost immediately after its release in August 1999," said Doug Lombardi at Valve. "For the past 12 years, it has continued to be one of the most-played games in the world, headline competitive gaming tournaments and selling over 25 million units worldwide across the franchise. CS: GO promises to expand on CS' award-winning gameplay and deliver it to gamers on the PC as well as the next gen consoles and the Mac."",
|
1235
|
+
"about_the_game": "Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gameplay that it pioneered when it was launched 19 years ago.<br \/>\r\n<br \/>\r\nCS: GO features new maps, characters, weapons, and game modes, and delivers updated versions of the classic CS content (de_dust2, etc.).<br \/>\r\n<br \/>\r\n"Counter-Strike took the gaming industry by surprise when the unlikely MOD became the most played online PC action game in the world almost immediately after its release in August 1999," said Doug Lombardi at Valve. "For the past 12 years, it has continued to be one of the most-played games in the world, headline competitive gaming tournaments and selling over 25 million units worldwide across the franchise. CS: GO promises to expand on CS' award-winning gameplay and deliver it to gamers on the PC as well as the next gen consoles and the Mac."",
|
1236
|
+
"short_description": "Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gameplay that it pioneered when it was launched 19 years ago. CS: GO features new maps, characters, weapons, and game modes, and delivers updated versions of the classic CS content (de_dust2, etc.).",
|
1237
|
+
"supported_languages": "Czech, Danish, Dutch, English<strong>*<\/strong>, Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese - Portugal, Portuguese - Brazil, Romanian, Russian, Simplified Chinese, Spanish - Spain, Swedish, Thai, Traditional Chinese, Turkish, Bulgarian, Ukrainian, Greek, Spanish - Latin America, Vietnamese<br><strong>*<\/strong>languages with full audio support",
|
1238
|
+
"header_image": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/header.jpg?t=1683566799",
|
1239
|
+
"capsule_image": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/capsule_231x87.jpg?t=1683566799",
|
1240
|
+
"capsule_imagev5": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/capsule_184x69.jpg?t=1683566799",
|
1241
|
+
"website": "http:\/\/blog.counter-strike.net\/",
|
1242
|
+
"pc_requirements": {"minimum": "<strong>Minimum:<\/strong><br><ul class=\"bb_ul\"><li><strong>OS:<\/strong> Windows® 7\/Vista\/XP<br><\/li><li><strong>Processor:<\/strong> Intel® Core™ 2 Duo E6600 or AMD Phenom™ X3 8750 processor or better<br><\/li><li><strong>Memory:<\/strong> 2 GB RAM<br><\/li><li><strong>Graphics:<\/strong> Video card must be 256 MB or more and should be a DirectX 9-compatible with support for Pixel Shader 3.0<br><\/li><li><strong>DirectX:<\/strong> Version 9.0c<br><\/li><li><strong>Storage:<\/strong> 15 GB available space<\/li><\/ul>"},
|
1243
|
+
"mac_requirements": {"minimum": "<strong>Minimum:<\/strong><br><ul class=\"bb_ul\"><li><strong>OS:<\/strong> MacOS X 10.11 (El Capitan) or later<br><\/li><li><strong>Processor:<\/strong> Intel Core Duo Processor (2GHz or better)<br><\/li><li><strong>Memory:<\/strong> 2 GB RAM<br><\/li><li><strong>Graphics:<\/strong> ATI Radeon HD 2400 or better \/ NVIDIA 8600M or better<br><\/li><li><strong>Storage:<\/strong> 15 GB available space<\/li><\/ul>"},
|
1244
|
+
"linux_requirements": {"minimum": "<strong>Minimum:<\/strong><br><ul class=\"bb_ul\"><li><strong>OS:<\/strong> Ubuntu 12.04<br><\/li><li><strong>Processor:<\/strong> 64-bit Dual core from Intel or AMD at 2.8 GHz<br><\/li><li><strong>Memory:<\/strong> 4 GB RAM<br><\/li><li><strong>Graphics:<\/strong> NVIDIA GeForce 8600\/9600GT, ATI\/AMD Radeon HD2600\/3600 (Graphic Drivers: NVIDIA 310, AMD 12.11), OpenGL 2.1<br><\/li><li><strong>Storage:<\/strong> 15 GB available space<br><\/li><li><strong>Sound Card:<\/strong> OpenAL Compatible Sound Card<\/li><\/ul>"},
|
1245
|
+
"developers": ["Valve", "Hidden Path Entertainment"],
|
1246
|
+
"publishers": ["Valve"],
|
1247
|
+
"packages": [329385, 298963, 54029],
|
1248
|
+
"package_groups": [{
|
1249
|
+
"name": "default",
|
1250
|
+
"title": "Buy Counter-Strike: Global Offensive",
|
1251
|
+
"description": "",
|
1252
|
+
"selection_text": "Select a purchase option",
|
1253
|
+
"save_text": "",
|
1254
|
+
"display_type": 0,
|
1255
|
+
"is_recurring_subscription": "false",
|
1256
|
+
"subs": [{
|
1257
|
+
"packageid": 298963,
|
1258
|
+
"percent_savings_text": " ",
|
1259
|
+
"percent_savings": 0,
|
1260
|
+
"option_text": "Counter-Strike: Global Offensive - Free",
|
1261
|
+
"option_description": "",
|
1262
|
+
"can_get_free_license": "0",
|
1263
|
+
"is_free_license": true,
|
1264
|
+
"price_in_cents_with_discount": 0
|
1265
|
+
}, {
|
1266
|
+
"packageid": 54029,
|
1267
|
+
"percent_savings_text": " ",
|
1268
|
+
"percent_savings": 0,
|
1269
|
+
"option_text": "Prime Status Upgrade - 375.000₫",
|
1270
|
+
"option_description": "",
|
1271
|
+
"can_get_free_license": "0",
|
1272
|
+
"is_free_license": false,
|
1273
|
+
"price_in_cents_with_discount": 37500000
|
1274
|
+
}]
|
1275
|
+
}],
|
1276
|
+
"platforms": {"windows": true, "mac": true, "linux": true},
|
1277
|
+
"metacritic": {
|
1278
|
+
"score": 83,
|
1279
|
+
"url": "https:\/\/www.metacritic.com\/game\/pc\/counter-strike-global-offensive?ftag=MCD-06-10aaa1f"
|
1280
|
+
},
|
1281
|
+
"categories": [{"id": 1, "description": "Multi-player"}],
|
1282
|
+
"genres": [{"id": "1", "description": "Action"}],
|
1283
|
+
"screenshots": [{
|
1284
|
+
"id": 0,
|
1285
|
+
"path_thumbnail": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/ss_118cb022b9a43f70d2e5a2df7427f29088b6b191.600x338.jpg?t=1683566799",
|
1286
|
+
"path_full": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/ss_118cb022b9a43f70d2e5a2df7427f29088b6b191.1920x1080.jpg?t=1683566799"
|
1287
|
+
}],
|
1288
|
+
"movies": [{
|
1289
|
+
"id": 81958,
|
1290
|
+
"name": "CS:GO Trailer Long",
|
1291
|
+
"thumbnail": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/81958\/movie.293x165.jpg?t=1554409259",
|
1292
|
+
"webm": {
|
1293
|
+
"480": "http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/81958\/movie480.webm?t=1554409259",
|
1294
|
+
"max": "http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/81958\/movie_max.webm?t=1554409259"
|
1295
|
+
},
|
1296
|
+
"mp4": {
|
1297
|
+
"480": "http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/81958\/movie480.mp4?t=1554409259",
|
1298
|
+
"max": "http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/81958\/movie_max.mp4?t=1554409259"
|
1299
|
+
},
|
1300
|
+
"highlight": true
|
1301
|
+
}],
|
1302
|
+
"recommendations": {"total": 3833937},
|
1303
|
+
"achievements": {
|
1304
|
+
"total": 167,
|
1305
|
+
"highlighted": [{
|
1306
|
+
"name": "Someone Set Up Us The Bomb",
|
1307
|
+
"path": "https:\/\/cdn.akamai.steamstatic.com\/steamcommunity\/public\/images\/apps\/730\/9f60ea3c56b4ab248ab598bbd62568b953116301.jpg"
|
1308
|
+
}]
|
1309
|
+
},
|
1310
|
+
"release_date": {"coming_soon": false, "date": "22 Aug, 2012"},
|
1311
|
+
"support_info": {"url": "", "email": ""},
|
1312
|
+
"background": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/page_bg_generated_v6b.jpg?t=1683566799",
|
1313
|
+
"background_raw": "https:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/730\/page_bg_generated.jpg?t=1683566799",
|
1314
|
+
"content_descriptors": {"ids": [2, 5], "notes": "Includes intense violence and blood."}
|
1315
|
+
}
|
1316
|
+
}
|
1317
|
+
}
|
1318
|
+
}
|
1319
|
+
|
1219
1320
|
static async GetCurrentVersion (appID) {
|
1220
1321
|
for (let i = 0; i < 10; i++) {
|
1221
1322
|
try {
|
@@ -5408,6 +5509,9 @@ class SteamUser {
|
|
5408
5509
|
case "Got an item drop": {
|
5409
5510
|
break
|
5410
5511
|
}
|
5512
|
+
case "Random item drop": {
|
5513
|
+
break
|
5514
|
+
}
|
5411
5515
|
case "Purchased a gift": {
|
5412
5516
|
break
|
5413
5517
|
}
|