Crunchyroll-Downloader-v3.0/Crunchyroll Downloader/Subfolder.vb

160 lines
4.4 KiB
VB.net
Raw Normal View History

Imports System.ComponentModel
Imports System.IO
Imports System.Text
Imports System.Windows.Forms.VisualStyles
Module Subfolder
Public SubFolder_automatic As String = "[automatic by Series and Season]"
Public SubFolder_automatic2 As String = "[automatic by Series]"
Public SubFolder_automatic_old As String = "[automatic: Series/Season]"
Public SubFolder_Nothing As String = "[ ignore subfolder ]"
Public SubFolder_Value As String = "[ ignore subfolder ]"
Public Function CleanJSON(ByVal JSON As String) As String
JSON = JSON.Replace("&", "&").Replace("/u0026", "&").Replace("\u002F", "/").Replace("\u0026", "&")
While CBool(InStr(JSON, "\"))
Dim index As Integer = InStr(JSON, "\")
Dim myName As New StringBuilder(JSON)
myName.Remove(index - 1, 2)
JSON = myName.ToString
End While
Return JSON
End Function
Public Function UseSubfolder(ByVal Series As String, ByVal Season As String, ByVal Path As String) As String
Dim newPath As String = Path + "\"
If SubFolder_Value = SubFolder_automatic Or SubFolder_Value = SubFolder_automatic_old Then
newPath = Path + "\" + Series + "\" + Season + "\"
ElseIf SubFolder_Value = SubFolder_automatic2 Then
newPath = Path + "\" + Series + "\"
ElseIf SubFolder_Value = SubFolder_Nothing Then
newPath = Path + "\"
Else
newPath = Path + "\" + SubFolder_Value + "\"
End If
Debug.WriteLine(newPath)
Return newPath.Replace("\\", "\")
End Function
2021-09-20 20:37:57 +02:00
Public Sub WriteText(ByVal Pfad As String, ByVal Content As String)
If Pfad.Length > 255 Then
Pfad = "\\?\" + Pfad
End If
File.WriteAllText(Pfad, Content, Encoding.UTF8)
End Sub
Public Function ReadText(ByVal Pfad As String) As String
If Pfad.Length > 255 Then
Pfad = "\\?\" + Pfad
End If
Return File.ReadAllText(Pfad, Encoding.UTF8)
End Function
2021-09-20 20:37:57 +02:00
Public Function GeräteID() As String
Dim rnd As New Random
Dim possible As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
Dim HWID As String = Nothing
For i As Integer = 0 To 15
Dim ZufallsZahl As Integer = rnd.Next(1, 33)
HWID = HWID + possible(ZufallsZahl)
Next
Return "CRD-Temp-File-" + HWID
End Function
Public Function GeräteID2() As String
Dim rnd As New Random
Dim possible As String = "56789abcdefghijklmnopqrstuvwxyz01234ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim HWID As String = Nothing
For i As Integer = 0 To 15
Dim ZufallsZahl As Integer = rnd.Next(1, 33)
HWID = HWID + possible(ZufallsZahl)
Next
Return "CRD-Temp-File-" + HWID
End Function
Class TextBoxTraceListener
Inherits TraceListener
Private tBox As RichTextBox
Dim lastmsg As String = Nothing
2021-09-20 20:37:57 +02:00
Public Sub New(ByVal box As RichTextBox)
Me.tBox = box
End Sub
Dim WithEvents BG As BackgroundWorker
Sub RunBG(ByVal sender As Object, e As DoWorkEventArgs) Handles BG.DoWork
Dim msg As String = CStr(e.Argument)
If msg <> lastmsg Then
lastmsg = msg
Else
Exit Sub
End If
2021-09-20 20:37:57 +02:00
Try
tBox.Parent.Invoke(New MethodInvoker(Sub()
tBox.AppendText(msg)
2021-09-20 20:37:57 +02:00
End Sub))
Catch ex As Exception
2021-09-20 20:37:57 +02:00
End Try
End Sub
Sub StopBG(sender As Object, e As EventArgs)
Dim T As Timer = CType(sender, Timer)
If BG.IsBusy Then
BG.CancelAsync()
T.Dispose()
Else
T.Dispose()
End If
End Sub
Public Overrides Sub Write(ByVal msg As String)
Dim time As New Timer
AddHandler time.Tick, AddressOf StopBG
time.Interval = 500
time.Start()
BG = New BackgroundWorker
BG.WorkerSupportsCancellation = True
BG.RunWorkerAsync(msg)
2021-09-20 20:37:57 +02:00
End Sub
Public Overrides Sub WriteLine(ByVal msg As String)
Write(msg & vbCrLf)
End Sub
End Class
End Module