From bc5d9aac105c047cc04444c91d2edd32fb62d6fe Mon Sep 17 00:00:00 2001 From: hama3254 <52826614+hama3254@users.noreply.github.com> Date: Sat, 7 Jan 2023 19:04:56 +0100 Subject: [PATCH] moved queue to own UI moved queue to own UI #650 --- .vs/Crunchyroll Downloader/v17/.suo | Bin 184320 -> 185856 bytes Crunchyroll Downloader/Anime_Add.Designer.vb | 53 +- Crunchyroll Downloader/Anime_Add.resx | 11 +- Crunchyroll Downloader/Anime_Add.vb | 482 +---------------- .../Crunchyroll Downloader.vbproj | 3 + Crunchyroll Downloader/Main.designer.vb | 22 +- Crunchyroll Downloader/Main.resx | 84 ++- Crunchyroll Downloader/Main.vb | 501 +++++++++++++++--- .../My Project/Resources.Designer.vb | 30 ++ .../My Project/Resources.resx | 9 + .../Resources/main-queue.png | Bin 0 -> 10511 bytes .../Resources/main-queue_invert.png | Bin 0 -> 5527 bytes .../Resources/main-queue_invert_dark.png | Bin 0 -> 5595 bytes .../einstellungen.Designer.vb | 205 +++---- Crunchyroll Downloader/einstellungen.resx | 3 + Crunchyroll Downloader/einstellungen.vb | 16 +- Crunchyroll Downloader/queue.Designer.vb | 87 ++- Crunchyroll Downloader/queue.resx | 6 + Crunchyroll Downloader/queue.vb | 115 +++- 19 files changed, 837 insertions(+), 790 deletions(-) create mode 100644 Crunchyroll Downloader/Resources/main-queue.png create mode 100644 Crunchyroll Downloader/Resources/main-queue_invert.png create mode 100644 Crunchyroll Downloader/Resources/main-queue_invert_dark.png diff --git a/.vs/Crunchyroll Downloader/v17/.suo b/.vs/Crunchyroll Downloader/v17/.suo index 331dd69880c531e9f4bae40c53c45b2cd00ed7f0..75215cb9d7e5ef0a7a17cf6b505b7211eaf02b91 100644 GIT binary patch delta 6736 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 diff --git a/Crunchyroll Downloader/Anime_Add.Designer.vb b/Crunchyroll Downloader/Anime_Add.Designer.vb index baf7722..4526580 100644 --- a/Crunchyroll Downloader/Anime_Add.Designer.vb +++ b/Crunchyroll Downloader/Anime_Add.Designer.vb @@ -23,7 +23,6 @@ Partial Class Anime_Add 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Anime_Add)) Me.groupBox1 = New System.Windows.Forms.GroupBox() Me.SubTitlesOnlyCB = New MetroFramework.Controls.MetroComboBox() @@ -38,18 +37,12 @@ Partial Class Anime_Add Me.ComboBox1 = New MetroFramework.Controls.MetroComboBox() Me.comboBox3 = New MetroFramework.Controls.MetroComboBox() Me.Add_Display = New MetroFramework.Controls.MetroLabel() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.ListBox1 = New System.Windows.Forms.ListBox() - Me.Timer1 = New System.Windows.Forms.Timer(Me.components) - Me.Timer2 = New System.Windows.Forms.Timer(Me.components) Me.Btn_min = New System.Windows.Forms.PictureBox() Me.Btn_Close = New System.Windows.Forms.PictureBox() Me.btn_dl = New System.Windows.Forms.Button() - Me.Timer3 = New System.Windows.Forms.Timer(Me.components) Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() Me.groupBox1.SuspendLayout() Me.groupBox2.SuspendLayout() - Me.GroupBox3.SuspendLayout() CType(Me.Btn_min, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Btn_Close, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -304,38 +297,6 @@ Partial Class Anime_Add Me.Add_Display.Text = "..." Me.Add_Display.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' - 'GroupBox3 - ' - Me.GroupBox3.BackColor = System.Drawing.Color.Transparent - Me.GroupBox3.Controls.Add(Me.ListBox1) - Me.GroupBox3.Location = New System.Drawing.Point(15, 70) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(720, 280) - Me.GroupBox3.TabIndex = 46 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Visible = False - ' - 'ListBox1 - ' - Me.ListBox1.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer)) - Me.ListBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.ListBox1.FormattingEnabled = True - Me.ListBox1.ItemHeight = 15 - Me.ListBox1.Location = New System.Drawing.Point(13, 30) - Me.ListBox1.Name = "ListBox1" - Me.ListBox1.Size = New System.Drawing.Size(693, 229) - Me.ListBox1.TabIndex = 0 - ' - 'Timer1 - ' - Me.Timer1.Enabled = True - Me.Timer1.Interval = 500 - ' - 'Timer2 - ' - Me.Timer2.Enabled = True - Me.Timer2.Interval = 2500 - ' 'Btn_min ' Me.Btn_min.BackColor = System.Drawing.Color.Transparent @@ -379,11 +340,6 @@ Partial Class Anime_Add Me.btn_dl.Text = "Download" Me.btn_dl.UseVisualStyleBackColor = True ' - 'Timer3 - ' - Me.Timer3.Enabled = True - Me.Timer3.Interval = 2000 - ' 'Anime_Add ' Me.ApplyImageInvert = True @@ -393,9 +349,8 @@ Partial Class Anime_Add Me.Controls.Add(Me.btn_dl) Me.Controls.Add(Me.Btn_min) Me.Controls.Add(Me.Btn_Close) - Me.Controls.Add(Me.groupBox1) - Me.Controls.Add(Me.GroupBox3) Me.Controls.Add(Me.groupBox2) + Me.Controls.Add(Me.groupBox1) Me.Font = New System.Drawing.Font("Arial", 24.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Name = "Anime_Add" Me.Padding = New System.Windows.Forms.Padding(10, 60, 20, 20) @@ -403,7 +358,6 @@ Partial Class Anime_Add Me.TextAlign = MetroFramework.Forms.MetroFormTextAlign.Center Me.groupBox1.ResumeLayout(False) Me.groupBox2.ResumeLayout(False) - Me.GroupBox3.ResumeLayout(False) CType(Me.Btn_min, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Btn_Close, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) @@ -411,10 +365,6 @@ Partial Class Anime_Add End Sub Public WithEvents groupBox2 As GroupBox Public WithEvents groupBox1 As GroupBox - Public WithEvents GroupBox3 As GroupBox - Friend WithEvents Timer1 As Timer - Private WithEvents Timer2 As Timer - Public WithEvents ListBox1 As ListBox Public WithEvents StatusLabel As MetroFramework.Controls.MetroLabel Public WithEvents Add_Display As MetroFramework.Controls.MetroLabel Friend WithEvents MetroTextBox1 As MetroFramework.Controls.MetroTextBox @@ -429,7 +379,6 @@ Partial Class Anime_Add Private WithEvents Btn_Close As PictureBox Public WithEvents SubTitlesOnlyCB As MetroFramework.Controls.MetroComboBox Friend WithEvents btn_dl As Button - Friend WithEvents Timer3 As Timer Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker Friend WithEvents bt_Cancel_mass As Button End Class diff --git a/Crunchyroll Downloader/Anime_Add.resx b/Crunchyroll Downloader/Anime_Add.resx index b82665d..c05855f 100644 --- a/Crunchyroll Downloader/Anime_Add.resx +++ b/Crunchyroll Downloader/Anime_Add.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 - - - 117, 19 - @@ -131,10 +125,7 @@ CwDMqs/abpOXAGBZcgDKSBvlblfsRgAAAABJRU5ErkJggg== - - 206, 19 - - 295, 19 + 24, 23 \ No newline at end of file diff --git a/Crunchyroll Downloader/Anime_Add.vb b/Crunchyroll Downloader/Anime_Add.vb index b3cf23b..f821589 100644 --- a/Crunchyroll Downloader/Anime_Add.vb +++ b/Crunchyroll Downloader/Anime_Add.vb @@ -16,304 +16,6 @@ Public Class Anime_Add Public List_DL_Cancel As Boolean = False - Public Function GetCookiesFromFile(ByVal Host As String) As String - - Dim Cookies As String = "Cookie: " - Dim Cookie_txt As String = My.Computer.FileSystem.ReadAllText("cookies.txt") - - Dim LineChar As String = vbCrLf - - If CBool(InStr(Cookie_txt, vbCr)) Then - LineChar = vbCr - 'Debug.WriteLine("vbCr") - ElseIf CBool(InStr(Cookie_txt, vbLf)) Then - LineChar = vbLf - 'Debug.WriteLine("vbLf") - End If - - Dim Cookie_txt1() As String = Cookie_txt.Split(New String() {LineChar}, System.StringSplitOptions.RemoveEmptyEntries) - - Debug.WriteLine("got txt") - - For i As Integer = 0 To Cookie_txt1.Count - 1 - - Dim Cookie_txt2() As String = Cookie_txt1(i).Split(New String() {Chr(9)}, System.StringSplitOptions.RemoveEmptyEntries) - - If CBool(InStr(Cookie_txt2(0), Host)) = True Then - - If CBool(InStr(Cookie_txt2(5), "_evidon_suppress")) = True Then - Continue For - End If - - Cookies = Cookies + Cookie_txt2(5) + "=" + Cookie_txt2(6) + ";" - - - - End If - - Next - - - 'Debug.WriteLine(Cookies) - - Return Cookies - End Function - - - - Public Sub LoadBrowser(ByVal Url As String) - - Main.LoadingUrl = Url - Main.LoadedUrls.Clear() - Dim NoBrowser As Boolean = False - 'Browser.WebView2.Source = New Uri(Url) - 'Exit Sub - 'MsgBox(Url) - - If CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "series")) = True Or CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "watch")) = True Then - - - -#Region "Get Cookies" - - Main.CR_Cookies = "Cookie: " - 'MsgBox("Cookies") - If File.Exists("cookies.txt") = True Then - Main.CR_Cookies = GetCookiesFromFile("crunchyroll.com") - NoBrowser = True - Main.CrBetaBasic = "Basic bm9haWhkZXZtXzZpeWcwYThsMHE6" - 'MsgBox(True.ToString) - Else - Browser.GetCookies(Url) - - Debug.WriteLine(Main.CookieList.Count.ToString) - If Main.CookieList.Count = 0 Then - Browser.WebView2.CoreWebView2.Navigate(Url) - StatusLabel.Text = "Status: loading in browser..." - Main.Text = "Status: loading in browser..." - Exit Sub - End If - - - - For i As Integer = 0 To Main.CookieList.Count - 1 - - If CBool(InStr(Main.CookieList.Item(i).Domain, ".crunchyroll.com")) And CBool(InStr(Main.CookieList.Item(i).Name, "_evidon_suppress")) = False Then - Main.CR_Cookies = Main.CR_Cookies + Main.CookieList.Item(i).Name + "=" + Main.CookieList.Item(i).Value + ";" - End If - - Next - - End If - - 'MsgBox(Main.CR_Cookies) - - Dim DeviceRegion As String = Nothing - - If CBool(InStr(Url, "/series")) Then - Dim locale1() As String = Url.Split(New String() {"crunchyroll.com/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim locale2() As String = locale1(1).Split(New String() {"/series"}, System.StringSplitOptions.RemoveEmptyEntries) - Main.locale = Main.Convert_locale(locale2(0)) - If Main.locale = "en-US" Then - Main.Url_locale = "" - Else - Main.Url_locale = locale2(0) - End If - ElseIf CBool(InStr(Url, "/watch")) Then - Dim locale1() As String = Url.Split(New String() {"crunchyroll.com/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim locale2() As String = locale1(1).Split(New String() {"/watch"}, System.StringSplitOptions.RemoveEmptyEntries) - 'MsgBox(locale2(0)) - - Main.locale = Main.Convert_locale(locale2(0)) - 'End If - If Main.locale = "en-US" Then - Main.Url_locale = "" - Else - Main.Url_locale = locale2(0) - End If - End If - - Dim Loc_CR_Cookies = " -H " + Chr(34) + Main.CR_Cookies + Chr(34) - - - -#End Region - Dim Auth As String = " -H " + Chr(34) + "Authorization: " + Main.CrBetaBasic + Chr(34) - Dim Post As String = " -d " + Chr(34) + "grant_type=etp_rt_cookie" + Chr(34) + " -X POST" - - Dim CRBetaBearer As String = "Bearer " - - Dim v1Token As String = Main.CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post) - - - - If CBool(InStr(v1Token, "curl:")) = True And CBool(InStr(v1Token, "400")) = True Then - - v1Token = Main.CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post.Replace("etp_rt_cookie", "client_id")) - - End If - - 'MsgBox(v1Token) - - If CBool(InStr(v1Token, "curl:")) = True And CBool(InStr(v1Token, "400")) = True Then - Me.StatusLabel.Text = "Status: Failed - bad request, check CR login" - Main.Text = "Status: Failed - bad request, check CR login" - Debug.WriteLine("Status: Failed - bad request, check CR login") - If GroupBox3.Visible = True Then - GroupBox3.Visible = False - groupBox2.Visible = False - groupBox1.Visible = True - List_DL_Cancel = False - btn_dl.BackgroundImage = My.Resources.main_button_download_default - End If - Main.b = True - Exit Sub - - ElseIf CBool(InStr(v1Token, "curl:")) = True Then - v1Token = Main.CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post) - End If - - - 'MsgBox(v1Token) - - If CBool(InStr(v1Token, "curl:")) = True Then - Browser.WebView2.CoreWebView2.Navigate(Url) - StatusLabel.Text = "Status: loading in browser..." - Exit Sub - End If - - ' - - Dim Token() As String = v1Token.Split(New String() {Chr(34) + "access_token" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim Token2() As String = Token(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - CRBetaBearer = CRBetaBearer + Token2(0) - - Dim ObjectsUrl As String = Nothing - - - Dim Auth2 As String = " -H " + Chr(34) + "Authorization: " + CRBetaBearer + Chr(34) - - - If CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "series/")) = True Then - - Dim v2Content As String = Main.CurlAuth("https://www.crunchyroll.com/index/v2", Main.CR_Cookies, Auth2) - - If CBool(InStr(v2Content, "curl:")) = True Then - v2Content = Main.CurlAuth("https://www.crunchyroll.com/index/v2", Main.CR_Cookies, Auth2) - End If - - If CBool(InStr(v2Content, "curl:")) = True Then - Browser.WebView2.CoreWebView2.Navigate(Url) - StatusLabel.Text = "Status: loading in browser..." - Exit Sub - End If - - - Dim v2ContentBeta() As String = v2Content.Split(New String() {Chr(34) + "cms_web" + Chr(34) + ":"}, System.StringSplitOptions.RemoveEmptyEntries) - - - Dim bucket() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "bucket" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim bucket2() As String = bucket(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim policy() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "policy" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim policy2() As String = policy(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim signature() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "signature" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim signature2() As String = signature(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim key_pair_id() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "key_pair_id" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - Dim key_pair_id2() As String = key_pair_id(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim Series_idUrlBuilder() As String = Url.Split(New String() {"series/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim Series_idUrlBuilder2() As String = Series_idUrlBuilder(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) - - - Dim SeriesUrl As String = "https://www.crunchyroll.com/cms/v2" + bucket2(0) + "/seasons?series_id=" + Series_idUrlBuilder2(0) + "&locale=" + Main.locale + "&Signature=" + signature2(0) + "&Policy=" + policy2(0) + "&Key-Pair-Id=" + key_pair_id2(0) - - 'MsgBox(SeriesUrl) - Main.GetBetaSeasons(SeriesUrl) - - - ElseIf CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "watch/")) = True And CBool(Main.CrBetaBasic = Nothing) = False Then - - - - 'MsgBox(Url) - Dim ObjectsURLBuilder3() As String = Url.Split(New String() {"watch/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim ObjectsURLBuilder4() As String = ObjectsURLBuilder3(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) - - - ObjectsUrl = "https://www.crunchyroll.com/content/v2/cms/objects/" + ObjectsURLBuilder4(0) + "?locale=" + Main.locale '+ "&Signature=" + signature2(0) + "&Policy=" + policy2(0) + "&Key-Pair-Id=" + key_pair_id2(0) - 'End Using - 'MsgBox(ObjectsUrl) - - Debug.WriteLine("ObjectsUrl: " + ObjectsUrl) - - - Dim StreamsUrl As String = Nothing - Dim ObjectJson As String - Try - ObjectJson = Main.CurlAuth(ObjectsUrl, Loc_CR_Cookies, Auth2) - - - '"curl:" 'Main.Curl(ObjectsUrl) - 'MsgBox(ObjectJson) - - 'If CBool(InStr(ObjectJson, "curl:")) = True Then - ' ObjectJson = Main.Curl(ObjectsUrl) - 'End If - - If CBool(InStr(ObjectJson, "curl:")) = True Then - Browser.WebView2.CoreWebView2.Navigate(ObjectsUrl) - Main.LoadingUrl = ObjectsUrl - - Exit Sub - ElseIf CBool(InStr(ObjectJson, "videos/")) = False Then - - StatusLabel.Text = "Status: Failed - no video, check CR login" - Main.Text = "Status: Failed - no video, check CR login" - Debug.WriteLine("Status: Failed - no video, check CR login") - If GroupBox3.Visible = True Then - GroupBox3.Visible = False - groupBox2.Visible = False - groupBox1.Visible = True - List_DL_Cancel = False - btn_dl.BackgroundImage = My.Resources.main_button_download_default - End If - Exit Sub - End If - - Catch ex As Exception - Browser.WebView2.CoreWebView2.Navigate(Url) - Exit Sub - End Try - - Try - Dim StreamsUrlBuilder() As String = ObjectJson.Split(New String() {"videos/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim StreamsUrlBuilder2() As String = StreamsUrlBuilder(1).Split(New String() {"/streams"}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim StreamsUrlBuilder3() As String = ObjectsUrl.Split(New String() {"objects/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim StreamsUrlBuilder4() As String = StreamsUrlBuilder3(1).Split(New String() {"?"}, System.StringSplitOptions.RemoveEmptyEntries) - - StreamsUrl = StreamsUrlBuilder3(0) + "videos/" + StreamsUrlBuilder2(0) + "/streams?" + StreamsUrlBuilder4(1) - - ' Debug.WriteLine(StreamsUrl) - Catch ex As Exception - Browser.WebView2.CoreWebView2.Navigate(Url) - Exit Sub - End Try - - Main.GetBetaVideoProxy(StreamsUrl, Auth2, Url) - - - Else - Browser.WebView2.CoreWebView2.Navigate(Url) - End If - Else - 'to do - End If - End Sub - Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged Try If ComboBox2.Text = SubFolder_Nothing Then @@ -343,8 +45,7 @@ Public Class Anime_Add Btn_Close.Image = Main.CloseImg Btn_min.Image = Main.MinImg - ListBox1.BackColor = Main.BackColorValue - ListBox1.ForeColor = Main.ForeColorValue + Try @@ -353,26 +54,7 @@ Public Class Anime_Add End Try - Try - Dim ListBox1List As New List(Of String) - 'Jeder Eintrag in der Combobox durchgehen - For Each item As String In Main.ListBoxList - 'Wenn der Combobox-Eintrag noch nicht in der Result-List vorhanden ist, Eintrag der Result-List hinzufügen - If ListBox1List.Contains(item) = False Then - ListBox1List.Add(item) - End If - Next - ListBox1.Items.Clear() - 'Die Result-List der Combobox hinzufügen - ListBox1.Items.AddRange(ListBox1List.ToArray) - - 'For i As Integer = 0 To Main.ListBoxList.Count - 1 - ' ListBox1.Items.Add(Main.ListBoxList.Item(i)) - 'Next - Catch ex As Exception - - End Try Try Main.waveOutSetVolume(0, 0) Catch ex As Exception @@ -473,7 +155,8 @@ Public Class Anime_Add 'Else If Main.RunningDownloads >= Main.MaxDL Then Debug.WriteLine("Max_Dl") - ListBox1.Items.Add(textBox1.Text) + 'ListBox1.Items.Add(textBox1.Text) + Main.ListBoxList.Add(textBox1.Text) textBox1.ForeColor = Color.FromArgb(9248044) Pause(2) textBox1.ForeColor = Color.Black @@ -513,7 +196,7 @@ Public Class Anime_Add Main.b = False Debug.WriteLine("what's going on?: " + Date.Now.ToString) StatusLabel.Text = "Status: loading ...." - LoadBrowser(textBox1.Text) + Main.LoadBrowser(textBox1.Text) Else Debug.WriteLine("Not Ready!") End If @@ -522,7 +205,7 @@ Public Class Anime_Add ElseIf CBool(InStr(textBox1.Text, "Test=true")) Then - LoadBrowser(textBox1.Text) + Main.LoadBrowser(textBox1.Text) Else MsgBox(Main.URL_Invaild, MsgBoxStyle.OkOnly) @@ -537,7 +220,6 @@ Public Class Anime_Add If Mass_DL_Cancel = True Then Mass_DL_Cancel = False - GroupBox3.Visible = False groupBox2.Visible = False Main.Grapp_Abord = True Main.b = True @@ -576,12 +258,7 @@ Public Class Anime_Add End If - ElseIf GroupBox3.Visible = True Then - GroupBox3.Visible = False - groupBox2.Visible = False - groupBox1.Visible = True - List_DL_Cancel = False - btn_dl.BackgroundImage = My.Resources.main_button_download_default + End If btn_dl.Enabled = True @@ -750,7 +427,7 @@ Public Class Anime_Add Debug.WriteLine("error- getting EpisodeJson data") Debug.WriteLine(ex.ToString) Main.FunimationJsonBrowser = "EpisodeJson" - LoadBrowser(EpisodeJsonURL) + Main.LoadBrowser(EpisodeJsonURL) Exit Sub End Try @@ -815,129 +492,8 @@ Public Class Anime_Add End Sub - Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick - If ListBox1.Items.Count > 0 Then - If StatusLabel.Text = "Status: idle" Then - StatusLabel.Cursor = Cursors.Hand - StatusLabel.Text = "Status: items in queue, click me to work off." - End If - - If CBool(InStr(Main.Text, "Crunchyroll Downloader")) Or CBool(InStr(Main.Text, " downloads in queue")) Then - Main.Text = "Status: " + ListBox1.Items.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" - End If - - Else - If CBool(InStr(Main.Text, " downloads in queue")) Then - Main.Text = "Crunchyroll Downloader" - End If - StatusLabel.Cursor = Cursors.Default - End If - End Sub -#Region "Listbox" - - Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick - If GroupBox3.Visible = True Then - If ListBox1.Items.Count = 0 Then - GroupBox3.Visible = False - groupBox2.Visible = False - groupBox1.Visible = True - List_DL_Cancel = False - btn_dl.BackgroundImage = My.Resources.main_button_download_default - End If - End If - Try - Dim ItemFinshedCount As Integer = 0 - Dim Item As New List(Of CRD_List_Item) - Item.AddRange(Main.Panel1.Controls.OfType(Of CRD_List_Item)) - - For i As Integer = 0 To Item.Count - 1 - Debug.WriteLine(Item(i).GetIsStatusFinished().ToString) - If Item(i).GetIsStatusFinished() = True Then - ItemFinshedCount = ItemFinshedCount + 1 - End If - Next - - Main.RunningDownloads = Item.Count - ItemFinshedCount - - Catch ex As Exception - Main.RunningDownloads = Main.Panel1.Controls.Count - End Try - - If Main.RunningDownloads < Main.MaxDL Then - If ListBox1.Items.Count > 0 Then - If GroupBox3.Visible = True Then - If CBool(InStr(ListBox1.GetItemText(ListBox1.Items(0)), "funimation.com")) Then - If Main.Funimation_Grapp_RDY = True Then - Dim UriUsed As String = ListBox1.GetItemText(ListBox1.Items(0)) - - If CBool(InStr(UriUsed, "funimation.com/v/")) Then - Dim Episode0() As String = textBox1.Text.Split(New String() {"?"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim Episode() As String = Episode0(0).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim v1JsonUrl As String = "https://d33et77evd9bgg.cloudfront.net/data/v1/episodes/" + Episode(Episode.Length - 1) + ".json" - 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 - Main.Funimation_Grapp_RDY = False - Main.WebbrowserURL = UriUsed - ListBox1.Items.Remove(ListBox1.Items(0)) - Main.b = False - Main.Invalidate() - Main.GetFunimationNewJS_VideoProxy(Nothing, v1Json) - Exit Sub - Catch ex As Exception - Debug.WriteLine("error- getting v1Json data for the bypasss") - Debug.WriteLine(ex.ToString) - End Try - - End If - - Main.Funimation_Grapp_RDY = False - Main.WebbrowserURL = UriUsed - ListBox1.Items.Remove(ListBox1.Items(0)) - Main.b = False - - StatusLabel.Text = "Status: loading in browser" - Main.Text = "Status: loading in browser" - LoadBrowser(UriUsed) - Main.Invalidate() - End If - - Else - If Main.Grapp_RDY = True Then - Main.Grapp_RDY = False - StatusLabel.Text = "Status: loading ..." - Main.Text = "Status: loading ..." - LoadBrowser(ListBox1.GetItemText(ListBox1.Items(0))) - ListBox1.Items.Remove(ListBox1.Items(0)) - Main.b = False - Main.Invalidate() - - End If - End If - End If - - - End If - End If - - End Sub - Private Sub StatusLabel_Click(sender As Object, e As EventArgs) Handles StatusLabel.Click - If StatusLabel.Text = "Status: items in queue, click me to work off." Then - groupBox1.Visible = False - groupBox2.Visible = False - GroupBox3.Visible = True - btn_dl.Text = "Cancel" - List_DL_Cancel = True - End If - - End Sub @@ -949,18 +505,6 @@ Public Class Anime_Add End Sub - Private Sub ListBox1_DoubleClick(sender As Object, e As EventArgs) Handles ListBox1.DoubleClick - ListBox1.Items.Remove(ListBox1.SelectedItem) - End Sub - - - - -#End Region - - - - Private Sub Anime_Add_Resize(sender As Object, e As EventArgs) Handles Me.Resize Btn_Close.Location = New Point(Me.Width - 40, 1) Btn_min.Location = New Point(Me.Width - 68, 10) @@ -971,12 +515,7 @@ Public Class Anime_Add End Sub Private Sub Btn_Close_Click(sender As Object, e As EventArgs) Handles Btn_Close.Click - Main.ListBoxList.Clear() - If ListBox1.Items.Count > 0 Then - For i As Integer = 0 To ListBox1.Items.Count - 1 - Main.ListBoxList.Add(ListBox1.Items.Item(i).ToString) - Next - End If + Me.Close() End Sub @@ -1057,9 +596,6 @@ Public Class Anime_Add End If End Sub - 'Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick - ' Timer3.Enabled = False - ' 'MsgBox(True.ToString) - 'End Sub + End Class diff --git a/Crunchyroll Downloader/Crunchyroll Downloader.vbproj b/Crunchyroll Downloader/Crunchyroll Downloader.vbproj index 1d7e842..7becc63 100644 --- a/Crunchyroll Downloader/Crunchyroll Downloader.vbproj +++ b/Crunchyroll Downloader/Crunchyroll Downloader.vbproj @@ -359,6 +359,9 @@ + + + diff --git a/Crunchyroll Downloader/Main.designer.vb b/Crunchyroll Downloader/Main.designer.vb index 100d2d1..320ef41 100644 --- a/Crunchyroll Downloader/Main.designer.vb +++ b/Crunchyroll Downloader/Main.designer.vb @@ -39,6 +39,7 @@ Partial Class Main Me.Btn_min = New System.Windows.Forms.Button() Me.Btn_Close = New System.Windows.Forms.Button() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.QueueToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToggleDebugModeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.OpenSettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Funimation_Token = New System.Windows.Forms.ToolStripMenuItem() @@ -53,7 +54,7 @@ Partial Class Main Me.DummyItemToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel1 = New System.Windows.Forms.Panel() Me.ScanTimeout = New System.Windows.Forms.Timer(Me.components) - Me.QueueToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Btn_Queue = New System.Windows.Forms.Button() CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ConsoleBar, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.MetroStyleManager1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -166,6 +167,11 @@ Partial Class Main Me.ContextMenuStrip1.Name = "ContextMenuStrip1" resources.ApplyResources(Me.ContextMenuStrip1, "ContextMenuStrip1") ' + 'QueueToolStripMenuItem + ' + Me.QueueToolStripMenuItem.Name = "QueueToolStripMenuItem" + resources.ApplyResources(Me.QueueToolStripMenuItem, "QueueToolStripMenuItem") + ' 'ToggleDebugModeToolStripMenuItem ' Me.ToggleDebugModeToolStripMenuItem.Name = "ToggleDebugModeToolStripMenuItem" @@ -235,10 +241,16 @@ Partial Class Main ' Me.ScanTimeout.Interval = 1000 ' - 'QueueToolStripMenuItem + 'Btn_Queue ' - Me.QueueToolStripMenuItem.Name = "QueueToolStripMenuItem" - resources.ApplyResources(Me.QueueToolStripMenuItem, "QueueToolStripMenuItem") + Me.Btn_Queue.BackColor = System.Drawing.Color.Transparent + resources.ApplyResources(Me.Btn_Queue, "Btn_Queue") + Me.Btn_Queue.Cursor = System.Windows.Forms.Cursors.Hand + Me.Btn_Queue.FlatAppearance.BorderSize = 0 + Me.Btn_Queue.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent + Me.Btn_Queue.Image = Global.Crunchyroll_Downloader.My.Resources.Resources.main_queue + Me.Btn_Queue.Name = "Btn_Queue" + Me.Btn_Queue.UseVisualStyleBackColor = False ' 'Main ' @@ -246,6 +258,7 @@ Partial Class Main Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None Me.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle resources.ApplyResources(Me, "$this") + Me.Controls.Add(Me.Btn_Queue) Me.Controls.Add(Me.Panel1) Me.Controls.Add(Me.Btn_Close) Me.Controls.Add(Me.Btn_min) @@ -299,4 +312,5 @@ Partial Class Main Public WithEvents Panel1 As Panel Friend WithEvents ScanTimeout As Timer Friend WithEvents QueueToolStripMenuItem As ToolStripMenuItem + Friend WithEvents Btn_Queue As Button End Class diff --git a/Crunchyroll Downloader/Main.resx b/Crunchyroll Downloader/Main.resx index 0c3ef9b..df8aa15 100644 --- a/Crunchyroll Downloader/Main.resx +++ b/Crunchyroll Downloader/Main.resx @@ -132,7 +132,7 @@ 0, 0, 0, 0 - 840, 6 + 900, 6 @@ -148,7 +148,7 @@ $this - 9 + 10 383, 18 @@ -187,7 +187,7 @@ $this - 7 + 8 Stretch @@ -199,7 +199,7 @@ 0, 0, 0, 0 - 840, 6 + 900, 6 68 @@ -214,7 +214,7 @@ $this - 8 + 9 17, 17 @@ -229,7 +229,37 @@ 87 - 842, 630 + 900, 630 + + + Zoom + + + Flat + + + NoControl + + + 575, 18 + + + 80, 35 + + + 70 + + + Btn_Queue + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 True @@ -238,10 +268,10 @@ 1, 71 - 798, 403 + 898, 403 - 840, 546 + 898, 546 0 @@ -256,7 +286,7 @@ $this - 1 + 2 None @@ -271,7 +301,7 @@ 800, 1 - 40, 40 + 35, 35 5 @@ -286,7 +316,7 @@ $this - 2 + 3 None @@ -301,7 +331,7 @@ 757, 1 - 40, 40 + 30, 30 4 @@ -316,7 +346,7 @@ $this - 3 + 4 Zoom @@ -328,7 +358,7 @@ NoControl - 641, 18 + 665, 18 80, 35 @@ -346,7 +376,7 @@ $this - 4 + 5 Zoom @@ -355,7 +385,7 @@ Flat - 124, 18 + 140, 18 80, 35 @@ -373,7 +403,7 @@ $this - 5 + 6 Zoom @@ -385,7 +415,7 @@ NoControl - 11, 18 + 20, 18 80, 35 @@ -403,7 +433,7 @@ $this - 6 + 7 Microsoft Sans Serif, 8.25pt @@ -412,7 +442,7 @@ 0, 0, 0, 0 - 840, 630 + 900, 630 Crunchyroll Downloader @@ -453,6 +483,12 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + QueueToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ToggleDebugModeToolStripMenuItem @@ -531,12 +567,6 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - QueueToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Main @@ -628,7 +658,7 @@ Dummy_Item - 234, 312 + 234, 290 ContextMenuStrip1 diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb index 9cddbb0..22efee4 100644 --- a/Crunchyroll Downloader/Main.vb +++ b/Crunchyroll Downloader/Main.vb @@ -194,6 +194,10 @@ Public Class Main #Region "UI" Private Sub Main_TextChanged(sender As Object, e As EventArgs) Handles Me.TextChanged Me.Invalidate() + + + + End Sub Public CloseImg As Bitmap = My.Resources.main_del @@ -259,6 +263,20 @@ Public Class Main Btn_Settings.Image = My.Resources.main_settings End Sub + Private Sub Btn_Queue_MouseEnter(sender As Object, e As EventArgs) Handles Btn_Queue.MouseEnter, Btn_Queue.GotFocus + If Manager.Theme = MetroThemeStyle.Dark Then + Btn_Queue.Image = My.Resources.main_queue_invert_dark + Else + Btn_Queue.Image = My.Resources.main_queue_invert + End If + End Sub + + Private Sub Btn_Queue_MouseLeave(sender As Object, e As EventArgs) Handles Btn_Queue.MouseLeave, Btn_Queue.LostFocus + Btn_Queue.Image = My.Resources.main_queue + End Sub + + + Private Sub Btn_min_MouseEnter(sender As Object, e As EventArgs) Handles Btn_min.MouseEnter, Btn_min.GotFocus If Manager.Theme = MetroThemeStyle.Dark Then Btn_min.Image = My.Resources.main_mini_dark_hover @@ -317,9 +335,10 @@ Public Class Main ConsoleBar.Width = Me.Width - 40 TheTextBox.Location = New Point(1, Me.Height - ListViewHeightOffset + 7) TheTextBox.Width = Me.Width - 2 - Btn_Close.Location = New Point(Me.Width - 41, 1) - Btn_min.Location = New Point(Me.Width - 82, 1) - Btn_Settings.Location = New Point(Me.Width - 190, 17) + Btn_Close.Location = New Point(Me.Width - 36, 1) + Btn_min.Location = New Point(Me.Width - 67, 1) + Btn_Settings.Location = New Point(Me.Width - 165, 17) + Btn_Queue.Location = New Point(Me.Width - 265, 17) Try Panel1.AutoScrollPosition = New Point(0, 0) @@ -390,8 +409,12 @@ Public Class Main Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load - ' + FillArray() + + + + #Region "settings path" Dim mySettings As New DirectorySettings @@ -1002,7 +1025,8 @@ Public Class Main 'MsgBox("dl_abourd") End If If UseQueue = True Then - Anime_Add.ListBox1.Items.Add(ListOfEpisodes(i)) + 'Anime_Add.ListBox1.Items.Add(ListOfEpisodes(i)) + ListBoxList.Add(ListOfEpisodes(i)) Anime_Add.Add_Display.ForeColor = Color.FromArgb(9248044) Pause(1) Anime_Add.Add_Display.ForeColor = Color.Black @@ -1010,7 +1034,7 @@ Public Class Main Grapp_RDY = False b = False Debug.WriteLine("b: " + b.ToString) - Anime_Add.LoadBrowser(ListOfEpisodes(i)) + LoadBrowser(ListOfEpisodes(i)) End If Anime_Add.Add_Display.Text = (i - First + 1).ToString + " / " + (Last - First + 1).ToString Next @@ -1024,14 +1048,12 @@ Public Class Main Gesamt = 0.ToString Anime_Add.groupBox1.Visible = True Anime_Add.groupBox2.Visible = False - Anime_Add.GroupBox3.Visible = False Anime_Add.Mass_DL_Cancel = False Anime_Add.btn_dl.Text = "Download" 'btn_dl.BackgroundImage = My.Resources.main_button_download_default End Try Pause(5) Anime_Add.groupBox1.Visible = True Anime_Add.groupBox2.Visible = False - Anime_Add.GroupBox3.Visible = False Anime_Add.Mass_DL_Cancel = False Anime_Add.btn_dl.Text = "Download" 'Anime_Add.btn_dl.BackgroundImage = My.Resources.main_button_download_default End Sub @@ -1187,7 +1209,7 @@ Public Class Main ObjectJson = CR_ObjectsJson.Content CR_ObjectsJson = New UrlJson("", "") ElseIf CBool(InStr(ObjectJson, "curl:")) Then - MsgBox("Error - Getting ObjectJson data" + vbNewLine + ObjectJson) + MsgBox("Error - Getting ObjectJson data" + vbNewLine + ObjectJson) Exit Sub End If @@ -1577,7 +1599,7 @@ Public Class Main #End Region Else - CR_FilenName = RemoveExtraSpaces(String.Join(" ", TextBox2_Text.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c)).Replace(Chr(34), "").Replace("\", "").Replace("/", "") 'System.Text.RegularExpressions.Regex.Replace(TextBox2_Text, "[^\w\\-]", " ")) + CR_FilenName = RemoveExtraSpaces(String.Join(" ", TextBox2_Text.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c)).Replace(Chr(34), "").Replace("\", "").Replace("/", "") 'System.Text.RegularExpressions.Regex.Replace(TextBox2_Text, "[^\w\\-]", " ")) End If If KodiNaming = True Then @@ -2322,7 +2344,8 @@ Public Class Main 'MsgBox("dl_abourd") End If If UseQueue = True Then - Anime_Add.ListBox1.Items.Add(ListOfEpisodes(i)) + 'Anime_Add.ListBox1.Items.Add(ListOfEpisodes(i)) + ListBoxList.Add(ListOfEpisodes(i)) Anime_Add.Add_Display.ForeColor = Color.FromArgb(9248044) Pause(1) Anime_Add.Add_Display.ForeColor = Color.Black @@ -2367,7 +2390,6 @@ Public Class Main Gesamt = 0.ToString Anime_Add.groupBox1.Visible = True Anime_Add.groupBox2.Visible = False - Anime_Add.GroupBox3.Visible = False Anime_Add.Mass_DL_Cancel = False Anime_Add.btn_dl.Text = "Download" 'Anime_Add.btn_dl.BackgroundImage = My.Resources.main_button_download_default End Try @@ -2375,7 +2397,6 @@ Public Class Main Pause(5) Anime_Add.groupBox1.Visible = True Anime_Add.groupBox2.Visible = False - Anime_Add.GroupBox3.Visible = False Anime_Add.Mass_DL_Cancel = False Anime_Add.btn_dl.Text = "Download" 'Anime_Add.btn_dl.BackgroundImage = My.Resources.main_button_download_default End Sub @@ -3676,29 +3697,29 @@ Public Class Main Dim html() As String = htmlReq.Split(New String() {"HTMLMass="}, System.StringSplitOptions.RemoveEmptyEntries) Dim DecodedHTML As String = UrlDecode(html(1)) Dim URLSplit() As String = DecodedHTML.Split(New String() {"javascript:"}, System.StringSplitOptions.RemoveEmptyEntries) - If Application.OpenForms().OfType(Of Anime_Add).Any = True Then - For i As Integer = 0 To URLSplit.Count - 1 - Dim ii As Integer = i - Me.Invoke(New Action(Function() As Object - If Anime_Add.ListBox1.Items.Contains(URLSplit(ii)) = False Then - Anime_Add.ListBox1.Items.Add(URLSplit(ii)) - End If - 'Anime_Add.ListBox1.Items.Add(URLSplit(ii)) - Return Nothing - End Function)) - Next - Else - For i As Integer = 0 To URLSplit.Count - 1 - If ListBoxList.Contains(URLSplit(i)) = False Then - ListBoxList.Add(URLSplit(i)) - End If - Next - Me.Invoke(New Action(Function() As Object - Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" - Me.Invalidate() - Return Nothing - End Function)) - End If + 'If Application.OpenForms().OfType(Of Anime_Add).Any = True Then + ' For i As Integer = 0 To URLSplit.Count - 1 + ' Dim ii As Integer = i + ' Me.Invoke(New Action(Function() As Object + ' If Anime_Add.ListBox1.Items.Contains(URLSplit(ii)) = False Then + ' Anime_Add.ListBox1.Items.Add(URLSplit(ii)) + ' End If + ' 'Anime_Add.ListBox1.Items.Add(URLSplit(ii)) + ' Return Nothing + ' End Function)) + ' Next + 'Else + For i As Integer = 0 To URLSplit.Count - 1 + If ListBoxList.Contains(URLSplit(i)) = False Then + ListBoxList.Add(URLSplit(i)) + End If + Next + Me.Invoke(New Action(Function() As Object + Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" + Me.Invalidate() + Return Nothing + End Function)) + 'End If strRequest = rootPath & "Post_Mass_Sucess.html" 'PostPage SendHTMLResponse(stream, strRequest) Catch abort As ThreadAbortException @@ -3722,29 +3743,29 @@ Public Class Main SystemWebBrowserCookie = CookieSplit(1) Dim URLSplit() As String = CookieSplit(0).Split(New String() {"FunimationMass="}, System.StringSplitOptions.RemoveEmptyEntries) Dim URLSplit2() As String = URLSplit(1).Split(New String() {"javascript:"}, System.StringSplitOptions.RemoveEmptyEntries) - If Application.OpenForms().OfType(Of Anime_Add).Any = True Then - For i As Integer = 0 To URLSplit2.Count - 1 - Dim ii As Integer = i - Me.Invoke(New Action(Function() As Object - If Anime_Add.ListBox1.Items.Contains(URLSplit2(ii)) = False Then - Anime_Add.ListBox1.Items.Add(URLSplit2(ii)) - End If - 'Anime_Add.ListBox1.Items.Add(URLSplit(ii)) - Return Nothing - End Function)) - Next - Else - For i As Integer = 0 To URLSplit2.Count - 1 - If ListBoxList.Contains(URLSplit2(i)) = False Then - ListBoxList.Add(URLSplit2(i)) - End If - Next - Me.Invoke(New Action(Function() As Object - Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" - Me.Invalidate() - Return Nothing - End Function)) - End If + 'If Application.OpenForms().OfType(Of Anime_Add).Any = True Then + ' For i As Integer = 0 To URLSplit2.Count - 1 + ' Dim ii As Integer = i + ' Me.Invoke(New Action(Function() As Object + ' If Anime_Add.ListBox1.Items.Contains(URLSplit2(ii)) = False Then + ' Anime_Add.ListBox1.Items.Add(URLSplit2(ii)) + ' End If + ' 'Anime_Add.ListBox1.Items.Add(URLSplit(ii)) + ' Return Nothing + ' End Function)) + ' Next + 'Else + For i As Integer = 0 To URLSplit2.Count - 1 + If ListBoxList.Contains(URLSplit2(i)) = False Then + ListBoxList.Add(URLSplit2(i)) + End If + Next + Me.Invoke(New Action(Function() As Object + Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" + Me.Invalidate() + Return Nothing + End Function)) + 'End If strRequest = rootPath & "Post_Mass_Sucess.html" 'PostPage SendHTMLResponse(stream, strRequest) End If @@ -3829,23 +3850,23 @@ Public Class Main b = False End If Else - If Application.OpenForms().OfType(Of Anime_Add).Any = True Then - Me.Invoke(New Action(Function() As Object - If Anime_Add.ListBox1.Items.Contains(WebbrowserURL) = False Then - Anime_Add.ListBox1.Items.Add(WebbrowserURL) - End If - Return Nothing - End Function)) - Else - If ListBoxList.Contains(WebbrowserURL) = False Then - ListBoxList.Add(WebbrowserURL) - End If - Me.Invoke(New Action(Function() As Object - Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" - Me.Invalidate() - Return Nothing - End Function)) + 'If Application.OpenForms().OfType(Of Anime_Add).Any = True Then + ' Me.Invoke(New Action(Function() As Object + ' If Anime_Add.ListBox1.Items.Contains(WebbrowserURL) = False Then + ' Anime_Add.ListBox1.Items.Add(WebbrowserURL) + ' End If + ' Return Nothing + ' End Function)) + 'Else + If ListBoxList.Contains(WebbrowserURL) = False Then + ListBoxList.Add(WebbrowserURL) End If + Me.Invoke(New Action(Function() As Object + Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + Me.Invalidate() + Return Nothing + End Function)) + 'End If End If strRequest = rootPath & "Post_Single_Sucess.html" 'PostPage SendHTMLResponse(stream, strRequest) @@ -4042,21 +4063,23 @@ Public Class Main Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick - If Application.OpenForms().OfType(Of Anime_Add).Any = False Then - If ListBoxList.Count > 0 Then - If CBool(InStr(Me.Text, "Crunchyroll Downloader")) Or CBool(InStr(Me.Text, " downloads in queue")) Then - Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" - End If - End If - End If + 'If Application.OpenForms().OfType(Of Anime_Add).Any = False Then + ' If ListBoxList.Count > 0 Then + ' If CBool(InStr(Me.Text, "Crunchyroll Downloader")) Or CBool(InStr(Me.Text, " downloads in queue")) Then + ' Me.Text = "Status: " + ListBoxList.Count.ToString + " downloads in queue" + vbNewLine + "open the add window to continue" + ' End If + ' End If + 'End If End Sub Private Sub Main_Shown(sender As Object, e As EventArgs) Handles Me.Shown Btn_add.Image = My.Resources.main_add Panel1.Select() - End Sub + + + End Sub Private Async Sub Funimation_Token_Click(sender As Object, e As EventArgs) Handles Funimation_Token.Click Dim Token As String = Nothing Try @@ -4227,12 +4250,324 @@ Public Class Main Queue.Show() End Sub + Private Sub Btn_Queue_Click(sender As Object, e As EventArgs) Handles Btn_Queue.Click + If File.Exists("cookies.txt") = False Then + If Application.OpenForms().OfType(Of Browser).Any = True Then + Else + UserBowser = False + Browser.Show() + End If + End If + + If Queue.WindowState = System.Windows.Forms.FormWindowState.Minimized Then + Queue.WindowState = System.Windows.Forms.FormWindowState.Normal + Else + Queue.Show() + End If + + End Sub + #End Region +#Region "Process Urls" + Public Sub LoadBrowser(ByVal Url As String) + + + LoadingUrl = Url + LoadedUrls.Clear() + Dim NoBrowser As Boolean = False + 'Browser.WebView2.Source = New Uri(Url) + 'Exit Sub + 'MsgBox(Url) + + If CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "series")) = True Or CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "watch")) = True Then + + + +#Region "Get Cookies" + + CR_Cookies = "Cookie: " + 'MsgBox("Cookies") + If File.Exists("cookies.txt") = True Then + CR_Cookies = GetCookiesFromFile("crunchyroll.com") + NoBrowser = True + CrBetaBasic = "Basic bm9haWhkZXZtXzZpeWcwYThsMHE6" + 'MsgBox(True.ToString) + Else + Browser.GetCookies(Url) + + Debug.WriteLine(CookieList.Count.ToString) + If CookieList.Count = 0 Then + Browser.WebView2.CoreWebView2.Navigate(Url) + SetStatusLabel("Status: loading in browser...") + Me.Text = "Status: loading in browser..." + Exit Sub + End If + + + + For i As Integer = 0 To CookieList.Count - 1 + + If CBool(InStr(CookieList.Item(i).Domain, ".crunchyroll.com")) And CBool(InStr(CookieList.Item(i).Name, "_evidon_suppress")) = False Then + CR_Cookies = CR_Cookies + CookieList.Item(i).Name + "=" + CookieList.Item(i).Value + ";" + End If + + Next + + End If + + 'MsgBox(Main.CR_Cookies) + + Dim DeviceRegion As String = Nothing + + If CBool(InStr(Url, "/series")) Then + Dim locale1() As String = Url.Split(New String() {"crunchyroll.com/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim locale2() As String = locale1(1).Split(New String() {"/series"}, System.StringSplitOptions.RemoveEmptyEntries) + locale = Convert_locale(locale2(0)) + If locale = "en-US" Then + Url_locale = "" + Else + Url_locale = locale2(0) + End If + ElseIf CBool(InStr(Url, "/watch")) Then + Dim locale1() As String = Url.Split(New String() {"crunchyroll.com/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim locale2() As String = locale1(1).Split(New String() {"/watch"}, System.StringSplitOptions.RemoveEmptyEntries) + 'MsgBox(locale2(0)) + + locale = Convert_locale(locale2(0)) + 'End If + If locale = "en-US" Then + Url_locale = "" + Else + Url_locale = locale2(0) + End If + End If + + Dim Loc_CR_Cookies = " -H " + Chr(34) + CR_Cookies + Chr(34) + + + +#End Region + Dim Auth As String = " -H " + Chr(34) + "Authorization: " + CrBetaBasic + Chr(34) + Dim Post As String = " -d " + Chr(34) + "grant_type=etp_rt_cookie" + Chr(34) + " -X POST" + + Dim CRBetaBearer As String = "Bearer " + + Dim v1Token As String = CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post) + + + + If CBool(InStr(v1Token, "curl:")) = True And CBool(InStr(v1Token, "400")) = True Then + + v1Token = CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post.Replace("etp_rt_cookie", "client_id")) + + End If + + 'MsgBox(v1Token) + + If CBool(InStr(v1Token, "curl:")) = True And CBool(InStr(v1Token, "400")) = True Then + SetStatusLabel("Status: Failed - bad request, check CR login") + Me.Text = "Status: Failed - bad request, check CR login" + Debug.WriteLine("Status: Failed - bad request, check CR login") + + b = True + Exit Sub + + ElseIf CBool(InStr(v1Token, "curl:")) = True Then + v1Token = CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post) + End If + + + 'MsgBox(v1Token) + + If CBool(InStr(v1Token, "curl:")) = True Then + Browser.WebView2.CoreWebView2.Navigate(Url) + SetStatusLabel("Status: loading in browser...") + Exit Sub + End If + + ' + + Dim Token() As String = v1Token.Split(New String() {Chr(34) + "access_token" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + Dim Token2() As String = Token(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + CRBetaBearer = CRBetaBearer + Token2(0) + + Dim ObjectsUrl As String = Nothing + + + Dim Auth2 As String = " -H " + Chr(34) + "Authorization: " + CRBetaBearer + Chr(34) + + + If CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "series/")) = True Then + + Dim v2Content As String = CurlAuth("https://www.crunchyroll.com/index/v2", CR_Cookies, Auth2) + + If CBool(InStr(v2Content, "curl:")) = True Then + v2Content = CurlAuth("https://www.crunchyroll.com/index/v2", CR_Cookies, Auth2) + End If + + If CBool(InStr(v2Content, "curl:")) = True Then + Browser.WebView2.CoreWebView2.Navigate(Url) + SetStatusLabel("Status: loading in browser...") + Exit Sub + End If + + + Dim v2ContentBeta() As String = v2Content.Split(New String() {Chr(34) + "cms_web" + Chr(34) + ":"}, System.StringSplitOptions.RemoveEmptyEntries) + + + Dim bucket() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "bucket" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + Dim bucket2() As String = bucket(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim policy() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "policy" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + Dim policy2() As String = policy(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim signature() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "signature" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + Dim signature2() As String = signature(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim key_pair_id() As String = v2ContentBeta(1).Split(New String() {Chr(34) + "key_pair_id" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + Dim key_pair_id2() As String = key_pair_id(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim Series_idUrlBuilder() As String = Url.Split(New String() {"series/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim Series_idUrlBuilder2() As String = Series_idUrlBuilder(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) + + + Dim SeriesUrl As String = "https://www.crunchyroll.com/cms/v2" + bucket2(0) + "/seasons?series_id=" + Series_idUrlBuilder2(0) + "&locale=" + locale + "&Signature=" + signature2(0) + "&Policy=" + policy2(0) + "&Key-Pair-Id=" + key_pair_id2(0) + + 'MsgBox(SeriesUrl) + GetBetaSeasons(SeriesUrl) + + + ElseIf CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "watch/")) = True And CBool(CrBetaBasic = Nothing) = False Then + + + + 'MsgBox(Url) + Dim ObjectsURLBuilder3() As String = Url.Split(New String() {"watch/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim ObjectsURLBuilder4() As String = ObjectsURLBuilder3(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) + + + ObjectsUrl = "https://www.crunchyroll.com/content/v2/cms/objects/" + ObjectsURLBuilder4(0) + "?locale=" + locale '+ "&Signature=" + signature2(0) + "&Policy=" + policy2(0) + "&Key-Pair-Id=" + key_pair_id2(0) + 'End Using + 'MsgBox(ObjectsUrl) + + Debug.WriteLine("ObjectsUrl: " + ObjectsUrl) + + + Dim StreamsUrl As String = Nothing + Dim ObjectJson As String + Try + ObjectJson = CurlAuth(ObjectsUrl, Loc_CR_Cookies, Auth2) + + + '"curl:" 'Main.Curl(ObjectsUrl) + 'MsgBox(ObjectJson) + + 'If CBool(InStr(ObjectJson, "curl:")) = True Then + ' ObjectJson = Main.Curl(ObjectsUrl) + 'End If + + If CBool(InStr(ObjectJson, "curl:")) = True Then + Browser.WebView2.CoreWebView2.Navigate(ObjectsUrl) + LoadingUrl = ObjectsUrl + + Exit Sub + ElseIf CBool(InStr(ObjectJson, "videos/")) = False Then + + SetStatusLabel("Status: Failed - no video, check CR login") + Me.Text = "Status: Failed - no video, check CR login" + Debug.WriteLine("Status: Failed - no video, check CR login") + + Exit Sub + End If + + Catch ex As Exception + Browser.WebView2.CoreWebView2.Navigate(Url) + Exit Sub + End Try + + Try + Dim StreamsUrlBuilder() As String = ObjectJson.Split(New String() {"videos/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim StreamsUrlBuilder2() As String = StreamsUrlBuilder(1).Split(New String() {"/streams"}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim StreamsUrlBuilder3() As String = ObjectsUrl.Split(New String() {"objects/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim StreamsUrlBuilder4() As String = StreamsUrlBuilder3(1).Split(New String() {"?"}, System.StringSplitOptions.RemoveEmptyEntries) + + StreamsUrl = StreamsUrlBuilder3(0) + "videos/" + StreamsUrlBuilder2(0) + "/streams?" + StreamsUrlBuilder4(1) + + ' Debug.WriteLine(StreamsUrl) + Catch ex As Exception + Browser.WebView2.CoreWebView2.Navigate(Url) + Exit Sub + End Try + + GetBetaVideoProxy(StreamsUrl, Auth2, Url) + + + Else + Browser.WebView2.CoreWebView2.Navigate(Url) + End If + Else + 'to do + End If + End Sub + + Public Function GetCookiesFromFile(ByVal Host As String) As String + + Dim Cookies As String = "Cookie: " + Dim Cookie_txt As String = My.Computer.FileSystem.ReadAllText("cookies.txt") + + Dim LineChar As String = vbCrLf + + If CBool(InStr(Cookie_txt, vbCr)) Then + LineChar = vbCr + 'Debug.WriteLine("vbCr") + ElseIf CBool(InStr(Cookie_txt, vbLf)) Then + LineChar = vbLf + 'Debug.WriteLine("vbLf") + End If + + Dim Cookie_txt1() As String = Cookie_txt.Split(New String() {LineChar}, System.StringSplitOptions.RemoveEmptyEntries) + + Debug.WriteLine("got txt") + + For i As Integer = 0 To Cookie_txt1.Count - 1 + + Dim Cookie_txt2() As String = Cookie_txt1(i).Split(New String() {Chr(9)}, System.StringSplitOptions.RemoveEmptyEntries) + + If CBool(InStr(Cookie_txt2(0), Host)) = True Then + + If CBool(InStr(Cookie_txt2(5), "_evidon_suppress")) = True Then + Continue For + End If + + Cookies = Cookies + Cookie_txt2(5) + "=" + Cookie_txt2(6) + ";" + + + + End If + + Next + + + 'Debug.WriteLine(Cookies) + + Return Cookies + End Function + + Sub SetStatusLabel(ByVal txt As String) + If Application.OpenForms().OfType(Of Anime_Add).Any = True Then + Anime_Add.StatusLabel.Text = txt + End If + + End Sub + +#End Region + End Class diff --git a/Crunchyroll Downloader/My Project/Resources.Designer.vb b/Crunchyroll Downloader/My Project/Resources.Designer.vb index 21dddd1..1cc37d5 100644 --- a/Crunchyroll Downloader/My Project/Resources.Designer.vb +++ b/Crunchyroll Downloader/My Project/Resources.Designer.vb @@ -887,6 +887,36 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property main_queue() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("main_queue", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property main_queue_invert() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("main_queue_invert", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property main_queue_invert_dark() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("main_queue_invert_dark", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/Crunchyroll Downloader/My Project/Resources.resx b/Crunchyroll Downloader/My Project/Resources.resx index 751414f..8ce2633 100644 --- a/Crunchyroll Downloader/My Project/Resources.resx +++ b/Crunchyroll Downloader/My Project/Resources.resx @@ -565,4 +565,13 @@ title=Ending <html><head><meta name="color-scheme" content="light dark"></head><pre style="word-wrap: break-word; white-space: pre-wrap;"> + + ..\Resources\main-queue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\main-queue_invert.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\main-queue_invert_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Crunchyroll Downloader/Resources/main-queue.png b/Crunchyroll Downloader/Resources/main-queue.png new file mode 100644 index 0000000000000000000000000000000000000000..129efdf27101778e15484faa8a2dae063b1fc02e GIT binary patch literal 10511 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 literal 0 HcmV?d00001 diff --git a/Crunchyroll Downloader/Resources/main-queue_invert.png b/Crunchyroll Downloader/Resources/main-queue_invert.png new file mode 100644 index 0000000000000000000000000000000000000000..4dbe8c45e2d0e7de4c1976ab40aeb9520cd9f7d1 GIT binary patch literal 5527 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 M`UH8`E?<}aKe*mrkN^Mx literal 0 HcmV?d00001 diff --git a/Crunchyroll Downloader/Resources/main-queue_invert_dark.png b/Crunchyroll Downloader/Resources/main-queue_invert_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..199c5ffa08ab1ce1fbe6b6c53051aa876f60e27f GIT binary patch literal 5595 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 literal 0 HcmV?d00001 diff --git a/Crunchyroll Downloader/einstellungen.Designer.vb b/Crunchyroll Downloader/einstellungen.Designer.vb index d34a707..0b1a95b 100644 --- a/Crunchyroll Downloader/einstellungen.Designer.vb +++ b/Crunchyroll Downloader/einstellungen.Designer.vb @@ -115,13 +115,13 @@ Partial Class Einstellungen Me.CB_SoftSubSettings = New MetroFramework.Controls.MetroComboBox() Me.GB_Filename_Pre = New System.Windows.Forms.GroupBox() Me.CB_Ignore = New MetroFramework.Controls.MetroComboBox() - 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.MetroTextBox() + Me.DD_Season_Prefix = New MetroFramework.Controls.MetroTextBox() Me.CB_EpisodeName = New MetroFramework.Controls.MetroCheckBox() Me.CB_AnimeDub = New MetroFramework.Controls.MetroCheckBox() Me.CB_EpisodeNR = New MetroFramework.Controls.MetroCheckBox() - Me.CB_AnimeSub = New MetroFramework.Controls.MetroCheckBox() + Me.CB_Kodi = New MetroFramework.Controls.MetroCheckBox() Me.CB_Season = New MetroFramework.Controls.MetroCheckBox() Me.CB_Anime = New MetroFramework.Controls.MetroCheckBox() Me.TB_NameString = New MetroFramework.Controls.MetroTextBox() @@ -159,8 +159,6 @@ Partial Class Einstellungen Me.Label5 = New MetroFramework.Controls.MetroLabel() Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() Me.Btn_Save = New System.Windows.Forms.Button() - Me.DD_Season_Prefix = New MetroFramework.Controls.MetroTextBox() - Me.DD_Episode_Prefix = New MetroFramework.Controls.MetroTextBox() CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.GroupBox14.SuspendLayout() Me.SoftSubs.SuspendLayout() @@ -413,10 +411,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, 519) + Me.TabPage2.Size = New System.Drawing.Size(501, 528) Me.TabPage2.TabIndex = 1 Me.TabPage2.Text = "Output" Me.TabPage2.VerticalScrollbarBarColor = True @@ -1206,14 +1204,14 @@ Partial Class Einstellungen 'GB_Filename_Pre ' Me.GB_Filename_Pre.BackColor = System.Drawing.Color.Transparent + Me.GB_Filename_Pre.Controls.Add(Me.DD_Season_Prefix) + Me.GB_Filename_Pre.Controls.Add(Me.DD_Episode_Prefix) Me.GB_Filename_Pre.Controls.Add(Me.CB_Ignore) - Me.GB_Filename_Pre.Controls.Add(Me.KodiSupport) - Me.GB_Filename_Pre.Controls.Add(Me.MetroLink1) Me.GB_Filename_Pre.Font = New System.Drawing.Font("Arial", 9.75!) Me.GB_Filename_Pre.ForeColor = System.Drawing.Color.Black - Me.GB_Filename_Pre.Location = New System.Drawing.Point(5, 230) + Me.GB_Filename_Pre.Location = New System.Drawing.Point(5, 172) Me.GB_Filename_Pre.Name = "GB_Filename_Pre" - Me.GB_Filename_Pre.Size = New System.Drawing.Size(490, 65) + Me.GB_Filename_Pre.Size = New System.Drawing.Size(490, 123) Me.GB_Filename_Pre.TabIndex = 22 Me.GB_Filename_Pre.TabStop = False Me.GB_Filename_Pre.Text = "Filename Extras" @@ -1226,44 +1224,19 @@ Partial Class Einstellungen Me.CB_Ignore.IntegralHeight = False Me.CB_Ignore.ItemHeight = 23 Me.CB_Ignore.Items.AddRange(New Object() {"[Default] use season numbers", "ignore Season 1", "ignore all season numbers"}) - Me.CB_Ignore.Location = New System.Drawing.Point(248, 21) + Me.CB_Ignore.Location = New System.Drawing.Point(123, 21) Me.CB_Ignore.Name = "CB_Ignore" Me.CB_Ignore.Size = New System.Drawing.Size(225, 29) Me.CB_Ignore.TabIndex = 40 Me.CB_Ignore.UseSelectable = True ' - 'KodiSupport - ' - Me.KodiSupport.AutoSize = True - Me.KodiSupport.Location = New System.Drawing.Point(125, 27) - Me.KodiSupport.Name = "KodiSupport" - Me.KodiSupport.Size = New System.Drawing.Size(80, 20) - Me.KodiSupport.TabIndex = 11 - 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(17, 21) - Me.MetroLink1.Name = "MetroLink1" - Me.MetroLink1.Size = New System.Drawing.Size(102, 32) - Me.MetroLink1.TabIndex = 39 - Me.MetroLink1.Text = "Kodi naming" - Me.MetroLink1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.MetroLink1.UseSelectable = True - ' 'GroupBox12 ' Me.GroupBox12.BackColor = System.Drawing.Color.Transparent - Me.GroupBox12.Controls.Add(Me.DD_Episode_Prefix) - Me.GroupBox12.Controls.Add(Me.DD_Season_Prefix) Me.GroupBox12.Controls.Add(Me.CB_EpisodeName) Me.GroupBox12.Controls.Add(Me.CB_AnimeDub) Me.GroupBox12.Controls.Add(Me.CB_EpisodeNR) - Me.GroupBox12.Controls.Add(Me.CB_AnimeSub) + Me.GroupBox12.Controls.Add(Me.CB_Kodi) Me.GroupBox12.Controls.Add(Me.CB_Season) Me.GroupBox12.Controls.Add(Me.CB_Anime) Me.GroupBox12.Controls.Add(Me.TB_NameString) @@ -1271,11 +1244,75 @@ Partial Class Einstellungen Me.GroupBox12.ForeColor = System.Drawing.Color.Black Me.GroupBox12.Location = New System.Drawing.Point(5, 11) Me.GroupBox12.Name = "GroupBox12" - Me.GroupBox12.Size = New System.Drawing.Size(490, 215) + Me.GroupBox12.Size = New System.Drawing.Size(490, 155) Me.GroupBox12.TabIndex = 21 Me.GroupBox12.TabStop = False Me.GroupBox12.Text = "Filename" ' + 'DD_Episode_Prefix + ' + ' + ' + ' + Me.DD_Episode_Prefix.CustomButton.Image = Nothing + Me.DD_Episode_Prefix.CustomButton.Location = New System.Drawing.Point(197, 1) + Me.DD_Episode_Prefix.CustomButton.Name = "" + Me.DD_Episode_Prefix.CustomButton.Size = New System.Drawing.Size(27, 27) + Me.DD_Episode_Prefix.CustomButton.Style = MetroFramework.MetroColorStyle.Blue + Me.DD_Episode_Prefix.CustomButton.TabIndex = 1 + Me.DD_Episode_Prefix.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light + Me.DD_Episode_Prefix.CustomButton.UseSelectable = True + Me.DD_Episode_Prefix.CustomButton.Visible = False + Me.DD_Episode_Prefix.FontSize = MetroFramework.MetroTextBoxSize.Medium + Me.DD_Episode_Prefix.Lines = New String(-1) {} + Me.DD_Episode_Prefix.Location = New System.Drawing.Point(248, 69) + Me.DD_Episode_Prefix.MaxLength = 32767 + Me.DD_Episode_Prefix.Name = "DD_Episode_Prefix" + Me.DD_Episode_Prefix.PasswordChar = Global.Microsoft.VisualBasic.ChrW(0) + Me.DD_Episode_Prefix.ScrollBars = System.Windows.Forms.ScrollBars.None + Me.DD_Episode_Prefix.SelectedText = "" + Me.DD_Episode_Prefix.SelectionLength = 0 + Me.DD_Episode_Prefix.SelectionStart = 0 + Me.DD_Episode_Prefix.ShortcutsEnabled = True + Me.DD_Episode_Prefix.Size = New System.Drawing.Size(225, 29) + Me.DD_Episode_Prefix.TabIndex = 34 + Me.DD_Episode_Prefix.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.DD_Episode_Prefix.UseSelectable = True + Me.DD_Episode_Prefix.WaterMarkColor = System.Drawing.Color.FromArgb(CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer)) + Me.DD_Episode_Prefix.WaterMarkFont = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel) + ' + 'DD_Season_Prefix + ' + ' + ' + ' + Me.DD_Season_Prefix.CustomButton.Image = Nothing + Me.DD_Season_Prefix.CustomButton.Location = New System.Drawing.Point(197, 1) + Me.DD_Season_Prefix.CustomButton.Name = "" + Me.DD_Season_Prefix.CustomButton.Size = New System.Drawing.Size(27, 27) + Me.DD_Season_Prefix.CustomButton.Style = MetroFramework.MetroColorStyle.Blue + Me.DD_Season_Prefix.CustomButton.TabIndex = 1 + Me.DD_Season_Prefix.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light + Me.DD_Season_Prefix.CustomButton.UseSelectable = True + Me.DD_Season_Prefix.CustomButton.Visible = False + Me.DD_Season_Prefix.FontSize = MetroFramework.MetroTextBoxSize.Medium + Me.DD_Season_Prefix.Lines = New String(-1) {} + Me.DD_Season_Prefix.Location = New System.Drawing.Point(6, 69) + Me.DD_Season_Prefix.MaxLength = 32767 + Me.DD_Season_Prefix.Name = "DD_Season_Prefix" + Me.DD_Season_Prefix.PasswordChar = Global.Microsoft.VisualBasic.ChrW(0) + Me.DD_Season_Prefix.ScrollBars = System.Windows.Forms.ScrollBars.None + Me.DD_Season_Prefix.SelectedText = "" + Me.DD_Season_Prefix.SelectionLength = 0 + Me.DD_Season_Prefix.SelectionStart = 0 + Me.DD_Season_Prefix.ShortcutsEnabled = True + Me.DD_Season_Prefix.Size = New System.Drawing.Size(225, 29) + Me.DD_Season_Prefix.TabIndex = 33 + Me.DD_Season_Prefix.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.DD_Season_Prefix.UseSelectable = True + Me.DD_Season_Prefix.WaterMarkColor = System.Drawing.Color.FromArgb(CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer)) + Me.DD_Season_Prefix.WaterMarkFont = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel) + ' 'CB_EpisodeName ' Me.CB_EpisodeName.AutoSize = True @@ -1312,18 +1349,17 @@ Partial Class Einstellungen Me.CB_EpisodeNR.Text = "Episode Number" Me.CB_EpisodeNR.UseSelectable = True ' - 'CB_AnimeSub + 'CB_Kodi ' - Me.CB_AnimeSub.AutoSize = True - Me.CB_AnimeSub.Enabled = False - Me.CB_AnimeSub.FontSize = MetroFramework.MetroCheckBoxSize.Medium - Me.CB_AnimeSub.ForeColor = System.Drawing.Color.Black - Me.CB_AnimeSub.Location = New System.Drawing.Point(320, 124) - Me.CB_AnimeSub.Name = "CB_AnimeSub" - Me.CB_AnimeSub.Size = New System.Drawing.Size(135, 19) - Me.CB_AnimeSub.TabIndex = 32 - Me.CB_AnimeSub.Text = "Subtitle Language" - Me.CB_AnimeSub.UseSelectable = True + Me.CB_Kodi.AutoSize = True + Me.CB_Kodi.FontSize = MetroFramework.MetroCheckBoxSize.Medium + Me.CB_Kodi.ForeColor = System.Drawing.Color.Black + Me.CB_Kodi.Location = New System.Drawing.Point(320, 124) + Me.CB_Kodi.Name = "CB_Kodi" + Me.CB_Kodi.Size = New System.Drawing.Size(102, 19) + Me.CB_Kodi.TabIndex = 32 + Me.CB_Kodi.Text = "Kodi naming" + Me.CB_Kodi.UseSelectable = True ' 'CB_Season ' @@ -1830,70 +1866,6 @@ Partial Class Einstellungen Me.Btn_Save.TabIndex = 9 Me.Btn_Save.UseVisualStyleBackColor = False ' - 'DD_Season_Prefix - ' - ' - ' - ' - Me.DD_Season_Prefix.CustomButton.Image = Nothing - Me.DD_Season_Prefix.CustomButton.Location = New System.Drawing.Point(197, 1) - Me.DD_Season_Prefix.CustomButton.Name = "" - Me.DD_Season_Prefix.CustomButton.Size = New System.Drawing.Size(27, 27) - Me.DD_Season_Prefix.CustomButton.Style = MetroFramework.MetroColorStyle.Blue - Me.DD_Season_Prefix.CustomButton.TabIndex = 1 - Me.DD_Season_Prefix.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light - Me.DD_Season_Prefix.CustomButton.UseSelectable = True - Me.DD_Season_Prefix.CustomButton.Visible = False - Me.DD_Season_Prefix.FontSize = MetroFramework.MetroTextBoxSize.Medium - Me.DD_Season_Prefix.Lines = New String(-1) {} - Me.DD_Season_Prefix.Location = New System.Drawing.Point(6, 165) - Me.DD_Season_Prefix.MaxLength = 32767 - Me.DD_Season_Prefix.Name = "DD_Season_Prefix" - Me.DD_Season_Prefix.PasswordChar = Global.Microsoft.VisualBasic.ChrW(0) - Me.DD_Season_Prefix.ScrollBars = System.Windows.Forms.ScrollBars.None - Me.DD_Season_Prefix.SelectedText = "" - Me.DD_Season_Prefix.SelectionLength = 0 - Me.DD_Season_Prefix.SelectionStart = 0 - Me.DD_Season_Prefix.ShortcutsEnabled = True - Me.DD_Season_Prefix.Size = New System.Drawing.Size(225, 29) - Me.DD_Season_Prefix.TabIndex = 33 - Me.DD_Season_Prefix.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.DD_Season_Prefix.UseSelectable = True - Me.DD_Season_Prefix.WaterMarkColor = System.Drawing.Color.FromArgb(CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer)) - Me.DD_Season_Prefix.WaterMarkFont = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel) - ' - 'DD_Episode_Prefix - ' - ' - ' - ' - Me.DD_Episode_Prefix.CustomButton.Image = Nothing - Me.DD_Episode_Prefix.CustomButton.Location = New System.Drawing.Point(197, 1) - Me.DD_Episode_Prefix.CustomButton.Name = "" - Me.DD_Episode_Prefix.CustomButton.Size = New System.Drawing.Size(27, 27) - Me.DD_Episode_Prefix.CustomButton.Style = MetroFramework.MetroColorStyle.Blue - Me.DD_Episode_Prefix.CustomButton.TabIndex = 1 - Me.DD_Episode_Prefix.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light - Me.DD_Episode_Prefix.CustomButton.UseSelectable = True - Me.DD_Episode_Prefix.CustomButton.Visible = False - Me.DD_Episode_Prefix.FontSize = MetroFramework.MetroTextBoxSize.Medium - Me.DD_Episode_Prefix.Lines = New String(-1) {} - Me.DD_Episode_Prefix.Location = New System.Drawing.Point(248, 165) - Me.DD_Episode_Prefix.MaxLength = 32767 - Me.DD_Episode_Prefix.Name = "DD_Episode_Prefix" - Me.DD_Episode_Prefix.PasswordChar = Global.Microsoft.VisualBasic.ChrW(0) - Me.DD_Episode_Prefix.ScrollBars = System.Windows.Forms.ScrollBars.None - Me.DD_Episode_Prefix.SelectedText = "" - Me.DD_Episode_Prefix.SelectionLength = 0 - Me.DD_Episode_Prefix.SelectionStart = 0 - Me.DD_Episode_Prefix.ShortcutsEnabled = True - Me.DD_Episode_Prefix.Size = New System.Drawing.Size(225, 29) - Me.DD_Episode_Prefix.TabIndex = 34 - Me.DD_Episode_Prefix.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.DD_Episode_Prefix.UseSelectable = True - Me.DD_Episode_Prefix.WaterMarkColor = System.Drawing.Color.FromArgb(CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer), CType(CType(109, Byte), Integer)) - Me.DD_Episode_Prefix.WaterMarkFont = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel) - ' 'Einstellungen ' Me.ApplyImageInvert = True @@ -1943,7 +1915,6 @@ Partial Class Einstellungen Me.GroupBox17.ResumeLayout(False) Me.GroupBox3.ResumeLayout(False) Me.GB_Filename_Pre.ResumeLayout(False) - Me.GB_Filename_Pre.PerformLayout() Me.GroupBox12.ResumeLayout(False) Me.GroupBox12.PerformLayout() Me.MetroTabPage1.ResumeLayout(False) @@ -2073,8 +2044,6 @@ Partial Class Einstellungen Friend WithEvents DD_DLMode As MetroFramework.Controls.MetroComboBox Friend WithEvents MetroTabPage2 As MetroFramework.Controls.MetroTabPage Friend WithEvents GB_Filename_Pre As GroupBox - Friend WithEvents KodiSupport As MetroFramework.Controls.MetroToggle - Friend WithEvents MetroLink1 As MetroFramework.Controls.MetroLink Friend WithEvents GroupBox12 As GroupBox Friend WithEvents LeadingZeroDD As MetroFramework.Controls.MetroComboBox Friend WithEvents GroupBox17 As GroupBox @@ -2100,7 +2069,7 @@ Partial Class Einstellungen Public WithEvents CB_EpisodeName As MetroFramework.Controls.MetroCheckBox Public WithEvents CB_AnimeDub As MetroFramework.Controls.MetroCheckBox Public WithEvents CB_EpisodeNR As MetroFramework.Controls.MetroCheckBox - Public WithEvents CB_AnimeSub As MetroFramework.Controls.MetroCheckBox + Public WithEvents CB_Kodi As MetroFramework.Controls.MetroCheckBox Public WithEvents CB_Season As MetroFramework.Controls.MetroCheckBox Public WithEvents CB_Anime As MetroFramework.Controls.MetroCheckBox Friend WithEvents TB_NameString As MetroFramework.Controls.MetroTextBox diff --git a/Crunchyroll Downloader/einstellungen.resx b/Crunchyroll Downloader/einstellungen.resx index e809bf5..f49b9b4 100644 --- a/Crunchyroll Downloader/einstellungen.resx +++ b/Crunchyroll Downloader/einstellungen.resx @@ -126,6 +126,9 @@ 118, 20 + + 118, 20 + 332, 20 diff --git a/Crunchyroll Downloader/einstellungen.vb b/Crunchyroll Downloader/einstellungen.vb index 956a291..5ca462d 100644 --- a/Crunchyroll Downloader/einstellungen.vb +++ b/Crunchyroll Downloader/einstellungen.vb @@ -53,7 +53,7 @@ Public Class Einstellungen End If If Main.KodiNaming = True Then - KodiSupport.Checked = True + CB_Kodi.Checked = True End If If Main.DubMode = True Then @@ -326,13 +326,11 @@ Public Class Einstellungen CB_EpisodeName.Checked = True ElseIf NameParts(i) = "AnimeDub" Then CB_AnimeDub.Checked = True - ElseIf NameParts(i) = "AnimeSub" Then - CB_AnimeSub.Checked = True End If Next - CB_AnimeSub.Checked = False ' to be continued + @@ -404,7 +402,7 @@ Public Class Einstellungen My.Settings.Curl_insecure = False End If - If KodiSupport.Checked = True Then + If CB_Kodi.Checked = True Then Main.KodiNaming = True My.Settings.KodiSupport = True Else @@ -1234,7 +1232,7 @@ Public Class Einstellungen 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_AnimeSub.CheckedChanged + 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 @@ -1265,11 +1263,7 @@ Public Class Einstellungen TB_NameString.Text = TB_NameString.Text.Replace("AnimeDub;", "") End If - If CB_AnimeSub.Checked = True And CBool(InStr(TB_NameString.Text, "AnimeSub;")) = False Then - TB_NameString.AppendText("AnimeSub;") - ElseIf CB_AnimeSub.Checked = False Then - TB_NameString.Text = TB_NameString.Text.Replace("AnimeSub;", "") - End If + End Sub diff --git a/Crunchyroll Downloader/queue.Designer.vb b/Crunchyroll Downloader/queue.Designer.vb index da37a62..4b8256b 100644 --- a/Crunchyroll Downloader/queue.Designer.vb +++ b/Crunchyroll Downloader/queue.Designer.vb @@ -22,9 +22,32 @@ Partial Class Queue 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ListBox1 = New System.Windows.Forms.ListBox() + Me.UpdateListTimer = New System.Windows.Forms.Timer(Me.components) Me.Btn_Close = New System.Windows.Forms.Button() + Me.Btn_min = New System.Windows.Forms.Button() + Me.RunQueue = New MetroFramework.Controls.MetroToggle() + Me.Label1 = New MetroFramework.Controls.MetroLabel() + Me.RunQueueTimer = New System.Windows.Forms.Timer(Me.components) Me.SuspendLayout() ' + 'ListBox1 + ' + Me.ListBox1.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer)) + Me.ListBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.ListBox1.FormattingEnabled = True + Me.ListBox1.ItemHeight = 20 + Me.ListBox1.Location = New System.Drawing.Point(25, 65) + Me.ListBox1.Name = "ListBox1" + Me.ListBox1.Size = New System.Drawing.Size(700, 304) + Me.ListBox1.TabIndex = 0 + ' + 'UpdateListTimer + ' + Me.UpdateListTimer.Enabled = True + Me.UpdateListTimer.Interval = 1000 + ' 'Btn_Close ' Me.Btn_Close.BackColor = System.Drawing.Color.Transparent @@ -36,22 +59,76 @@ Partial Class Queue Me.Btn_Close.ForeColor = System.Drawing.Color.Transparent Me.Btn_Close.Image = Global.Crunchyroll_Downloader.My.Resources.Resources.main_close Me.Btn_Close.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.Btn_Close.Location = New System.Drawing.Point(282, 169) + Me.Btn_Close.Location = New System.Drawing.Point(695, 4) Me.Btn_Close.Name = "Btn_Close" - Me.Btn_Close.Size = New System.Drawing.Size(40, 40) - Me.Btn_Close.TabIndex = 37 + Me.Btn_Close.Size = New System.Drawing.Size(35, 35) + Me.Btn_Close.TabIndex = 49 Me.Btn_Close.UseVisualStyleBackColor = False ' + 'Btn_min + ' + Me.Btn_min.BackColor = System.Drawing.Color.Transparent + Me.Btn_min.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None + Me.Btn_min.Cursor = System.Windows.Forms.Cursors.Hand + Me.Btn_min.FlatAppearance.BorderSize = 0 + Me.Btn_min.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent + Me.Btn_min.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Btn_min.ForeColor = System.Drawing.Color.Transparent + Me.Btn_min.Image = Global.Crunchyroll_Downloader.My.Resources.Resources.main_mini + Me.Btn_min.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Btn_min.Location = New System.Drawing.Point(652, 4) + Me.Btn_min.Name = "Btn_min" + Me.Btn_min.Size = New System.Drawing.Size(30, 30) + Me.Btn_min.TabIndex = 48 + Me.Btn_min.UseVisualStyleBackColor = False + ' + 'RunQueue + ' + Me.RunQueue.Location = New System.Drawing.Point(325, 415) + Me.RunQueue.Name = "RunQueue" + Me.RunQueue.Size = New System.Drawing.Size(96, 20) + Me.RunQueue.TabIndex = 50 + Me.RunQueue.Text = "Aus" + Me.RunQueue.UseSelectable = True + ' + 'Label1 + ' + Me.Label1.FontWeight = MetroFramework.MetroLabelWeight.Regular + Me.Label1.Location = New System.Drawing.Point(25, 385) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(700, 22) + Me.Label1.TabIndex = 51 + Me.Label1.Text = "Process Queue" + Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'RunQueueTimer + ' + Me.RunQueueTimer.Interval = 2500 + ' 'Queue ' Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None - Me.ClientSize = New System.Drawing.Size(604, 378) + Me.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle + Me.ClientSize = New System.Drawing.Size(750, 450) + Me.ControlBox = False + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.RunQueue) + Me.Controls.Add(Me.ListBox1) Me.Controls.Add(Me.Btn_Close) + Me.Controls.Add(Me.Btn_min) + Me.MaximizeBox = False + Me.MinimizeBox = False Me.Name = "Queue" Me.Text = "Queue" + Me.TextAlign = MetroFramework.Forms.MetroFormTextAlign.Center Me.ResumeLayout(False) End Sub - + Public WithEvents ListBox1 As ListBox + Friend WithEvents UpdateListTimer As Timer Friend WithEvents Btn_Close As Button + Friend WithEvents Btn_min As Button + Friend WithEvents RunQueue As MetroFramework.Controls.MetroToggle + Friend WithEvents Label1 As MetroFramework.Controls.MetroLabel + Friend WithEvents RunQueueTimer As Timer End Class diff --git a/Crunchyroll Downloader/queue.resx b/Crunchyroll Downloader/queue.resx index 1af7de1..54fcd7c 100644 --- a/Crunchyroll Downloader/queue.resx +++ b/Crunchyroll Downloader/queue.resx @@ -117,4 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + + + 142, 17 + \ No newline at end of file diff --git a/Crunchyroll Downloader/queue.vb b/Crunchyroll Downloader/queue.vb index 08500fb..b95b2c2 100644 --- a/Crunchyroll Downloader/queue.vb +++ b/Crunchyroll Downloader/queue.vb @@ -1,26 +1,30 @@ Option Strict On +Imports System.ComponentModel +Imports System.Net +Imports System.Windows.Forms.VisualStyles.VisualStyleElement +Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Button Imports MetroFramework Imports MetroFramework.Components Public Class Queue Dim Manager As MetroStyleManager = Main.Manager - + Dim bs As BindingSource = New BindingSource Private Sub Reso_Load(sender As Object, e As EventArgs) Handles MyBase.Load Manager.Owner = Me Me.StyleManager = Manager + ListBox1.BackColor = Main.BackColorValue + ListBox1.ForeColor = Main.ForeColorValue + bs.DataSource = Main.ListBoxList + ListBox1.DataSource = bs + Btn_min.Image = Main.MinImg + Btn_Close.Image = Main.CloseImg End Sub - - - - - - Private Sub Btn_Close_Click(sender As Object, e As EventArgs) Handles Btn_Close.Click Me.Close() End Sub @@ -38,7 +42,104 @@ Public Class Queue Btn_Close.Image = Main.CloseImg End Sub + Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles UpdateListTimer.Tick + If Main.ListBoxList.Count <> ListBox1.Items.Count Then + bs.ResetBindings(False) + End If + + End Sub + + Private Sub Queue_Resize(sender As Object, e As EventArgs) Handles Me.Resize + Btn_Close.Location = New Point(Me.Width - 36, 1) + Btn_min.Location = New Point(Me.Width - 67, 1) + End Sub + + Private Sub Btn_min_Click(sender As Object, e As EventArgs) Handles Btn_min.Click + Me.WindowState = System.Windows.Forms.FormWindowState.Minimized + End Sub + + Private Sub RunQueue_CheckedChanged(sender As Object, e As EventArgs) Handles RunQueue.CheckedChanged + RunQueueTimer.Enabled = RunQueue.Checked + End Sub + + Private Sub RunQueueTimer_Tick(sender As Object, e As EventArgs) Handles RunQueueTimer.Tick + + Try + Dim ItemFinshedCount As Integer = 0 + Dim Item As New List(Of CRD_List_Item) + Item.AddRange(Main.Panel1.Controls.OfType(Of CRD_List_Item)) + + For i As Integer = 0 To Item.Count - 1 + Debug.WriteLine(Item(i).GetIsStatusFinished().ToString) + If Item(i).GetIsStatusFinished() = True Then + ItemFinshedCount = ItemFinshedCount + 1 + End If + Next + + Main.RunningDownloads = Item.Count - ItemFinshedCount + + Catch ex As Exception + Main.RunningDownloads = Main.Panel1.Controls.Count + End Try + + If Main.RunningDownloads < Main.MaxDL Then + If Main.ListBoxList.Count > 0 Then + + If CBool(InStr(ListBox1.GetItemText(Main.ListBoxList(0)), "funimation.com")) Then + If Main.Funimation_Grapp_RDY = True Then + Dim UriUsed As String = ListBox1.GetItemText(Main.ListBoxList(0)) + + If CBool(InStr(UriUsed, "funimation.com/v/")) Then + Dim Episode0() As String = UriUsed.Split(New String() {"?"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim Episode() As String = Episode0(0).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim v1JsonUrl As String = "https://d33et77evd9bgg.cloudfront.net/data/v1/episodes/" + Episode(Episode.Length - 1) + ".json" + 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 + Main.Funimation_Grapp_RDY = False + Main.WebbrowserURL = UriUsed + Main.ListBoxList.Remove(UriUsed) + Main.b = False + Main.Invalidate() + Main.GetFunimationNewJS_VideoProxy(Nothing, v1Json) + Exit Sub + Catch ex As Exception + Debug.WriteLine("error- getting v1Json data for the bypasss") + Debug.WriteLine(ex.ToString) + End Try + + End If + + Main.Funimation_Grapp_RDY = False + Main.WebbrowserURL = UriUsed + Main.ListBoxList.Remove(UriUsed) + Main.b = False + + + Main.Text = "Status: loading in browser" + Main.LoadBrowser(UriUsed) + End If + + Else + Dim UriUsed As String = ListBox1.GetItemText(Main.ListBoxList(0)) + + If Main.Grapp_RDY = True Then + Main.Grapp_RDY = False + Main.Text = "Status: loading ..." + Main.LoadBrowser(UriUsed) + Main.ListBoxList.Remove(UriUsed) + Main.b = False + End If + End If + End If + End If + End Sub End Class \ No newline at end of file