Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System
- Imports System.IO
- Imports ICSharpCode.SharpZipLib.Core
- Imports ICSharpCode.SharpZipLib.Zip
- Imports System.Drawing
- Public Class Form1
- Public aDir As String = Application.UserAppDataPath
- Public table As DataTable = New DataTable("Tracks")
- Public track_name As DataColumn = New DataColumn("track_name")
- Public full_name As DataColumn = New DataColumn("full_name")
- Public extention As DataColumn = New DataColumn("extention")
- Private tempFolder = createTempFolder()
- Public newRow As DataRow
- Public hhmTracksFileName As String = ""
- Public hhmTracksFilePath As String = ""
- Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
- Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Int32, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Integer) As Int32
- Declare Auto Function InternetConnect Lib "wininet.dll" (ByVal hInternetSession As System.IntPtr, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Int32, ByVal lFlags As Int32, ByVal lContext As System.IntPtr) As System.IntPtr
- Declare Function FtpGetFile Lib "wininet.dll" (ByVal hConnect As IntPtr, ByVal remoteFile As String, ByVal newFile As String, ByVal failIfExists As Boolean, ByVal flagsAndAttributes As Integer, ByVal flags As Integer, ByVal context As IntPtr) As Boolean
- Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As IntPtr, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Integer, ByVal dwContext As Integer) As Boolean
- Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- If (Not System.IO.Directory.Exists(aDir & "/temp")) Then
- System.IO.Directory.CreateDirectory(aDir & "/temp")
- End If
- MsgBox("Welkom bij de Hiphopmusic track uploader. Voeg bestanden of gehele mappen toe door de iconen onder aan het programma te gebruiken!")
- track_name.DataType = System.Type.GetType("System.String")
- table.Columns.Add(track_name)
- full_name.DataType = System.Type.GetType("System.String")
- table.Columns.Add(full_name)
- extention.DataType = System.Type.GetType("System.String")
- table.Columns.Add(extention)
- track_list.DataSource = table
- track_list.DisplayMember = table.Columns(0).ColumnName
- track_list.ValueMember = table.Columns(0).ColumnName
- End Sub
- Public Function addFile(ByVal full_name As String)
- Dim temp_track() As String = Split(full_name, "\")
- temp_track = Split(temp_track.Last, ".")
- Dim track As String = ""
- Dim i As Int16 = 1
- For Each ttrack In temp_track
- If Not i = temp_track.Count Then
- track += ttrack
- If Not i = (temp_track.Count - 1) Then
- track += "."
- End If
- End If
- i = i + 1
- Next
- newRow = table.NewRow()
- newRow.Item("track_name") = track
- newRow.Item("full_name") = full_name
- newRow.Item("extention") = temp_track.Last
- table.Rows.Add(newRow)
- track_list.SelectedIndex = table.Rows.Count - 1
- Return (False)
- End Function
- Private Sub add_track_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles add_track.Click
- Dim fileDialog As OpenFileDialog = New OpenFileDialog()
- fileDialog.Filter = "Tracks (*.mp3;*.wma)|*.mp3;*.wma"
- fileDialog.ShowDialog()
- If System.IO.File.Exists(fileDialog.FileName) Then
- addFile(fileDialog.FileName)
- End If
- End Sub
- Private Sub add_folder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles add_folder.Click
- Dim folderDialog As FolderBrowserDialog = New FolderBrowserDialog()
- folderDialog.ShowDialog()
- Dim folder As String = folderDialog.SelectedPath
- If System.IO.Directory.Exists(folder) Then
- Dim strFileSize As String = ""
- Dim di As New IO.DirectoryInfo(folder)
- Dim aryFi As IO.FileInfo() = di.GetFiles("*.mp3")
- Dim fi As IO.FileInfo
- For Each fi In aryFi
- addFile(fi.FullName)
- Next
- strFileSize = ""
- aryFi = di.GetFiles("*.wma")
- For Each fi In aryFi
- addFile(fi.FullName)
- Next
- End If
- End Sub
- Private Sub remove_track_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles remove_track.Click
- table.Rows.RemoveAt(track_list.SelectedIndex)
- End Sub
- Public Shared Function FilenameIsOK(ByVal fileNameAndPath As String) As Boolean
- Try
- Dim fi As FileInfo = New FileInfo(fileNameAndPath)
- If fileNameAndPath.Contains("/") Then
- Return False
- ElseIf fileNameAndPath.Contains("\") Then
- Return False
- Else
- Return True
- End If
- Catch ex As Exception
- Return False
- End Try
- End Function
- Private Sub rename_track_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rename_track.Click
- If Not track_list.SelectedValue = "" Then
- Dim input As String = InputBox("Vul hieronder de nieuwe titel van de track in", "Hernoem Track", track_list.SelectedValue)
- If Not input = "" Then
- If FilenameIsOK(input & "." & table(track_list.SelectedIndex)("extention")) Then
- table(track_list.SelectedIndex)("track_name") = input
- Else
- MsgBox("De naam is niet geldig. Er mag geen gebruik worden gemaakt van de tekens: / \ : * ? < >")
- End If
- Else
- MsgBox("U moet wel wat invullen")
- End If
- Else
- MsgBox("U moet wel wat selecteren")
- End If
- End Sub
- Private Sub track_up_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles track_up.Click
- Dim selected As Integer = track_list.SelectedIndex
- If selected = 0 Then
- MsgBox("De track staat al bovenaan")
- Else
- Dim track As DataRow = table(selected)
- newRow = table.NewRow()
- newRow.Item("track_name") = track("track_name")
- newRow.Item("full_name") = track("full_name")
- newRow.Item("extention") = track("extention")
- table.Rows.RemoveAt(selected)
- table.Rows.InsertAt(newRow, (selected - 1))
- track_list.SelectedIndex = selected - 1
- End If
- End Sub
- Private Sub track_down_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles track_down.Click
- Dim selected As Integer = track_list.SelectedIndex
- If selected = (table.Rows.Count - 1) Then
- MsgBox("De track staat al onderaan")
- Else
- Dim track As DataRow = table(selected)
- newRow = table.NewRow()
- newRow.Item("track_name") = track("track_name")
- newRow.Item("full_name") = track("full_name")
- newRow.Item("extention") = track("extention")
- table.Rows.RemoveAt(selected)
- table.Rows.InsertAt(newRow, (selected + 1))
- track_list.SelectedIndex = selected + 1
- End If
- End Sub
- Private Function createTempFolder()
- Dim randomClass As Random = New Random()
- Dim uniqid As String = randomClass.Next(1, 100000) & randomClass.Next(1, 100000) & randomClass.Next(1, 100000)
- If (Not System.IO.Directory.Exists(aDir & "/temp/" & uniqid)) Then
- System.IO.Directory.CreateDirectory(aDir & "/temp/" & uniqid)
- Else
- Return createTempFolder()
- End If
- Return aDir & "/temp/" & uniqid
- End Function
- Private Sub make_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles make.Click
- hhmTracksFileName = InputBox("Vul de naam in van het bestand dat u wilt maken", "Bestand maken...")
- If Not FilenameIsOK(hhmTracksFileName) Then
- MsgBox("De bestandsnaam is niet geldig.")
- Else
- hhmTracksFilePath = aDir & "/temp/" & hhmTracksFileName & ".hhm-tracks"
- Dim X As MsgBoxResult = MsgBox("U staat op het punt om een HHM-tracks bestand te maken. Het maken van dit bestand kan lang duren. U dient het programma in de tussentijd niet af te sluiten. Weet u zeker dat u het procces wilt starten?", 3)
- If X = MsgBoxResult.Yes Then
- info_label2.Text = "Bezig met maken van bestand..."
- UseWaitCursor = True
- track_list.Enabled = False
- ToolStrip1.Enabled = False
- Me.Text = "Hiphopmusic track uploader v1.0 Beta | Maken van bestand... 0%"
- BackgroundWorker.RunWorkerAsync()
- End If
- End If
- End Sub
- Private Sub BackgroundWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker.DoWork
- Dim i As Double = 1
- BackgroundWorker.ReportProgress(10)
- Dim pl As Double = 30 / (table.Rows.Count - 1)
- Dim apl As Double = 10
- For Each track In table.Rows
- Dim newFileName As String = tempFolder & "\" & i & "-" & track("track_name") & "." & track("extention")
- My.Computer.FileSystem.CopyFile(track("full_name"), newFileName)
- i = i + 1
- BackgroundWorker.ReportProgress(apl + pl)
- apl = apl + pl
- Next
- If (File.Exists(hhmTracksFilePath)) Then
- File.Delete(hhmTracksFilePath)
- End If
- Dim strmZipOutputStream As ZipOutputStream
- Dim astrFileNames() As String = Directory.GetFiles(tempFolder)
- strmZipOutputStream = New ZipOutputStream(File.Create(hhmTracksFilePath))
- strmZipOutputStream.SetLevel(9)
- Dim strFile As String
- Dim abyBuffer(4096) As Byte
- BackgroundWorker.ReportProgress(apl + 5)
- pl = 45 / astrFileNames.Length
- For Each strFile In astrFileNames
- Dim strmFile As FileStream = File.OpenRead(strFile)
- Try
- Dim objZipEntry As ZipEntry = New ZipEntry(Path.GetFileName(strFile))
- objZipEntry.DateTime = DateTime.Now
- objZipEntry.Size = strmFile.Length
- strmZipOutputStream.PutNextEntry(objZipEntry)
- StreamUtils.Copy(strmFile, strmZipOutputStream, abyBuffer)
- Finally
- strmFile.Close()
- End Try
- BackgroundWorker.ReportProgress(apl + pl)
- apl = apl + pl
- Next
- strmZipOutputStream.Finish()
- strmZipOutputStream.Close()
- System.IO.Directory.Delete(tempFolder, True)
- BackgroundWorker.ReportProgress(100)
- End Sub
- Private Sub BackgroundWorker_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker.ProgressChanged
- If e.ProgressPercentage < 100 Then
- ToolStripProgressBar1.ProgressBar.Value = e.ProgressPercentage
- Else
- ToolStripProgressBar1.ProgressBar.Value = 100
- End If
- Me.Text = "Hiphopmusic track uploader v1.0 Beta | Maken van bestand... " & e.ProgressPercentage & "%"
- End Sub
- Private Sub BackgroundWorker_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker.RunWorkerCompleted
- info_label2.Text = "Bezig met uploaden van bestand..."
- Me.Text = "Hiphopmusic track uploader v1.0 Beta | Uploaden van bestand..."
- ToolStripProgressBar1.ProgressBar.Style = 2
- ftpWorker.RunWorkerAsync()
- End Sub
- Private Sub ftpWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles ftpWorker.DoWork
- Dim ftpOpen = InternetOpen("FTP", 0, vbNullString, vbNullString, 0)
- Dim ftpConnection = InternetConnect(ftpOpen, "", 0, "", "", 1, 0, 0)
- ftpWorker.ReportProgress(20)
- FtpPutFile(ftpConnection, hhmTracksFilePath, "/temp-tracks-folder/" & hhmTracksFileName & ".hhm-tracks", 1, 0)
- End Sub
- Private Sub ftpWorker_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles ftpWorker.ProgressChanged
- Me.Text = "Hiphopmusic track uploader v1.0 Beta | Uploaden van bestand... "
- End Sub
- Private Sub ftpWorker_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles ftpWorker.RunWorkerCompleted
- System.IO.File.Delete(hhmTracksFilePath)
- MsgBox("Het bestand is geupload. U kunt nu op de website de tracks toevoegen.")
- Me.Close()
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement