1 Commits

Author SHA1 Message Date
ilbinek
f90cf628e3 Add configurable SOCKS5 address with default 2026-04-10 17:17:44 +02:00

17
util.go
View File

@@ -16,11 +16,12 @@ import (
var Debug = false var Debug = false
var Tor = false var Tor = false
var Socks5Address = "127.0.0.1:9050"
var DownThreads = 8 var DownThreads = 8
func getHttpClient() (*http.Client, error) { func getHttpClient() (*http.Client, error) {
if Tor { if Tor {
dialer, err := proxy.SOCKS5("tcp", "127.0.0.1:9050", nil, proxy.Direct) dialer, err := proxy.SOCKS5("tcp", Socks5Address, nil, proxy.Direct)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -120,8 +121,8 @@ func Download(manifest Manifest, downloadDir string, filen string) ([]byte, erro
if err != nil { if err != nil {
return nil, err return nil, err
} }
remContent = content remContent = *content
downloaded += len(content) downloaded += len(*content)
if Debug { if Debug {
// save remainder to file in the fragments/ directory, prefix with gap // save remainder to file in the fragments/ directory, prefix with gap
@@ -159,10 +160,10 @@ func Download(manifest Manifest, downloadDir string, filen string) ([]byte, erro
return return
} }
mu.Lock() mu.Lock()
downloaded += len(content) * len(fragment.Offsets) downloaded += len(*content) * len(fragment.Offsets)
for _, offset := range fragment.Offsets { for _, offset := range fragment.Offsets {
trackFrag = append(trackFrag, Frag{Offset: offset, Size: len(content)}) trackFrag = append(trackFrag, Frag{Offset: offset, Size: len(*content)})
copy(ret[offset:offset+len(content)], content) copy(ret[offset:offset+len(*content)], *content)
} }
percent := float32(downloaded) / float32(manifest.Size) * 100.0 percent := float32(downloaded) / float32(manifest.Size) * 100.0
downedMB := float32(downloaded) / 1024.0 / 1024.0 downedMB := float32(downloaded) / 1024.0 / 1024.0
@@ -221,7 +222,7 @@ func Download(manifest Manifest, downloadDir string, filen string) ([]byte, erro
return ret, nil return ret, nil
} }
func getContent(url string) ([]byte, error) { func getContent(url string) (*[]byte, error) {
client, err := getHttpClient() client, err := getHttpClient()
if err != nil { if err != nil {
return nil, err return nil, err
@@ -241,7 +242,7 @@ func getContent(url string) ([]byte, error) {
return nil, err return nil, err
} }
return body, nil return &body, nil
} }
func transformShaToURL(sha512s string, size int) string { func transformShaToURL(sha512s string, size int) string {