steamutils 1.3.71 → 1.3.73

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 +171 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -6048,6 +6048,53 @@ export default class SteamUser {
6048
6048
  }
6049
6049
  }
6050
6050
 
6051
+ async getMyMarketHistory({ start = 0, count = 10 } = {}) {
6052
+ const result = await this._httpRequestAjax({
6053
+ url: `market/myhistory/render/?query=&start=${start}&count=${count}`,
6054
+ });
6055
+ if (result instanceof ResponseError) {
6056
+ return result;
6057
+ }
6058
+ const data = result?.data;
6059
+ if (data?.success === true) {
6060
+ const $ = cheerio.load(data.results_html);
6061
+ const list = [];
6062
+ $(".market_listing_row").each(function () {
6063
+ const $1 = $(this);
6064
+ const id = $1.attr("id");
6065
+ const listingid = id.substringBetweenOrNull("history_row_", "_");
6066
+ if (!listingid) {
6067
+ return;
6068
+ }
6069
+ const gainOrLoss = StringUtils.cleanSpace($1.find(".market_listing_gainorloss").text());
6070
+ const image = $1.find(`.market_listing_item_img`).attr("src");
6071
+ const price = parseInt($1.find(`.market_table_value .market_listing_price`).text().replaceAll(`(`, "").replaceAll(`)`, "").replaceAll(`₫`, "").replaceAll(`.`, "").replaceAll(`,`, "").trim()) || "";
6072
+ const item_name = $1.find(".market_listing_item_name").text();
6073
+ const game_name = $1.find(".market_listing_game_name").text();
6074
+
6075
+ const listedOn = StringUtils.cleanSpace($1.find(".market_listing_listed_date + .market_listing_listed_date").text().replaceAll(`Listed:`, ""));
6076
+ const actedOn = StringUtils.cleanSpace($1.find(".market_listing_whoactedwith + .market_listing_listed_date").text().replaceAll(`Listed:`, ""));
6077
+
6078
+ const status = StringUtils.cleanSpace($1.find(".market_listing_whoactedwith").text());
6079
+
6080
+ list.push({
6081
+ id,
6082
+ listingid,
6083
+ price,
6084
+ item_name,
6085
+ game_name,
6086
+ listedOn,
6087
+ actedOn,
6088
+ image,
6089
+ gainOrLoss,
6090
+ status,
6091
+ });
6092
+ });
6093
+ const assets = Object.values(data.assets["730"]?.["2"] || {});
6094
+ return { ...data, list, assets, success: true };
6095
+ }
6096
+ }
6097
+
6051
6098
  async getPlayerReports(token) {
6052
6099
  const param = {
6053
6100
  sessionid: this._sessionId,
@@ -6782,6 +6829,94 @@ export default class SteamUser {
6782
6829
  },
6783
6830
  ];
6784
6831
  }
