support urls

This commit is contained in:
2024-06-17 16:55:31 +02:00
parent 97b38ed90c
commit bbac69b79e
8 changed files with 363 additions and 215 deletions

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>ModpackUpdater.GitLab</RootNamespace>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\ModpackUpdater.Model\ModpackUpdater.Model.vbproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,33 @@
Imports System.Net.Http
Imports ModpackUpdater.Model
Imports Newtonsoft.Json
Public Class UpdateConfigExt
'<Extension>
'Public Sub SaveToSnippet(config As UpdateConfig, gitlabUrl As String, gitlabToken As String, projectId As Integer, snippetId As Integer, snippetFilePath As String)
' Dim client As New GitLabClient(gitlabUrl, gitlabToken)
' Dim update As New SnippetProjectUpdate With {
' .Visibility = VisibilityLevel.Public,
' .ProjectId = projectId,
' .SnippetId = snippetId,
' .Files = {
' New SnippetUpdateFile With {
' .Action = SnippetUpdateFileAction.Update.Create,
' .FilePath = snippetFilePath,
' .Content = JsonConvert.SerializeObject(config)
' }
' }
' }
' client.Snippets.Update(update)
'End Sub
Public Shared Function LoadFromSnippet(url As String) As UpdateConfig
Dim client As New HttpClient
Dim result = client.GetStringAsync(url).Result
Return JsonConvert.DeserializeObject(Of UpdateConfig)(result)
End Function
End Class

View File

