Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt to the new API #838

Merged
merged 11 commits into from
Jun 21, 2024
22 changes: 5 additions & 17 deletions src/Starward.Core/Launcher/BackgroundImage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,12 @@ namespace Starward.Core.Launcher;

public class BackgroundImage
{
[JsonPropertyName("background")]
public string Background { get; set; }

/// <summary>
/// 原神版本热点图标
/// </summary>
[JsonPropertyName("icon")]
public string Icon { get; set; }

/// <summary>
/// 原神版本热点链接
/// </summary>
[JsonPropertyName("url")]
public string Url { get; set; }
}

[JsonPropertyName("version")]
public string Version { get; set; }

[JsonPropertyName("bg_checksum")]
public string BgChecksum { get; set; }
public class BackgroundImageWrapper
{
[JsonPropertyName("background")]
public BackgroundImage BackgroundImage { get; set; }
}
19 changes: 8 additions & 11 deletions src/Starward.Core/Launcher/LauncherBanner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,15 @@ namespace Starward.Core.Launcher;

public class LauncherBanner
{
[JsonPropertyName("banner_id")]
public string BannerId { get; set; }

[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("img")]
public string Img { get; set; }
[JsonPropertyName("image")]
public BannerImage Image { get; set; }
}

public class BannerImage
{
[JsonPropertyName("url")]
public string Url { get; set; }

[JsonPropertyName("order")]
public string Order { get; set; }
}
[JsonPropertyName("link")]
public string Link { get; set; }
}
155 changes: 112 additions & 43 deletions src/Starward.Core/Launcher/LauncherClient.cs

Large diffs are not rendered by default.

29 changes: 25 additions & 4 deletions src/Starward.Core/Launcher/LauncherContent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,34 @@ namespace Starward.Core.Launcher;
public class LauncherContent
{

[JsonPropertyName("adv")]
public BackgroundImage BackgroundImage { get; set; }
[JsonPropertyName("content")]
public ContentWrapper Content { get; set; }

[JsonPropertyName("banner")]
}

public class ContentWrapper
{

[JsonPropertyName("banners")]
public List<LauncherBanner> Banner { get; set; }

[JsonPropertyName("post")]
[JsonPropertyName("posts")]
public List<LauncherPost> Post { get; set; }

}

public class LauncherBasicInfo
{

[JsonPropertyName("game_info_list")]
public List<BasicInfoWrapper> BasicInfo { get; set; }

}

public class BasicInfoWrapper
{

[JsonPropertyName("backgrounds")]
public List<BackgroundImageWrapper> Backgrounds { get; set; }

}
222 changes: 55 additions & 167 deletions src/Starward.Core/Launcher/LauncherGameResource.cs
Original file line number Diff line number Diff line change
@@ -1,236 +1,124 @@
using System.Text.Json.Serialization;
using System.Text.Json.Serialization;

namespace Starward.Core.Launcher;


public class LauncherGameResource
{
[JsonPropertyName("game")]
public GameResource Game { get; set; }

[JsonPropertyName("plugin")]
public Plugin Plugin { get; set; }

[JsonPropertyName("web_url")]
public string WebUrl { get; set; }

[JsonPropertyName("force_update")]
public object ForceUpdate { get; set; }
[JsonPropertyName("game_packages")]
public List<GamePackagesWrapper> Resources { get; set; }
}

[JsonPropertyName("pre_download_game")]
public GameResource PreDownloadGame { get; set; }
public class GamePackagesWrapper
{
[JsonPropertyName("main")]
public GameBranch Main { get; set; }

[JsonPropertyName("deprecated_packages")]
public List<DeprecatedPackage> DeprecatedPackages { get; set; }
[JsonPropertyName("pre_download")]
public GameBranch PreDownload { get; set; }
}

[JsonPropertyName("sdk")]
public GameSDK Sdk { get; set; }
public class GameBranch
{
[JsonPropertyName("major")]
public GamePackages Major { get; set; }

[JsonPropertyName("deprecated_files")]
public List<DeprecatedFile> DeprecatedFiles { get; set; }
[JsonPropertyName("patches")]
public List<GamePackages> Patches { get; set; }
}

