Skip to content

Commit 4938676

Browse files
committed
fix: fix download for new url
1 parent e4c50c2 commit 4938676

File tree

3 files changed

+59
-81
lines changed

3 files changed

+59
-81
lines changed

downloader.go

Lines changed: 59 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,81 @@
11
package main
22

33
import (
4-
"context"
4+
"fmt"
5+
"io"
56
"net/http"
67
"os"
78
"path/filepath"
89
"time"
9-
10-
"github.com/LiteLDev/pget"
1110
)
1211

13-
func newDownloadClient(maxIdleConnsPerHost int) *http.Client {
14-
tr := http.DefaultTransport.(*http.Transport).Clone()
15-
tr.MaxIdleConns = 0 // no limit
16-
tr.MaxIdleConnsPerHost = maxIdleConnsPerHost
17-
tr.DisableCompression = true
18-
return &http.Client{
19-
Transport: tr,
12+
func DownloadFile(url, dest string) error {
13+
// If there's a file, don't download it twice
14+
if _, err := os.Stat(dest); err == nil {
15+
return nil
2016
}
21-
}
2217

23-
func DownloadFile(url, dest string) error {
24-
client := newDownloadClient(16)
18+
dir, _ := filepath.Split(dest)
19+
os.MkdirAll(dir, 0755)
20+
out, err := os.Create(dest)
21+
if err != nil {
22+
return err
23+
}
24+
defer out.Close()
2525

26-
target, err := pget.Check(context.Background(), &pget.CheckConfig{
27-
URLs: []string{url},
28-
Timeout: 10 * time.Second,
29-
Client: client,
30-
})
26+
req, err := http.NewRequest("GET", url, nil)
3127
if err != nil {
3228
return err
3329
}
3430

35-
if _, err := os.Stat(dest); err == nil {
36-
return nil
31+
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
32+
33+
client := &http.Client{}
34+
resp, err := client.Do(req)
35+
if err != nil {
36+
return err
3737
}
38+
defer resp.Body.Close()
3839

39-
dir, _ := filepath.Split(dest)
40-
os.MkdirAll(dir, 0755)
40+
if resp.StatusCode != http.StatusOK {
41+
return fmt.Errorf("bad status: %s", resp.Status)
42+
}
4143

42-
opts := []pget.DownloadOption{
43-
pget.WithUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", ""),
44-
pget.WithReferer(""),
44+
// Get file size
45+
size := resp.ContentLength
46+
progress := &ProgressReader{Reader: resp.Body, Total: size}
47+
48+
// Enable progressbar goroutine
49+
go progress.PrintProgress()
50+
51+
_, err = io.Copy(out, progress)
52+
if err != nil {
53+
return err
4554
}
4655

47-
err = pget.Download(context.Background(), &pget.DownloadConfig{
48-
Filename: target.Filename,
49-
Dirname: dir,
50-
ContentLength: target.ContentLength,
51-
Procs: config.Procs,
52-
URLs: target.URLs,
53-
Client: client,
54-
}, opts...)
55-
return err
56+
return nil
57+
}
58+
59+
type ProgressReader struct {
60+
io.Reader
61+
Total int64
62+
Current int64
63+
}
64+
65+
func (pr *ProgressReader) Read(p []byte) (int, error) {
66+
n, err := pr.Reader.Read(p)
67+
pr.Current += int64(n)
68+
return n, err
69+
}
70+
71+
func (pr *ProgressReader) PrintProgress() {
72+
for {
73+
percentage := float64(pr.Current) / float64(pr.Total) * 100
74+
log.Infof("Downloading... %.2f%% complete", percentage)
75+
if pr.Current >= pr.Total {
76+
log.Info("Download complete")
77+
break
78+
}
79+
time.Sleep(1 * time.Second)
80+
}
5681
}

go.mod

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ go 1.23
55
toolchain go1.23.4
66

77
require (
8-
github.com/LiteLDev/pget v0.2.5
98
github.com/PuerkitoBio/goquery v1.10.0
109
github.com/alexflint/go-arg v1.5.1
1110
github.com/cheggaaa/pb/v3 v3.1.5
@@ -14,23 +13,14 @@ require (
1413
)
1514

1615
require (
17-
github.com/Code-Hex/updater v0.0.0-20160712085121-c3f278672520 // indirect
18-
github.com/Songmu/prompter v0.5.0 // indirect
1916
github.com/VividCortex/ewma v1.2.0 // indirect
2017
github.com/alexflint/go-scalar v1.2.0 // indirect
2118
github.com/andybalholm/cascadia v1.3.2 // indirect
22-
github.com/antonholmquist/jason v1.0.1-0.20160829104012-962e09b85496 // indirect
23-
github.com/asaskevich/govalidator v0.0.0-20161001163130-7b3beb6df3c4 // indirect
2419
github.com/fatih/color v1.15.0 // indirect
25-
github.com/jessevdk/go-flags v0.0.0-20160903113131-4cc2832a6e6d // indirect
2620
github.com/mattn/go-colorable v0.1.13 // indirect
2721
github.com/mattn/go-isatty v0.0.19 // indirect
2822
github.com/mattn/go-runewidth v0.0.15 // indirect
29-
github.com/mcuadros/go-version v0.0.0-20141206211339-d52711f8d6be // indirect
30-
github.com/pkg/errors v0.8.1-0.20161002052512-839d9e913e06 // indirect
3123
github.com/rivo/uniseg v0.2.0 // indirect
3224
golang.org/x/net v0.29.0 // indirect
33-
golang.org/x/sync v0.1.0 // indirect
3425
golang.org/x/sys v0.25.0 // indirect
35-
golang.org/x/term v0.24.0 // indirect
3626
)

go.sum

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
1-
github.com/Code-Hex/updater v0.0.0-20160712085121-c3f278672520 h1:AhI5ytq4dAam2scBpgeQY/9kz/covK9/NMyzO3e8350=
2-
github.com/Code-Hex/updater v0.0.0-20160712085121-c3f278672520/go.mod h1:RZRMRhdqo/22EdcyGiDJdIdCrptsRDEbqQ8/bswHV1E=
3-
github.com/LiteLDev/pget v0.2.5 h1:dMV5gmohW+WX/NHnLNY8BLmzBRuHolg8AW42G34uCr0=
4-
github.com/LiteLDev/pget v0.2.5/go.mod h1:JW76uwbgKXV5zk+4LDuIOt14gGAN7wGBJe1YOtd9+bw=
51
github.com/PuerkitoBio/goquery v1.10.0 h1:6fiXdLuUvYs2OJSvNRqlNPoBm6YABE226xrbavY5Wv4=
62
github.com/PuerkitoBio/goquery v1.10.0/go.mod h1:TjZZl68Q3eGHNBA8CWaxAN7rOU1EbDz3CWuolcO5Yu4=
7-
github.com/Songmu/prompter v0.5.0 h1:uf60xlFItY5nW+rlLJ2XIUfaUReo4gUEeftuUeHpio8=
8-
github.com/Songmu/prompter v0.5.0/go.mod h1:S4Eg25l60kPlnfB2ttFVpvBKYw7RKJexzB3gzpAansY=
93
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
104
github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4=
115
github.com/alexflint/go-arg v1.5.1 h1:nBuWUCpuRy0snAG+uIJ6N0UvYxpxA0/ghA/AaHxlT8Y=
@@ -14,55 +8,30 @@ github.com/alexflint/go-scalar v1.2.0 h1:WR7JPKkeNpnYIOfHRa7ivM21aWAdHD0gEWHCx+W
148
github.com/alexflint/go-scalar v1.2.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o=
159
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
1610
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
17-
github.com/antonholmquist/jason v1.0.1-0.20160829104012-962e09b85496 h1:dESITdufxuiwgQh1YPiPupEXORHTYvY8tr40nvrWelo=
18-
github.com/antonholmquist/jason v1.0.1-0.20160829104012-962e09b85496/go.mod h1:+GxMEKI0Va2U8h3os6oiUAetHAlGMvxjdpAH/9uvUMA=
19-
github.com/asaskevich/govalidator v0.0.0-20161001163130-7b3beb6df3c4 h1:roUAANycAr9TS5tnrZboqlI+bGfcY8n9nDyD1WDgn74=
20-
github.com/asaskevich/govalidator v0.0.0-20161001163130-7b3beb6df3c4/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
2111
github.com/cheggaaa/pb/v3 v3.1.5 h1:QuuUzeM2WsAqG2gMqtzaWithDJv0i+i6UlnwSCI4QLk=
2212
github.com/cheggaaa/pb/v3 v3.1.5/go.mod h1:CrxkeghYTXi1lQBEI7jSn+3svI3cuc19haAj6jM60XI=
2313
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2414
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2515
github.com/deckarep/golang-set/v2 v2.7.0 h1:gIloKvD7yH2oip4VLhsv3JyLLFnC0Y2mlusgcvJYW5k=
2616
github.com/deckarep/golang-set/v2 v2.7.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
27-
github.com/dsnet/compress v0.0.1 h1:PlZu0n3Tuv04TzpfPbrnI0HW/YwodEXDS+oPKahKF0Q=
28-
github.com/dsnet/compress v0.0.1/go.mod h1:Aw8dCMJ7RioblQeTqt88akK31OvO8Dhf5JflhBbQEHo=
2917
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
3018
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
31-
github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw=
32-
github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
33-
github.com/jessevdk/go-flags v0.0.0-20160903113131-4cc2832a6e6d h1:i6fERqEEy9HDP6qIg93orNgisqEFTzR+U5pzavIAAhs=
34-
github.com/jessevdk/go-flags v0.0.0-20160903113131-4cc2832a6e6d/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
3519
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
3620
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
37-
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
3821
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
3922
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
4023
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
4124
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
4225
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
43-
github.com/mcuadros/go-version v0.0.0-20141206211339-d52711f8d6be h1:tj81VrKAa9Vv71Ugze2mtnOiU2ozpJau8itbf3XP3fo=
44-
github.com/mcuadros/go-version v0.0.0-20141206211339-d52711f8d6be/go.mod h1:76rfSfYPWj01Z85hUf/ituArm797mNKcvINh1OlsZKo=
45-
github.com/mholt/archiver v3.1.1+incompatible h1:1dCVxuqs0dJseYEhi5pl7MYPH9zDa1wBi7mF09cbNkU=
46-
github.com/mholt/archiver v3.1.1+incompatible/go.mod h1:Dh2dOXnSdiLxRiPoVfIr/fI1TwETms9B8CTWfeh7ROU=
47-
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
48-
github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
4926
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88=
5027
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
51-
github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI=
52-
github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
53-
github.com/pkg/errors v0.8.1-0.20161002052512-839d9e913e06 h1:swlfMC08lNw0gC4UR7Xz9id7JZ3K+I1oEehKgRL399U=
54-
github.com/pkg/errors v0.8.1-0.20161002052512-839d9e913e06/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
5528
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
5629
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5730
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
5831
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
5932
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
6033
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
6134
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
62-
github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ=
63-
github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
64-
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=
65-
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
6635
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
6736
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
6837
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@@ -77,12 +46,9 @@ golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
7746
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
7847
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
7948
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
80-
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
8149
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
8250
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
83-
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
8451
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
85-
golang.org/x/sys v0.0.0-20210319071255-635bc2c9138d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
8652
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
8753
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
8854
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -93,12 +59,9 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9359
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
9460
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
9561
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
96-
golang.org/x/term v0.0.0-20210317153231-de623e64d2a6/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
9762
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
9863
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
9964
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
100-
golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
101-
golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
10265
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
10366
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
10467
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=

0 commit comments

Comments
 (0)