6832
+ async getFriendsGameplayInfo(accessToken, appId) {
6833
+ if (!appId) {
6834
+ return;
6835
+ }
6836
+ const Protos = helpers([
6837
+ {
6838
+ name: "csgo",
6839
+ protos: loadProfos(`${__dirname}/protos/webui`),
6840
+ },
6841
+ ]);
6842
+ const params = {
6843
+ access_token: accessToken,
6844
+ origin: "https://store.steampowered.com",
6845
+ input_protobuf_encoded: protoEncode(Protos.csgo.CPlayer_GetFriendsGameplayInfo_Request, {
6846
+ appid: appId,
6847
+ }).toString("base64"),
6848
+ };
6849
+
6850
+ const result = await this._httpRequest({
6851
+ url: `https://api.steampowered.com/IPlayerService/GetFriendsGameplayInfo/v1?${Object.keys(params)
6852
+ .map((k) => `${k}=${encodeURIComponent(params[k])}`)
6853
+ .join("&")}`,
6854
+ responseType: "arraybuffer",
6855
+ });
6856
+ if (result instanceof ResponseError) {
6857
+ return result;
6858
+ }
6859
+
6860
+ const data = protoDecode(Protos.csgo.CPlayer_GetFriendsGameplayInfo_Response, result.data);
6861
+ if (!data) return;
6862
+ const { in_game, played_recently, played_ever, owns, your_info } = data;
6863
+ const formatList = function (list) {
6864
+ return list.map(function (item) {
6865
+ return {
6866
+ steamId: item.steamid.toString(),
6867
+ minutes_played: item.minutes_played,
6868
+ minutes_played_forever: item.minutes_played_forever,
6869
+ };
6870
+ });
6871
+ };
6872
+
6873
+ return {
6874
+ in_game: formatList(in_game),
6875
+ played_recently: formatList(played_recently),
6876
+ played_ever: formatList(played_ever),
6877
+ owns: formatList(owns),
6878
+ your_info: _.omit(your_info, "steamid"),
6879
+ };
6880
+
6881
+ const example = [
6882
+ {
6883
+ public_data: {
6884
+ visibility_state: 3,
6885
+ privacy_state: 0,
6886
+ profile_state: 1,
6887
+ ban_expires_time: 0,
6888
+ account_flags: 0,
6889
+ persona_name: "LOL haha",
6890
+ profile_url: "",
6891
+ content_country_restricted: false,
6892
+ steamId: "76561199243542939",
6893
+ avatarHash: "0000000000000000000000000000000000000000",
6894
+ },
6895
+ private_data: {
6896
+ persona_state: 0,
6897
+ persona_state_flags: 0,
6898
+ time_created: 1644675779,
6899
+ game_id: 0,
6900
+ game_server_ip_address: 0,
6901
+ game_server_port: 0,
6902
+ game_extra_info: "",
6903
+ account_name: "",
6904
+ lobby_steam_id: 0,
6905
+ rich_presence_kv: "",
6906
+ watching_broadcast_accountid: 0,
6907
+ watching_broadcast_appid: 0,
6908
+ watching_broadcast_viewers: 0,
6909
+ watching_broadcast_title: "",
6910
+ last_logoff_time: 0,
6911
+ last_seen_online: 0,
6912
+ game_os_type: 0,
6913
+ game_device_type: 0,
6914
+ game_device_name: "",
6915
+ game_is_private: false,
6916
+ },
6917
+ },
6918
+ ];
6919
+ }
6785
6920
  async getPurchaseHistory() {
6786
6921
  const result = await this._httpRequest({
6787
6922
  url: `https://store.steampowered.com/account/history/`,
@@ -6795,7 +6930,42 @@ export default class SteamUser {
6795
6930
  }
6796
6931
 
6797
6932
  const $ = cheerio.load(result?.data);
6798
- return $(".wallet_history_table").html();
6933
+ const table = $(".wallet_history_table");
6934
+ return [...table.find("tr")]
6935
+ .map(function (el) {
6936
+ el = $(el);
6937
+
6938
+ if (el.children().length !== 6) return;
6939
+ const typeEL = el.find(".wht_type");
6940
+ const typePayment = StringUtils.cleanSpace(typeEL.find(".wth_payment").text());
6941
+ typeEL.find(".wth_payment").remove();
6942
+ const type = StringUtils.cleanSpace(typeEL.text());
6943
+
6944
+ const totalEL = el.find(".wht_total");
6945
+ const totalPayment = StringUtils.cleanSpace(totalEL.find(".wth_payment").text());
6946
+ totalEL.find(".wth_payment").remove();
6947
+ const total = StringUtils.cleanSpace(totalEL.text());
6948
+
6949
+ const wallet_change = StringUtils.cleanSpace(el.find(".wht_wallet_change").text());
6950
+ const wallet_balance = StringUtils.cleanSpace(el.find(".wht_wallet_balance").text());
6951
+
6952
+ return {
6953
+ date: StringUtils.cleanSpace(el.find(".wht_date").text()),
6954
+ items: StringUtils.cleanSpace(el.find(".wht_items").text()),
6955
+ type: {
6956
+ type,
6957
+ payment: typePayment,
6958
+ },
6959
+ total: {
6960
+ total,
6961
+ payment: totalPayment,
6962
+ },
6963
+ wallet_change,
6964
+ wallet_balance,
6965
+ };
6966
+ })
6967
+ .filter(Boolean);
6968
+
6799
6969
  /*
6800
6970
  const result = await this._httpRequestAjax({
6801
6971
  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.73",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "alpha-common-utils": "^1.0.6",