Public Class Form1 Dim start_dl_url As String Dim name_des_videos As String Dim name_des_herstellers As String Dim name_des_downloads_1 As String Dim name_des_downloads_2 As String Dim end_dl_url As String Dim sizes As Double Dim weitergehts As Boolean = False Dim ms As Integer WithEvents item As New ListViewItem Public alle_downloads As Integer Public aktuelle_dl_nummer_alle As Integer Public aktuelle_dl_nummer_einzeln As Integer Dim start_DL_url_playlist As String WithEvents ContextMenu1 As New ContextMenu
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ContextMenu1.MenuItems.Add("&Downloaden", New System.EventHandler(AddressOf downloaden)) ContextMenu1.MenuItems.Add("&DL stoppen", New System.EventHandler(AddressOf dl_stop)) ContextMenu1.MenuItems.Add("&Infos", New System.EventHandler(AddressOf infos)) ContextMenu1.MenuItems.Add("&Anzeigen", New System.EventHandler(AddressOf anzeigen)) ContextMenu1.MenuItems.Add("&Beenden", New System.EventHandler(AddressOf beenden)) ContextMenu1.MenuItems.Add("&AmbiY2J", New System.EventHandler(AddressOf homepage)) NotifyIcon1.ContextMenu = ContextMenu1
Private Sub Button_save_under_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_save_under.Click FolderBrowserDialog.ShowDialog() TextBox_pfad.Text = FolderBrowserDialog.SelectedPath & "\"
End Sub
Private Sub Button_save_config_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_save_config.Click Dim fnum As Short, dateiname As Object fnum = FreeFile() dateiname = My.Application.Info.DirectoryPath.ToString & "\pfad.config" FileOpen(fnum, dateiname, OpenMode.Output) PrintLine(fnum, TextBox_pfad.Text) FileClose(fnum)
Private Sub Button_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_add.Click daten_ermitteln_einzeln()
End Sub
Private Sub daten_ermitteln_einzeln()
On Error GoTo err
If TextBox_pfad.Text <> "" Then
Dim httpURL As New System.Uri(ComboBox_link.Text) Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL) request.Method = WebRequestMethods.Http.Get Dim response As HttpWebResponse = request.GetResponse Dim reader As New StreamReader(response.GetResponseStream)
start_dl_url = reader.ReadToEnd
response.Close() ERMITTELN_ROUTINE_EINZELN()
item = ListView.Items.Add(name_des_videos)
Dim items_number As Integer = ListView.Items.Count item.SubItems.Add(items_number) item.SubItems.Add(name_des_herstellers) item.SubItems.Add("Bereit") item.SubItems.A dd(sizes & " MB") item.SubItems.Add(end_dl_url)
Else MsgBox("""ist kein gültiger Speicherort. Bitte wählen Sie einen anderen aus!")
End If
Exit Sub err: MsgBox("Leider nicht gültig!")
End Sub
Public Sub ERMITTELN_ROUTINE_EINZELN()
' Get the Name of the Video Dim anfang_stelle_des_video_namens As Integer anfang_stelle_des_video_namens = InStr(start_dl_url, "<meta name=""title"" content=""") + 28 Dim ende_stelle_des_video_namens As Integer ende_stelle_des_video_namens = InStr(start_dl_url, "<meta name=""description"" content=""") - 6 Dim Laenge_des_namens As Integer Laenge_des_namens = ende_stelle_des_video_namens - anfang_stelle_des_video_namens name_des_videos = Mid(start_dl_url, anfang_stelle_des_video_namens, Laenge_des_namens)
' Get the Name of the Autor Dim anfang_stelle_des_video_herstellers As Integer = InStr(start_dl_url, "'VIDEO_USERNAME': '") + 19 Dim ende_stelle_des_video_herstellers As Integer = InStr(anfang_stelle_des_video_herstellers, start_dl_url, "'") Dim Laenge_des_herstellers As Integer = ende_stelle_des_video_herstellers - anfang_stelle_des_video_herstellers name_des_herstellers = Mid(start_dl_url, anfang_stelle_des_video_herstellers, Laenge_des_herstellers)
' Get the first String of the Download-String Dim anfang_stelle_des_video_downloads_1 As Integer = InStr(start_dl_url, "<!-- end contenttop section -->") + 30 Dim anfang_stelle_des_video_downloads_2 As Integer = InStr(anfang_stelle_des_video_downloads_1, start_dl_url, "url_map") + 13 Dim ende_stelle_des_video_downloads_1 As Integer = InStr(anfang_stelle_des_video_downloads_2 + 5, start_dl_url, "%2C") Dim Laenge_des_downloads_1 As Integer = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_2
Private Sub Button_alle_downloaden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_alle_downloaden.Click alle_downloads = ListView.Items.Count aktuelle_dl_nummer_alle = 0 Timer_alle.Start()
End Sub
Private Sub Timer_alle_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_alle.Tick If alle_downloads >= aktuelle_dl_nummer_alle Then Download_alles.download_berechnen()
Else Timer_alle.Stop()
End If End Sub
Private Sub ComboBox_link_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox_link.Click ComboBox_link.Text = ""
End Sub
Private Sub ComboBox_link_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox_link.SelectedIndexChanged
End Sub
Private Sub TextBox_pfad_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox_pfad.Click FolderBrowserDialog.ShowDialog()
End Sub
Private Sub TextBox_pfad_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox_pfad.TextChanged
End Sub
Private Sub Button_einzelne_downloaden_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_einzeln_downloaden.Click
For i = 0 To ListView.CheckedIndices.Count - 1
If Download_einzeln.download_1_fertig = True Then aktuelle_dl_nummer_einzeln = ListView.CheckedIndices.Item(i) Download_einzeln.download_berechnen() ElseIf Download_einzeln.download_2_fertig = True Then aktuelle_dl_nummer_einzeln = ListView.CheckedIndices.Item(i) Download_einzeln.download_berechnen() ElseIf Download_einzeln.download_3_fertig = True Then aktuelle_dl_nummer_einzeln = ListView.CheckedIndices.Item(i) Download_einzeln.download_berechnen() Else i -= 1 Wartezeit(1)
End If
Next End Sub
Public Sub Wartezeit(ByVal Sekunden As Integer) ms = Sekunden * 1000 weitergehts = False Dim T As Thread = New Thread(AddressOf Warten) T.Start() Do Application.DoEvents() Loop Until weitergehts = True End Sub
Private Sub Warten() Thread.Sleep(ms) weitergehts = True End Sub
Private Sub Button_einzelne_löschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_einzeln_löschen.Click
While ListView.CheckedIndices.Count <> 0 ListView.Items.Remove(ListView.Items(ListView.CheckedIndices.Item(0))) End While
End Sub Private Sub Button_alle_löschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_alle_löschen.Click
ListView.Items.Clear() End Sub
Private Sub Button_stop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_stop.Click Download_alles.download_1.CancelAsync() Download_alles.download_2.CancelAsync() Download_alles.download_3.CancelAsync() Download_einzeln.download_1.CancelAsync() Download_einzeln.download_2.CancelAsync() Download_einzeln.download_3.CancelAsync() End Sub
Private Sub Button_playlist_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_playlist.Click On Error GoTo err
If TextBox_pfad.Text <> "" Then Dim httpURL As New System.Uri(ComboBox_link.Text) Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL) request.Method = WebRequestMethods.Http.Get Dim response As HttpWebResponse = request.GetResponse() Dim reader As New StreamReader(response.GetResponseStream()) start_DL_url_playlist = reader.ReadToEnd() response.Close()
''''''''''####################################
Dim anfang_playlist_count As Integer anfang_playlist_count = InStr(start_DL_url_playlist, "<span>Videos: ") + 14 Dim ende_playlist_count As Integer ende_playlist_count = InStr(anfang_playlist_count, start_DL_url_playlist, "</span>") Dim Laenge_playlist_count1 As Integer Laenge_playlist_count1 = ende_playlist_count - anfang_playlist_count Dim Laenge_playlist_count2 As Integer Laenge_playlist_count2 = Mid(start_DL_url_playlist, anfang_playlist_count, Laenge_playlist_count1)
Dim playlist_ohne_youtube As String Dim playlist_mit_youtube As String Dim anfang_stelle_der_playlist_videos As Integer Dim anfang_stelle_der_playlist_video As Integer Dim ende_stelle_der_playlist_video As Integer Dim Laenge_der_playlist_video As Integer
For i As Integer = 0 To Laenge_playlist_count2 - 1
Dim anfang_stelle_des_video_downloads_2 As Integer anfang_stelle_des_video_downloads_2 = InStr(ende_stelle_des_video_downloads_1, start_dl_url, "t=") + 2 Dim ende_stelle_des_video_downloads_2 As Integer ende_stelle_des_video_downloads_2 = InStr(anfang_stelle_des_video_downloads_2, start_dl_url, "%3D") Dim Laenge_des_downloads_2 As Integer Laenge_des_downloads_2 = ende_stelle_des_video_downloads_2 - anfang_stelle_des_video_downloads_2
End Sub Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
'start_DL_url_link = ComboBox_link.Text On Error GoTo err
If TextBox_pfad.Text <> "" Then Dim httpURL As New System.Uri(My.Computer.Clipboard.GetText.ToString()) Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL) request.Method = WebRequestMethods.Http.Get Dim response As HttpWebResponse = request.GetResponse() Dim reader As New StreamReader(response.GetResponseStream()) start_dl_url = reader.ReadToEnd() response.Close()
Module Download_alles Public WithEvents download_1 As New WebClient Public WithEvents download_2 As New WebClient Public WithEvents download_3 As New WebClient
Public download_1_fertig As Boolean = True Public download_2_fertig As Boolean = True Public download_3_fertig As Boolean = True
Public number1_download As Integer Public number2_download As Integer Public number3_download As Integer
Public Sub download_berechnen()
If Form1.alle_downloads <> Form1.aktuelle_dl_nummer_alle Then If download_1_fertig = True Then If Form1.ListView.Items.Item(Form1.aktuelle_dl_nummer_alle).SubItems(3).ToString <> "Fertig" Then number1_download = Form1.aktuelle_dl_nummer_alle download_1_fertig = False Form1.aktuelle_dl_nummer_alle += 1 download_1.DownloadFileAsync(New Uri(Form1.ListView.Items.Item(number1_download).SubItems(5).Text), Form1.TextBox_pfad.Text & Form1.ListView.Items.Item(number1_download).SubItems(0).Text & ".flv") Exit Sub End If Else If download_2_fertig = True Then If Form1.ListView.Items.Item(Form1.aktuelle_dl_nummer_alle).SubItems(3).ToString <> "Fertig" Then number2_download = Form1.aktuelle_dl_nummer_alle download_2_fertig = False Form1.aktuelle_dl_nummer_alle += 1 download_2.DownloadFileAsync(New Uri(Form1.ListView.Items.Item(number2_download).SubItems(5).Text), Form1.TextBox_pfad.Text & Form1.ListView.Items.Item(number2_download).SubItems(0).Text & ".flv") Exit Sub End If Else If download_3_fertig = True Then If Form1.ListView.Items.Item(Form1.aktuelle_dl_nummer_alle).SubItems(3).ToString <> "Fertig" Then number3_download = Form1.aktuelle_dl_nummer_alle download_3_fertig = False Form1.aktuelle_dl_nummer_alle += 1 download_3.DownloadFileAsync(New Uri(Form1.ListView.Items.Item(number3_download).SubItems(5).Text), Form1.TextBox_pfad.Text & Form1.ListView.Items.Item(number3_download).SubItems(0).Text & ".flv") Exit Sub End If End If End If End If End If End Sub
Public Sub download_1_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download_1.DownloadFileCompleted download_1_fertig = True Form1.ListView.Items.Item(number1_download).SubItems(3).Text = "Fertig" Form1.ListView.Items.Item(number1_download).Checked = True End Sub Private Sub download_2_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download_2.DownloadFileCompleted download_2_fertig = True Form1.ListView.Items.Item(number2_download).SubItems(3).Text = "Fertig" Form1.ListView.Items.Item(number2_download).Checked = True End Sub Private Sub download_3_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download_3.DownloadFileCompleted download_3_fertig = True Form1.ListView.Items.Item(number3_download).SubItems(3).Text = "Fertig" Form1.ListView.Items.Item(number3_download).Checked = True End Sub
Private Sub download_1_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download_1.DownloadProgressChanged Form1.ListView.Items.Item(number1_download).SubItems(3).Text = e.ProgressPercentage & "%" End Sub Private Sub download_2_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download_2.DownloadProgressChanged Form1.ListView.Items.Item(number2_download).SubItems(3).Text = e.ProgressPercentage & "%" End Sub Private Sub download_3_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download_3.DownloadProgressChanged Form1.ListView.Items.Item(number3_download).SubItems(3).Text = e.ProgressPercentage & "%" End Sub End Module
Module Download_einzeln Public WithEvents download_1 As New WebClient Public WithEvents download_2 As New WebClient Public WithEvents download_3 As New WebClient
Public download_1_fertig As Boolean = True Public download_2_fertig As Boolean = True Public download_3_fertig As Boolean = True
Public number1_download As Integer Public number2_download As Integer Public number3_download As Integer
Public Sub download_berechnen()
If download_1_fertig = True Then If Form1.ListView.Items.Item(Form1.aktuelle_dl_nummer_einzeln).SubItems(3).ToString <> "Fertig" Then number1_download = Form1.aktuelle_dl_nummer_einzeln download_1_fertig = False Form1.aktuelle_dl_nummer_alle += 1 download_1.DownloadFileAsync(New Uri(Form1.ListView.Items.Item(number1_download).SubItems(5).Text), Form1.TextBox_pfad.Text & Form1.ListView.Items.Item(number1_download).SubItems(0).Text & ".flv") Exit Sub End If Else If download_2_fertig = True Then If Form1.ListView.Items.Item(Form1.aktuelle_dl_nummer_einzeln).SubItems(3).ToString <> "Fertig" Then number2_download = Form1.aktuelle_dl_nummer_einzeln download_2_fertig = False Form1.aktuelle_dl_nummer_alle += 1 download_2.DownloadFileAsync(New Uri(Form1.ListView.Items.Item(number2_download).SubItems(5).Text), Form1.TextBox_pfad.Text & Form1.ListView.Items.Item(number2_download).SubItems(0).Text & ".flv") Exit Sub End If Else If download_3_fertig = True Then If Form1.ListView.Items.Item(Form1.aktuelle_dl_nummer_einzeln).SubItems(3).ToString <> "Fertig" Then number3_download = Form1.aktuelle_dl_nummer_einzeln download_3_fertig = False Form1.aktuelle_dl_nummer_alle += 1 download_3.DownloadFileAsync(New Uri(Form1.ListView.Items.Item(number3_download).SubItems(5).Text), Form1.TextBox_pfad.Text & Form1.ListView.Items.Item(number3_download).SubItems(0).Text & ".flv") Exit Sub End If End If End If End If End Sub
Public Sub download_1_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download_1.DownloadFileCompleted download_1_fertig = True Form1.ListView.Items.Item(number1_download).SubItems(3).Text = "Fertig" Form1.ListView.Items.Item(number1_download).Checked = True End Sub Private Sub download_2_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download_2.DownloadFileCompleted download_2_fertig = True Form1.ListView.Items.Item(number2_download).SubItems(3).Text = "Fertig" Form1.ListView.Items.Item(number2_download).Checked = True End Sub Private Sub download_3_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download_3.DownloadFileCompleted download_3_fertig = True Form1.ListView.Items.Item(number3_download).SubItems(3).Text = "Fertig" Form1.ListView.Items.Item(number3_download).Checked = True End Sub
Private Sub download_1_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download_1.DownloadProgressChanged Form1.ListView.Items.Item(number1_download).SubItems(3).Text = e.ProgressPercentage & "%" End Sub Private Sub download_2_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download_2.DownloadProgressChanged Form1.ListView.Items.Item(number2_download).SubItems(3).Text = e.ProgressPercentage & "%" End Sub Private Sub download_3_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download_3.DownloadProgressChanged Form1.ListView.Items.Item(number3_download).SubItems(3).Text = e.ProgressPercentage & "%" End Sub End Module