Skip to content

Commit

Permalink
🎨 令牌确定接口单独拎出,不再直接确认,接口优化
Browse files Browse the repository at this point in the history
  • Loading branch information
jinzaz committed Aug 16, 2023
1 parent 39b91aa commit b53634b
Show file tree
Hide file tree
Showing 7 changed files with 533 additions and 343 deletions.
7 changes: 4 additions & 3 deletions src/BD.SteamClient/Constants/SteamApiUrls.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,9 @@ public static class SteamApiUrls
public const string STEAM_TRADEOFFER_DECLINE = "https://steamcommunity.com/tradeoffer/{0}/decline";
public const string STEAM_TRADEOFFER_CANCEL = "https://steamcommunity.com/tradeoffer/{0}/cancel";
public const string STEAM_TRADEOFFER_GET_SUMMARY = "https://api.steampowered.com/IEconService/GetTradeOffersSummary/v1?key={0}";
public const string STEAM_TRADEOFFER_GET_OFFERS = "https://api.steampowered.com/IEconService/GetTradeOffers/v1";
public const string STEAM_TRADEOFFER_GET_OFFER = "https://api.steampowered.com/IEconService/GetTradeOffer/v1";
public const string STEAM_TRADEOFFER_GET_OFFERS = "https://api.steampowered.com/IEconService/GetTradeOffers/v1/";
public const string STEAM_TRADEOFFER_GET_OFFER = "https://api.steampowered.com/IEconService/GetTradeOffer/v1/";
public const string STEAM_TRADEOFFER_GET_HISTORY = "https://api.steampowered.com/IEconService/GetTradeHistory/v1/";
public const string STEAM_TRADEOFFER_URL = "https://steamcommunity.com/tradeoffer/{0}";
public const string STEAM_TRADEOFFER_SEND = "https://steamcommunity.com/tradeoffer/new/send";

Expand All @@ -90,7 +91,7 @@ public static class SteamApiUrls
public const string STEAM_MOBILECONF_CONFIRMATION = "https://steamcommunity.com/mobileconf/ajaxop";
public const string STEAM_MOBILECONF_BATCH_CONFIRMATION = "https://steamcommunity.com/mobileconf/multiajaxop";
public const string STEAM_MOBILECONF_GET_CONFIRMATIONS = "https://steamcommunity.com/mobileconf/getlist";
public const string STEAM_MOBILECONF_GET_CONFIRMATION_DETAILS = "https://steamcommunity.com/mobileconf/details/{0}";
public const string STEAM_MOBILECONF_GET_CONFIRMATION_DETAILS = "https://steamcommunity.com/mobileconf/details/{0}?l=schinese";

/// <summary>
/// Authenticator
Expand Down
4 changes: 4 additions & 0 deletions src/BD.SteamClient/Enums/TradeTaskEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,9 @@ namespace BD.SteamClient.Enums;
public enum TradeTaskEnum : byte
{
None = 0,

/// <summary>
/// 自动接收礼品报价
/// </summary>
AutoAcceptGitTrade = 1,
}
30 changes: 30 additions & 0 deletions src/BD.SteamClient/Models/ModelConverters/DecimalConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
namespace BD.SteamClient.Models.ModelConverters;

internal class DecimalConverter : JsonConverter<object>
{
public override bool CanConvert(Type typeToConvert)
{
return true;
}

public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
string? readStr = Encoding.Default.GetString(reader.ValueSpan);

return decimal.TryParse(readStr, out decimal parsedResult) ? parsedResult : 0;
}

public override void Write(Utf8JsonWriter writer, object value, JsonSerializerOptions options)
{
string strValue = value?.ToString() ?? string.Empty;

if (decimal.TryParse(strValue, out decimal parsedResult))
{
writer.WriteNumberValue(parsedResult);
}
else
{
writer.WriteNumberValue(0m);
}
}
}
37 changes: 36 additions & 1 deletion src/BD.SteamClient/Models/Trade/Confirmation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,42 @@ namespace BD.SteamClient.Models.Trade;