@@ -5,9 +5,11 @@ VisualStudioVersion = 17.2.32526.322
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater", "ModpackUpdater\ModpackUpdater.vbproj", "{33DD239C-1F33-40F9-908F-54BC02FBA420}" Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater", "ModpackUpdater\ModpackUpdater.vbproj", "{33DD239C-1F33-40F9-908F-54BC02FBA420}"
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ModpackUpdater.Model", "ModpackUpdater.Model\ModpackUpdater.Model.vbproj", "{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}" Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater.Model", "ModpackUpdater.Model\ModpackUpdater.Model.vbproj", "{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}"
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ModpackUpdater.Manager", "ModpackUpdater.Manager\ModpackUpdater.Manager.vbproj", "{618DAFD6-3336-4621-82F9-EA5C783D2D2E}" Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater.Manager", "ModpackUpdater.Manager\ModpackUpdater.Manager.vbproj", "{618DAFD6-3336-4621-82F9-EA5C783D2D2E}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ModpackUpdater.GitLab", "ModpackUpdater.GitLab\ModpackUpdater.GitLab.vbproj", "{65D44991-EB3B-4AC4-9166-3E8D0BADD402}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -27,6 +29,10 @@ Global
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU {618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Release|Any CPU.Build.0 = Release|Any CPU {618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Release|Any CPU.Build.0 = Release|Any CPU
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@@ -1,6 +1,5 @@
Imports System.IO Imports System.IO
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq Imports Newtonsoft.Json.Linq
Public Class AppConfig Public Class AppConfig

View File

@@ -24,207 +24,217 @@ Partial Class Form1
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent() Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.RadLabel1 = New Telerik.WinControls.UI.RadLabel() RadLabel1 = New Telerik.WinControls.UI.RadLabel()
Me.RadLabel2 = New Telerik.WinControls.UI.RadLabel() RadLabel2 = New Telerik.WinControls.UI.RadLabel()
Me.RadLabel3 = New Telerik.WinControls.UI.RadLabel() RadLabel3 = New Telerik.WinControls.UI.RadLabel()
Me.RadLabel_Status = New Telerik.WinControls.UI.RadLabel() RadLabel_Status = New Telerik.WinControls.UI.RadLabel()
Me.RadTextBoxControl_MinecraftProfileFolder = New Telerik.WinControls.UI.RadTextBoxControl() RadTextBoxControl_MinecraftProfileFolder = New Telerik.WinControls.UI.RadTextBoxControl()
Me.RadTextBoxControl_ModpackConfig = New Telerik.WinControls.UI.RadTextBoxControl() RadTextBoxControl_ModpackConfig = New Telerik.WinControls.UI.RadTextBoxControl()
Me.Panel1 = New System.Windows.Forms.Panel() Panel1 = New Panel()
Me.RadButton_Install = New Telerik.WinControls.UI.RadButton() RadButton_Install = New Telerik.WinControls.UI.RadButton()
Me.RadButton_CheckForUpdates = New Telerik.WinControls.UI.RadButton() RadButton_CheckForUpdates = New Telerik.WinControls.UI.RadButton()
Me.RadButton_EditModpackConfig = New Telerik.WinControls.UI.RadButton() RadButton_EditModpackConfig = New Telerik.WinControls.UI.RadButton()
Me.RadButton_SearchModpackConfig = New Telerik.WinControls.UI.RadButton() RadButton_SearchModpackConfig = New Telerik.WinControls.UI.RadButton()
Me.RadButton_SearchMinecraftProfileFolder = New Telerik.WinControls.UI.RadButton() RadButton_SearchMinecraftProfileFolder = New Telerik.WinControls.UI.RadButton()
CType(Me.RadLabel1, System.ComponentModel.ISupportInitialize).BeginInit() RadButton_PasteModpackConfig = New Telerik.WinControls.UI.RadButton()
CType(Me.RadLabel2, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadLabel1, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadLabel3, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadLabel2, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadLabel_Status, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadLabel3, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadTextBoxControl_MinecraftProfileFolder, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadLabel_Status, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadTextBoxControl_ModpackConfig, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadTextBoxControl_MinecraftProfileFolder, ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout() CType(RadTextBoxControl_ModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadButton_Install, System.ComponentModel.ISupportInitialize).BeginInit() Panel1.SuspendLayout()
CType(Me.RadButton_CheckForUpdates, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadButton_Install, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadButton_EditModpackConfig, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadButton_CheckForUpdates, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadButton_SearchModpackConfig, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadButton_EditModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RadButton_SearchMinecraftProfileFolder, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadButton_SearchModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() CType(RadButton_SearchMinecraftProfileFolder, ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() CType(RadButton_PasteModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
' CType(Me, ComponentModel.ISupportInitialize).BeginInit()
'RadLabel1 SuspendLayout()
' '
Me.RadLabel1.Location = New System.Drawing.Point(3, 5) ' RadLabel1
Me.RadLabel1.Name = "RadLabel1" '
Me.RadLabel1.Size = New System.Drawing.Size(135, 19) RadLabel1.Location = New Point(3, 5)
Me.RadLabel1.TabIndex = 0 RadLabel1.Name = "RadLabel1"
Me.RadLabel1.Text = "Minecraft profile folder:" RadLabel1.Size = New Size(124, 18)
' RadLabel1.TabIndex = 0
'RadLabel2 RadLabel1.Text = "Minecraft profile folder:"
' '
Me.RadLabel2.Location = New System.Drawing.Point(3, 63) ' RadLabel2
Me.RadLabel2.Name = "RadLabel2" '
Me.RadLabel2.Size = New System.Drawing.Size(98, 19) RadLabel2.Location = New Point(3, 63)
Me.RadLabel2.TabIndex = 1 RadLabel2.Name = "RadLabel2"
Me.RadLabel2.Text = "Modpack config:" RadLabel2.Size = New Size(90, 18)
' RadLabel2.TabIndex = 1
'RadLabel3 RadLabel2.Text = "Modpack config:"
' '
Me.RadLabel3.Location = New System.Drawing.Point(3, 121) ' RadLabel3
Me.RadLabel3.Name = "RadLabel3" '
Me.RadLabel3.Size = New System.Drawing.Size(43, 19) RadLabel3.Location = New Point(3, 121)
Me.RadLabel3.TabIndex = 2 RadLabel3.Name = "RadLabel3"
Me.RadLabel3.Text = "Status:" RadLabel3.Size = New Size(39, 18)
' RadLabel3.TabIndex = 2
'RadLabel_Status RadLabel3.Text = "Status:"
' '
Me.RadLabel_Status.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ ' RadLabel_Status
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) '
Me.RadLabel_Status.AutoSize = False RadLabel_Status.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
Me.RadLabel_Status.Location = New System.Drawing.Point(144, 119) RadLabel_Status.AutoSize = False
Me.RadLabel_Status.Name = "RadLabel_Status" RadLabel_Status.Location = New Point(144, 119)
Me.RadLabel_Status.Size = New System.Drawing.Size(273, 22) RadLabel_Status.Name = "RadLabel_Status"
Me.RadLabel_Status.TabIndex = 3 RadLabel_Status.Size = New Size(273, 22)
Me.RadLabel_Status.Text = "-" RadLabel_Status.TabIndex = 3
Me.RadLabel_Status.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText RadLabel_Status.Text = "-"
' RadLabel_Status.TextImageRelation = TextImageRelation.ImageBeforeText
'RadTextBoxControl_MinecraftProfileFolder '
' ' RadTextBoxControl_MinecraftProfileFolder
Me.RadTextBoxControl_MinecraftProfileFolder.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ '
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) RadTextBoxControl_MinecraftProfileFolder.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
Me.RadTextBoxControl_MinecraftProfileFolder.IsReadOnly = True RadTextBoxControl_MinecraftProfileFolder.IsReadOnly = True
Me.RadTextBoxControl_MinecraftProfileFolder.Location = New System.Drawing.Point(144, 3) RadTextBoxControl_MinecraftProfileFolder.Location = New Point(144, 3)
Me.RadTextBoxControl_MinecraftProfileFolder.Name = "RadTextBoxControl_MinecraftProfileFolder" RadTextBoxControl_MinecraftProfileFolder.Name = "RadTextBoxControl_MinecraftProfileFolder"
Me.RadTextBoxControl_MinecraftProfileFolder.NullText = "No file loaded!" RadTextBoxControl_MinecraftProfileFolder.NullText = "No file loaded!"
Me.RadTextBoxControl_MinecraftProfileFolder.Size = New System.Drawing.Size(273, 22) RadTextBoxControl_MinecraftProfileFolder.Size = New Size(273, 22)
Me.RadTextBoxControl_MinecraftProfileFolder.TabIndex = 4 RadTextBoxControl_MinecraftProfileFolder.TabIndex = 4
' '
'RadTextBoxControl_ModpackConfig ' RadTextBoxControl_ModpackConfig
' '
Me.RadTextBoxControl_ModpackConfig.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ RadTextBoxControl_ModpackConfig.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) RadTextBoxControl_ModpackConfig.IsReadOnly = True
Me.RadTextBoxControl_ModpackConfig.IsReadOnly = True RadTextBoxControl_ModpackConfig.Location = New Point(144, 61)
Me.RadTextBoxControl_ModpackConfig.Location = New System.Drawing.Point(144, 61) RadTextBoxControl_ModpackConfig.Name = "RadTextBoxControl_ModpackConfig"
Me.RadTextBoxControl_ModpackConfig.Name = "RadTextBoxControl_ModpackConfig" RadTextBoxControl_ModpackConfig.NullText = "No file loaded!"
Me.RadTextBoxControl_ModpackConfig.NullText = "No file loaded!" RadTextBoxControl_ModpackConfig.Size = New Size(273, 22)
Me.RadTextBoxControl_ModpackConfig.Size = New System.Drawing.Size(273, 22) RadTextBoxControl_ModpackConfig.TabIndex = 5
Me.RadTextBoxControl_ModpackConfig.TabIndex = 5 '
' ' Panel1
'Panel1 '
' Panel1.BackColor = Color.Transparent
Me.Panel1.BackColor = System.Drawing.Color.Transparent Panel1.Controls.Add(RadButton_Install)
Me.Panel1.Controls.Add(Me.RadButton_Install) Panel1.Controls.Add(RadButton_CheckForUpdates)
Me.Panel1.Controls.Add(Me.RadButton_CheckForUpdates) Panel1.Controls.Add(RadButton_EditModpackConfig)
Me.Panel1.Controls.Add(Me.RadButton_EditModpackConfig) Panel1.Controls.Add(RadButton_PasteModpackConfig)
Me.Panel1.Controls.Add(Me.RadButton_SearchModpackConfig) Panel1.Controls.Add(RadButton_SearchModpackConfig)
Me.Panel1.Controls.Add(Me.RadButton_SearchMinecraftProfileFolder) Panel1.Controls.Add(RadButton_SearchMinecraftProfileFolder)
Me.Panel1.Controls.Add(Me.RadLabel1) Panel1.Controls.Add(RadLabel1)
Me.Panel1.Controls.Add(Me.RadTextBoxControl_ModpackConfig) Panel1.Controls.Add(RadTextBoxControl_ModpackConfig)
Me.Panel1.Controls.Add(Me.RadLabel2) Panel1.Controls.Add(RadLabel2)
Me.Panel1.Controls.Add(Me.RadTextBoxControl_MinecraftProfileFolder) Panel1.Controls.Add(RadTextBoxControl_MinecraftProfileFolder)
Me.Panel1.Controls.Add(Me.RadLabel3) Panel1.Controls.Add(RadLabel3)
Me.Panel1.Controls.Add(Me.RadLabel_Status) Panel1.Controls.Add(RadLabel_Status)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill Panel1.Dock = DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 0) Panel1.Location = New Point(0, 0)
Me.Panel1.Name = "Panel1" Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(420, 176) Panel1.Size = New Size(420, 176)
Me.Panel1.TabIndex = 6 Panel1.TabIndex = 6
' '
'RadButton_Install ' RadButton_Install
' '
Me.RadButton_Install.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) RadButton_Install.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
Me.RadButton_Install.Image = Global.ModpackUpdater.My.Resources.MySymbols.icons8_software_installer_16px RadButton_Install.Image = My.Resources.MySymbols.icons8_software_installer_16px
Me.RadButton_Install.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight RadButton_Install.ImageAlignment = ContentAlignment.MiddleRight
Me.RadButton_Install.Location = New System.Drawing.Point(337, 149) RadButton_Install.Location = New Point(337, 149)
Me.RadButton_Install.Name = "RadButton_Install" RadButton_Install.Name = "RadButton_Install"
Me.RadButton_Install.Size = New System.Drawing.Size(80, 24) RadButton_Install.Size = New Size(80, 24)
Me.RadButton_Install.TabIndex = 10 RadButton_Install.TabIndex = 10
Me.RadButton_Install.Text = "Install" RadButton_Install.Text = "Install"
Me.RadButton_Install.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft RadButton_Install.TextAlignment = ContentAlignment.MiddleLeft
Me.RadButton_Install.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText RadButton_Install.TextImageRelation = TextImageRelation.ImageBeforeText
' '
'RadButton_CheckForUpdates ' RadButton_CheckForUpdates
' '
Me.RadButton_CheckForUpdates.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) RadButton_CheckForUpdates.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
Me.RadButton_CheckForUpdates.Image = Global.ModpackUpdater.My.Resources.MySymbols.icons8_update_16px RadButton_CheckForUpdates.Image = My.Resources.MySymbols.icons8_update_16px
Me.RadButton_CheckForUpdates.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight RadButton_CheckForUpdates.ImageAlignment = ContentAlignment.MiddleRight
Me.RadButton_CheckForUpdates.Location = New System.Drawing.Point(191, 149) RadButton_CheckForUpdates.Location = New Point(191, 149)
Me.RadButton_CheckForUpdates.Name = "RadButton_CheckForUpdates" RadButton_CheckForUpdates.Name = "RadButton_CheckForUpdates"
Me.RadButton_CheckForUpdates.Size = New System.Drawing.Size(140, 24) RadButton_CheckForUpdates.Size = New Size(140, 24)
Me.RadButton_CheckForUpdates.TabIndex = 0 RadButton_CheckForUpdates.TabIndex = 0
Me.RadButton_CheckForUpdates.Text = "Check for Updates" RadButton_CheckForUpdates.Text = "Check for Updates"
Me.RadButton_CheckForUpdates.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft RadButton_CheckForUpdates.TextAlignment = ContentAlignment.MiddleLeft
Me.RadButton_CheckForUpdates.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText RadButton_CheckForUpdates.TextImageRelation = TextImageRelation.ImageBeforeText
' '
'RadButton_EditModpackConfig ' RadButton_EditModpackConfig
' '
Me.RadButton_EditModpackConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) RadButton_EditModpackConfig.Anchor = AnchorStyles.Bottom Or AnchorStyles.Left
Me.RadButton_EditModpackConfig.Image = Global.ModpackUpdater.My.Resources.MySymbols.icons8_wrench_16px RadButton_EditModpackConfig.Image = My.Resources.MySymbols.icons8_wrench_16px
Me.RadButton_EditModpackConfig.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight RadButton_EditModpackConfig.ImageAlignment = ContentAlignment.MiddleRight
Me.RadButton_EditModpackConfig.Location = New System.Drawing.Point(3, 149) RadButton_EditModpackConfig.Location = New Point(3, 149)
Me.RadButton_EditModpackConfig.Name = "RadButton_EditModpackConfig" RadButton_EditModpackConfig.Name = "RadButton_EditModpackConfig"
Me.RadButton_EditModpackConfig.Size = New System.Drawing.Size(150, 24) RadButton_EditModpackConfig.Size = New Size(150, 24)
Me.RadButton_EditModpackConfig.TabIndex = 8 RadButton_EditModpackConfig.TabIndex = 8
Me.RadButton_EditModpackConfig.Text = "Edit modpack config" RadButton_EditModpackConfig.Text = "Edit modpack config"
Me.RadButton_EditModpackConfig.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft RadButton_EditModpackConfig.TextAlignment = ContentAlignment.MiddleLeft
Me.RadButton_EditModpackConfig.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText RadButton_EditModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText
' '
'RadButton_SearchModpackConfig ' RadButton_SearchModpackConfig
' '
Me.RadButton_SearchModpackConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) RadButton_SearchModpackConfig.Anchor = AnchorStyles.Top Or AnchorStyles.Right
Me.RadButton_SearchModpackConfig.Image = CType(resources.GetObject("RadButton_SearchModpackConfig.Image"), System.Drawing.Image) RadButton_SearchModpackConfig.Image = CType(resources.GetObject("RadButton_SearchModpackConfig.Image"), Image)
Me.RadButton_SearchModpackConfig.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight RadButton_SearchModpackConfig.ImageAlignment = ContentAlignment.MiddleRight
Me.RadButton_SearchModpackConfig.Location = New System.Drawing.Point(327, 89) RadButton_SearchModpackConfig.Location = New Point(327, 89)
Me.RadButton_SearchModpackConfig.Name = "RadButton_SearchModpackConfig" RadButton_SearchModpackConfig.Name = "RadButton_SearchModpackConfig"
Me.RadButton_SearchModpackConfig.Size = New System.Drawing.Size(90, 24) RadButton_SearchModpackConfig.Size = New Size(90, 24)
Me.RadButton_SearchModpackConfig.TabIndex = 7 RadButton_SearchModpackConfig.TabIndex = 7
Me.RadButton_SearchModpackConfig.Text = "Search" RadButton_SearchModpackConfig.Text = "Search"
Me.RadButton_SearchModpackConfig.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft RadButton_SearchModpackConfig.TextAlignment = ContentAlignment.MiddleLeft
Me.RadButton_SearchModpackConfig.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText RadButton_SearchModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText
' '
'RadButton_SearchMinecraftProfileFolder ' RadButton_SearchMinecraftProfileFolder
' '
Me.RadButton_SearchMinecraftProfileFolder.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) RadButton_SearchMinecraftProfileFolder.Anchor = AnchorStyles.Top Or AnchorStyles.Right
Me.RadButton_SearchMinecraftProfileFolder.Image = CType(resources.GetObject("RadButton_SearchMinecraftProfileFolder.Image"), System.Drawing.Image) RadButton_SearchMinecraftProfileFolder.Image = CType(resources.GetObject("RadButton_SearchMinecraftProfileFolder.Image"), Image)
Me.RadButton_SearchMinecraftProfileFolder.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight RadButton_SearchMinecraftProfileFolder.ImageAlignment = ContentAlignment.MiddleRight
Me.RadButton_SearchMinecraftProfileFolder.Location = New System.Drawing.Point(327, 31) RadButton_SearchMinecraftProfileFolder.Location = New Point(327, 31)
Me.RadButton_SearchMinecraftProfileFolder.Name = "RadButton_SearchMinecraftProfileFolder" RadButton_SearchMinecraftProfileFolder.Name = "RadButton_SearchMinecraftProfileFolder"
Me.RadButton_SearchMinecraftProfileFolder.Size = New System.Drawing.Size(90, 24) RadButton_SearchMinecraftProfileFolder.Size = New Size(90, 24)
Me.RadButton_SearchMinecraftProfileFolder.TabIndex = 6 RadButton_SearchMinecraftProfileFolder.TabIndex = 6
Me.RadButton_SearchMinecraftProfileFolder.Text = "Search" RadButton_SearchMinecraftProfileFolder.Text = "Search"
Me.RadButton_SearchMinecraftProfileFolder.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft RadButton_SearchMinecraftProfileFolder.TextAlignment = ContentAlignment.MiddleLeft
Me.RadButton_SearchMinecraftProfileFolder.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText RadButton_SearchMinecraftProfileFolder.TextImageRelation = TextImageRelation.ImageBeforeText
' '
'Form1 ' RadButton_PasteModpackConfig
' '
Me.AutoScaleBaseSize = New System.Drawing.Size(7, 15) RadButton_PasteModpackConfig.Anchor = AnchorStyles.Top Or AnchorStyles.Right
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 15.0!) RadButton_PasteModpackConfig.Image = CType(resources.GetObject("RadButton_PasteModpackConfig.Image"), Image)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font RadButton_PasteModpackConfig.ImageAlignment = ContentAlignment.MiddleRight
Me.ClientSize = New System.Drawing.Size(420, 176) RadButton_PasteModpackConfig.Location = New Point(231, 89)
Me.Controls.Add(Me.Panel1) RadButton_PasteModpackConfig.Name = "RadButton_PasteModpackConfig"
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) RadButton_PasteModpackConfig.Size = New Size(90, 24)
Me.MaximizeBox = False RadButton_PasteModpackConfig.TabIndex = 7
Me.Name = "Form1" RadButton_PasteModpackConfig.Text = "Paste"
' RadButton_PasteModpackConfig.TextAlignment = ContentAlignment.MiddleLeft
' RadButton_PasteModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText
' '
Me.RootElement.ApplyShapeToControl = True ' Form1
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen '
Me.Text = "Minecraft Modpack Updater" AutoScaleBaseSize = New Size(7, 15)
CType(Me.RadLabel1, System.ComponentModel.ISupportInitialize).EndInit() AutoScaleDimensions = New SizeF(7F, 15F)
CType(Me.RadLabel2, System.ComponentModel.ISupportInitialize).EndInit() AutoScaleMode = AutoScaleMode.Font
CType(Me.RadLabel3, System.ComponentModel.ISupportInitialize).EndInit() ClientSize = New Size(420, 176)
CType(Me.RadLabel_Status, System.ComponentModel.ISupportInitialize).EndInit() Controls.Add(Panel1)
CType(Me.RadTextBoxControl_MinecraftProfileFolder, System.ComponentModel.ISupportInitialize).EndInit() Icon = CType(resources.GetObject("$this.Icon"), Icon)
CType(Me.RadTextBoxControl_ModpackConfig, System.ComponentModel.ISupportInitialize).EndInit() MaximizeBox = False
Me.Panel1.ResumeLayout(False) Name = "Form1"
Me.Panel1.PerformLayout() StartPosition = FormStartPosition.CenterScreen
CType(Me.RadButton_Install, System.ComponentModel.ISupportInitialize).EndInit() Text = "Minecraft Modpack Updater"
CType(Me.RadButton_CheckForUpdates, System.ComponentModel.ISupportInitialize).EndInit() CType(RadLabel1, ComponentModel.ISupportInitialize).EndInit()
CType(Me.RadButton_EditModpackConfig, System.ComponentModel.ISupportInitialize).EndInit() CType(RadLabel2, ComponentModel.ISupportInitialize).EndInit()
CType(Me.RadButton_SearchModpackConfig, System.ComponentModel.ISupportInitialize).EndInit() CType(RadLabel3, ComponentModel.ISupportInitialize).EndInit()
CType(Me.RadButton_SearchMinecraftProfileFolder, System.ComponentModel.ISupportInitialize).EndInit() CType(RadLabel_Status, ComponentModel.ISupportInitialize).EndInit()
CType(Me, System.ComponentModel.ISupportInitialize).EndInit() CType(RadTextBoxControl_MinecraftProfileFolder, ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) CType(RadTextBoxControl_ModpackConfig, ComponentModel.ISupportInitialize).EndInit()
Panel1.ResumeLayout(False)
Panel1.PerformLayout()
CType(RadButton_Install, ComponentModel.ISupportInitialize).EndInit()
CType(RadButton_CheckForUpdates, ComponentModel.ISupportInitialize).EndInit()
CType(RadButton_EditModpackConfig, ComponentModel.ISupportInitialize).EndInit()
CType(RadButton_SearchModpackConfig, ComponentModel.ISupportInitialize).EndInit()
CType(RadButton_SearchMinecraftProfileFolder, ComponentModel.ISupportInitialize).EndInit()
CType(RadButton_PasteModpackConfig, ComponentModel.ISupportInitialize).EndInit()
CType(Me, ComponentModel.ISupportInitialize).EndInit()
ResumeLayout(False)
End Sub End Sub
Friend WithEvents RadLabel1 As Telerik.WinControls.UI.RadLabel Friend WithEvents RadLabel1 As Telerik.WinControls.UI.RadLabel
@@ -239,4 +249,5 @@ Partial Class Form1
Friend WithEvents RadButton_EditModpackConfig As Telerik.WinControls.UI.RadButton Friend WithEvents RadButton_EditModpackConfig As Telerik.WinControls.UI.RadButton
Friend WithEvents RadButton_SearchModpackConfig As Telerik.WinControls.UI.RadButton Friend WithEvents RadButton_SearchModpackConfig As Telerik.WinControls.UI.RadButton
Friend WithEvents RadButton_SearchMinecraftProfileFolder As Telerik.WinControls.UI.RadButton Friend WithEvents RadButton_SearchMinecraftProfileFolder As Telerik.WinControls.UI.RadButton
Friend WithEvents RadButton_PasteModpackConfig As Telerik.WinControls.UI.RadButton
End Class End Class

