feat: 自己下

This commit is contained in:
tangge233
2024-11-08 22:09:52 +08:00
parent 8abf4707a1
commit 75cc86d2a2
3 changed files with 9 additions and 11 deletions
+3 -1
View File
@@ -128,7 +128,9 @@ RetryStart:
'下载 '下载
ActualSource = LoadingSource '显示加载中图片 ActualSource = LoadingSource '显示加载中图片
TempDownloadingPath = TempPath & RandomInteger(0, 10000000) TempDownloadingPath = TempPath & RandomInteger(0, 10000000)
NetDownload(Url, TempDownloadingPath, True, False) Using Client As New System.Net.WebClient
Client.DownloadFile(Url, TempDownloadingPath)
End Using
If Url <> Source AndAlso Url <> FallbackSource Then If Url <> Source AndAlso Url <> FallbackSource Then
'已经更换了地址 '已经更换了地址
File.Delete(TempDownloadingPath) File.Delete(TempDownloadingPath)
@@ -252,7 +252,7 @@ RequestFinished:
''' </summary> ''' </summary>
''' <param name="Url">网络 Url。</param> ''' <param name="Url">网络 Url。</param>
''' <param name="LocalFile">下载的本地地址。</param> ''' <param name="LocalFile">下载的本地地址。</param>
Public Sub NetDownload(Url As String, LocalFile As String, Optional UseBrowserUserAgent As Boolean = False, Optional AddReferer As Boolean = True) Public Sub NetDownload(Url As String, LocalFile As String, Optional UseBrowserUserAgent As Boolean = False)
Log("[Net] 直接下载文件:" & Url) Log("[Net] 直接下载文件:" & Url)
'初始化 '初始化
@@ -268,7 +268,7 @@ RequestFinished:
'下载 '下载
Using Client As New WebClient Using Client As New WebClient
Try Try
SecretHeadersSign(Url, Client, UseBrowserUserAgent, AddReferer) SecretHeadersSign(Url, Client, UseBrowserUserAgent)
Client.DownloadFile(Url, LocalFile) Client.DownloadFile(Url, LocalFile)
Catch ex As Exception Catch ex As Exception
File.Delete(LocalFile) File.Delete(LocalFile)
+2 -6
View File
@@ -100,7 +100,7 @@ Friend Module ModSecret
''' <summary> ''' <summary>
''' 设置 Headers 的 UA、Referer。 ''' 设置 Headers 的 UA、Referer。
''' </summary> ''' </summary>
Friend Sub SecretHeadersSign(Url As String, ByRef Client As WebClient, Optional UseBrowserUserAgent As Boolean = False, Optional AddReferer As Boolean = True) Friend Sub SecretHeadersSign(Url As String, ByRef Client As WebClient, Optional UseBrowserUserAgent As Boolean = False)
If Url.Contains("baidupcs.com") OrElse Url.Contains("baidu.com") Then If Url.Contains("baidupcs.com") OrElse Url.Contains("baidu.com") Then
Client.Headers("User-Agent") = "LogStatistic" '#4951 Client.Headers("User-Agent") = "LogStatistic" '#4951
ElseIf UseBrowserUserAgent Then ElseIf UseBrowserUserAgent Then
@@ -108,9 +108,7 @@ Friend Module ModSecret
Else Else
Client.Headers("User-Agent") = "PCL2/" & VersionStandardCode Client.Headers("User-Agent") = "PCL2/" & VersionStandardCode
End If End If
If AddReferer Then
Client.Headers("Referer") = "http://" & VersionCode & ".pcl2.open.server/" Client.Headers("Referer") = "http://" & VersionCode & ".pcl2.open.server/"
End If
If Url.Contains("api.curseforge") Then If Url.Contains("api.curseforge") Then
Client.Headers("x-api-key") = CurseForgeAPIKey Client.Headers("x-api-key") = CurseForgeAPIKey
End If End If
@@ -118,7 +116,7 @@ Friend Module ModSecret
''' <summary> ''' <summary>
''' 设置 Headers 的 UA、Referer。 ''' 设置 Headers 的 UA、Referer。
''' </summary> ''' </summary>
Friend Sub SecretHeadersSign(Url As String, ByRef Request As HttpWebRequest, Optional UseBrowserUserAgent As Boolean = False, Optional AddReferer As Boolean = True) Friend Sub SecretHeadersSign(Url As String, ByRef Request As HttpWebRequest, Optional UseBrowserUserAgent As Boolean = False)
If Url.Contains("baidupcs.com") OrElse Url.Contains("baidu.com") Then If Url.Contains("baidupcs.com") OrElse Url.Contains("baidu.com") Then
Request.UserAgent = "LogStatistic" '#4951 Request.UserAgent = "LogStatistic" '#4951
ElseIf UseBrowserUserAgent Then ElseIf UseBrowserUserAgent Then
@@ -126,9 +124,7 @@ Friend Module ModSecret
Else Else
Request.UserAgent = "PCL2/" & VersionStandardCode Request.UserAgent = "PCL2/" & VersionStandardCode
End If End If
If AddReferer Then
Request.Referer = "http://" & VersionCode & ".pcl2.open.server/" Request.Referer = "http://" & VersionCode & ".pcl2.open.server/"
End If
If Url.Contains("api.curseforge") Then If Url.Contains("api.curseforge") Then
Request.Headers("x-api-key") = CurseForgeAPIKey Request.Headers("x-api-key") = CurseForgeAPIKey
End If End If