public class GameSDK
public class GamePackages
{
[JsonPropertyName("version")]
public string Version { get; set; }

[JsonPropertyName("path")]
public string Path { get; set; }
[JsonPropertyName("game_pkgs")]
public List<GamePkg> GamePkgs { get; set; }

[JsonPropertyName("size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long Size { get; set; }
[JsonPropertyName("audio_pkgs")]
public List<AudioPkg> AudioPkgs { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("pkg_version")]
public string PkgVersion { get; set; }

[JsonPropertyName("desc")]
public string Desc { get; set; }

[JsonPropertyName("channel_id")]
public string ChannelId { get; set; }

[JsonPropertyName("sub_channel_id")]
public string SubChannelId { get; set; }

[JsonPropertyName("package_size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long PackageSize { get; set; }
[JsonPropertyName("res_list_url")]
public string ResListUrl { get; set; }
}


public class DeprecatedFile
public class GamePkg : IGamePackage
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }
}

public class DeprecatedPackage
{
[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }
}

public class DiffPackage : IGamePackage
{
[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("version")]
public string Version { get; set; }

[JsonPropertyName("path")]
public string Path { get; set; }

[JsonPropertyName("size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long Size { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("is_recommended_update")]
public bool IsRecommendedUpdate { get; set; }

[JsonPropertyName("voice_packs")]
public List<VoicePack> VoicePacks { get; set; }

[JsonPropertyName("package_size")]
[JsonPropertyName("decompressed_size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long PackageSize { get; set; }
public long DecompressedSize { get; set; }
}

public class GameResource
public class AudioPkg : IGamePackage
{
[JsonPropertyName("latest")]
public LatestVersion Latest { get; set; }

[JsonPropertyName("diffs")]
public List<DiffPackage> Diffs { get; set; }
}

public class LatestVersion : IGamePackage
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("language")]
public string Language { get; set; }

[JsonPropertyName("version")]
public string Version { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; }

[JsonPropertyName("path")]
public string Path { get; set; }
[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long Size { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("entry")]
public string Entry { get; set; }

[JsonPropertyName("voice_packs")]
public List<VoicePack> VoicePacks { get; set; }

[JsonPropertyName("decompressed_path")]
public string DecompressedPath { get; set; }

[JsonPropertyName("segments")]
public List<Segment> Segments { get; set; }

[JsonPropertyName("package_size")]
[JsonPropertyName("decompressed_size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long PackageSize { get; set; }
public long DecompressedSize { get; set; }
}

public class Plugin
public class LauncherGameSdk
{
[JsonPropertyName("plugins")]
public List<PluginItem> Plugins { get; set; }

[JsonPropertyName("version")]
public string Version { get; set; }
[JsonPropertyName("game_channel_sdks")]
public List<GameSDK> Sdk { get; set; }
}

public class PluginItem
public class GameSDK
{
[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("version")]
public string Version { get; set; }

[JsonPropertyName("path")]
public string Path { get; set; }

[JsonPropertyName("size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long Size { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("entry")]
public string Entry { get; set; }
[JsonPropertyName("channel_sdk_pkg")]
public GamePkg Pkg { get; set; }
}


public class Segment
public class LauncherGameDeprecatedFiles
{
[JsonPropertyName("path")]
public string Path { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("package_size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long PackageSize { get; set; }
[JsonPropertyName("deprecated_file_configs")]
public List<GameDeprecatedFilesWrapper> Resources { get; set; }
}

public class VoicePack : IGamePackage
public class GameDeprecatedFilesWrapper
{
[JsonPropertyName("language")]
public string Language { get; set; }
[JsonPropertyName("deprecated_files")]
public List<DeprecatedFile> DeprecatedFiles { get; set; }
}

public class DeprecatedFile
{
[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("path")]
public string Path { get; set; }

[JsonPropertyName("size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long Size { get; set; }

[JsonPropertyName("md5")]
public string Md5 { get; set; }

[JsonPropertyName("package_size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long PackageSize { get; set; }
}



public interface IGamePackage
{

public string Path { get; set; }
public string Url { get; set; }

public long Size { get; set; }

public long PackageSize { get; set; }
public long DecompressedSize { get; set; }

}
Loading
Loading