Option Strict On Imports Microsoft.Win32 Imports System.Net Imports System.IO Imports System.Text Imports System.Threading Imports MetroFramework.Forms Imports MetroFramework Imports MetroFramework.Components Imports System.Text.RegularExpressions Public Class Einstellungen Inherits MetroForm Dim Manager As MetroStyleManager = Main.Manager Dim LastVersionString As String = "v3.8-Beta" Public CR_SoftSubsTemp As New List(Of String) Dim TempCheckSubMod1 As Boolean = False Dim TempVTTStyle As Boolean = False Dim TempMultiDL As Boolean = False Private Sub Einstellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load Label6.Text = "You have: v" + Application.ProductVersion.ToString '+ " WebView2_Test" BackgroundWorker1.RunWorkerAsync() DD_Update.SelectedIndex = My.Settings.UpdateMode 'CR_Anime_Folge = CR_Name_Staffel0_Folge1(1) 'If GitHubLastTag1(0) CR_SoftSubsTemp.AddRange(Main.SoftSubs) Manager.Owner = Me Me.StyleManager = Manager CB_HideQueue.Checked = My.Settings.HiddenQueue CB_OverrideDub.Checked = My.Settings.OverrideDub CB_Cap.Checked = My.Settings.Captions CB_Mod1.Checked = My.Settings.SubtitleMod1 CB_vttStyle.Checked = My.Settings.vttStyleRemove TempTB.Text = Main.TempFolder LeadingZeroDD.SelectedIndex = Main.LeadingZero CB_Ignore.SelectedIndex = Main.IgnoreSeason CB_HideSF.SelectedIndex = Main.HideFLInt If Main.IncludeLangName = True Then CB_SoftSubSettings.SelectedIndex = 1 Else CB_SoftSubSettings.SelectedIndex = 0 End If If Main.LangNameType = 1 Then LangNameType_DD.SelectedIndex = 1 ElseIf Main.LangNameType = 2 Then LangNameType_DD.SelectedIndex = 2 Else LangNameType_DD.SelectedIndex = 0 End If If Main.KodiNaming = True Then CB_Kodi.Checked = True End If If Main.DubMode = True Then DubMode.Checked = True End If If Main.CR_Chapters = True Then ChB_Chapters.Checked = True End If If Main.Curl_insecure = True Then Chb_Ign_tls.Checked = True End If If Main.DarkModeValue = True Then DarkMode.Checked = True GroupBoxColor(Color.FromArgb(150, 150, 150)) pictureBox1.Image = Main.CloseImg Else GroupBoxColor(Color.FromArgb(0, 0, 0)) DarkMode.Checked = False End If TabControl1.SelectedIndex = 0 #Region "sof subs" CR_SoftSubDefault.SelectedIndex = 0 For i As Integer = 1 To Main.LangValueEnum.Count - 2 ' index 0 = 'null' | last index = jp If Main.SoftSubs.Contains(Main.LangValueEnum(i).CR_Value) Then CR_SoftSubDefault.Items.Add(Main.LangValueEnum(i).DisplayText) End If Next CR_SoftSubs.SelectedIndex = 0 #End Region Me.Location = New Point(CInt(Main.Location.X + Main.Width / 2 - Me.Width / 2), CInt(Main.Location.Y + Main.Height / 2 - Me.Height / 2)) Try Me.Icon = My.Resources.icon Catch ex As Exception End Try If Main.HybridMode = True And Main.KeepCache = True Then DD_DLMode.SelectedIndex = 2 ElseIf Main.HybridMode = True Then DD_DLMode.SelectedIndex = 1 Else DD_DLMode.SelectedIndex = 0 End If If Main.VideoFormat = ".mkv" Then CB_Format.SelectedItem = "MKV" ElseIf Main.VideoFormat = ".aac" Then CB_Format.SelectedItem = "AAC (Audio only)" Else CB_Format.SelectedItem = "MP4" End If Try GB_Resolution.Text = Main.GB_Resolution_Text GB_SubLanguage.Text = Main.GB_SubLanguage_Text DL_Count_simultaneous.Text = Main.DL_Count_simultaneousText Catch ex As Exception End Try If Main.Reso = 1080 Then A1080p.Checked = True ElseIf Main.Reso = 720 Then A720p.Checked = True ElseIf Main.Reso = 480 Then A480p.Checked = True ElseIf Main.Reso = 360 Then A360p.Checked = True ElseIf Main.Reso = 240 Then A240p.Checked = True End If CB_CR_Harsubs.Items.Clear() For i As Integer = 0 To Main.LangValueEnum.Count - 2 CB_CR_Harsubs.Items.Add(Main.LangValueEnum(i).DisplayText) If Main.LangValueEnum(i).CR_Value = Main.SubSprache.CR_Value Then 'MsgBox(CB_CR_Harsubs.Items.Count.ToString) 'MsgBox(i.ToString) CB_CR_Harsubs.SelectedIndex = i 'Exit For End If Next CB_CR_Audio.Items.Clear() For i As Integer = 1 To Main.LangValueEnum.Count - 1 CB_CR_Audio.Items.Add(Main.LangValueEnum(i).DisplayText) If Main.LangValueEnum(i).CR_Value = Main.DubSprache.CR_Value Then CB_CR_Audio.SelectedIndex = i - 1 End If Next DD_Season_Prefix.Text = Main.Season_Prefix DD_Episode_Prefix.Text = Main.Episode_Prefix NumericUpDown2.Value = Main.ErrorTolerance NumericUpDown1.Value = Main.MaxDL Try If CBool(InStr(Main.ffmpeg_command, "-c copy")) Then FFMPEG_CommandP1.Text = "-c copy" FFMPEG_CommandP2.Enabled = False FFMPEG_CommandP3.Enabled = False FFMPEG_CommandP4.Text = "-c:a copy -bsf:a aac_adtstoasc" ElseIf CBool(InStr(Main.ffmpeg_command, "-c:a copy ")) Then Dim ffmpegDisplayCurrent As String() = Main.ffmpeg_command.Split(New String() {" "}, System.StringSplitOptions.RemoveEmptyEntries) If ffmpegDisplayCurrent.Count > 8 Then FFMPEG_CommandP1.Text = ffmpegDisplayCurrent(0) + " " + ffmpegDisplayCurrent(1) FFMPEG_CommandP2.Text = ffmpegDisplayCurrent(2) + " " + ffmpegDisplayCurrent(3) FFMPEG_CommandP3.Text = ffmpegDisplayCurrent(4) + " " + ffmpegDisplayCurrent(5) FFMPEG_CommandP4.Text = "-c:a copy -bsf:a aac_adtstoasc" Else FFMPEG_CommandP1.Text = ffmpegDisplayCurrent(0) + " " + ffmpegDisplayCurrent(1) FFMPEG_CommandP2.Text = "[no Preset]" FFMPEG_CommandP3.Text = ffmpegDisplayCurrent(2) + " " + ffmpegDisplayCurrent(3) FFMPEG_CommandP4.Text = "-c:a copy -bsf:a aac_adtstoasc" End If Else Dim ffmpegDisplayCurrent As String() = Main.ffmpeg_command.Split(New String() {" "}, System.StringSplitOptions.RemoveEmptyEntries) FFMPEG_CommandP1.Text = ffmpegDisplayCurrent(0) + " " + ffmpegDisplayCurrent(1) FFMPEG_CommandP2.Text = ffmpegDisplayCurrent(2) + " " + ffmpegDisplayCurrent(3) FFMPEG_CommandP3.Text = ffmpegDisplayCurrent(4) + " " + ffmpegDisplayCurrent(5) FFMPEG_CommandP4.Text = "-c:a copy -bsf:a aac_adtstoasc" End If If FFMPEG_CommandP1.Text = "-c:v libsvtav1" And FFMPEG_CommandP2.Text = "[no Preset]" Then FFMPEG_CommandP2.Enabled = False FFMPEG_CommandP3.Enabled = True End If Catch ex As Exception MsgBox("Error processing ffmpeg command", MsgBoxStyle.Information) End Try ListViewAdd_True.Checked = Main.UseQueue If Main.StartServer = 0 Then http_support.Text = "add-on support disabled" Else http_support.Text = Main.StartServer.ToString End If If Main.DefaultSubCR = "de-DE" Then CR_SoftSubDefault.SelectedItem = "Deutsch" ElseIf Main.DefaultSubCR = "en-US" Then CR_SoftSubDefault.SelectedItem = "English" ElseIf Main.DefaultSubCR = "pt-BR" Then CR_SoftSubDefault.SelectedItem = "Português (Brasil)" ElseIf Main.DefaultSubCR = "es-419" Then CR_SoftSubDefault.SelectedItem = "Español (LA)" ElseIf Main.DefaultSubCR = "fr-FR" Then CR_SoftSubDefault.SelectedItem = "Français (France)" ElseIf Main.DefaultSubCR = "ar-SA" Then CR_SoftSubDefault.SelectedItem = "العربية (Arabic)" ElseIf Main.DefaultSubCR = "ru-RU" Then CR_SoftSubDefault.SelectedItem = "Русский (Russian)" ElseIf Main.DefaultSubCR = "it-IT" Then CR_SoftSubDefault.SelectedItem = "Italiano (Italian)" ElseIf Main.DefaultSubCR = "es-ES" Then CR_SoftSubDefault.SelectedItem = "Español (España)" Else CR_SoftSubDefault.SelectedItem = "[Disabled]" End If Dim NameParts As String() = Main.NameBuilder.Split(New String() {";"}, System.StringSplitOptions.RemoveEmptyEntries) For i As Integer = 0 To NameParts.Count - 1 If NameParts(i) = "AnimeTitle" Then CB_Anime.Checked = True ElseIf NameParts(i) = "Season" Then CB_Season.Checked = True ElseIf NameParts(i) = "EpisodeNR" Then CB_EpisodeNR.Checked = True ElseIf NameParts(i) = "EpisodeName" Then CB_EpisodeName.Checked = True ElseIf NameParts(i) = "AnimeDub" Then CB_AnimeDub.Checked = True End If Next End Sub Private Sub Btn_Save_Click(sender As Object, e As EventArgs) Handles Btn_Save.Click Main.LeadingZero = LeadingZeroDD.SelectedIndex My.Settings.LeadingZero = LeadingZeroDD.SelectedIndex My.Settings.OverrideDub = CB_OverrideDub.Checked My.Settings.Captions = CB_Cap.Checked My.Settings.UpdateMode = DD_Update.SelectedIndex If http_support.Text = "add-on support disabled" Then My.Settings.ServerPort = 0 Main.StartServer = CInt(False) Else Dim Port As Integer = 0 Try Port = CInt(http_support.Text) My.Settings.ServerPort = Port Catch ex As Exception MsgBox("The add-on support Port can only be numbers!", MsgBoxStyle.Exclamation) 'Exit Sub End Try If Main.StartServer = Port Then Else MsgBox("The add-on support needs a restart of the downloader.", MsgBoxStyle.Information) End If End If Main.HideFLInt = CB_HideSF.SelectedIndex My.Settings.HideSF = CB_HideSF.SelectedIndex Main.IgnoreSeason = CB_Ignore.SelectedIndex My.Settings.IgnoreSeason = CB_Ignore.SelectedIndex My.Settings.SubtitleMod1 = CB_Mod1.Checked My.Settings.vttStyleRemove = CB_vttStyle.Checked If DubMode.Checked = True Then Main.DubMode = True My.Settings.DubMode = True Else Main.DubMode = False My.Settings.DubMode = False End If If ChB_Chapters.Checked = True Then Main.CR_Chapters = True My.Settings.CR_Chapters = True Else Main.CR_Chapters = False My.Settings.CR_Chapters = False End If If Chb_Ign_tls.Checked = True Then Main.Curl_insecure = True My.Settings.Curl_insecure = True Else Main.Curl_insecure = False My.Settings.Curl_insecure = False End If If CB_Kodi.Checked = True Then Main.KodiNaming = True My.Settings.KodiSupport = True Else Main.KodiNaming = False My.Settings.KodiSupport = False End If ' MsgBox(Name_season.Text) If DD_Season_Prefix.Text IsNot "[default season prefix]" Then Main.Season_Prefix = DD_Season_Prefix.Text My.Settings.Prefix_S = Main.Season_Prefix End If If DD_Episode_Prefix.Text IsNot "[default episode prefix]" Then Main.Episode_Prefix = DD_Episode_Prefix.Text My.Settings.Prefix_E = Main.Episode_Prefix End If If A1080p.Checked Then Main.Reso = 1080 My.Settings.Reso = Main.Reso ElseIf A720p.Checked Then Main.Reso = 720 My.Settings.Reso = Main.Reso ElseIf A360p.Checked Then Main.Reso = 360 My.Settings.Reso = Main.Reso ElseIf A480p.Checked Then Main.Reso = 480 My.Settings.Reso = Main.Reso ElseIf A240p.Checked Then Main.Reso = 240 My.Settings.Reso = Main.Reso End If For i As Integer = 0 To Main.LangValueEnum.Count - 1 If CB_CR_Harsubs.SelectedItem.ToString = Main.LangValueEnum(i).DisplayText Then Main.SubSprache = Main.LangValueEnum(i) My.Settings.Subtitle = Main.SubSprache.CR_Value 'MsgBox(Main.LangValueEnum(i).Name) 'MsgBox(Main.LangValueEnum(i).CR_Value) Exit For End If Next For i As Integer = 0 To Main.LangValueEnum.Count - 1 If CB_CR_Audio.SelectedItem.ToString = Main.LangValueEnum(i).DisplayText Then Main.DubSprache = Main.LangValueEnum(i) My.Settings.CR_Dub = Main.DubSprache.CR_Value Exit For End If Next If CR_SoftSubDefault.SelectedItem.ToString = "English" Then Main.DefaultSubCR = "en-US" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Deutsch" Then Main.DefaultSubCR = "de-DE" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Português (Brasil)" Then Main.DefaultSubCR = "pt-BR" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Español (LA)" Then Main.DefaultSubCR = "es-419" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Français (France)" Then Main.DefaultSubCR = "fr-FR" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "العربية (Arabic)" Then Main.DefaultSubCR = "ar-SA" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Русский (Russian)" Then Main.DefaultSubCR = "ru-RU" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Italiano (Italian)" Then Main.DefaultSubCR = "it-IT" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Español (España)" Then Main.DefaultSubCR = "es-ES" My.Settings.DefaultSubCR = Main.DefaultSubCR ElseIf CR_SoftSubDefault.SelectedItem.ToString = "[Disabled]" Then Main.DefaultSubCR = "None" My.Settings.DefaultSubCR = Main.DefaultSubCR End If Main.NameBuilder = TB_NameString.Text My.Settings.NameTemplate = Main.NameBuilder If CB_Format.Text = "MKV" Then Main.VideoFormat = ".mkv" My.Settings.VideoFormat = Main.VideoFormat ElseIf CB_Format.Text = "AAC (Audio only)" Then Main.VideoFormat = ".aac" My.Settings.VideoFormat = Main.VideoFormat Else Main.VideoFormat = ".mp4" My.Settings.VideoFormat = Main.VideoFormat End If If CB_Merge.SelectedIndex > 0 Then Main.MergeSubs = True Main.MergeSubsFormat = CB_Merge.SelectedItem.ToString My.Settings.MergeSubs = Main.MergeSubsFormat Else Main.MergeSubsFormat = CB_Merge.SelectedItem.ToString Main.MergeSubs = False My.Settings.MergeSubs = Main.MergeSubsFormat End If If DD_DLMode.SelectedIndex = 2 Then Main.HybridMode = True Main.KeepCache = True My.Settings.HybridMode = Main.HybridMode ElseIf DD_DLMode.SelectedIndex = 1 Then Main.HybridMode = True Main.KeepCache = False My.Settings.HybridMode = Main.HybridMode Else Main.HybridMode = False Main.KeepCache = False My.Settings.HybridMode = Main.HybridMode End If My.Settings.Keep_Cache = Main.KeepCache Dim ffpmeg_cmd As String = Nothing If FFMPEG_CommandP1.Text = "-c copy" Then ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP4.Text ElseIf FFMPEG_CommandP2.Text = "[no Preset]" Then ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP3.Text + " " + FFMPEG_CommandP4.Text Else ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP2.Text + " " + FFMPEG_CommandP3.Text + " " + FFMPEG_CommandP4.Text End If If Main.ffmpeg_command = My.Settings.ffmpeg_command_override Then 'override should not get overwritten Else Main.ffmpeg_command = ffpmeg_cmd My.Settings.ffmpeg_command = Main.ffmpeg_command End If If CBool(InStr(FFMPEG_CommandP1.Text, "nvenc")) = True And CBool(Main.VideoFormat = ".aac") = False Then If NumericUpDown1.Value > 2 Then NumericUpDown1.Value = 2 End If ElseIf CBool(InStr(FFMPEG_CommandP1.Text, "libx26")) = True And CBool(Main.VideoFormat = ".aac") = False Then If NumericUpDown1.Value > 1 Then NumericUpDown1.Value = 1 End If End If Main.MaxDL = CInt(NumericUpDown1.Value) My.Settings.SL_DL = Main.MaxDL Main.ErrorTolerance = CInt(NumericUpDown2.Value) My.Settings.ErrorTolerance = Main.ErrorTolerance Main.UseQueue = ListViewAdd_True.Checked My.Settings.QueueMode = Main.UseQueue My.Settings.HiddenQueue = CB_HideQueue.Checked Main.SoftSubs.Clear() Main.SoftSubs.AddRange(CR_SoftSubsTemp) Dim SaveString As String = Nothing For ii As Integer = 0 To Main.SoftSubs.Count - 1 If SaveString = Nothing Then SaveString = Main.SoftSubs(ii) Else SaveString = SaveString + "," + Main.SoftSubs(ii) End If Next If SaveString = Nothing Then SaveString = "None" End If My.Settings.AddedSubs = SaveString If CB_SoftSubSettings.SelectedIndex = 0 Then Main.IncludeLangName = False My.Settings.IncludeLangName = Main.IncludeLangName Else Main.IncludeLangName = True My.Settings.IncludeLangName = Main.IncludeLangName End If If LangNameType_DD.SelectedIndex = 1 Then Main.LangNameType = 1 My.Settings.LangNameType = Main.LangNameType ElseIf LangNameType_DD.SelectedIndex = 2 Then Main.LangNameType = 2 My.Settings.LangNameType = Main.LangNameType Else Main.LangNameType = 0 My.Settings.LangNameType = Main.LangNameType End If My.Settings.Save() Me.Close() End Sub Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles pictureBox1.Click Me.Close() End Sub #Region "UI" Private Sub Btn_Close_MouseEnter(sender As Object, e As EventArgs) Handles pictureBox1.MouseEnter pictureBox1.Image = My.Resources.main_del End Sub Private Sub Btn_Close_MouseLeave(sender As Object, e As EventArgs) Handles pictureBox1.MouseLeave pictureBox1.Image = Main.CloseImg End Sub Private Sub Btn_Save_MouseEnter(sender As Object, e As EventArgs) Handles Btn_Save.MouseEnter, Btn_Save.GotFocus Btn_Save.Image = My.Resources.crdSettings_Button_SafeExit_hover End Sub Private Sub Btn_Save_MouseLeave(sender As Object, e As EventArgs) Handles Btn_Save.MouseLeave, Btn_Save.LostFocus Btn_Save.Image = My.Resources.crdSettings_Button_SafeExit End Sub Private Sub ComboBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles CB_CR_Harsubs.DrawItem Dim CB As ComboBox = CType(sender, ComboBox) CB.BackColor = Color.White If e.Index >= 0 Then Using st As New StringFormat With {.Alignment = StringAlignment.Center} ' e.DrawBackground() ' e.DrawFocusRectangle() e.Graphics.FillRectangle(SystemBrushes.ControlLightLight, e.Bounds) e.Graphics.DrawString(CB.Items(e.Index).ToString, e.Font, Brushes.Black, e.Bounds, st) End Using End If End Sub Private Sub ListC1_Click(sender As Object, e As EventArgs) Handles copy.Click, nv_h264.Click, nv_hevc.Click, nv_AV1.Click, CPU_h264.Click, CPU_h265.Click, CPU_AV1.Click, AMD_h264.Click, AMD_hevc.Click, AMD_AV1.Click, Intel_h264.Click, Intel_hevc.Click, Intel_AV1.Click Dim Button As ToolStripMenuItem = CType(sender, ToolStripMenuItem) If CBool(InStr(Button.Text, "av1")) Then If MessageBox.Show("The inculded ffmpeg version does not support any AV1 encoders." + vbNewLine + "The 'Help' button gets you to the ffmpeg download page.", "AV1 support", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 0, "https://ffmpeg.org/download.html", "") = DialogResult.Cancel Then Exit Sub End If End If If Button.Text = "-c copy" Then FFMPEG_CommandP1.Text = "-c copy" FFMPEG_CommandP2.Enabled = False FFMPEG_CommandP3.Enabled = False ElseIf Button.Text = "-c:v libsvtav1" Then FFMPEG_CommandP1.Text = Button.Text FFMPEG_CommandP2.Text = "[no Preset]" FFMPEG_CommandP2.Enabled = False FFMPEG_CommandP3.Enabled = True Else FFMPEG_CommandP1.Text = Button.Text FFMPEG_CommandP2.Enabled = True FFMPEG_CommandP3.Enabled = True End If End Sub Private Sub ListP1_Click(sender As Object, e As EventArgs) Handles ListP1.Click, ListP2.Click, ListP3.Click Dim Button As ToolStripMenuItem = CType(sender, ToolStripMenuItem) FFMPEG_CommandP2.Text = Button.Text FFMPEG_CommandP2.Enabled = True FFMPEG_CommandP3.Enabled = True End Sub Private Sub ListBit1_Click(sender As Object, e As EventArgs) Handles ListBit_7000.Click, ListBit_6500.Click, ListBit_6000.Click, ListBit_5500.Click, ListBit_5000.Click, ListBit_4500.Click, ListBit_4000.Click, ListBit_3500.Click, ListBit_3000.Click, ListBit_2500.Click, ListBit_2000.Click, ListBit_1500.Click, ListBit_1000.Click Dim Button As ToolStripMenuItem = CType(sender, ToolStripMenuItem) FFMPEG_CommandP3.Text = Button.Text FFMPEG_CommandP2.Enabled = True FFMPEG_CommandP3.Enabled = True End Sub Sub GroupBoxColor(ByVal color As Color) NumericUpDown1.ForeColor = color NumericUpDown2.ForeColor = color FFMPEG_CommandP1.ForeColor = color FFMPEG_CommandP2.ForeColor = color FFMPEG_CommandP3.ForeColor = color FFMPEG_CommandP4.ForeColor = color SoftSubs.ForeColor = color GB_SubLanguage.ForeColor = color DL_Count_simultaneous.ForeColor = color GB_Resolution.ForeColor = color GB_Filename_Pre.ForeColor = color GroupBox2.ForeColor = color GroupBox3.ForeColor = color GroupBox4.ForeColor = color GroupBox5.ForeColor = color GroupBox6.ForeColor = color GroupBox12.ForeColor = color GroupBox14.ForeColor = color GroupBox16.ForeColor = color GroupBox17.ForeColor = color GroupBox18.ForeColor = color GroupBox19.ForeColor = color GroupBox20.ForeColor = color GroupBox21.ForeColor = color GroupBox22.ForeColor = color GroupBox23.ForeColor = color End Sub Private Sub DarkMode_CheckedChanged(sender As Object, e As EventArgs) Handles DarkMode.CheckedChanged If DarkMode.Checked = True Then My.Settings.DarkModeValue = True Manager.Theme = MetroThemeStyle.Dark GroupBoxColor(Color.FromArgb(150, 150, 150)) NumericUpDown1.BackColor = Color.FromArgb(17, 17, 17) NumericUpDown2.BackColor = Color.FromArgb(17, 17, 17) Main.DarkMode() Main.DarkModeValue = True pictureBox1.Image = Main.CloseImg Else Main.DarkModeValue = False My.Settings.DarkModeValue = False Manager.Theme = MetroThemeStyle.Light Main.LightMode() GroupBoxColor(Color.FromArgb(0, 0, 0)) NumericUpDown1.BackColor = Color.FromArgb(243, 243, 243) NumericUpDown2.BackColor = Color.FromArgb(243, 243, 243) pictureBox1.Image = Main.CloseImg End If End Sub Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Try Dim client0 As New WebClient client0.Encoding = Encoding.UTF8 client0.Headers.Add(My.Settings.User_Agend.Replace(Chr(34), "")) Dim str0 As String = client0.DownloadString("https://api.github.com/repos/hama3254/Crunchyroll-Downloader-v3.0/releases") Dim GitHubLastIsPre() As String = str0.Split(New String() {Chr(34) + "prerelease" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) Dim LastNonPreRelase As Integer = 0 For i As Integer = 1 To GitHubLastIsPre.Count - 1 Dim GitHubLastIsPre1() As String = GitHubLastIsPre(i).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) If GitHubLastIsPre1(0) = "false" Then LastNonPreRelase = i Exit For End If Next Dim GitHubLastTag() As String = str0.Split(New String() {Chr(34) + "tag_name" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) Dim GitHubLastTag1() As String = GitHubLastTag(LastNonPreRelase).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) LastVersionString = GitHubLastTag1(0) 'Debug.WriteLine(GitHubLastTag1(0)) Catch ex As Exception Debug.WriteLine(ex.ToString) End Try End Sub Private Sub MetroLink1_Click(sender As Object, e As EventArgs) Process.Start("https://github.com/hama3254/Crunchyroll-Downloader-v3.0/discussions/276") End Sub Private Sub TabPage7_Enter(sender As Object, e As EventArgs) Handles TabPage7.Enter LastVersion.Text = "last release: " + LastVersionString End Sub Private Sub CB_Format_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CB_Format.SelectedIndexChanged If CB_Format.Text = "AAC (Audio only)" Then CB_Merge.Items.Clear() CB_Merge.Items.Add("[merge disabled]") CB_Merge.SelectedIndex = 0 CB_Merge.Enabled = False ElseIf CB_Format.Text = "MP4" Then CB_Merge.Enabled = True CB_Merge.Items.Clear() CB_Merge.Items.Add("[merge disabled]") CB_Merge.Items.Add("mov_text") CB_Merge.SelectedIndex = 0 'CB_Merge.Items.Add("srt") CB_Merge.SelectedItem = Main.MergeSubsFormat ElseIf CB_Format.Text = "MKV" Then CB_Merge.Enabled = True CB_Merge.Items.Clear() CB_Merge.Items.Add("[merge disabled]") CB_Merge.Items.Add("copy") CB_Merge.Items.Add("srt") CB_Merge.SelectedIndex = 0 CB_Merge.SelectedItem = Main.MergeSubsFormat End If End Sub Private Sub MergeMP4_CheckedChanged(sender As Object, e As EventArgs) If CB_Format.Text = "AAC (Audio only)" Then If CB_Merge.SelectedIndex > 0 Then MsgBox("Merged subs are not avalible with audio only!", MsgBoxStyle.Information) End If CB_Merge.SelectedIndex = 0 End If End Sub Private Sub DD_DLMode_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DD_DLMode.SelectedIndexChanged If DD_DLMode.SelectedIndex > 0 Then TempTB.Enabled = True Else TempTB.Enabled = False End If If (CB_Merge.Text = "[merge disabled]") = False And DD_DLMode.Text = "Default - ffmpeg" Then CB_Mod1.Enabled = False CB_Mod1.Checked = False CB_vttStyle.Enabled = False CB_vttStyle.Checked = False ElseIf (CB_Merge.Text = "[merge disabled]") = True And DD_DLMode.Text = "Default - ffmpeg" Then CB_Mod1.Enabled = True CB_Mod1.Checked = TempCheckSubMod1 CB_vttStyle.Enabled = False CB_vttStyle.Checked = False ElseIf (DD_DLMode.Text = "Default - ffmpeg") = False Then CB_Mod1.Enabled = True CB_Mod1.Checked = TempCheckSubMod1 CB_vttStyle.Enabled = True CB_vttStyle.Checked = TempVTTStyle End If End Sub Private Sub TempTB_Click(sender As Object, e As EventArgs) Handles TempTB.Click Dim FolderBrowserDialog1 As New FolderBrowserDialog() FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then Main.TempFolder = FolderBrowserDialog1.SelectedPath TempTB.Text = FolderBrowserDialog1.SelectedPath My.Settings.TempFolder = Main.TempFolder End If End Sub #Region "Build Name String" Private Sub CB_Anime_CheckedChanged(sender As Object, e As EventArgs) Handles CB_Anime.CheckedChanged, CB_Season.CheckedChanged, CB_EpisodeNR.CheckedChanged, CB_EpisodeName.CheckedChanged, CB_AnimeDub.CheckedChanged, CB_Kodi.CheckedChanged If CB_Anime.Checked = True And CBool(InStr(TB_NameString.Text, "AnimeTitle;")) = False Then TB_NameString.AppendText("AnimeTitle;") ElseIf CB_Anime.Checked = False Then TB_NameString.Text = TB_NameString.Text.Replace("AnimeTitle;", "") End If If CB_Season.Checked = True And CBool(InStr(TB_NameString.Text, "Season;")) = False Then TB_NameString.AppendText("Season;") ElseIf CB_Season.Checked = False Then TB_NameString.Text = TB_NameString.Text.Replace("Season;", "") End If If CB_EpisodeNR.Checked = True And CBool(InStr(TB_NameString.Text, "EpisodeNR;")) = False Then TB_NameString.AppendText("EpisodeNR;") ElseIf CB_EpisodeNR.Checked = False Then TB_NameString.Text = TB_NameString.Text.Replace("EpisodeNR;", "") End If If CB_EpisodeName.Checked = True And CBool(InStr(TB_NameString.Text, "EpisodeName;")) = False Then TB_NameString.AppendText("EpisodeName;") ElseIf CB_EpisodeName.Checked = False Then TB_NameString.Text = TB_NameString.Text.Replace("EpisodeName;", "") End If If CB_AnimeDub.Checked = True And CBool(InStr(TB_NameString.Text, "AnimeDub;")) = False Then TB_NameString.AppendText("AnimeDub;") ElseIf CB_AnimeDub.Checked = False Then TB_NameString.Text = TB_NameString.Text.Replace("AnimeDub;", "") End If End Sub Private Sub DD_Season_Prefix_UserAction(sender As Object, e As EventArgs) Handles DD_Season_Prefix.Click, DD_Season_Prefix.GotFocus If DD_Season_Prefix.Text = Main.Season_PrefixDefault Then DD_Season_Prefix.Text = Nothing End If End Sub Private Sub DD_Season_Prefix_LostFocus(sender As Object, e As EventArgs) Handles DD_Season_Prefix.LostFocus If DD_Season_Prefix.Text = Nothing Then DD_Season_Prefix.Text = Main.Season_PrefixDefault End If End Sub Private Sub DD_Episode_Prefix_UserAction(sender As Object, e As EventArgs) Handles DD_Episode_Prefix.Click, DD_Episode_Prefix.GotFocus If DD_Episode_Prefix.Text = Main.Episode_PrefixDefault Then DD_Episode_Prefix.Text = Nothing End If End Sub Private Sub DD_Episode_Prefix_LostFocus(sender As Object, e As EventArgs) Handles DD_Episode_Prefix.LostFocus If DD_Episode_Prefix.Text = Nothing Then DD_Episode_Prefix.Text = Main.Episode_PrefixDefault End If End Sub Private Sub CR_SoftSubs_Change(sender As Object, e As EventArgs) Handles CR_SoftSubs.Click Dim Popup As New CheckBoxComboBox Popup.Text = "CR Sub selection" Popup.Show() End Sub Private Sub CB_Merge_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CB_Merge.SelectedIndexChanged If (CB_Merge.Text = "[merge disabled]") = False And DD_DLMode.Text = "Default - ffmpeg" Then CB_Mod1.Enabled = False CB_Mod1.Checked = False CB_vttStyle.Enabled = False CB_vttStyle.Checked = False ElseIf (CB_Merge.Text = "[merge disabled]") = True And DD_DLMode.Text = "Default - ffmpeg" Then CB_Mod1.Enabled = True CB_Mod1.Checked = TempCheckSubMod1 CB_vttStyle.Enabled = False CB_vttStyle.Checked = False ElseIf (DD_DLMode.Text = "Default - ffmpeg") = False Then CB_Mod1.Enabled = True CB_Mod1.Checked = TempCheckSubMod1 CB_vttStyle.Enabled = True CB_vttStyle.Checked = TempVTTStyle End If End Sub Private Sub CB_Mod1_CheckedChanged(sender As Object, e As EventArgs) Handles CB_Mod1.CheckedChanged If CB_Mod1.Enabled = True Then TempCheckSubMod1 = CB_Mod1.Checked End If End Sub Private Sub CB_vttStyle_CheckedChanged(sender As Object, e As EventArgs) Handles CB_vttStyle.CheckedChanged If CB_vttStyle.Enabled = True Then TempVTTStyle = CB_vttStyle.Checked End If End Sub Private Sub CB_HideQueue_CheckedChanged(sender As Object, e As EventArgs) Handles CB_HideQueue.CheckedChanged If CB_HideQueue.Checked = True Then TempMultiDL = ListViewAdd_True.Checked ListViewAdd_True.Checked = True ListViewAdd_True.Enabled = False Else ListViewAdd_True.Checked = TempMultiDL ListViewAdd_True.Enabled = True End If End Sub #End Region #End Region End Class