diff --git a/.gitignore b/.gitignore index 0dc8fb8..78c010f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ Crunchyroll Downloader/bin/x86/Debug/Crunchyroll-Downloader-v3.0.zip *.zip *.mp4 *.log +*.key diff --git a/.vs/Crunchyroll Downloader/v15/.suo b/.vs/Crunchyroll Downloader/v15/.suo index 8bb32af..146df34 100644 Binary files a/.vs/Crunchyroll Downloader/v15/.suo and b/.vs/Crunchyroll Downloader/v15/.suo differ diff --git a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide index b42437e..f11f4bc 100644 Binary files a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide and b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm index 368def1..766f517 100644 Binary files a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm and b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal index 7fc3135..9521a62 100644 Binary files a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal and b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal differ diff --git a/Crunchyroll Downloader/Anime_Add.Designer.vb b/Crunchyroll Downloader/Anime_Add.Designer.vb index 860c3e7..139984a 100644 --- a/Crunchyroll Downloader/Anime_Add.Designer.vb +++ b/Crunchyroll Downloader/Anime_Add.Designer.vb @@ -244,8 +244,8 @@ Partial Class Anime_Add Me.groupBox2.Controls.Add(Me.comboBox4) Me.groupBox2.Controls.Add(Me.ComboBox1) Me.groupBox2.Controls.Add(Me.comboBox3) - Me.groupBox2.Controls.Add(Me.PictureBox1) Me.groupBox2.Controls.Add(Me.Add_Display) + Me.groupBox2.Controls.Add(Me.PictureBox1) Me.groupBox2.Location = New System.Drawing.Point(15, 70) Me.groupBox2.Name = "groupBox2" Me.groupBox2.Size = New System.Drawing.Size(720, 280) diff --git a/Crunchyroll Downloader/Anime_Add.vb b/Crunchyroll Downloader/Anime_Add.vb index b3b23d0..0e8a8a8 100644 --- a/Crunchyroll Downloader/Anime_Add.vb +++ b/Crunchyroll Downloader/Anime_Add.vb @@ -188,12 +188,12 @@ Public Class Anime_Add #Region "Funimation url parameter" If CBool(InStr(textBox1.Text, "funimation.com")) Then Main.WebbrowserURL = textBox1.Text - If CBool(InStr(Main.FunimationAPIRegion, "?region=")) And CBool(InStr(textBox1.Text, "/shows/")) Then + 'If CBool(InStr(Main.FunimationAPIRegion, "?region=")) And CBool(InStr(textBox1.Text, "/shows/")) Then - ProcessFunimationJS(textBox1.Text) + 'ProcessFunimationJS(textBox1.Text) - Exit Sub - End If + 'Exit Sub + 'End If If Main.DubFunimation = "Disabled" Then Else @@ -260,9 +260,12 @@ Public Class Anime_Add textBox1.Text = "URL" Else If Main.Grapp_RDY = True Then - GeckoFX.WebBrowser1.Navigate(textBox1.Text) - StatusLabel.Text = "Status: loading ..." + Main.b = False + Debug.WriteLine("Start loading: " + Date.Now) + GeckoFX.WebBrowser1.Navigate(textBox1.Text) + StatusLabel.Text = "Status: loading ...." + End If End If End If @@ -608,6 +611,7 @@ Public Class Anime_Add End Using Catch ex As Exception Debug.WriteLine("error- getting EpisodeJson data") + Debug.WriteLine(ex.ToString) Exit Sub End Try Main.CrBetaMassEpisodes = EpisodeJson @@ -630,22 +634,12 @@ Public Class Anime_Add End If Next - ElseIf main.WebbrowserURL = "funimation.com/js" Then - - 'MsgBox(Main.FunimtaionAPISeasonID.Item(ComboBox1.SelectedIndex)) - + ElseIf Main.WebbrowserURL = "funimation.com/js" Then comboBox3.Items.Clear() comboBox4.Items.Clear() - comboBox3.Enabled = True - comboBox4.Enabled = True comboBox3.Text = Nothing comboBox4.Text = Nothing - 'Dim SeasonSplit() As String = Main.CrBetaMass.Split(New String() {Chr(34) + "id" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - - 'Dim SeasonSplit2() As String = SeasonSplit(ComboBox1.SelectedIndex + 1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - ' - 'https://title-api.prd.funimationsvc.com/v1/seasons/1007609?region=US&deviceType=web Dim EpisodeJsonURL As String = "https://title-api.prd.funimationsvc.com/v1/seasons/" + Main.FunimtaionAPISeasonID.Item(ComboBox1.SelectedIndex) + Main.FunimationAPIRegion @@ -660,22 +654,13 @@ Public Class Anime_Add End Using Catch ex As Exception Debug.WriteLine("error- getting EpisodeJson data") + Debug.WriteLine(ex.ToString) + Main.FunimationJsonBrowser = "EpisodeJson" + GeckoFX.WebBrowser1.Navigate(EpisodeJsonURL) Exit Sub End Try - Main.FunimationEpisodeJSON = EpisodeJson - - - - - Dim EpisodeSplit() As String = EpisodeJson.Split(New String() {Chr(34) + "episodeNumber" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - For i As Integer = 1 To EpisodeSplit.Count - 1 - Dim EpisodeSplit2() As String = EpisodeSplit(i).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - comboBox3.Items.Add("Episode " + EpisodeSplit2(0)) - comboBox4.Items.Add("Episode " + EpisodeSplit2(0)) - Next - - + FillFunimationEpisodes(EpisodeJson) ElseIf AoD_Mode = False Then @@ -736,6 +721,23 @@ Public Class Anime_Add End If End Sub + + Public Sub FillFunimationEpisodes(ByVal EpisodeJson As String) + + Main.FunimationEpisodeJSON = EpisodeJson + + + comboBox3.Enabled = True + comboBox4.Enabled = True + + Dim EpisodeSplit() As String = EpisodeJson.Split(New String() {Chr(34) + "episodeNumber" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + For i As Integer = 1 To EpisodeSplit.Count - 1 + Dim EpisodeSplit2() As String = EpisodeSplit(i).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + comboBox3.Items.Add("Episode " + EpisodeSplit2(0)) + comboBox4.Items.Add("Episode " + EpisodeSplit2(0)) + Next + + End Sub Private Sub PictureBox1_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox1.MouseEnter PictureBox1.Image = My.Resources.add_mass_cancel_hover End Sub diff --git a/Crunchyroll Downloader/ApplicationEvents.vb b/Crunchyroll Downloader/ApplicationEvents.vb index df964a4..7d2b6c8 100644 --- a/Crunchyroll Downloader/ApplicationEvents.vb +++ b/Crunchyroll Downloader/ApplicationEvents.vb @@ -16,7 +16,7 @@ Namespace My Partial Friend Class MyApplication 'Dim UseFirefoxProfile As Boolean = True Protected Overrides Function OnStartup(ByVal eventArgs As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) As Boolean - Dim ProfileDirectory As String = Path.Combine(GetFolderPath(SpecialFolder.ApplicationData), "Mozilla", "Firefox", "Profiles", "CRD") + 'Dim ProfileDirectory As String = Path.Combine(GetFolderPath(SpecialFolder.ApplicationData), "Mozilla", "Firefox", "Profiles", "CRD") 'If UseFirefoxProfile = True Then ' Dim di As New System.IO.DirectoryInfo(Path.Combine(GetFolderPath(SpecialFolder.ApplicationData), "Mozilla", "Firefox", "Profiles")) ' Try @@ -28,15 +28,15 @@ Namespace My ' End Try 'End If 'MsgBox(ProfileDirectory) - If Not Directory.Exists(ProfileDirectory) Then - Directory.CreateDirectory(ProfileDirectory) - End If + 'If Not Directory.Exists(ProfileDirectory) Then + ' Directory.CreateDirectory(ProfileDirectory) + 'End If Try Dim sUserAgent As String = My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "").Replace(Chr(34), "") '"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0" 'sUserAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" - Xpcom.ProfileDirectory = ProfileDirectory + 'Xpcom.ProfileDirectory = ProfileDirectory Xpcom.Initialize("Firefox") 'MsgBox(Xpcom.XulRunnerVersion) diff --git a/Crunchyroll Downloader/CRD_List_Item.resx b/Crunchyroll Downloader/CRD_List_Item.resx index 330d540..bd0375a 100644 --- a/Crunchyroll Downloader/CRD_List_Item.resx +++ b/Crunchyroll Downloader/CRD_List_Item.resx @@ -117,30 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - 19, 12 @@ -150,16 +126,7 @@ 207, 15 - - True - - - True - 364, 15 - - True - \ No newline at end of file diff --git a/Crunchyroll Downloader/CRD_List_Item.vb b/Crunchyroll Downloader/CRD_List_Item.vb index a9e864f..145dd67 100644 --- a/Crunchyroll Downloader/CRD_List_Item.vb +++ b/Crunchyroll Downloader/CRD_List_Item.vb @@ -41,6 +41,8 @@ Public Class CRD_List_Item Dim HybrideLog As String = Nothing Dim Service As String = "CR" Dim ServiceSleep As Integer = 0 + Dim KeepCacheFiles As Boolean = False + Dim NameP2 As String = Nothing Dim LastDate As Date = Date.Now Dim LastSize As Double = 0 @@ -113,12 +115,17 @@ Public Class CRD_List_Item Public Sub SetTheme(ByVal Theme As MetroThemeStyle) MetroStyleManager1.Theme = Theme End Sub + Public Sub SetCache(ByVal value As Boolean) + KeepCacheFiles = value + End Sub + Public Sub SetTolerance(ByVal value As Integer) Item_ErrorTolerance = value End Sub Public Sub SetLabelAnimeTitel(ByVal Text As String) Label_Anime.Text = Text + NameP2 = Text End Sub Public Sub SetLabelResolution(ByVal Text As String) Label_Reso.Text = Text @@ -619,7 +626,10 @@ Public Class CRD_List_Item Thread.Sleep(250) Else Try - System.IO.Directory.Delete(HybridModePath, True) + If KeepCacheFiles = False Then + System.IO.Directory.Delete(HybridModePath, True) + End If + Catch ex As Exception End Try Me.Invoke(New Action(Function() @@ -738,7 +748,9 @@ Public Class CRD_List_Item #Region "v3/v5" Public WithEvents WC_TS As WebClient - Private Function ProcessV3(ByVal url As String, ByVal InputData As String, ByVal Folder As String) As String + Private Function ProcessV3(ByVal url As String, ByVal InputData As String, ByVal Folder As String, ByVal DateiPfad As String, ByVal DL_URL As String) As String + + Debug.WriteLine(Folder) If Not Directory.Exists(Path.GetDirectoryName(Folder)) Then ' Nein! Jetzt erstellen... @@ -751,6 +763,36 @@ Public Class CRD_List_Item End Try End If + + If Not Directory.Exists(Path.GetDirectoryName(Folder) + "\Retry") Then + ' Nein! Jetzt erstellen... + Try + Directory.CreateDirectory(Path.GetDirectoryName(Folder) + "\Retry") + Catch ex As Exception + Debug.WriteLine("folder issue") + Return "Error" + Exit Function + End Try + End If + + Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False) + Using sink As New StreamWriter(Folder + "Retry\retry.m3u8", False, utf8WithoutBom2) + sink.WriteLine(InputData) + End Using + + Me.Invoke(New Action(Function() + Using sink As New StreamWriter(Folder + "Retry\retry.txt", False, utf8WithoutBom2) + sink.WriteLine(DL_URL) + sink.WriteLine(Label_website.Text) + sink.WriteLine(Label_Anime.Text) + sink.WriteLine(Label_Reso.Text) + sink.WriteLine(Label_Hardsub.Text) + sink.WriteLine(DateiPfad) + End Using + PB_Thumbnail.BackgroundImage.Save(Folder + "Retry\retry.jpg") + Return Nothing + End Function)) + Dim LoadedKeys As New List(Of String) LoadedKeys.Add("Nothing") Dim KeyFileCache As String = Nothing @@ -771,7 +813,9 @@ Public Class CRD_List_Item Thread.Sleep(250) Else Try - System.IO.Directory.Delete(HybridModePath, True) + If KeepCacheFiles = False Then + System.IO.Directory.Delete(HybridModePath, True) + End If Catch ex As Exception End Try Me.Invoke(New Action(Function() @@ -787,15 +831,16 @@ Public Class CRD_List_Item Exit Function End If If InStr(textLenght(i), ".ts") Then - Dim File As String = Folder + String.Format("{0:00000}", Count) Dim curi As String = GetFullUri(url, textLenght(i)) - Dim Evaluator = New Thread(Sub() Me.TS_DownloadAsync(curi, File)) - Evaluator.Start() - ThreadList.Add(Evaluator) - m3u8FileContent = m3u8FileContent + File + vbLf + If Not System.IO.File.Exists(Folder + "Retry\" + String.Format("{0:00000}", Count)) Then + Dim Evaluator = New Thread(Sub() Me.TS_DownloadAsync(curi, File)) + Evaluator.Start() + ThreadList.Add(Evaluator) + End If + m3u8FileContent = m3u8FileContent + File + vbLf Dim FragmentsFinised = Count * 100 / FragmentsInt Dim Update = New Thread(Sub() Me.TS_StatusAsync(FragmentsFinised, di, PauseTime)) Update.Start() @@ -825,8 +870,17 @@ Public Class CRD_List_Item Else KeyLine = KeyFileUri(0) + "URI=" + Chr(34) + KeyFileCache + Chr(34) End If + + If KeepCacheFiles = True Then + 'Dim Bytes() As Byte = File.ReadAllBytes(Application.StartupPath + "\" + KeyFile) + 'File.WriteAllBytes(Folder + "\" + KeyFile, Bytes) + Dim Evaluator2 = New Thread(Sub() Me.TS_DownloadAsync(KeyFileUri3, Folder + "\" + KeyFile)) + Evaluator2.Start() + End If End If m3u8FileContent = m3u8FileContent + KeyLine + vbLf + + Else m3u8FileContent = m3u8FileContent + textLenght(i) + vbLf End If @@ -840,6 +894,19 @@ Public Class CRD_List_Item sink.WriteLine(m3u8FileContent) End Using + 'If File.Exists(Folder + "retry.m3u8") Then + ' My.Computer.FileSystem.DeleteFile(Folder + "retry.m3u8") + 'End If + + If KeepCacheFiles = True Then + Using sink As New StreamWriter(Folder + "\index-VLC.m3u8", False, utf8WithoutBom) + m3u8FileContent = m3u8FileContent.Replace(Folder, "file:///" + Folder.Replace("\", "/")) + m3u8FileContent = m3u8FileContent.Replace("URI=" + Chr(34), "URI=" + Chr(34) + "file:///" + Folder.Replace("\", "/")) + sink.WriteLine(m3u8FileContent) + End Using + End If + + Return Folder + "\index.m3u8" End Function @@ -851,12 +918,29 @@ Public Class CRD_List_Item WC_TS = New WebClient WC_TS.DownloadFile(New Uri(DL_URL), DL_Pfad) + If Not CBool(InStr(DL_Pfad, Application.StartupPath)) Then + Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False) + Using sink As New StreamWriter(Path.GetDirectoryName(DL_Pfad) + "\Retry\" + Path.GetFileName(DL_Pfad), False, utf8WithoutBom2) + sink.WriteLine(DL_Pfad) + End Using + End If + + Catch ex As Exception Debug.WriteLine("Download error #1: " + DL_Pfad) Try Dim wc_ts As New WebClient wc_ts.DownloadFile(New Uri(DL_URL), DL_Pfad) + + If Not CBool(InStr(DL_Pfad, Application.StartupPath)) Then + Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False) + Using sink As New StreamWriter(Path.GetDirectoryName(DL_Pfad) + "\Retry\" + Path.GetFileName(DL_Pfad), False, utf8WithoutBom2) + sink.WriteLine(DL_Pfad) + End Using + End If + + Catch ex2 As Exception FailedCount = FailedCount + 1 If Item_ErrorTolerance = 0 Then @@ -874,10 +958,11 @@ Public Class CRD_List_Item End If - Debug.WriteLine("Download error #2: " + DL_Pfad + vbNewLine + ex2.ToString + vbNewLine + DL_URL) + Debug.WriteLine("Download error #2: " + DL_URL + vbNewLine + DL_Pfad + vbNewLine + ex2.ToString + vbNewLine + DL_URL) End Try End Try + End Sub @@ -889,6 +974,11 @@ Public Class CRD_List_Item Dim DL_URL_old As String = DL_URL Dim PauseTime As Integer = 0 Dim Pfad2 As String = Path.GetDirectoryName(DL_Pfad.Replace(Chr(34), "")) + "\" + Folder + "\" + If InStr(DL_Pfad, "CRD-Temp-File-") Then + Pfad2 = DL_Pfad.Replace(Chr(34), "") + "\" + Dim DL_PfadSplit() As String = DL_Pfad.Split(New String() {"CRD-Temp-File-"}, System.StringSplitOptions.RemoveEmptyEntries) + DL_Pfad = Chr(34) + DL_PfadSplit(0) + Filename + Chr(34) + End If Dim di As New IO.DirectoryInfo(Pfad2) Dim m3u8_url As String() = DL_URL.Split(New [Char]() {Chr(34)}) Dim m3u8FFmpeg As String = Nothing @@ -937,7 +1027,11 @@ Public Class CRD_List_Item If InStr(InputData, "#EXT-X-VERSION:3") Or InStr(InputData, "#EXT-X-VERSION:5") Then - ProcessV3(InputURL(0), InputData, Pfad2) + If KeepCacheFiles = True Then + Pfad2 = Path.GetDirectoryName(DL_Pfad.Replace(Chr(34), "")) + "\" + NameP2.Replace(" ", "-") + "\" + End If + + ProcessV3(InputURL(0), InputData, Pfad2, DL_Pfad, DL_URL) DL_URL = DL_URL.Replace("-i " + Chr(34) + InputURL(0), "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "index.m3u8") @@ -1197,7 +1291,9 @@ Public Class CRD_List_Item If HybridMode = True Then Thread.Sleep(5000) Try - System.IO.Directory.Delete(HybridModePath, True) + If KeepCacheFiles = False Then + System.IO.Directory.Delete(HybridModePath, True) + End If Catch ex As Exception End Try End If diff --git a/Crunchyroll Downloader/GeckoFX.Designer.vb b/Crunchyroll Downloader/GeckoFX.Designer.vb index b453dc4..76cdb92 100644 --- a/Crunchyroll Downloader/GeckoFX.Designer.vb +++ b/Crunchyroll Downloader/GeckoFX.Designer.vb @@ -26,7 +26,6 @@ Partial Class GeckoFX Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Button1 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button() - Me.Button3 = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'WebBrowser1 @@ -37,20 +36,20 @@ Partial Class GeckoFX Me.WebBrowser1.Name = "WebBrowser1" Me.WebBrowser1.Size = New System.Drawing.Size(1280, 720) Me.WebBrowser1.TabIndex = 0 - Me.WebBrowser1.UseHttpActivityObserver = True + Me.WebBrowser1.UseHttpActivityObserver = False ' 'TextBox1 ' Me.TextBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.TextBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.TextBox1.Location = New System.Drawing.Point(418, 1) + Me.TextBox1.Location = New System.Drawing.Point(298, 1) Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(859, 26) + Me.TextBox1.Size = New System.Drawing.Size(979, 26) Me.TextBox1.TabIndex = 1 ' 'Button1 ' - Me.Button1.Location = New System.Drawing.Point(316, 1) + Me.Button1.Location = New System.Drawing.Point(196, 1) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(96, 26) Me.Button1.TabIndex = 2 @@ -60,28 +59,18 @@ Partial Class GeckoFX 'Button2 ' Me.Button2.Enabled = False - Me.Button2.Location = New System.Drawing.Point(132, 1) + Me.Button2.Location = New System.Drawing.Point(12, 1) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(178, 26) Me.Button2.TabIndex = 3 Me.Button2.Text = "Start network scan" Me.Button2.UseVisualStyleBackColor = True ' - 'Button3 - ' - Me.Button3.Location = New System.Drawing.Point(2, 2) - Me.Button3.Name = "Button3" - Me.Button3.Size = New System.Drawing.Size(126, 26) - Me.Button3.TabIndex = 4 - Me.Button3.Text = "Funimation" - Me.Button3.UseVisualStyleBackColor = True - ' 'GeckoFX ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1279, 750) - Me.Controls.Add(Me.Button3) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TextBox1) @@ -101,5 +90,4 @@ Partial Class GeckoFX Friend WithEvents TextBox1 As TextBox Friend WithEvents Button1 As Button Friend WithEvents Button2 As Button - Friend WithEvents Button3 As Button End Class diff --git a/Crunchyroll Downloader/GeckoFX.vb b/Crunchyroll Downloader/GeckoFX.vb index 56bf4aa..7e4f6d6 100644 --- a/Crunchyroll Downloader/GeckoFX.vb +++ b/Crunchyroll Downloader/GeckoFX.vb @@ -187,10 +187,27 @@ Public Class GeckoFX t.Start() Else + Main.WebbrowserCookie = WebBrowser1.Document.Cookie Main.Text = "Status: no video found" Anime_Add.StatusLabel.Text = "Status: no video found" End If End If + + ElseIf CBool(InStr(WebBrowser1.Url.ToString, "title-api.prd.funimationsvc.com")) Then + + If Main.FunimationJsonBrowser = "SeasonJson" Then + 'My.Computer.Clipboard.SetText(WebBrowser1.Document.Body.OuterHtml) + Main.GetFunimationJS_Seasons(Nothing, WebBrowser1.Document.Body.OuterHtml.Replace("", "").Replace("", "").Replace("
", "").Replace("
", "")) + Main.FunimationJsonBrowser = Nothing + ElseIf Main.FunimationJsonBrowser = "EpisodeJson" Then + Anime_Add.FillFunimationEpisodes(WebBrowser1.Document.Body.OuterHtml.Replace("", "").Replace("", "").Replace("
", "").Replace("
", "")) + Main.FunimationJsonBrowser = Nothing + ElseIf Main.FunimationJsonBrowser = "v1Json" Then + Main.GetFunimationJS_VideoProxy(Nothing, WebBrowser1.Document.Body.OuterHtml.Replace("", "").Replace("", "").Replace("
", "").Replace("
", "")) + Main.FunimationJsonBrowser = Nothing + End If + + ElseIf CBool(InStr(WebBrowser1.Url.ToString, "anime-on-demand.de")) Then If Main.b = False Then Main.b = True @@ -323,7 +340,8 @@ Public Class GeckoFX Catch ex As Exception End Try - 'MsgBox(WebBrowser1.Document.Cookie) + 'My.Computer.Clipboard.SetText(WebBrowser1.Document.Body.InnerHtml) + End Sub Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown @@ -421,22 +439,6 @@ Public Class GeckoFX 'Debug_Mode.TopMost = False End Sub - Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click - If InStr(WebBrowser1.Url.ToString, "funimation.com") Then - Dim Funimation_List As New List(Of String) - Dim Funimation_list1() As String = WebBrowser1.Document.Body.OuterHtml.Split(New String() {My.Resources.Funimation_Split_1}, System.StringSplitOptions.RemoveEmptyEntries) - - For i As Integer = 1 To Funimation_list1.Count - 1 - Dim Funimation_list2() As String = Funimation_list1(i).Split(New String() {My.Resources.Funimation_Split_2}, System.StringSplitOptions.RemoveEmptyEntries) - Funimation_List.Add("https://www.funimation.com" + Funimation_list2(0)) - Main.ListBoxList.Add("https://www.funimation.com" + Funimation_list2(0)) - Next - MsgBox(Funimation_List.Count.ToString + " episodes added to Download queue") - 'For ii As Integer = 0 To Funimation_List.Count - 1 - ' MsgBox(Funimation_List.Item(ii)) - 'Next - End If - End Sub Private Sub ObserveHttpModifyRequest(sender As Object, e As GeckoObserveHttpModifyRequestEventArgs) Handles WebBrowser1.ObserveHttpModifyRequest @@ -453,7 +455,7 @@ Public Class GeckoFX e.Cancel = True 'Debug.WriteLine(requesturl) Exit Sub - ElseIf requesturl.Contains("ad_") Or requesturl.Contains("ads") Or requesturl.Contains(".swf") Or requesturl.Contains("unsupported") Then + ElseIf requesturl.Contains("ad_") Or requesturl.Contains("ads") Or requesturl.Contains(".swf") Or requesturl.Contains("unsupported") And Not requesturl = WebBrowser1.Url.ToString Then e.Cancel = True 'Debug.WriteLine(requesturl) Exit Sub @@ -480,6 +482,11 @@ Public Class GeckoFX End If If CBool(InStr(requesturl, "https://title-api.prd.funimationsvc.com")) And CBool(InStr(requesturl, "?region=")) Then + Try + Main.WebbrowserCookie = WebBrowser1.Document.Cookie + Catch ex As Exception + End Try + Dim parms As String() = requesturl.Split(New String() {"?region="}, System.StringSplitOptions.RemoveEmptyEntries) Main.FunimationAPIRegion = "?region=" + parms(1) If Main.b = False Then @@ -589,7 +596,7 @@ Public Class GeckoFX End Sub Private Sub WebBrowser1_ConsoleMessage(sender As Object, e As ConsoleMessageEventArgs) Handles WebBrowser1.ConsoleMessage - ' Debug.WriteLine(e.Message) + Debug.WriteLine(e.Message) ' MsgBox(e.Message) End Sub End Class diff --git a/Crunchyroll Downloader/Main.designer.vb b/Crunchyroll Downloader/Main.designer.vb index 46e7872..afd165d 100644 --- a/Crunchyroll Downloader/Main.designer.vb +++ b/Crunchyroll Downloader/Main.designer.vb @@ -41,6 +41,7 @@ Partial Class Main Me.MetroStyleManager1 = New MetroFramework.Components.MetroStyleManager(Me.components) Me.Btn_min = New System.Windows.Forms.PictureBox() Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() + Me.Timer4 = New System.Windows.Forms.Timer(Me.components) CType(Me.Btn_add, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Btn_Close, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Btn_Settings, System.ComponentModel.ISupportInitialize).BeginInit() @@ -157,6 +158,11 @@ Partial Class Main 'BackgroundWorker1 ' ' + 'Timer4 + ' + Me.Timer4.Enabled = True + Me.Timer4.Interval = 2500 + ' 'Main ' Me.ApplyImageInvert = True @@ -207,4 +213,5 @@ Partial Class Main Friend WithEvents MetroStyleManager1 As MetroFramework.Components.MetroStyleManager Private WithEvents Btn_min As PictureBox Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker + Friend WithEvents Timer4 As Timer End Class diff --git a/Crunchyroll Downloader/Main.resx b/Crunchyroll Downloader/Main.resx index a7e4bab..cb6c3ba 100644 --- a/Crunchyroll Downloader/Main.resx +++ b/Crunchyroll Downloader/Main.resx @@ -231,6 +231,12 @@ 8 + + Link + + + 818 + Microsoft Sans Serif, 93pt @@ -261,12 +267,6 @@ 4 - - Link - - - 818 - Stretch @@ -378,6 +378,31 @@ 842, 630 + + None + + + + iVBORw0KGgoAAAANSUhEUgAAABoAAAAhCAYAAADH97ugAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB+QMDQ03N1b5UIAAAAApSURBVEhL7cyxCQAwDASx339pZ4EUcTC4keDa + CwDMqs/abpOXAGBZcgDKSBvlblfsRgAAAABJRU5ErkJggg== + + + + 764, 8 + + + 0, 0, 0, 0 + + + 25, 25 + + + Zoom + + + 71 + Btn_min @@ -450,50 +475,22 @@ System.ComponentModel.BackgroundWorker, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Timer4 + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Main MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - None - - - - iVBORw0KGgoAAAANSUhEUgAAABoAAAAhCAYAAADH97ugAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAAd0SU1FB+QMDQ03N1b5UIAAAAApSURBVEhL7cyxCQAwDASx339pZ4EUcTC4keDa - CwDMqs/abpOXAGBZcgDKSBvlblfsRgAAAABJRU5ErkJggg== - - - - 764, 8 - - - 0, 0, 0, 0 - - - 25, 25 - - - Zoom - - - 71 - - - Btn_min - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - 714, 17 + + 877, 17 + \ No newline at end of file diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb index fa6f497..437c162 100644 --- a/Crunchyroll Downloader/Main.vb +++ b/Crunchyroll Downloader/Main.vb @@ -12,6 +12,7 @@ Imports MetroFramework.Components Imports System.Globalization Imports System.ComponentModel Imports Newtonsoft.Json.Linq +Imports System.Runtime.InteropServices Public Class Main Inherits MetroForm @@ -29,7 +30,7 @@ Public Class Main Public FunimationShowPath As String = Nothing Public FunimationEpisodeJSON As String = Nothing Public FunimtaionAPISeasonID As New List(Of String) - + Public FunimationJsonBrowser As String = Nothing Public Manager As New MetroStyleManager @@ -57,6 +58,7 @@ Public Class Main Public LogBrowserData As Boolean = False Public Thumbnail As String = Nothing Public MergeSubs As Boolean = False + Public KeepCache As Boolean = False Public SubsOnly As Boolean = False Public VideoFormat As String = ".mp4" Public MergeSubsFormat As String = "mov_text" @@ -317,6 +319,19 @@ Public Class Main Public Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByVal dwVolume As Integer) As Integer + + + Public Enum EXECUTION_STATE As UInteger + ES_SYSTEM_REQUIRED = &H1 + ES_DISPLAY_REQUIRED = &H2 + ES_CONTINUOUS = &H80000000UI + End Enum + + + Public Shared Function SetThreadExecutionState(ByVal state As EXECUTION_STATE) As EXECUTION_STATE + End Function + + Public Sub SetSettingsTheme() Einstellungen.Theme = Manager.Theme @@ -443,6 +458,13 @@ Public Class Main Catch ex As Exception + End Try + Try + Dim rkg As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\CRDownloader") + KeepCache = CBool(Integer.Parse(rkg.GetValue("Keep_Cache").ToString)) + + Catch ex As Exception + End Try Try Dim rkg As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\CRDownloader") @@ -612,7 +634,7 @@ Public Class Main BlockList = New List(Of String) BackgroundWorker1.RunWorkerAsync() - + RetryWithCachedFiles() End Sub Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork @@ -648,11 +670,11 @@ Public Class Main End Try With ListView1.Items.Add(0) - ItemConstructor(NameP1, NameP2, Reso, HardSub, SoftSubs, Thumbnail, URL_DL, Pfad_DL, Service) + ItemConstructor(NameKomplett, NameP1, NameP2, Reso, HardSub, SoftSubs, Thumbnail, URL_DL, Pfad_DL, Service) End With End Sub - Public Sub ItemConstructor(ByVal NameP1 As String, ByVal NameP2 As String, ByVal DisplayReso As String, ByVal HardSub As String, ByVal SoftSubs As String, ByVal Thumbnail As Image, ByVal URL_DL As String, ByVal Pfad_DL As String, ByVal Service As String) + Public Sub ItemConstructor(ByVal NameKomplett As String, ByVal NameP1 As String, ByVal NameP2 As String, ByVal DisplayReso As String, ByVal HardSub As String, ByVal SoftSubs As String, ByVal Thumbnail As Image, ByVal URL_DL As String, ByVal Pfad_DL As String, ByVal Service As String) Dim Item As New CRD_List_Item Item.Visible = False @@ -662,6 +684,7 @@ Public Class Main #Region "Set Variables" 'Item.SetUsedMap(UsedMap) 'Item.Setffmpeg_command(ffmpeg_command) + Item.SetCache(KeepCache) Item.SetMergeSubstoMP4(MergeSubs) Item.SetDebug2(Debug2) @@ -693,7 +716,7 @@ Public Class Main If InStr(URL_DL, ".mpd") Then TempHybridMode = False End If - Item.StartDownload(URL_DL, Pfad_DL, Pfad_DL, TempHybridMode) + Item.StartDownload(URL_DL, Pfad_DL, NameKomplett, TempHybridMode) End Sub #Region "Manga DL" Public Sub MangaListItemAdd(ByVal NameP2 As String, ByVal ThumbnialURL As String, ByVal BaseURL As String, ByVal SiteList As List(Of String)) @@ -1346,7 +1369,7 @@ Public Class Main Catch ex As Exception ' Ordner wurde nich erstellt - Pfad2 = Pfad + "\" + CR_FilenName + VideoFormat + Pfad2 = Chr(34) + Pfad + CR_FilenName + VideoFormat + Chr(34) End Try Else Pfad2 = Chr(34) + Pfad2 + CR_FilenName + VideoFormat + Chr(34) @@ -1824,9 +1847,11 @@ Public Class Main SeasonJson = client.DownloadString(JsonUrl) End Using Catch ex As Exception - Debug.WriteLine("error- getting SeasonJson data") + End Try + + Dim ParameterSplit() As String = JsonUrl.Split(New String() {"&locale="}, System.StringSplitOptions.RemoveEmptyEntries) CrBetaMassParameters = ParameterSplit(1) @@ -1900,59 +1925,105 @@ Public Class Main Exit Sub End Try + Dim ser As JObject = JObject.Parse(ObjectJson) + Dim data As List(Of JToken) = ser.Children().ToList + If TextBox2_Text = Nothing Or TextBox2_Text = "Name of the Anime" Then - 'My.Computer.Clipboard.SetText(ObjectJson) - If CBool(InStr(ObjectJson, Chr(34) + "title")) Then ' false on movie true on series - Dim CR_Name_1 As String() = ObjectJson.Split(New String() {Chr(34) + "title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) - CR_title = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + 'If CBool(InStr(ObjectJson, Chr(34) + "title")) Then ' false on movie true on series + ' Dim CR_Name_1 As String() = ObjectJson.Split(New String() {Chr(34) + "title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + ' Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) + ' CR_title = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) - End If - If CBool(InStr(ObjectJson, "series_title")) Then ' false on movie true on series - Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"series_title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) - CR_series_title = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + 'End If + 'If CBool(InStr(ObjectJson, "series_title")) Then ' false on movie true on series + ' Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"series_title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + ' Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) + ' CR_series_title = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) - End If - If CBool(InStr(ObjectJson, "season_title")) Then ' false on movie true on series - Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"season_title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) - CR_season_title = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + 'End If + 'If CBool(InStr(ObjectJson, "season_title")) Then ' false on movie true on series + ' Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"season_title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + ' Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) + ' CR_season_title = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) - End If - If CBool(InStr(ObjectJson, "season_number")) Then ' false on movie true on series - Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"season_number" + Chr(34) + ":"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) - CR_season_number = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + 'End If + 'If CBool(InStr(ObjectJson, "season_number")) Then ' false on movie true on series + ' Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"season_number" + Chr(34) + ":"}, System.StringSplitOptions.RemoveEmptyEntries) + ' Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) + ' CR_season_number = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) - End If + 'End If - If CBool(InStr(ObjectJson, "episode")) Then ' false on movie true on series - Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"episode" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) - CR_episode = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + 'If CBool(InStr(ObjectJson, "episode")) Then ' false on movie true on series + ' Dim CR_Name_1 As String() = ObjectJson.Split(New String() {"episode" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + ' Dim CR_Name_2 As String() = CR_Name_1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"}) + ' CR_episode = String.Join(" ", CR_Name_2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + + 'End If + + For Each item As JProperty In data + item.CreateReader() + Select Case item.Name + Case "items" 'each record is inside the entries array + For Each Entry As JObject In item.Values + Try + Dim Title As String = Entry("title") + CR_title = String.Join(" ", Title.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) + + Catch ex As Exception + End Try + Dim SubData As List(Of JToken) = Entry.Children().ToList + For Each SubItem As JProperty In SubData + 'SubItem.CreateReader() + + Select Case SubItem.Name + Case "episode_metadata" + For Each SubEntry As JProperty In SubItem.Values + Select Case SubEntry.Name + Case "series_title" + CR_series_title = SubEntry.Value.ToString + Case "season_title" + CR_season_title = SubEntry.Value.ToString + Case "season_number" + CR_season_number = SubEntry.Value.ToString + Case "episode" + CR_episode = SubEntry.Value.ToString + End Select + Next + End Select + Next + Next + + End Select + Next - End If 'My.Computer.Clipboard.SetText(ObjectJson) - 'MsgBox(CR_season_title) - + ' If Season_Prefix = "[default season prefix]" Then If CR_season_title = CR_series_title Then - CR_season_number = CR_season_title + "Season " + CR_season_number + If CR_episode = Nothing Then 'no episode number means most likey a movie + CR_season_number = Nothing + Else + CR_season_number = CR_series_title + " Season " + CR_season_number + End If + + Else + CR_season_number = CR_season_title End If - CR_season_number = CR_season_title Else CR_season_number = Season_Prefix + CR_season_number End If - If Episode_Prefix = "[default episode prefix]" Then + If CR_episode = Nothing Then + + ElseIf Episode_Prefix = "[default episode prefix]" Then CR_episode = "Episode " + CR_episode Else CR_episode = Episode_Prefix + CR_episode @@ -2009,7 +2080,7 @@ Public Class Main Catch ex As Exception ' Ordner wurde nich erstellt - Pfad2 = Pfad + "\" + CR_FilenName + VideoFormat + Pfad2 = Chr(34) + Pfad + CR_FilenName + VideoFormat + Chr(34) End Try Else Pfad2 = Chr(34) + Pfad2 + CR_FilenName + VideoFormat + Chr(34) @@ -2322,7 +2393,7 @@ Public Class Main URL_DL = "-i [Subtitles only]" End If Me.Invoke(New Action(Function() - ListItemAdd(Pfad_DL, L1Name, L2Name, ResoHTMLDisplay, Subsprache3, SubValuesToDisplay(), thumbnail3, URL_DL, Pfad_DL) + ListItemAdd(Path.GetFileName(Pfad_DL.Replace(Chr(34), "")), L1Name, L2Name, ResoHTMLDisplay, Subsprache3, SubValuesToDisplay(), thumbnail3, URL_DL, Pfad_DL) Return Nothing End Function)) liList.Add(My.Resources.htmlvorThumbnail + thumbnail3 + My.Resources.htmlnachTumbnail + CR_title + "
" + CR_season_title + " " + CR_episode + My.Resources.htmlvorAufloesung + ResoHTMLDisplay + My.Resources.htmlvorSoftSubs + vbNewLine + SubValuesToDisplay() + My.Resources.htmlvorHardSubs + Subsprache3 + My.Resources.htmlnachHardSubs + "") @@ -2408,14 +2479,18 @@ Public Class Main For i As Integer = 0 To ListView1.Items.Count - 1 ItemList(i).KillRunningTask() Next + RemoveTempFiles() Me.Close() End If Else Timer3.Enabled = False + RemoveTempFiles() + + Me.Close() End If @@ -2431,20 +2506,86 @@ Public Class Main Next Catch ex As Exception End Try + If KeepCache = False Then + Try + Dim di As New System.IO.DirectoryInfo(Pfad) + For Each fi As System.IO.DirectoryInfo In di.EnumerateDirectories("*.*", System.IO.SearchOption.TopDirectoryOnly) + If fi.Attributes.HasFlag(System.IO.FileAttributes.Hidden) Then + Else + If InStr(fi.Name, "CRD-Temp-File-") Then + System.IO.Directory.Delete(fi.FullName, True) + End If + End If + Next + Catch ex As Exception + End Try + End If + End Sub + + + Private Sub RetryWithCachedFiles() + Try - Dim di As New System.IO.DirectoryInfo(Pfad) - For Each fi As System.IO.DirectoryInfo In di.EnumerateDirectories("*.*", System.IO.SearchOption.TopDirectoryOnly) - If fi.Attributes.HasFlag(System.IO.FileAttributes.Hidden) Then - Else + Dim di As New System.IO.DirectoryInfo(Pfad) + For Each fi As System.IO.DirectoryInfo In di.EnumerateDirectories("*.*", System.IO.SearchOption.TopDirectoryOnly) + If fi.Attributes.HasFlag(System.IO.FileAttributes.Hidden) Then + Else If InStr(fi.Name, "CRD-Temp-File-") Then - System.IO.Directory.Delete(fi.FullName, True) + If File.Exists(fi.FullName + "\Retry\retry.txt") Then + If MessageBox.Show("Cached data found, you can try to retry the download by pressing 'Yes'", "Retry?", MessageBoxButtons.YesNo) = DialogResult.Yes Then + Dim L1Name As String = Nothing + Dim L2Name As String = Nothing + Dim ResoHTMLDisplay As String = Nothing + Dim Subsprache3 As String = Nothing + Dim thumbnail3 As String = "file:///" + fi.FullName + "/Retry/retry.jpg" + Dim Pfad2 As String = fi.FullName + Dim URL2 As String = Nothing + Dim Filename As String = Nothing + + Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(fi.FullName + "\Retry\retry.txt") + Dim a As String + + For i As Integer = 0 To 5 + a = reader.ReadLine + If i = 0 Then + URL2 = a + ElseIf i = 1 Then + L1Name = a + ElseIf i = 2 Then + L2Name = a + ElseIf i = 3 Then + ResoHTMLDisplay = a + ElseIf i = 4 Then + Subsprache3 = a + ElseIf i = 5 Then + Filename = Path.GetFileName(a.Replace(Chr(34), "")) + End If + + Next + reader.Close() + Me.Invoke(New Action(Function() + ListItemAdd(Filename, L1Name, L2Name, ResoHTMLDisplay, Subsprache3, SubValuesToDisplay(), thumbnail3, URL2, Pfad2) + Return Nothing + End Function)) + liList.Add(My.Resources.htmlvorThumbnail + thumbnail3 + My.Resources.htmlnachTumbnail + L1Name + "
" + L2Name + My.Resources.htmlvorAufloesung + ResoHTMLDisplay + My.Resources.htmlvorSoftSubs + vbNewLine + SubValuesToDisplay() + My.Resources.htmlvorHardSubs + Subsprache3 + My.Resources.htmlnachHardSubs + "") + Else + Grapp_non_cr_RDY = True + Exit Sub + End If + + Else + System.IO.Directory.Delete(fi.FullName, True) + End If + End If End If - Next - Catch ex As Exception - End Try + Next + Catch ex As Exception + End Try + End Sub + Private Sub PictureBox4_Click(sender As Object, e As EventArgs) Handles Btn_add.Click If Anime_Add.WindowState = System.Windows.Forms.FormWindowState.Minimized Then Anime_Add.WindowState = System.Windows.Forms.FormWindowState.Normal @@ -2704,7 +2845,11 @@ Public Class Main End If Next RunningDownloads = ListView1.Items.Count - ItemFinshedCount - + If RunningDownloads > 0 Then + SetThreadExecutionState(EXECUTION_STATE.ES_SYSTEM_REQUIRED Or EXECUTION_STATE.ES_CONTINUOUS) + Else + SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS) + End If Catch ex As Exception RunningDownloads = ListView1.Items.Count End Try @@ -2811,7 +2956,7 @@ Public Class Main Directory.CreateDirectory(Path.GetDirectoryName(DownloadPfad)) Catch ex As Exception ' Ordner wurde nich erstellt - DownloadPfad = Pfad + "\" + DefaultName + VideoFormat + DownloadPfad = Pfad '+ "\" + DefaultName + VideoFormat End Try End If @@ -3435,7 +3580,31 @@ Public Class Main #Region "Funimation JS " - Public Sub GetFunimationJS_Seasons(ByVal JsonUrl As String) + Public Sub GetFunimationJS_Seasons(Optional ByVal JsonUrl As String = Nothing, Optional ByVal Json As String = Nothing) + + + FunimtaionAPISeasonID.Clear() + + Dim SeasonJson As String = Nothing + + If JsonUrl = Nothing Then + SeasonJson = Json + Else + + + Try + Using client As New WebClient() + client.Encoding = System.Text.Encoding.UTF8 + client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), "")) + SeasonJson = client.DownloadString(JsonUrl) + End Using + Catch ex As Exception + Debug.WriteLine("error- getting SeasonJson data") + FunimationJsonBrowser = "SeasonJson" + GeckoFX.WebBrowser1.Navigate(JsonUrl) + Exit Sub + End Try + End If Anime_Add.groupBox2.Visible = True Anime_Add.PictureBox1.Enabled = True @@ -3448,37 +3617,27 @@ Public Class Main Anime_Add.comboBox3.Text = Nothing Anime_Add.comboBox4.Text = Nothing Anime_Add.ComboBox1.Enabled = True - Anime_Add.comboBox3.Enabled = True - Anime_Add.comboBox4.Enabled = True - - Dim SeasonJson As String = Nothing - - Try - Using client As New WebClient() - client.Encoding = System.Text.Encoding.UTF8 - client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), "")) - SeasonJson = client.DownloadString(JsonUrl) - End Using - Catch ex As Exception - Debug.WriteLine("error- getting SeasonJson data") - End Try + Anime_Add.comboBox3.Enabled = False + Anime_Add.comboBox4.Enabled = False + Dim ser As JObject = JObject.Parse(SeasonJson) + Dim data As List(Of JToken) = ser.Children().ToList - Dim SeasonSplit() As String = SeasonJson.Split(New String() {Chr(34) + "seasons" + Chr(34) + ":"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim SeasonSplit2() As String = SeasonSplit(1).Split(New String() {Chr(34) + "name" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + For Each item As JProperty In data + item.CreateReader() + Select Case item.Name + Case "seasons" 'each record is inside the entries array + For Each Entry As JObject In item.Values + Dim name As String = Entry("name") + Anime_Add.ComboBox1.Items.Add(name) + 'Debug.WriteLine(name) + Dim id As String = Entry("id") + FunimtaionAPISeasonID.Add(id) - For i As Integer = 1 To SeasonSplit2.Count - 1 - Dim SeasonSplit3() As String = SeasonSplit2(i).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Anime_Add.ComboBox1.Items.Add(SeasonSplit3(0)) - Next + Next - Dim SeasonIDSplit() As String = SeasonSplit(1).Split(New String() {Chr(34) + "id" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) - - For i As Integer = 1 To SeasonSplit2.Count - 1 - Dim SeasonIDSplit2() As String = SeasonIDSplit(i).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) - 'Anime_Add.ComboBox1.Items.Add(SeasonIDSplit2(0)) - FunimtaionAPISeasonID.Add(SeasonIDSplit2(0)) + End Select Next WebbrowserURL = "funimation.com/js" @@ -3488,6 +3647,8 @@ Public Class Main Public Async Sub DownloadFunimationJS_Seasons() Try + + Anime_Add.Add_Display.Text = "preparing ...." Dim ListOfEpisodes As New List(Of String) Dim BaseURL As String = "https://www.funimation.com/shows/" If FunimationRegion IsNot Nothing Then @@ -3604,21 +3765,44 @@ Public Class Main Return "Japanese" End If End Function - Public Sub GetFunimationJS_VideoProxy(ByVal v1JsonURL As String) - Dim Evaluator = New Thread(Sub() Me.GetFunimationJS_Video(v1JsonURL)) + Public Sub GetFunimationJS_VideoProxy(Optional ByVal v1JsonURL As String = Nothing, Optional ByVal v1JsonData As String = Nothing) + Dim Evaluator = New Thread(Sub() Me.GetFunimationJS_Video(v1JsonURL, v1JsonData)) Evaluator.Start() End Sub - Public Sub GetFunimationJS_Video(ByVal v1JsonURL As String) ', ByVal WebsiteURL As String - + Public Sub GetFunimationJS_Video(ByVal v1JsonUrl As String, ByVal v1JsonData As String) ', ByVal WebsiteURL As String + Debug.WriteLine(v1JsonUrl) Dim v1Json As String = Nothing - Try - Using client As New WebClient() - client.Encoding = System.Text.Encoding.UTF8 - client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), "")) - v1Json = client.DownloadString(v1JsonURL) - End Using - Catch ex As Exception + If v1JsonUrl = Nothing Then + v1Json = v1JsonData + Else + Try + Using client As New WebClient() + client.Encoding = System.Text.Encoding.UTF8 + client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), "")) + v1Json = client.DownloadString(v1JsonUrl) + End Using + Catch ex As Exception + + + Debug.WriteLine("error- getting v1Json data") + Debug.WriteLine(ex.ToString) + + Me.Invoke(New Action(Function() + 'Me.Text = "Status: error - getting v1Json data" + + FunimationJsonBrowser = "v1Json" + GeckoFX.WebBrowser1.Navigate(v1JsonUrl) + 'Anime_Add.StatusLabel.Text = "Status: error - getting v1Json data" + Me.Invalidate() + Return Nothing + End Function)) + Exit Sub + End Try + End If + + If v1Json = Nothing Then + Me.Invoke(New Action(Function() Me.Text = "Status: error - getting v1Json data" @@ -3626,12 +3810,12 @@ Public Class Main Me.Invalidate() Return Nothing End Function)) - - Debug.WriteLine("error- getting v1Json data") - Debug.WriteLine(ex.ToString) Exit Sub - End Try - + End If + Me.Invoke(New Action(Function() + 'My.Computer.Clipboard.SetText(v1Json) + Return Nothing + End Function)) Try Dim ffmpeg_command_temp As String = ffmpeg_command If VideoFormat = ".aac" Then @@ -3659,49 +3843,100 @@ Public Class Main Dim FunimationDub As String = Nothing Dim FunimationAudioMap As String = Nothing - Dim FunimationSeason1() As String = v1Json.Split(New String() {Chr(34) + "number" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) - Dim FunimationSeason2() As String = FunimationSeason1(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) - If Season_Prefix = "[default season prefix]" Then - FunimationSeason = "Season " + FunimationSeason2(0) - Else - FunimationSeason = Season_Prefix + FunimationSeason2(0) - End If - Dim FunimationEpisode1() As String = v1Json.Split(New String() {Chr(34) + "episodeNumber" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim FunimationEpisode2() As String = FunimationEpisode1(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) - If Episode_Prefix = "[default episode prefix]" Then - FunimationEpisode = "Episode " + FunimationEpisode2(0) - Else - FunimationEpisode = Episode_Prefix + FunimationEpisode2(0) - End If - - Dim FunimationTitle1() As String = v1Json.Split(New String() {Chr(34) + "name" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim FunimationTitle2() As String = FunimationTitle1(1).Split(New String() {Chr(34) + "},"}, System.StringSplitOptions.RemoveEmptyEntries) - FunimationTitle = String.Join(" ", FunimationTitle2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) 'System.Text.RegularExpressions.Regex.Replace(FunimationTitle2(0), "[^\w\\-]", " ").Trim(" ") - FunimationTitle = RemoveExtraSpaces(FunimationTitle) Dim ser As JObject = JObject.Parse(v1Json) Try - Dim AnimeName As String = ser("name") - If AnimeName = Nothing Then - Else - FunimationTitle = RemoveExtraSpaces(AnimeName) - End If + Try + FunimationEpisodeTitle = RemoveExtraSpaces(ser("name")) + Catch ex As Exception + End Try + + Try + Dim FunimationEpisode3 As String = RemoveExtraSpaces(ser("episodeNumber")) + If Episode_Prefix = "[default episode prefix]" Then + FunimationEpisode = "Episode " + FunimationEpisode3 + Else + FunimationEpisode = Episode_Prefix + FunimationEpisode3 + End If + Catch ex As Exception + End Try + + Try + FunimationTitle = RemoveExtraSpaces(ser("name")) + Catch ex As Exception + End Try + + Catch ex As Exception End Try + Dim data As List(Of JToken) = ser.Children().ToList + + For Each item As JProperty In data + item.CreateReader() + Select Case item.Name + Case "season" 'each record is inside the entries array + + + Dim SubData As List(Of JToken) = item.Values.ToList() + + + For Each SubItem As JProperty In SubData + + Select Case SubItem.Name + Case "name" + + If Season_Prefix = "[default season prefix]" Then + FunimationSeason = SubItem.Value.ToString + Debug.WriteLine("FunimationSeason: " + FunimationSeason) + End If + Case "number" + + If Season_Prefix = "[default season prefix]" Then + 'FunimationSeason = Entry("name") + Else + Dim EpisodeNumer As String = SubItem.Value.ToString + FunimationSeason = Season_Prefix + " " + EpisodeNumer + Debug.WriteLine("FunimationSeason: " + FunimationSeason) + + End If + + + End Select + Next + + + + + Case "show" 'each record is inside the entries array + + + Dim SubData As List(Of JToken) = item.Values.ToList() + + + For Each SubItem As JProperty In SubData + + Select Case SubItem.Name + Case "name" + FunimationTitle = SubItem.Value.ToString + Debug.WriteLine("FunimationTitle: " + FunimationTitle) + + End Select + Next + + + + + + + + End Select + Next - 'Dim FunimationDub1() As String = WebbrowserText.Split(New String() {".showLanguage = '"}, System.StringSplitOptions.RemoveEmptyEntries) - 'Dim FunimationDub2() As String = FunimationDub1(1).Split(New String() {"';"}, System.StringSplitOptions.RemoveEmptyEntries) FunimationDub = ConvertFunimationDub(DubFunimation) 'FunimationDub2(0) - Dim FunimationEpisodeTitle1() As String = FunimationEpisode2(0).Split(New String() {Chr(34) + "name" + Chr(34) + ": " + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim FunimationEpisodeTitle2() As String = FunimationEpisodeTitle1(FunimationEpisodeTitle1.Count - 1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries) - FunimationEpisodeTitle2(0) = HtmlDecode(FunimationEpisodeTitle2(0)) - FunimationEpisodeTitle = String.Join(" ", FunimationEpisodeTitle2(0).Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c) 'System.Text.RegularExpressions.Regex.Replace(FunimationEpisodeTitle2(0), "[^\w\\-]", " ").Trim(" ") - FunimationEpisodeTitle = RemoveExtraSpaces(FunimationEpisodeTitle) - Dim DefaultName As String = RemoveExtraSpaces(FunimationTitle + " " + FunimationSeason + " " + FunimationEpisode) If CR_NameMethode = 1 Then @@ -3744,7 +3979,7 @@ Public Class Main Directory.CreateDirectory(Path.GetDirectoryName(DownloadPfad)) Catch ex As Exception ' Ordner wurde nich erstellt - DownloadPfad = Pfad + "\" + DefaultName + VideoFormat + DownloadPfad = Pfad '+ "\" + DefaultName + VideoFormat End Try End If @@ -3795,7 +4030,7 @@ Public Class Main 'Dim ser As JObject = JObject.Parse(v1Json) - Dim data As List(Of JToken) = ser.Children().ToList + 'Dim data As List(Of JToken) = ser.Children().ToList For Each item As JProperty In data item.CreateReader() @@ -3832,10 +4067,12 @@ Public Class Main Me.Invoke(New Action(Function() ' Anime_Add.StatusLabel.Text = iFrameURL - + MsgBox(WebbrowserCookie) Return Nothing End Function)) + + If Not WebbrowserCookie = Nothing Then client0.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie) ElseIf Not SystemWebBrowserCookie = Nothing Then @@ -5056,6 +5293,15 @@ Public Class Main network_scan.Show() End Sub + Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick + If ListBoxList.Count > 0 Then + If InStr(Me.Text, "Crunchyroll Downloader") Then + Me.Text = "Status: " + ListBoxList.Count.ToString + " Downloads in queue" + vbNewLine + "open the add window to continue" + End If + End If + End Sub + + #End Region diff --git a/Crunchyroll Downloader/bin/x86/Debug/AdBlock/CRD-Domain-Blocklist.txt b/Crunchyroll Downloader/bin/x86/Debug/AdBlock/CRD-Domain-Blocklist.txt index 84ca24c..a1bcea4 100644 --- a/Crunchyroll Downloader/bin/x86/Debug/AdBlock/CRD-Domain-Blocklist.txt +++ b/Crunchyroll Downloader/bin/x86/Debug/AdBlock/CRD-Domain-Blocklist.txt @@ -12,4 +12,5 @@ js-agent.newrelic.com www.googletagmanager.com googletagmanager.com ocsp.sca1b.amazontrust.com -sa.etp-prod.com \ No newline at end of file +sa.etp-prod.com +gum.criteo.com \ No newline at end of file diff --git a/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.exe b/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.exe index bfa7aae..536e987 100644 Binary files a/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.exe and b/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.exe differ diff --git a/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.pdb b/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.pdb index 04b7f0b..d18933d 100644 Binary files a/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.pdb and b/Crunchyroll Downloader/bin/x86/Debug/Crunchyroll Downloader.pdb differ diff --git a/Crunchyroll Downloader/einstellungen.Designer.vb b/Crunchyroll Downloader/einstellungen.Designer.vb index a18f57a..b700436 100644 --- a/Crunchyroll Downloader/einstellungen.Designer.vb +++ b/Crunchyroll Downloader/einstellungen.Designer.vb @@ -44,6 +44,8 @@ Partial Class Einstellungen Me.ComboBox1 = New MetroFramework.Controls.MetroComboBox() Me.TabPage2 = New MetroFramework.Controls.MetroTabPage() Me.GB_Filename_Pre = New System.Windows.Forms.GroupBox() + Me.KodiSupport = New MetroFramework.Controls.MetroToggle() + Me.MetroLink1 = New MetroFramework.Controls.MetroLink() Me.GroupBox12 = New System.Windows.Forms.GroupBox() Me.DD_Episode_Prefix = New MetroFramework.Controls.MetroComboBox() Me.DD_Season_Prefix = New MetroFramework.Controls.MetroComboBox() @@ -130,8 +132,6 @@ Partial Class Einstellungen Me.Label6 = New MetroFramework.Controls.MetroLabel() Me.Label5 = New MetroFramework.Controls.MetroLabel() Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() - Me.KodiSupport = New MetroFramework.Controls.MetroToggle() - Me.MetroLink1 = New MetroFramework.Controls.MetroLink() CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.pictureBox4, System.ComponentModel.ISupportInitialize).BeginInit() Me.GroupBox14.SuspendLayout() @@ -404,10 +404,10 @@ Partial Class Einstellungen Me.TabPage2.HorizontalScrollbarBarColor = True Me.TabPage2.HorizontalScrollbarHighlightOnWheel = False Me.TabPage2.HorizontalScrollbarSize = 10 - Me.TabPage2.Location = New System.Drawing.Point(4, 44) + Me.TabPage2.Location = New System.Drawing.Point(4, 35) Me.TabPage2.Name = "TabPage2" Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage2.Size = New System.Drawing.Size(501, 452) + Me.TabPage2.Size = New System.Drawing.Size(501, 461) Me.TabPage2.TabIndex = 1 Me.TabPage2.Text = "Output" Me.TabPage2.VerticalScrollbarBarColor = True @@ -429,6 +429,29 @@ Partial Class Einstellungen Me.GB_Filename_Pre.TabStop = False Me.GB_Filename_Pre.Text = "Filename Prefix" ' + 'KodiSupport + ' + Me.KodiSupport.AutoSize = True + Me.KodiSupport.Location = New System.Drawing.Point(263, 24) + Me.KodiSupport.Name = "KodiSupport" + Me.KodiSupport.Size = New System.Drawing.Size(80, 20) + Me.KodiSupport.TabIndex = 40 + Me.KodiSupport.Text = "Aus" + Me.KodiSupport.UseSelectable = True + ' + 'MetroLink1 + ' + Me.MetroLink1.FontSize = MetroFramework.MetroLinkSize.Medium + Me.MetroLink1.ForeColor = System.Drawing.Color.SteelBlue + Me.MetroLink1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.MetroLink1.Location = New System.Drawing.Point(101, 24) + Me.MetroLink1.Name = "MetroLink1" + Me.MetroLink1.Size = New System.Drawing.Size(145, 23) + Me.MetroLink1.TabIndex = 39 + Me.MetroLink1.Text = "enable Kodi naming" + Me.MetroLink1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.MetroLink1.UseSelectable = True + ' 'GroupBox12 ' Me.GroupBox12.BackColor = System.Drawing.Color.Transparent @@ -1431,29 +1454,6 @@ Partial Class Einstellungen 'BackgroundWorker1 ' ' - 'KodiSupport - ' - Me.KodiSupport.AutoSize = True - Me.KodiSupport.Location = New System.Drawing.Point(263, 24) - Me.KodiSupport.Name = "KodiSupport" - Me.KodiSupport.Size = New System.Drawing.Size(80, 20) - Me.KodiSupport.TabIndex = 40 - Me.KodiSupport.Text = "Aus" - Me.KodiSupport.UseSelectable = True - ' - 'MetroLink1 - ' - Me.MetroLink1.FontSize = MetroFramework.MetroLinkSize.Medium - Me.MetroLink1.ForeColor = System.Drawing.Color.SteelBlue - Me.MetroLink1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.MetroLink1.Location = New System.Drawing.Point(101, 24) - Me.MetroLink1.Name = "MetroLink1" - Me.MetroLink1.Size = New System.Drawing.Size(145, 23) - Me.MetroLink1.TabIndex = 39 - Me.MetroLink1.Text = "enable Kodi naming" - Me.MetroLink1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.MetroLink1.UseSelectable = True - ' 'Einstellungen ' Me.ApplyImageInvert = True diff --git a/Crunchyroll Downloader/einstellungen.resx b/Crunchyroll Downloader/einstellungen.resx index f49b9b4..e809bf5 100644 --- a/Crunchyroll Downloader/einstellungen.resx +++ b/Crunchyroll Downloader/einstellungen.resx @@ -126,9 +126,6 @@ 118, 20 - - 118, 20 - 332, 20 diff --git a/Crunchyroll Downloader/einstellungen.vb b/Crunchyroll Downloader/einstellungen.vb index 0fc28a1..41e3093 100644 --- a/Crunchyroll Downloader/einstellungen.vb +++ b/Crunchyroll Downloader/einstellungen.vb @@ -17,7 +17,7 @@ Public Class Einstellungen Private Sub Einstellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Label6.Text = "You have: v" + Application.ProductVersion.ToString + " Beta-U8" + Label6.Text = "You have: v" + Application.ProductVersion.ToString + " Beta-U11" BackgroundWorker1.RunWorkerAsync() @@ -234,6 +234,8 @@ Public Class Einstellungen If 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 InStr(Main.ffmpeg_command, "-c:a copy ") Then Dim ffmpegDisplayCurrent As String() = Main.ffmpeg_command.Split(New String() {" "}, System.StringSplitOptions.RemoveEmptyEntries) @@ -347,6 +349,13 @@ Public Class Einstellungen End If + If Main.KeepCache = True Then + rk.SetValue("Keep_Cache", 1, RegistryValueKind.String) + Else + rk.SetValue("Keep_Cache", 0, RegistryValueKind.String) + End If + + If KodiSupport.Checked = True Then Main.KodiNaming = True rk.SetValue("KodiSupport", 1, RegistryValueKind.String) @@ -631,19 +640,19 @@ Public Class Einstellungen 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 + 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_CommandP3.Text + " " + FFMPEG_CommandP4.Text + Else - ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP2.Text + " " + FFMPEG_CommandP3.Text + " " + FFMPEG_CommandP4.Text - - rk.SetValue("ffmpeg_command", ffpmeg_cmd, RegistryValueKind.String) - Main.ffmpeg_command = ffpmeg_cmd + ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP2.Text + " " + FFMPEG_CommandP3.Text + " " + FFMPEG_CommandP4.Text End If + rk.SetValue("ffmpeg_command", ffpmeg_cmd, RegistryValueKind.String) + Main.ffmpeg_command = ffpmeg_cmd + If InStr(FFMPEG_CommandP1.Text, "nvenc") Then If NumericUpDown1.Value > 2 Then NumericUpDown1.Value = 2 @@ -1150,6 +1159,13 @@ Public Class Einstellungen Private Sub HybridMode_CB_Click(sender As Object, e As EventArgs) Handles HybridMode_CB.Click If HybridMode_CB.Checked = True Then + + If MessageBox.Show("Should the cached data be kept?" + vbNewLine + "Press 'No' to free the space after downloading.", "Keep cached files?", MessageBoxButtons.YesNo) = DialogResult.Yes Then + Main.KeepCache = True + Else + Main.KeepCache = False + End If + If AAuto.Checked = True Then MsgBox("Resolution '[Auto]' and 'Hybride Mode' does not work together", MsgBoxStyle.Information) HybridMode_CB.Checked = False @@ -1188,6 +1204,7 @@ Public Class Einstellungen + #End Region diff --git a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.exe b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.exe index bfa7aae..536e987 100644 Binary files a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.exe and b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.exe differ diff --git a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.pdb b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.pdb index 04b7f0b..d18933d 100644 Binary files a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.pdb and b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.pdb differ diff --git a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache index 378311f..d322b81 100644 Binary files a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache and b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache differ diff --git a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll_Downloader.Main.resources b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll_Downloader.Main.resources index dc7c1d0..061eae1 100644 Binary files a/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll_Downloader.Main.resources and b/Crunchyroll Downloader/obj/x86/Debug/Crunchyroll_Downloader.Main.resources differ