steamutils 1.3.71 → 1.3.72

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.
Files changed (2) hide show
  1. package/index.js +124 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -6782,6 +6782,94 @@ export default class SteamUser {
6782
6782
  },
6783
6783
  ];
6784
6784
  }
6785
+ async getFriendsGameplayInfo(accessToken, appId) {
6786
+ if (!appId) {
6787
+ return;
6788
+ }
6789
+ const Protos = helpers([
6790
+ {
6791
+ name: "csgo",
6792
+ protos: loadProfos(`${__dirname}/protos/webui`),
6793
+ },
6794
+ ]);
6795
+ const params = {
6796
+ access_token: accessToken,
6797
+ origin: "https://store.steampowered.com",
6798
+ input_protobuf_encoded: protoEncode(Protos.csgo.CPlayer_GetFriendsGameplayInfo_Request, {
6799
+ appid: appId,
6800
+ }).toString("base64"),
6801
+ };
6802
+
6803
+ const result = await this._httpRequest({
6804
+ url: `https://api.steampowered.com/IPlayerService/GetFriendsGameplayInfo/v1?${Object.keys(params)
6805
+ .map((k) => `${k}=${encodeURIComponent(params[k])}`)
6806
+ .join("&")}`,
6807
+ responseType: "arraybuffer",
6808
+ });
6809
+ if (result instanceof ResponseError) {
6810
+ return result;
6811
+ }
6812
+
6813
+ const data = protoDecode(Protos.csgo.CPlayer_GetFriendsGameplayInfo_Response, result.data);
6814
+ if (!data) return;
6815
+ const { in_game, played_recently, played_ever, owns, your_info } = data;
6816
+ const formatList = function (list) {
6817
+ return list.map(function (item) {
6818
+ return {
6819
+ steamId: item.steamid.toString(),
6820
+ minutes_played: item.minutes_played,
6821
+ minutes_played_forever: item.minutes_played_forever,
6822
+ };
6823
+ });
6824
+ };
6825
+
6826
+ return {
6827
+ in_game: formatList(in_game),
6828
+ played_recently: formatList(played_recently),
6829
+ played_ever: formatList(played_ever),
6830
+ owns: formatList(owns),
6831
+ your_info: _.omit(your_info, "steamid"),
6832
+ };
6833
+
6834
+ const example = [
6835
+ {
6836
+ public_data: {
6837
+ visibility_state: 3,
6838
+ privacy_state: 0,
6839
+ profile_state: 1,
6840
+ ban_expires_time: 0,
6841
+ account_flags: 0,
6842
+ persona_name: "LOL haha",
6843
+ profile_url: "",
6844
+ content_country_restricted: false,
6845
+ steamId: "76561199243542939",
6846
+ avatarHash: "0000000000000000000000000000000000000000",
6847
+ },
6848
+ private_data: {
6849
+ persona_state: 0,
6850
+ persona_state_flags: 0,
6851
+ time_created: 1644675779,
6852
+ game_id: 0,
6853
+ game_server_ip_address: 0,
6854
+ game_server_port: 0,
6855
+ game_extra_info: "",
6856
+ account_name: "",
6857
+ lobby_steam_id: 0,
6858
+ rich_presence_kv: "",
6859
+ watching_broadcast_accountid: 0,
6860
+ watching_broadcast_appid: 0,
6861
+ watching_broadcast_viewers: 0,
6862
+ watching_broadcast_title: "",
6863
+ last_logoff_time: 0,
6864
+ last_seen_online: 0,
6865
+ game_os_type: 0,
6866
+ game_device_type: 0,
6867
+ game_device_name: "",
6868
+ game_is_private: false,
6869
+ },
6870
+ },
6871
+ ];
6872
+ }
6785
6873
  async getPurchaseHistory() {
6786
6874
  const result = await this._httpRequest({
6787
6875
  url: `https://store.steampowered.com/account/history/`,
@@ -6795,7 +6883,42 @@ export default class SteamUser {
6795
6883
  }
6796
6884
 
6797
6885
  const $ = cheerio.load(result?.data);
6798
- return $(".wallet_history_table").html();
6886
+ const table = $(".wallet_history_table");
6887
+ return [...table.find("tr")]
6888
+ .map(function (el) {
6889
+ el = $(el);
6890
+
6891
+ if (el.children().length !== 6) return;
6892
+ const typeEL = el.find(".wht_type");
6893
+ const typePayment = StringUtils.cleanSpace(typeEL.find(".wth_payment").text());
6894
+ typeEL.find(".wth_payment").remove();
6895
+ const type = StringUtils.cleanSpace(typeEL.text());
6896
+
6897
+ const totalEL = el.find(".wht_total");
6898
+ const totalPayment = StringUtils.cleanSpace(totalEL.find(".wth_payment").text());
6899
+ totalEL.find(".wth_payment").remove();
6900
+ const total = StringUtils.cleanSpace(totalEL.text());
6901
+
6902
+ const wallet_change = StringUtils.cleanSpace(el.find(".wht_wallet_change").text());
6903
+ const wallet_balance = StringUtils.cleanSpace(el.find(".wht_wallet_balance").text());
6904
+
6905
+ return {
6906
+ date: StringUtils.cleanSpace(el.find(".wht_date").text()),
6907
+ items: StringUtils.cleanSpace(el.find(".wht_items").text()),
6908
+ type: {
6909
+ type,
6910
+ payment: typePayment,
6911
+ },
6912
+ total: {
6913
+ total,
6914
+ payment: totalPayment,
6915
+ },
6916
+ wallet_change,
6917
+ wallet_balance,
6918
+ };
6919
+ })
6920
+ .filter(Boolean);
6921
+
6799
6922
  /*
6800
6923
  const result = await this._httpRequestAjax({
6801
6924
  url: `https://store.steampowered.com/account/AjaxLoadMoreHistory/`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "steamutils",
3
- "version": "1.3.71",
3
+ "version": "1.3.72",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "alpha-common-utils": "^1.0.6",