Skip to content

Commit

Permalink
修正GitHub数据模型、完成检测更新界面设计 jitwxs#57
Browse files Browse the repository at this point in the history
  • Loading branch information
millennium committed Apr 1, 2022
1 parent 7bde98b commit efc4dd9
Show file tree
Hide file tree
Showing 6 changed files with 401 additions and 17 deletions.
9 changes: 9 additions & 0 deletions WindowsFormsApp1/163MusicLyrics.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,12 @@
<Compile Include="NetEaseMusicVO.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="UpdateForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UpdateForm.Designer.cs">
<DependentUpon>UpdateForm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
Expand All @@ -125,6 +131,9 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="UpdateForm.resx">
<DependentUpon>UpdateForm.cs</DependentUpon>
</EmbeddedResource>
<None Include="GetLrc_TemporaryKey.pfx" />
<None Include="NLog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
Expand Down
98 changes: 98 additions & 0 deletions WindowsFormsApp1/JsonBase/GitHubBase.cs
Original file line number Diff line number Diff line change
@@ -1,66 +1,164 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

namespace 网易云歌词提取.JsonBase
{
public partial class GitHubInfo
{
[JsonProperty("url")]
public Uri Url { get; set; }

[JsonProperty("assets_url")]
public Uri AssetsUrl { get; set; }

[JsonProperty("upload_url")]
public string UploadUrl { get; set; }

[JsonProperty("html_url")]
public Uri HtmlUrl { get; set; }

[JsonProperty("id")]
public long Id { get; set; }

[JsonProperty("author")]
public Author Author { get; set; }

[JsonProperty("node_id")]
public string NodeId { get; set; }

[JsonProperty("tag_name")]
public string TagName { get; set; }

[JsonProperty("target_commitish")]
public string TargetCommitish { get; set; }

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

[JsonProperty("draft")]
public bool Draft { get; set; }

[JsonProperty("prerelease")]
public bool Prerelease { get; set; }

[JsonProperty("created_at")]
public DateTimeOffset CreatedAt { get; set; }

[JsonProperty("published_at")]
public DateTimeOffset PublishedAt { get; set; }

[JsonProperty("assets")]
public List<Asset> Assets { get; set; }

[JsonProperty("tarball_url")]
public Uri TarballUrl { get; set; }

[JsonProperty("zipball_url")]
public Uri ZipballUrl { get; set; }

[JsonProperty("body")]
public string Body { get; set; }
}

public partial class Asset
{
[JsonProperty("url")]
public Uri Url { get; set; }

[JsonProperty("id")]
public long Id { get; set; }

[JsonProperty("node_id")]
public string NodeId { get; set; }

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

[JsonProperty("label")]
public object Label { get; set; }

[JsonProperty("uploader")]
public Author Uploader { get; set; }

[JsonProperty("content_type")]
public string ContentType { get; set; }

[JsonProperty("state")]
public string State { get; set; }

[JsonProperty("size")]
public long Size { get; set; }

[JsonProperty("download_count")]
public long DownloadCount { get; set; }

[JsonProperty("created_at")]
public DateTimeOffset CreatedAt { get; set; }

[JsonProperty("updated_at")]
public DateTimeOffset UpdatedAt { get; set; }

[JsonProperty("browser_download_url")]
public Uri BrowserDownloadUrl { get; set; }
}

public partial class Author
{
[JsonProperty("login")]
public string Login { get; set; }

[JsonProperty("id")]
public long Id { get; set; }

[JsonProperty("node_id")]
public string NodeId { get; set; }

[JsonProperty("avatar_url")]
public Uri AvatarUrl { get; set; }

[JsonProperty("gravatar_id")]
public string GravatarId { get; set; }

[JsonProperty("url")]
public Uri Url { get; set; }

[JsonProperty("html_url")]
public Uri HtmlUrl { get; set; }

[JsonProperty("followers_url")]
public Uri FollowersUrl { get; set; }

[JsonProperty("following_url")]
public string FollowingUrl { get; set; }

[JsonProperty("gists_url")]
public string GistsUrl { get; set; }

[JsonProperty("starred_url")]
public string StarredUrl { get; set; }

[JsonProperty("subscriptions_url")]
public Uri SubscriptionsUrl { get; set; }

[JsonProperty("organizations_url")]
public Uri OrganizationsUrl { get; set; }

[JsonProperty("repos_url")]
public Uri ReposUrl { get; set; }

[JsonProperty("events_url")]
public string EventsUrl { get; set; }

[JsonProperty("received_events_url")]
public Uri ReceivedEventsUrl { get; set; }

[JsonProperty("type")]
public string Type { get; set; }

[JsonProperty("site_admin")]
public bool SiteAdmin { get; set; }
}
}
38 changes: 21 additions & 17 deletions WindowsFormsApp1/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using NLog;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using 网易云歌词提取.JsonBase;

namespace 网易云歌词提取
{
Expand Down Expand Up @@ -592,31 +593,34 @@ private void latestVersionMenuItem_Click(object sender, EventArgs e)

var jsonStr = HttpUtils.HttpGet("https://api.github.com/repos/jitwxs/163MusicLyrics/releases/latest",
"application/json", headers);
var obj = (JObject)JsonConvert.DeserializeObject(jsonStr);
OutputLatestTag(obj["tag_name"]);
var obj = JsonConvert.DeserializeObject<GitHubInfo>(jsonStr);
OutputLatestTag(obj);
}

private static void OutputLatestTag(JToken latestTag)
private void OutputLatestTag(GitHubInfo info)
{
if (latestTag == null)
var update = new UpdateForm(info);
update.ShowDialog();

if (info == null)
{
MessageBox.Show(ErrorMsg.GET_LATEST_VERSION_FAILED, "提示");
return;
}
else
{
string bigV = latestTag.ToString().Substring(1, 2), smallV = latestTag.ToString().Substring(3);
string curBigV = Version.Substring(1, 2), curSmallV = Version.Substring(3);

if (bigV.CompareTo(curBigV) == 1 || (bigV.CompareTo(curBigV) == 0 && smallV.CompareTo(curSmallV) == 1))
{
Clipboard.SetDataObject("https://github.com/jitwxs/163MusicLyrics/releases");
MessageBox.Show(string.Format(ErrorMsg.EXIST_LATEST_VERSION, latestTag), "提示");
}
else
{
MessageBox.Show(ErrorMsg.THIS_IS_LATEST_VERSION, "提示");
}
string bigV = info.ToString().Substring(1, 2), smallV = info.TagName.Substring(3);
string curBigV = Version.Substring(1, 2), curSmallV = Version.Substring(3);

if (bigV.CompareTo(curBigV) == 1 || (bigV.CompareTo(curBigV) == 0 && smallV.CompareTo(curSmallV) == 1))
{

Clipboard.SetDataObject("https://github.com/jitwxs/163MusicLyrics/releases");
MessageBox.Show(string.Format(ErrorMsg.EXIST_LATEST_VERSION, info), "提示");
}
else
{
MessageBox.Show(ErrorMsg.THIS_IS_LATEST_VERSION, "提示");
}
}

/**
Expand Down
126 changes: 126 additions & 0 deletions WindowsFormsApp1/UpdateForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit efc4dd9

Please sign in to comment.