steamutils 1.4.21 → 1.4.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/codeStyles/Project.xml +1 -0
- package/.idea/deployment.xml +14 -0
- package/.idea/jsLibraryMappings.xml +6 -0
- package/.prettierrc.json +3 -3
- package/SteamClient.js +2658 -2658
- package/bufferHelpers.js +115 -115
- package/cheerio.js +103 -103
- package/const.js +336 -336
- package/create_remote_file.js +66 -66
- package/index.js +284 -3
- package/package.json +1 -1
- package/protos/csgo/base_gcmessages.proto +553 -553
- package/protos/csgo/base_gcmessages_csgo.proto +547 -547
- package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
- package/protos/csgo/clientmessages.proto +48 -48
- package/protos/csgo/connectionless_netmessages.proto +17 -17
- package/protos/csgo/cs_gameevents.proto +35 -35
- package/protos/csgo/cs_usercmd.proto +34 -34
- package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
- package/protos/csgo/cstrike15_usermessages.proto +592 -592
- package/protos/csgo/demo.proto +165 -165
- package/protos/csgo/econ_gcmessages.proto +219 -219
- package/protos/csgo/engine_gcmessages.proto +14 -14
- package/protos/csgo/enums_clientserver.proto +1529 -1529
- package/protos/csgo/fatdemo.proto +125 -125
- package/protos/csgo/gameevents.proto +120 -120
- package/protos/csgo/gcsdk_gcmessages.proto +323 -323
- package/protos/csgo/gcsystemmsgs.proto +243 -243
- package/protos/csgo/netmessages.proto +618 -618
- package/protos/csgo/network_connection.proto +126 -126
- package/protos/csgo/networkbasetypes.proto +246 -246
- package/protos/csgo/networksystem_protomessages.proto +17 -17
- package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
- package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
- package/protos/csgo/steammessages.proto +620 -620
- package/protos/csgo/steammessages_base.proto +301 -301
- package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
- package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
- package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
- package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
- package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
- package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
- package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
- package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
- package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/csgo/te.proto +259 -259
- package/protos/csgo/uifontfile_format.proto +13 -13
- package/protos/csgo/usercmd.proto +39 -39
- package/protos/csgo/usermessages.proto +752 -752
- package/protos/csgo/valveextensions.proto +17 -17
- package/protos/google/protobuf/descriptor.proto +281 -281
- package/protos/steam/clientmetrics.proto +45 -45
- package/protos/steam/content_manifest.proto +62 -62
- package/protos/steam/contenthubs.proto +41 -41
- package/protos/steam/encrypted_app_ticket.proto +10 -10
- package/protos/steam/enums.proto +501 -501
- package/protos/steam/enums_clientserver.proto +1508 -1508
- package/protos/steam/enums_productinfo.proto +14 -14
- package/protos/steam/htmlmessages.proto +1039 -1039
- package/protos/steam/offline_ticket.proto +8 -8
- package/protos/steam/steamdatagram_messages_auth.proto +65 -65
- package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
- package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
- package/protos/steam/steammessages_appoverview.proto +204 -204
- package/protos/steam/steammessages_auth.steamclient.proto +375 -375
- package/protos/steam/steammessages_base.proto +335 -335
- package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
- package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
- package/protos/steam/steammessages_client_objects.proto +649 -649
- package/protos/steam/steammessages_clientlanp2p.proto +43 -43
- package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
- package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
- package/protos/steam/steammessages_clientserver.proto +392 -392
- package/protos/steam/steammessages_clientserver_2.proto +771 -771
- package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
- package/protos/steam/steammessages_clientserver_friends.proto +260 -260
- package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
- package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
- package/protos/steam/steammessages_clientserver_login.proto +167 -167
- package/protos/steam/steammessages_clientserver_mms.proto +233 -233
- package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
- package/protos/steam/steammessages_clientserver_uds.proto +125 -125
- package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
- package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
- package/protos/steam/steammessages_clientsettings.proto +208 -208
- package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
- package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
- package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
- package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
- package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
- package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
- package/protos/steam/steammessages_econ.steamclient.proto +137 -137
- package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
- package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
- package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
- package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
- package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
- package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
- package/protos/steam/steammessages_hiddevices.proto +157 -157
- package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
- package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
- package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
- package/protos/steam/steammessages_market.steamclient.proto +22 -22
- package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
- package/protos/steam/steammessages_offline.steamclient.proto +33 -33
- package/protos/steam/steammessages_parental.steamclient.proto +262 -262
- package/protos/steam/steammessages_parties.steamclient.proto +75 -75
- package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
- package/protos/steam/steammessages_player.steamclient.proto +915 -915
- package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
- package/protos/steam/steammessages_qms.steamclient.proto +111 -111
- package/protos/steam/steammessages_remoteclient.proto +100 -100
- package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
- package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
- package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
- package/protos/steam/steammessages_remoteplay.proto +975 -975
- package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
- package/protos/steam/steammessages_shader.steamclient.proto +89 -89
- package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
- package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
- package/protos/steam/steammessages_siteserverui.proto +130 -130
- package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
- package/protos/steam/steammessages_store.steamclient.proto +404 -404
- package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
- package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
- package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
- package/protos/steam/steammessages_unified_base.steamclient.proto +45 -45
- package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
- package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
- package/protos/steam/steammessages_vac.steamclient.proto +37 -37
- package/protos/steam/steammessages_video.steamclient.proto +68 -68
- package/protos/steam/steammessages_virtualcontroller.proto +138 -138
- package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
- package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
- package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/steam/webuimessages_achievements.proto +29 -29
- package/protos/steam/webuimessages_base.proto +24 -24
- package/protos/steam/webuimessages_gamenotes.proto +21 -21
- package/protos/steam/webuimessages_gamescope.proto +57 -57
- package/protos/steam/webuimessages_steamengine.proto +41 -41
- package/protos/steam/webuimessages_steamos.proto +114 -114
- package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
- package/protos/steam/webuimessages_systemmanager.proto +17 -17
- package/protos/steam/webuimessages_transport.proto +22 -22
- package/protos/steam/webuimessages_transportvalidation.proto +111 -111
- package/protos/webui/common.proto +4024 -4024
- package/protos/webui/common_base.proto +27 -27
- package/protos/webui/service_accountcart.proto +153 -153
- package/protos/webui/service_accountlinking.proto +27 -27
- package/protos/webui/service_accountprivacy.proto +42 -42
- package/protos/webui/service_accountprivateapps.proto +34 -34
- package/protos/webui/service_auction.proto +97 -97
- package/protos/webui/service_authentication.proto +222 -222
- package/protos/webui/service_authenticationsupport.proto +74 -74
- package/protos/webui/service_broadcast.proto +562 -562
- package/protos/webui/service_chat.proto +11 -11
- package/protos/webui/service_chatroom.proto +810 -810
- package/protos/webui/service_chatusability.proto +107 -107
- package/protos/webui/service_checkout.proto +84 -84
- package/protos/webui/service_clan.proto +41 -41
- package/protos/webui/service_clanchatrooms.proto +25 -25
- package/protos/webui/service_clanfaqs.proto +202 -202
- package/protos/webui/service_clientcomm.proto +151 -151
- package/protos/webui/service_clientmetrics.proto +22 -22
- package/protos/webui/service_cloud.proto +222 -222
- package/protos/webui/service_cloudconfigstore.proto +51 -51
- package/protos/webui/service_cloudgaming.proto +30 -30
- package/protos/webui/service_community.proto +365 -365
- package/protos/webui/service_dailydeal.proto +89 -89
- package/protos/webui/service_econ.proto +134 -134
- package/protos/webui/service_embedded.proto +24 -24
- package/protos/webui/service_experimentservice.proto +6 -6
- package/protos/webui/service_familygroups.proto +355 -355
- package/protos/webui/service_fovasvideo.proto +15 -15
- package/protos/webui/service_friendmessages.proto +133 -133
- package/protos/webui/service_friendslist.proto +70 -70
- package/protos/webui/service_gamenotes.proto +15 -15
- package/protos/webui/service_gamerecording.proto +265 -265
- package/protos/webui/service_gamerecordingclip.proto +85 -85
- package/protos/webui/service_gamerecordingdebug.proto +52 -52
- package/protos/webui/service_helprequestlogs.proto +16 -16
- package/protos/webui/service_loyaltyrewards.proto +252 -252
- package/protos/webui/service_marketingmessages.proto +215 -215
- package/protos/webui/service_mobileapp.proto +18 -18
- package/protos/webui/service_mobileauth.proto +24 -24
- package/protos/webui/service_mobiledevice.proto +26 -26
- package/protos/webui/service_mobileperaccount.proto +31 -31
- package/protos/webui/service_news.proto +110 -110
- package/protos/webui/service_parental.proto +258 -258
- package/protos/webui/service_partnermembershipinvite.proto +34 -34
- package/protos/webui/service_partnerstorebrowse.proto +28 -28
- package/protos/webui/service_phone.proto +51 -51
- package/protos/webui/service_physicalgoods.proto +15 -15
- package/protos/webui/service_player.proto +918 -918
- package/protos/webui/service_promotioneventinvites.proto +109 -109
- package/protos/webui/service_promotionplanning.proto +186 -186
- package/protos/webui/service_promotionstats.proto +23 -23
- package/protos/webui/service_publishedfile.proto +714 -714
- package/protos/webui/service_publishing.proto +200 -200
- package/protos/webui/service_quest.proto +127 -127
- package/protos/webui/service_salefeature.proto +373 -373
- package/protos/webui/service_saleitemrewards.proto +54 -54
- package/protos/webui/service_shoppingcart.proto +152 -152
- package/protos/webui/service_steamawards.proto +76 -76
- package/protos/webui/service_steamcharts.proto +75 -75
- package/protos/webui/service_steamengine.proto +36 -36
- package/protos/webui/service_steamlearn.proto +876 -876
- package/protos/webui/service_steamnotification.proto +73 -73
- package/protos/webui/service_steamtv.proto +495 -495
- package/protos/webui/service_steamvrvoicechat.proto +67 -67
- package/protos/webui/service_steamvrwebrtc.proto +48 -48
- package/protos/webui/service_storagedevicemanager.proto +104 -104
- package/protos/webui/service_store.proto +359 -359
- package/protos/webui/service_storeappsimilarity.proto +76 -76
- package/protos/webui/service_storebrowse.proto +103 -103
- package/protos/webui/service_storemarketing.proto +44 -44
- package/protos/webui/service_storequery.proto +103 -103
- package/protos/webui/service_storesales.proto +87 -87
- package/protos/webui/service_storetopsellers.proto +44 -44
- package/protos/webui/service_systemmanager.proto +11 -11
- package/protos/webui/service_test_transporterror.proto +6 -6
- package/protos/webui/service_transportauth.proto +17 -17
- package/protos/webui/service_transportvalidation.proto +69 -69
- package/protos/webui/service_twofactor.proto +170 -170
- package/protos/webui/service_useraccount.proto +142 -142
- package/protos/webui/service_usergameactivity.proto +34 -34
- package/protos/webui/service_usergamenotes.proto +70 -70
- package/protos/webui/service_usernews.proto +68 -68
- package/protos/webui/service_userreviews.proto +97 -97
- package/protos/webui/service_video.proto +50 -50
- package/protos/webui/service_videoclip.proto +62 -62
- package/protos/webui/service_voicechat.proto +139 -139
- package/protos/webui/service_webrtc.proto +52 -52
- package/remote.js +6784 -6259
- package/utils.js +168 -168
- package/.idea/git_toolbox_blame.xml +0 -6
- package/.idea/git_toolbox_prj.xml +0 -15
package/create_remote_file.js
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import SteamUser from "./index.js";
|
|
2
|
-
import _ from "lodash";
|
|
3
|
-
|
|
4
|
-
(async function () {
|
|
5
|
-
const xx = SteamUser;
|
|
6
|
-
|
|
7
|
-
let json = "";
|
|
8
|
-
|
|
9
|
-
function doWrite(user, is_static) {
|
|
10
|
-
for (const methodName of Object.getOwnPropertyNames(user)) {
|
|
11
|
-
if (methodName === "constructor" || methodName === "length" || methodName === "name" || methodName === "prototype" || methodName === "RequestXML_TooManyRequests" || methodName === "MAX_RETRY") {
|
|
12
|
-
continue;
|
|
13
|
-
}
|
|
14
|
-
const fnString = user[methodName].toString().trim();
|
|
15
|
-
const async = "async";
|
|
16
|
-
// const async = fnString.startsWith("async") ? "async" : "";
|
|
17
|
-
let params = fnString.split("(")[1].split(")")[0];
|
|
18
|
-
const paramsList = params.split(",");
|
|
19
|
-
for (let i = 0; i < paramsList.length; i++) {
|
|
20
|
-
if (paramsList[i].includes("=")) {
|
|
21
|
-
paramsList[i] = paramsList[i].split("=")[0].trim();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
params = paramsList.join(", ").trim();
|
|
25
|
-
if (params.startsWith("{") && !params.endsWith("}")) {
|
|
26
|
-
params = `${params}}`;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
json += `${`
|
|
30
|
-
${is_static ? "static " : ""} ${async} ${methodName}(${params}){
|
|
31
|
-
const __params = [${params}];
|
|
32
|
-
if(__params.length === 1 && __params[0] === undefined){
|
|
33
|
-
__params.length = 0
|
|
34
|
-
}
|
|
35
|
-
let __cookies = this._cookies;
|
|
36
|
-
if (__cookies) {
|
|
37
|
-
if (!Array.isArray(__cookies)) {
|
|
38
|
-
__cookies = [__cookies];
|
|
39
|
-
}
|
|
40
|
-
__cookies = __cookies.map(function (cookie) {
|
|
41
|
-
return cookie.toString();
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
const result = (
|
|
47
|
-
await axios.post(getAppURL(), {
|
|
48
|
-
method: "${methodName}",
|
|
49
|
-
params: __params,
|
|
50
|
-
cookies: __cookies,
|
|
51
|
-
is_static: ${!!is_static}
|
|
52
|
-
})
|
|
53
|
-
).data?.result;
|
|
54
|
-
return result
|
|
55
|
-
} catch (e) {
|
|
56
|
-
/* empty */
|
|
57
|
-
}
|
|
58
|
-
}`.trim()}\n`;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
doWrite(SteamUser.prototype, false);
|
|
63
|
-
doWrite(SteamUser, true);
|
|
64
|
-
|
|
65
|
-
console.log("");
|
|
66
|
-
})();
|
|
1
|
+
import SteamUser from "./index.js";
|
|
2
|
+
import _ from "lodash";
|
|
3
|
+
|
|
4
|
+
(async function () {
|
|
5
|
+
const xx = SteamUser;
|
|
6
|
+
|
|
7
|
+
let json = "";
|
|
8
|
+
|
|
9
|
+
function doWrite(user, is_static) {
|
|
10
|
+
for (const methodName of Object.getOwnPropertyNames(user)) {
|
|
11
|
+
if (methodName === "constructor" || methodName === "length" || methodName === "name" || methodName === "prototype" || methodName === "RequestXML_TooManyRequests" || methodName === "MAX_RETRY") {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const fnString = user[methodName].toString().trim();
|
|
15
|
+
const async = "async";
|
|
16
|
+
// const async = fnString.startsWith("async") ? "async" : "";
|
|
17
|
+
let params = fnString.split("(")[1].split(")")[0];
|
|
18
|
+
const paramsList = params.split(",");
|
|
19
|
+
for (let i = 0; i < paramsList.length; i++) {
|
|
20
|
+
if (paramsList[i].includes("=")) {
|
|
21
|
+
paramsList[i] = paramsList[i].split("=")[0].trim();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
params = paramsList.join(", ").trim();
|
|
25
|
+
if (params.startsWith("{") && !params.endsWith("}")) {
|
|
26
|
+
params = `${params}}`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
json += `${`
|
|
30
|
+
${is_static ? "static " : ""} ${async} ${methodName}(${params}){
|
|
31
|
+
const __params = [${params}];
|
|
32
|
+
if(__params.length === 1 && __params[0] === undefined){
|
|
33
|
+
__params.length = 0
|
|
34
|
+
}
|
|
35
|
+
let __cookies = this._cookies;
|
|
36
|
+
if (__cookies) {
|
|
37
|
+
if (!Array.isArray(__cookies)) {
|
|
38
|
+
__cookies = [__cookies];
|
|
39
|
+
}
|
|
40
|
+
__cookies = __cookies.map(function (cookie) {
|
|
41
|
+
return cookie.toString();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
const result = (
|
|
47
|
+
await axios.post(getAppURL(), {
|
|
48
|
+
method: "${methodName}",
|
|
49
|
+
params: __params,
|
|
50
|
+
cookies: __cookies,
|
|
51
|
+
is_static: ${!!is_static}
|
|
52
|
+
})
|
|
53
|
+
).data?.result;
|
|
54
|
+
return result
|
|
55
|
+
} catch (e) {
|
|
56
|
+
/* empty */
|
|
57
|
+
}
|
|
58
|
+
}`.trim()}\n`;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
doWrite(SteamUser.prototype, false);
|
|
63
|
+
doWrite(SteamUser, true);
|
|
64
|
+
|
|
65
|
+
console.log("");
|
|
66
|
+
})();
|
package/index.js
CHANGED
|
@@ -2596,6 +2596,48 @@ export default class SteamUser {
|
|
|
2596
2596
|
return result?.data;
|
|
2597
2597
|
}
|
|
2598
2598
|
|
|
2599
|
+
async removeFriends(steamIds) {
|
|
2600
|
+
if (!steamIds) {
|
|
2601
|
+
return;
|
|
2602
|
+
}
|
|
2603
|
+
if (!Array.isArray(steamIds)) {
|
|
2604
|
+
steamIds = [steamIds];
|
|
2605
|
+
}
|
|
2606
|
+
|
|
2607
|
+
const form = new FormData();
|
|
2608
|
+
for (const steamId of steamIds) {
|
|
2609
|
+
form.append("steamids[]", steamId);
|
|
2610
|
+
}
|
|
2611
|
+
form.append("action", "remove");
|
|
2612
|
+
form.append("ajax", "1");
|
|
2613
|
+
form.append("steamid", this.getSteamIdUser());
|
|
2614
|
+
|
|
2615
|
+
const result = await this._httpRequestAjax({
|
|
2616
|
+
url: `profiles/${this.getSteamIdUser()}/friends/action`,
|
|
2617
|
+
data: form,
|
|
2618
|
+
headers: {
|
|
2619
|
+
"content-type": "multipart/form-data",
|
|
2620
|
+
},
|
|
2621
|
+
method: "POST",
|
|
2622
|
+
});
|
|
2623
|
+
if (result instanceof ResponseError) {
|
|
2624
|
+
return result;
|
|
2625
|
+
}
|
|
2626
|
+
return result?.data;
|
|
2627
|
+
const resultExample = {
|
|
2628
|
+
success: 1,
|
|
2629
|
+
rgCounts: {
|
|
2630
|
+
cFriendsPending: 89,
|
|
2631
|
+
cFriendsBlocked: 0,
|
|
2632
|
+
cFollowing: 0,
|
|
2633
|
+
cGroupsPending: 0,
|
|
2634
|
+
cFriends: 5,
|
|
2635
|
+
cGroups: 0,
|
|
2636
|
+
success: 1,
|
|
2637
|
+
},
|
|
2638
|
+
};
|
|
2639
|
+
}
|
|
2640
|
+
|
|
2599
2641
|
async acceptFriendRequest(steamId) {
|
|
2600
2642
|
const result = await this._httpMyRequest({
|
|
2601
2643
|
url: `friends/action`,
|
|
@@ -4870,11 +4912,12 @@ export default class SteamUser {
|
|
|
4870
4912
|
|
|
4871
4913
|
async removePhoneNumber() {
|
|
4872
4914
|
const result = await this._httpRequest(`https://help.steampowered.com/en/wizard/HelpRemovePhoneNumber?redir=store/account`);
|
|
4873
|
-
if (result instanceof ResponseError) {
|
|
4874
|
-
return
|
|
4915
|
+
if (!result?.data || typeof result.data !== "string" || result instanceof ResponseError) {
|
|
4916
|
+
return;
|
|
4875
4917
|
}
|
|
4918
|
+
|
|
4876
4919
|
let href = null;
|
|
4877
|
-
const $ = result.
|
|
4920
|
+
const $ = cheerio.load(result.data);
|
|
4878
4921
|
$("a").each(function (index, el) {
|
|
4879
4922
|
if (!href) {
|
|
4880
4923
|
const link = $(el).attr("href");
|
|
@@ -7404,6 +7447,244 @@ export default class SteamUser {
|
|
|
7404
7447
|
|
|
7405
7448
|
return result?.data;
|
|
7406
7449
|
}
|
|
7450
|
+
|
|
7451
|
+
async changeEmail(newEmail, getNewEmailOptCodes, accessToken, identitySecret) {
|
|
7452
|
+
const account = SteamUser.steamID642Miniprofile(this.getSteamIdUser());
|
|
7453
|
+
|
|
7454
|
+
const getHelpLink = async () => {
|
|
7455
|
+
const response = await this._httpRequest("https://help.steampowered.com/en/wizard/HelpChangeEmail?redir=store/account/");
|
|
7456
|
+
const html = response.data;
|
|
7457
|
+
const $ = cheerio.load(html);
|
|
7458
|
+
let buttons = $("a.help_wizard_button");
|
|
7459
|
+
const helpButton = [...buttons].find((el) => $(el).text().trim() === "Send a confirmation to my Steam Mobile app");
|
|
7460
|
+
if (!helpButton) return;
|
|
7461
|
+
return $(helpButton).attr("href");
|
|
7462
|
+
};
|
|
7463
|
+
const sendAppConfirmation = async (helpLink) => {
|
|
7464
|
+
const response = await this._httpRequest(helpLink);
|
|
7465
|
+
const html = response.data;
|
|
7466
|
+
if (!html.includes("For security, verify that the code in the box below matches the code we display on the confirmations page.")) {
|
|
7467
|
+
return;
|
|
7468
|
+
}
|
|
7469
|
+
const $ = cheerio.load(html);
|
|
7470
|
+
const forgot_login_code_form = $("#forgot_login_code_form");
|
|
7471
|
+
const s = forgot_login_code_form.find('input[name="s"]').val();
|
|
7472
|
+
const reset = forgot_login_code_form.find('input[name="reset"]').val();
|
|
7473
|
+
const lost = forgot_login_code_form.find('input[name="lost"]').val();
|
|
7474
|
+
const method = forgot_login_code_form.find('input[name="method"]').val();
|
|
7475
|
+
const issueid = forgot_login_code_form.find('input[name="issueid"]').val();
|
|
7476
|
+
|
|
7477
|
+
const cleanHtml = html.replaceAll(/\s+/gi, " ");
|
|
7478
|
+
//do not remove this line
|
|
7479
|
+
const g_sessionID = cleanHtml.substringAfter("g_sessionID =").trim().substringBefore(";").replaceAll('"', "").trim();
|
|
7480
|
+
const g_rgDefaultWizardPageParamsStr = cleanHtml.substringAfter("g_rgDefaultWizardPageParams =").trim().substringBefore(";").trim();
|
|
7481
|
+
const g_rgDefaultWizardPageParams = eval(`() => {return ${g_rgDefaultWizardPageParamsStr};}`)();
|
|
7482
|
+
delete g_rgDefaultWizardPageParams.sessionid;
|
|
7483
|
+
|
|
7484
|
+
return {
|
|
7485
|
+
issue: {
|
|
7486
|
+
s,
|
|
7487
|
+
reset,
|
|
7488
|
+
lost,
|
|
7489
|
+
method,
|
|
7490
|
+
issueid,
|
|
7491
|
+
},
|
|
7492
|
+
g_rgDefaultWizardPageParams,
|
|
7493
|
+
};
|
|
7494
|
+
};
|
|
7495
|
+
const sendAccountRecoveryCode = async (issue, g_rgDefaultWizardPageParams, helpLink) => {
|
|
7496
|
+
const result = await this._httpRequest({
|
|
7497
|
+
url: "https://help.steampowered.com/en/wizard/AjaxSendAccountRecoveryCode",
|
|
7498
|
+
method: "POST",
|
|
7499
|
+
data: {
|
|
7500
|
+
...g_rgDefaultWizardPageParams,
|
|
7501
|
+
s: issue.s,
|
|
7502
|
+
method: issue.method,
|
|
7503
|
+
link: "",
|
|
7504
|
+
},
|
|
7505
|
+
headers: {
|
|
7506
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
7507
|
+
"x-requested-with": "XMLHttpRequest",
|
|
7508
|
+
Referer: helpLink,
|
|
7509
|
+
},
|
|
7510
|
+
});
|
|
7511
|
+
|
|
7512
|
+
return result?.data?.success === true;
|
|
7513
|
+
};
|
|
7514
|
+
const checkAccountRecoveryConfirmation = async (issue, g_rgDefaultWizardPageParams, helpLink) => {
|
|
7515
|
+
const result = await this._httpRequest({
|
|
7516
|
+
url: "https://help.steampowered.com/en/wizard/AjaxPollAccountRecoveryConfirmation",
|
|
7517
|
+
method: "POST",
|
|
7518
|
+
data: {
|
|
7519
|
+
...g_rgDefaultWizardPageParams,
|
|
7520
|
+
s: issue.s,
|
|
7521
|
+
reset: issue.reset,
|
|
7522
|
+
lost: issue.lost,
|
|
7523
|
+
method: issue.method,
|
|
7524
|
+
issueid: issue.issueid,
|
|
7525
|
+
},
|
|
7526
|
+
headers: {
|
|
7527
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
7528
|
+
"x-requested-with": "XMLHttpRequest",
|
|
7529
|
+
Referer: helpLink,
|
|
7530
|
+
},
|
|
7531
|
+
});
|
|
7532
|
+
|
|
7533
|
+
return result?.data || { continue: true, success: false };
|
|
7534
|
+
};
|
|
7535
|
+
const submitNewEmail = async (issue, g_rgDefaultWizardPageParams, newEmail) => {
|
|
7536
|
+
const result = await this._httpRequest({
|
|
7537
|
+
url: "https://help.steampowered.com/en/wizard/AjaxAccountRecoveryChangeEmail/",
|
|
7538
|
+
method: "POST",
|
|
7539
|
+
data: {
|
|
7540
|
+
...g_rgDefaultWizardPageParams,
|
|
7541
|
+
s: issue.s,
|
|
7542
|
+
account: account,
|
|
7543
|
+
email: newEmail,
|
|
7544
|
+
},
|
|
7545
|
+
headers: {
|
|
7546
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
7547
|
+
"x-requested-with": "XMLHttpRequest",
|
|
7548
|
+
Referer: `https://help.steampowered.com/en/wizard/HelpWithLoginInfoReset/?s=${issue.s}&account=${account}&reset=${issue.reset}&issueid=${issue.issueid}`,
|
|
7549
|
+
},
|
|
7550
|
+
});
|
|
7551
|
+
|
|
7552
|
+
return result?.data || { hash: "", errorMsg: "", show_confirmation: true };
|
|
7553
|
+
};
|
|
7554
|
+
const confirmNewEmail = async (issue, g_rgDefaultWizardPageParams, newEmail, code) => {
|
|
7555
|
+
const result = await this._httpRequest({
|
|
7556
|
+
url: "https://help.steampowered.com/en/wizard/AjaxAccountRecoveryConfirmChangeEmail/",
|
|
7557
|
+
method: "POST",
|
|
7558
|
+
data: {
|
|
7559
|
+
...g_rgDefaultWizardPageParams,
|
|
7560
|
+
s: issue.s,
|
|
7561
|
+
account: account,
|
|
7562
|
+
email: newEmail,
|
|
7563
|
+
email_change_code: code,
|
|
7564
|
+
},
|
|
7565
|
+
headers: {
|
|
7566
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
7567
|
+
"x-requested-with": "XMLHttpRequest",
|
|
7568
|
+
Referer: `https://help.steampowered.com/en/wizard/HelpWithLoginInfoReset/?s=${issue.s}&account=${account}&reset=${issue.reset}&issueid=${issue.issueid}`,
|
|
7569
|
+
},
|
|
7570
|
+
});
|
|
7571
|
+
|
|
7572
|
+
return result?.data || { hash: "", errorMsg: "", show_confirmation: true };
|
|
7573
|
+
};
|
|
7574
|
+
const onError = (msg) => ({ error: msg });
|
|
7575
|
+
|
|
7576
|
+
const helpLink = await getHelpLink();
|
|
7577
|
+
if (!helpLink) return onError("Can't get help link");
|
|
7578
|
+
const issueData = await sendAppConfirmation(helpLink);
|
|
7579
|
+
if (!issueData) return onError("Can't send app confirmation");
|
|
7580
|
+
const { issue, g_rgDefaultWizardPageParams } = issueData;
|
|
7581
|
+
|
|
7582
|
+
await this._httpRequest(`https://help.steampowered.com/en/wizard/HelpWithLoginInfoEnterCode?s=${issue.s}&account=${account}&reset=${issue.reset}&lost=${issue.lost}&issueid=${issue.issueid}&wizard_ajax=1&gamepad=0`);
|
|
7583
|
+
|
|
7584
|
+
const sendResult = await sendAccountRecoveryCode(issue, g_rgDefaultWizardPageParams, helpLink);
|
|
7585
|
+
if (!sendResult) return onError("Can't send app recovery code");
|
|
7586
|
+
|
|
7587
|
+
await sleep(1000);
|
|
7588
|
+
let confirmations = await this.getConfirmations(accessToken, identitySecret);
|
|
7589
|
+
if (!confirmations?.confirmations) {
|
|
7590
|
+
await sleep(2000);
|
|
7591
|
+
confirmations = await this.getConfirmations(accessToken, identitySecret);
|
|
7592
|
+
}
|
|
7593
|
+
if (!confirmations?.confirmations) {
|
|
7594
|
+
return onError("Can't get app recovery code");
|
|
7595
|
+
}
|
|
7596
|
+
for (const confirmation of confirmations?.confirmations) {
|
|
7597
|
+
await this.acceptConfirmationForObject(accessToken, identitySecret, confirmation.creator);
|
|
7598
|
+
}
|
|
7599
|
+
|
|
7600
|
+
let checkingOk = null;
|
|
7601
|
+
for (let i = 0; i < 10; i++) {
|
|
7602
|
+
checkingOk = await checkAccountRecoveryConfirmation(issue, g_rgDefaultWizardPageParams, helpLink);
|
|
7603
|
+
if (checkingOk.continue) {
|
|
7604
|
+
await sleep(5000);
|
|
7605
|
+
} else if (checkingOk.success) {
|
|
7606
|
+
break;
|
|
7607
|
+
} else if (checkingOk.error) {
|
|
7608
|
+
break;
|
|
7609
|
+
} else {
|
|
7610
|
+
break;
|
|
7611
|
+
}
|
|
7612
|
+
}
|
|
7613
|
+
if (!checkingOk.success) {
|
|
7614
|
+
return onError("Can't confirm app recovery code");
|
|
7615
|
+
}
|
|
7616
|
+
|
|
7617
|
+
const resss = await this._httpRequest(`https://help.steampowered.com/en/wizard/HelpWithLoginInfoReset/?s=${issue.s}&account=${account}&reset=${issue.reset}&issueid=${issue.issueid}`);
|
|
7618
|
+
|
|
7619
|
+
const submitResult = await submitNewEmail(issue, g_rgDefaultWizardPageParams, newEmail);
|
|
7620
|
+
if (submitResult.errorMsg) {
|
|
7621
|
+
console.log(submitResult.errorMsg);
|
|
7622
|
+
return onError("submitNewEmail Failed: " + submitResult.errorMsg);
|
|
7623
|
+
}
|
|
7624
|
+
|
|
7625
|
+
//confirm code sent to new email
|
|
7626
|
+
for (let i = 0; i < 5; i++) {
|
|
7627
|
+
let codes = await getNewEmailOptCodes();
|
|
7628
|
+
if (codes) {
|
|
7629
|
+
codes = Array.isArray(codes) ? codes : [codes];
|
|
7630
|
+
for (const code of codes) {
|
|
7631
|
+
const confirmResult = await confirmNewEmail(issue, g_rgDefaultWizardPageParams, newEmail, code);
|
|
7632
|
+
if (confirmResult?.hash?.includes?.("HelpWithLoginInfoComplete")) {
|
|
7633
|
+
return {
|
|
7634
|
+
success: true,
|
|
7635
|
+
};
|
|
7636
|
+
} else {
|
|
7637
|
+
await sleep(1000);
|
|
7638
|
+
}
|
|
7639
|
+
}
|
|
7640
|
+
} else {
|
|
7641
|
+
await sleep(5000);
|
|
7642
|
+
}
|
|
7643
|
+
}
|
|
7644
|
+
|
|
7645
|
+
return onError("Can't confirm new email code");
|
|
7646
|
+
}
|
|
7647
|
+
|
|
7648
|
+
async sendMessage({ steamId, content, accessToken }) {
|
|
7649
|
+
if (!accessToken || typeof accessToken !== "string") {
|
|
7650
|
+
console.error("revokeAccessToken", "invalid accessToken", accessToken);
|
|
7651
|
+
return;
|
|
7652
|
+
}
|
|
7653
|
+
const Protos = helpers([
|
|
7654
|
+
{
|
|
7655
|
+
name: "csgo",
|
|
7656
|
+
protos: loadProfos(`${__dirname}/protos/webui`),
|
|
7657
|
+
},
|
|
7658
|
+
]);
|
|
7659
|
+
const params = {
|
|
7660
|
+
access_token: accessToken,
|
|
7661
|
+
origin: "https://store.steampowered.com",
|
|
7662
|
+
input_protobuf_encoded: protoEncode(Protos.csgo.CFriendMessages_SendMessage_Request, {
|
|
7663
|
+
steamid: steamId,
|
|
7664
|
+
message: content,
|
|
7665
|
+
chat_entry_type: 1,
|
|
7666
|
+
contains_bbcode: false,
|
|
7667
|
+
}).toString("base64"),
|
|
7668
|
+
};
|
|
7669
|
+
|
|
7670
|
+
const result = await this._httpRequest({
|
|
7671
|
+
url: `https://api.steampowered.com/IFriendMessagesService/SendMessage/v1?${Object.keys(params)
|
|
7672
|
+
.map((k) => `${k}=${encodeURIComponent(params[k])}`)
|
|
7673
|
+
.join("&")}`,
|
|
7674
|
+
// responseType: "arraybuffer",
|
|
7675
|
+
// method: "POST",
|
|
7676
|
+
});
|
|
7677
|
+
if (result instanceof ResponseError) {
|
|
7678
|
+
return result;
|
|
7679
|
+
}
|
|
7680
|
+
|
|
7681
|
+
let response = null;
|
|
7682
|
+
try {
|
|
7683
|
+
response = protoDecode(Protos.csgo.CFriendMessages_SendMessage_Response, result.data);
|
|
7684
|
+
} catch (e) {}
|
|
7685
|
+
|
|
7686
|
+
return response;
|
|
7687
|
+
}
|
|
7407
7688
|
}
|
|
7408
7689
|
|
|
7409
7690
|
SteamUser.MAX_RETRY = 10;
|