public class Confirmation
{
public string DataConfId { get; set; } = string.Empty;
[JsonPropertyName("type")]
public int Type { get; set; }

[JsonPropertyName("type_name")]
public string TypeName { get; set; } = string.Empty;

[JsonPropertyName("id")]
public string Id { get; set; } = string.Empty;

[JsonPropertyName("creator_id")]
public string CreatorId { get; set; } = string.Empty;

[JsonPropertyName("nonce")]
public string Nonce { get; set; } = string.Empty;

[JsonPropertyName("creation_time")]
public long CreationTime { get; set; }

[JsonPropertyName("cancel")]
public string Cancel { get; set; } = string.Empty;

[JsonPropertyName("accept")]
public string Accept { get; set; } = string.Empty;

[JsonPropertyName("icon")]
public string Icon { get; set; } = string.Empty;

[JsonPropertyName("multi")]
public bool Multi { get; set; }

[JsonPropertyName("headline")]
public string Headline { get; set; } = string.Empty;

[JsonPropertyName("summary")]
public string[]? Summary { get; set; }

[JsonPropertyName("warn")]
public string[]? Warn { get; set; }
}
100 changes: 100 additions & 0 deletions src/BD.SteamClient/Models/Trade/TradeHistory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
namespace BD.SteamClient.Models.Trade;

using DecimalConverter = BD.SteamClient.Models.ModelConverters.DecimalConverter;

public class TradeHistory
{
[S_JsonProperty("response")]
public TradeHistoryResponseDetail? Response { get; set; }

/// <summary>
/// 交易历史记录响应详情
/// </summary>
public struct TradeHistoryResponseDetail
{
[S_JsonProperty("more")]
public bool More { get; set; }

[S_JsonProperty("trades")]
public TradeItem[] Trades { get; set; }

[S_JsonProperty("descriptions")]
public TradeItemAssetItemDesc[]? Descriptions { get; set; }
}

/// <summary>
/// 交易历史记录信息
/// </summary>
public struct TradeItem
{
[S_JsonProperty("tradeid")]
public string TradeId { get; set; }

[S_JsonProperty("steamid_other")]
public string SteamIdOther { get; set; }

[S_JsonProperty("time_init")]
public long TimeInit { get; set; }

[S_JsonProperty("status")]
public int Status { get; set; }

[S_JsonProperty("assets_given")]
public TradeItemAssetItem[]? AssetsGiven { get; set; }

[S_JsonProperty("assets_received")]
public TradeItemAssetItem[]? AssetsReceived { get; set; }
}

/// <summary>
/// 交易历史记录的交易项
/// </summary>
public record struct TradeItemAssetItem
{
[S_JsonProperty("appid")]
public int AppId { get; set; }

[S_JsonProperty("contextid")]
public string ContextId { get; set; }

[S_JsonProperty("assetid")]
public string AssetId { get; set; }

[JsonConverter(typeof(DecimalConverter))]
[S_JsonProperty("amount")]
public decimal Amount { get; set; }

[S_JsonProperty("classid")]
public string ClassId { get; set; }

[S_JsonProperty("instanceid")]
public string InstanceId { get; set; }

[S_JsonProperty("new_assetid")]
public string NewAssetId { get; set; }

[S_JsonProperty("new_contextid")]
public string NewContextId { get; set; }
}

/// <summary>
/// 交易历史记录的交易项描述
/// </summary>
public record struct TradeItemAssetItemDesc
{
[S_JsonProperty("appid")]
public int AppId { get; set; }

[S_JsonProperty("classid")]
public string ClassId { get; set; }

[S_JsonProperty("instanceid")]
public string InstanceId { get; set; }

[S_JsonProperty("market_name")]
public string MarketName { get; set; }

[S_JsonProperty("market_hash_name")]
public string MarketHashName { get; set; }
}
}
Loading

0 comments on commit b53634b

Please sign in to comment.