| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- Public Class PageDownloadClient
- Private Sub LoaderInit() Handles Me.Initialized
- PageLoaderInit(Load, PanLoad, PanBack, Nothing, DlClientListLoader, AddressOf Load_OnFinish)
- End Sub
- Private Sub Init() Handles Me.Loaded
- PanBack.ScrollToHome()
- End Sub
- Private Sub Load_OnFinish()
- '结果数据化
- Try
- '归类
- Dim Dict As New Dictionary(Of String, List(Of JObject)) From {
- {"正式版", New List(Of JObject)}, {"预览版", New List(Of JObject)}, {"远古版", New List(Of JObject)}, {"愚人节版", New List(Of JObject)}
- }
- Dim Versions As JArray = DlClientListLoader.Output.Value("versions")
- For Each Version As JObject In Versions
- '确定分类
- Dim Type As String = Version("type")
- Select Case Type
- Case "release"
- Type = "正式版"
- Case "snapshot"
- Type = "预览版"
- 'Mojang 误分类
- If Version("id").ToString.StartsWith("1.") AndAlso
- Not Version("id").ToString.ToLower.Contains("combat") AndAlso
- Not Version("id").ToString.ToLower.Contains("rc") AndAlso
- Not Version("id").ToString.ToLower.Contains("experimental") AndAlso
- Not Version("id").ToString.ToLower.Contains("pre") Then
- Type = "正式版"
- Version("type") = "release"
- End If
- '愚人节版本
- Select Case Version("id").ToString.ToLower
- Case "20w14infinite", "20w14∞"
- Type = "愚人节版"
- Version("id") = "20w14∞"
- Version("type") = "special"
- Version.Add("lore", GetMcFoolName(Version("id")))
- Case "3d shareware v1.34", "1.rv-pre1", "15w14a", "2.0", "22w13oneblockatatime", "23w13a_or_b"
- Type = "愚人节版"
- Version("type") = "special"
- Version.Add("lore", GetMcFoolName(Version("id")))
- End Select
- Case "special"
- '已被处理的愚人节版
- Type = "愚人节版"
- Case Else
- Type = "远古版"
- End Select
- '加入辞典
- Dict(Type).Add(Version)
- Next
- '排序
- For i = 0 To Dict.Keys.Count - 1
- Dict(Dict.Keys(i)) = Sort(Dict.Values(i),
- Function(a, b) a("releaseTime").Value(Of Date) > b("releaseTime").Value(Of Date))
- Next
- '清空当前
- PanMain.Children.Clear()
- '添加最新版本
- Dim CardInfo As New MyCard With {.Title = "最新版本", .Margin = New Thickness(0, 0, 0, 15), .SwapType = 2}
- Dim TopestVersions As New List(Of JObject)
- Dim Release As JObject = Dict("正式版")(0).DeepClone()
- Release("lore") = "最新正式版,发布于 " & Release("releaseTime").Value(Of Date).ToString("yyyy'/'MM'/'dd HH':'mm")
- TopestVersions.Add(Release)
- If Dict("正式版")(0)("releaseTime").Value(Of Date) < Dict("预览版")(0)("releaseTime").Value(Of Date) Then
- Dim Snapshot As JObject = Dict("预览版")(0).DeepClone()
- Snapshot("lore") = "最新预览版,发布于 " & Snapshot("releaseTime").Value(Of Date).ToString("yyyy'/'MM'/'dd HH':'mm")
- TopestVersions.Add(Snapshot)
- End If
- Dim PanInfo As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = TopestVersions}
- MyCard.StackInstall(PanInfo, 2)
- CardInfo.Children.Add(PanInfo)
- PanMain.Children.Add(CardInfo)
- '添加其他版本
- For Each Pair As KeyValuePair(Of String, List(Of JObject)) In Dict
- If Pair.Value.Count = 0 Then Continue For
- '增加卡片
- Dim NewCard As New MyCard With {.Title = Pair.Key & " (" & Pair.Value.Count & ")", .Margin = New Thickness(0, 0, 0, 15), .SwapType = 2}
- Dim NewStack As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = Pair.Value}
- NewCard.Children.Add(NewStack)
- NewCard.SwapControl = NewStack
- NewCard.IsSwaped = True
- PanMain.Children.Add(NewCard)
- Next
- Catch ex As Exception
- Log(ex, "可视化版本列表出错", LogLevel.Feedback)
- End Try
- End Sub
- Public Sub DownloadStart(sender As MyListItem, e As Object)
- McDownloadClient(NetPreDownloadBehaviour.HintWhileExists, sender.Title, sender.Tag("url").ToString)
- End Sub
- ''介绍栏
- 'Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
- ' OpenWebsite("https://www.minecraft.net/zh-hans")
- 'End Sub
- 'Private Sub BtnInstall_Click(sender As Object, e As EventArgs) Handles BtnInstall.Click
- ' FrmMain.PageChange(FormMain.PageType.Download, FormMain.PageSubType.DownloadInstall)
- 'End Sub
- End Class
|