View File

@@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
@@ -58,6 +118,16 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="RadButton_PasteModpackConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAADvSURBVDhPY8AFJixbowfCUC5pYNLidfoTlqxbBcJ9SzboQoXxA9eolHlA/BOo6T8I9y5a87Jv
4ZpXMD5IDojnQJVjAqDk3x8/f/2fu247WAMynrt+x3+QHFDNH6hyTACU/E8IgNRAlWMCZAM+//z3/9bb
vxg4rn7a/wknf4aCMFQbAiAbAFI84dRPvBiqDQFoYoDDpPsYOHrpC+INyFj3BgXDbKefARR7AV0zzHas
BrhEpXzaffjY/4MnTv/feOIWimJsGKoNAVwiU4Ndo1NWukalrkrrWnoMmyZkDNWGHUw68cti4smfq/Fh
iEoGBgDk9v/D66ccygAAAABJRU5ErkJggg==
</value>
</data>
<data name="RadButton_SearchModpackConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="RadButton_SearchModpackConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAMhJREFUOE9j iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAMhJREFUOE9j

View File

@@ -1,5 +1,7 @@
Imports System.IO Imports System.IO
Imports ModpackUpdater.GitLab
Imports ModpackUpdater.Manager Imports ModpackUpdater.Manager
Imports ModpackUpdater.Model Imports ModpackUpdater.Model
@@ -70,10 +72,17 @@ Public Class Form1
Private Sub LoadUpdateConfigFile(filePath As String) Private Sub LoadUpdateConfigFile(filePath As String)
RadTextBoxControl_ModpackConfig.Text = filePath RadTextBoxControl_ModpackConfig.Text = filePath
Try
If IsUpdateConfigLoaded() Then If IsUpdateConfigLoaded() Then
updateConfig = UpdateConfig.LoadFromFile(filePath) If filePath.StartsWith("http") Then
End If updateConfig = UpdateConfigExt.LoadFromSnippet(filePath)
Else
updateConfig = UpdateConfig.LoadFromFile(filePath)
End If
End If
Catch ex As Exception
RadTextBoxControl_ModpackConfig.Text = String.Empty
End Try
If IsMinecaftProfileLoaded() Then If IsMinecaftProfileLoaded() Then
RadButton_CheckForUpdates.PerformClick() RadButton_CheckForUpdates.PerformClick()
@@ -93,7 +102,7 @@ Public Class Form1
Try Try
lastUpdateCheckResult = Await updater.CheckForUpdates(Not AppConfig.Instance.AllowRemoveLocalFiles) lastUpdateCheckResult = Await updater.CheckForUpdates(Not AppConfig.Instance.AllowRemoveLocalFiles)
Catch Catch ex As Exception
SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px) SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px)
Finally Finally
End Try End Try
@@ -144,14 +153,22 @@ Public Class Form1
End Sub End Sub
Private Sub ButtonX_SearchUpdateConfig_Click(sender As Object, e As EventArgs) Handles RadButton_SearchModpackConfig.Click Private Sub ButtonX_SearchUpdateConfig_Click(sender As Object, e As EventArgs) Handles RadButton_SearchModpackConfig.Click
Dim ofd As New RadOpenFileDialog Dim ofd As New RadOpenFileDialog With {
ofd.Filter = FiledialogFilters.JSON_Display & "|" & FiledialogFilters.JSON_Filter .Filter = FiledialogFilters.JSON_Display & "|" & FiledialogFilters.JSON_Filter
}
If ofd.ShowDialog(Me) = DialogResult.OK Then If ofd.ShowDialog(Me) = DialogResult.OK Then
LoadUpdateConfigFile(ofd.FileName) LoadUpdateConfigFile(ofd.FileName)
End If End If
End Sub End Sub
Private Sub RadButton_PasteModpackConfig_Click(sender As Object, e As EventArgs) Handles RadButton_PasteModpackConfig.Click
Dim text = Clipboard.GetText
If text.StartsWith("http") Then
LoadUpdateConfigFile(text)
End If
End Sub
Private Sub ButtonX_EditUpdateConfig_Click(sender As Object, e As EventArgs) Handles RadButton_EditModpackConfig.Click Private Sub ButtonX_EditUpdateConfig_Click(sender As Object, e As EventArgs) Handles RadButton_EditModpackConfig.Click
Dim frm As New FormSettings(updateConfig) Dim frm As New FormSettings(updateConfig)
frm.ShowDialog(Me) frm.ShowDialog(Me)
@@ -183,9 +200,7 @@ Public Class Form1
If Directory.Exists(AppConfig.Instance.LastMinecraftProfilePath) Then If Directory.Exists(AppConfig.Instance.LastMinecraftProfilePath) Then
LoadMinecraftProfile(AppConfig.Instance.LastMinecraftProfilePath) LoadMinecraftProfile(AppConfig.Instance.LastMinecraftProfilePath)
End If End If
If File.Exists(AppConfig.Instance.LastConfigFilePath) Then LoadUpdateConfigFile(AppConfig.Instance.LastConfigFilePath)
LoadUpdateConfigFile(AppConfig.Instance.LastConfigFilePath)
End If
End Sub End Sub
Private Async Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown Private Async Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
@@ -196,4 +211,5 @@ Public Class Form1
Application.Restart() Application.Restart()
End If End If
End Sub End Sub
End Class End Class

View File

@@ -78,6 +78,7 @@
<PackageReference Include="UI.for.WinForms.Common" Version="2024.2.514" /> <PackageReference Include="UI.for.WinForms.Common" Version="2024.2.514" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\ModpackUpdater.GitLab\ModpackUpdater.GitLab.vbproj" />
<ProjectReference Include="..\ModpackUpdater.Manager\ModpackUpdater.Manager.vbproj" /> <ProjectReference Include="..\ModpackUpdater.Manager\ModpackUpdater.Manager.vbproj" />
<ProjectReference Include="..\ModpackUpdater.Model\ModpackUpdater.Model.vbproj" /> <ProjectReference Include="..\ModpackUpdater.Model\ModpackUpdater.Model.vbproj" />
</ItemGroup> </ItemGroup>